Aliyun_人脸人体_人体结构化属性_人体结构化算法-程序员宅基地

技术标签: 计算机视觉  阿里&&腾讯OCR_Python_API_Demo  人工智能  

import oss2
import json
import cv2
import matplotlib.pyplot as plt
%matplotlib inline
import numpy as np
AccessKeyId="xxxxx"
AccessKeySecret="xxxxxx"
auth = oss2.Auth(AccessKeyId, AccessKeySecret)
bucket = oss2.Bucket(auth, 'https://oss-cn-shanghai.aliyuncs.com', 'ocr-yjs')
from aliyunsdkcore.client import AcsClient
from aliyunsdkcore.acs_exception.exceptions import ClientException
from aliyunsdkcore.acs_exception.exceptions import ServerException
from aliyunsdkcore.auth.credentials import AccessKeyCredential
from aliyunsdkcore.auth.credentials import StsTokenCredential
credentials = AccessKeyCredential(AccessKeyId, AccessKeySecret)
client = AcsClient(region_id='cn-shanghai', credential=credentials)
import seaborn as sns
"""

https://help.aliyun.com/document_detail/159212.html
人体检测
人体检测可以检测图像中的所有人体,并返回每个人体的矩形框位置

"""

from aliyunsdkfacebody.request.v20191230.PedestrianDetectAttributeRequest import PedestrianDetectAttributeRequest

request = PedestrianDetectAttributeRequest()
request.set_accept_format('json')

filepath="images/人体2.jpg"
with open(filepath, 'rb') as fileobj:
    bucket.put_object(filepath, fileobj)
url="https://ocr-yjs.oss-cn-shanghai.aliyuncs.com/"+filepath
request.set_ImageURL(url)

response = client.do_action_with_exception(request)
response=json.loads(str(response, encoding='utf-8'))
print(response)
{'RequestId': '6DC6B7BD-2F05-52FE-AE06-839994BA7B0F', 'Data': {'PersonNumber': 1, 'Attributes': [{'LowerWear': {'Score': 0.9879701137542725, 'Name': 'Trousers'}, 'Backpack': {'Score': 0.9958775234408677, 'Name': 'No'}, 'Orient': {'Score': 0.9238302707672119, 'Name': 'Front'}, 'ShoulderBag': {'Score': 0.9718729630112648, 'Name': 'No'}, 'LowerColor': {'Score': 0.9484567046165466, 'Name': '灰'}, 'Glasses': {'Score': 0.9050891995429993, 'Name': 'No'}, 'UpperColor': {'Score': 0.9810379147529602, 'Name': '灰'}, 'Hat': {'Score': 0.9613198824226856, 'Name': 'No'}, 'Handbag': {'Score': 0.9156140983104706, 'Name': 'No'}, 'Gender': {'Score': 0.9929098449647427, 'Name': 'male'}, 'Age': {'Score': 0.986446738243103, 'Name': 'Age18-60'}, 'UpperWear': {'Score': 0.9987271428108215, 'Name': 'LongSleeve'}}], 'Height': 800, 'Width': 533, 'Boxes': [{'Score': 0.907412052154541, 'BottomRightY': 799.0, 'BottomRightX': 418.0, 'TopLeftY': 44.0, 'TopLeftX': 208.0}]}}
PersonNumber=response['Data']['PersonNumber']
PersonNumber
1
Height=response['Data']["Height"]
Width=response['Data']["Width"]
TopLeft=(int(response['Data']['Boxes'][0]['TopLeftX']),int(response['Data']['Boxes'][0]['TopLeftY']))
BottomRight=(int(response['Data']['Boxes'][0]['BottomRightX']),int(response['Data']['Boxes'][0]['BottomRightY']))
# left, top, right, bottom
plt.figure(figsize=(12,10))
res=plt.imread(filepath)
res=cv2.rectangle(res,TopLeft,BottomRight,(0,0,255),1)
plt.imshow(res)
<matplotlib.image.AxesImage at 0x2368f7ddeb0>

在这里插入图片描述

response['Data']['Attributes']
[{'LowerWear': {'Score': 0.9879701137542725, 'Name': 'Trousers'},
  'Backpack': {'Score': 0.9958775234408677, 'Name': 'No'},
  'Orient': {'Score': 0.9238302707672119, 'Name': 'Front'},
  'ShoulderBag': {'Score': 0.9718729630112648, 'Name': 'No'},
  'LowerColor': {'Score': 0.9484567046165466, 'Name': '灰'},
  'Glasses': {'Score': 0.9050891995429993, 'Name': 'No'},
  'UpperColor': {'Score': 0.9810379147529602, 'Name': '灰'},
  'Hat': {'Score': 0.9613198824226856, 'Name': 'No'},
  'Handbag': {'Score': 0.9156140983104706, 'Name': 'No'},
  'Gender': {'Score': 0.9929098449647427, 'Name': 'male'},
  'Age': {'Score': 0.986446738243103, 'Name': 'Age18-60'},
  'UpperWear': {'Score': 0.9987271428108215, 'Name': 'LongSleeve'}}]
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/betteryjs/article/details/122213537

智能推荐

2021-04-21_哈哈905的博客-程序员宅基地

Python机器学习之人脸识别在用Python做人脸识别项目时,遇到了一个非常令人头疼的问题。我用的环境是python3.9、Pychram。前期python和pycharm安装以及需要的各种模块的安装都没问题。但在项目加载face_recognition模块里的face_landmarks时Not found。...

Gatling学习笔记(二)---快速入门-程序员宅基地

文章目录简介安装编码关于Scala的话测试用例测试下应用场景基础使用记录录制场景加特林情景说明运行加特林简介本篇文章翻译gatling官方快速入门文档,在本中将使用Gatling对一个简单的云托管Web服务器进行负载测试,并介绍DSL的基本要素。安装请检查安装部分以选择符合您需要的设置。建议非开发人员从捆绑软件设置开始。编码加特林的默认编码为UTF-8。如果要使用另一种,则必须:在...

博弈论(Game Theory)相关Paper阅读-程序员宅基地

这些论文是我在研究区块链共识算法的时候搜到的,当然大多数跟区块链没什么关系,不过有些论文真的写的好,作者中不乏有诺奖得主,有些论文的结果是有违常的(比如拍卖中的价高者得),这也是这些Paper的一部分魅力所在,所选的Paper中或有极其严格的数学推导或非常好的设计,可以参考博弈论入门Thomas S. Ferguson的博弈论主页第一章介绍了经典的Nim游戏引出了ICG无偏组合博弈,其中一...

leveldb学习:sstable(2)-程序员宅基地

block_builderblock.h和.cc里定义了block的entry存储格式和restart,提供了entry的查找接口以及迭代器。那么如何往写block里写entry呢?leveldb遵循面向对象的设计理念在block_builder类里提供了相关接口。

滚动条与阈值_scrollama 阈值的使用-程序员宅基地

学了阈值处理才知道,如果显示不是我想要的怎么办,总不能一个一个值调试过去吧,当然有更具效率的办法啦。滚动条,我们经常看到的,通过它我们能更清楚我们想要的特定值。滚动条滚动条(Track bar) 在OpenCV中是非常方便的交互工具, 它依附于特定的窗口而存在。通过调节滚动条能够设置、获取指定范围内的特定值。在OpenCV中, 函数cv2.createTrackbar() 用来定义滚动条, 其语法格式为:cv2.create Track bar(trackbarname,winname,value,_scrollama 阈值的使用

android相对布局详解-程序员宅基地

转自:http://www.cnblogs.com/yyyyy5101/archive/2011/06/20/2085407.htmlActivity布局初步 - 相对布局 1、 相对布局的基本概念 一个控件的位置它决定于它和其他控件的关系,好处:比较灵活;缺点:掌握比较复杂。 2、 相对布局常用属性介绍 这里将这些属性分成4个组,便于理解和记忆。 a)、以下4个属性设置控件与之间的关系和位置..._android 相对布局 位置

随便推点

安装node.js并且设置淘宝镜像源和安装vue脚手架_nodejs14设置淘宝源-程序员宅基地

node.js 官网:https://nodejs.org/en/1、首先访问node.js官网,根据自己系统版本来下载安装最新版本的node.js2、安装包下载完成后,选择安装目录后,无脑下一步,直到安装完成3、在cmd或者powershell中查看自己安装node和npm的版本信息4、因为npm的仓库服务器地址在国外,国内访问会很慢,我们把镜像源设置为国内后下载会更快,使用以下命令npm install -g cnpm --registry=https://registry.npm.t._nodejs14设置淘宝源

Vue面试题合集(原理深入,持续更新)_vue最新面试题-程序员宅基地

2023前端Vue最新面试试题集合,概念及深入原理,整理不断更新中..._vue最新面试题

vue发送请求是应该在mounted还是在created生命周期_vue3 生命周期发送请求-程序员宅基地

一个经常会被问到的问题:为什么不在 created 里去发ajax?created 可是比 mounted 更早调用啊,更早调用意味着更早返回结果,那样性能不是更高?首先,一个组件的 created 比 mounted 也早调用不了几微秒,性能没啥提高; 而且,等到异步渲染开启的时候,created 就可能被中途打断,中断之后渲染又要重做一遍,想一想,在 created 中做ajax调用,代码..._vue3 生命周期发送请求

scala总结_.ts scala-程序员宅基地

一、集合collection1. 概念说明- 该集合与java中的集合类似,只是scala重新实现了自身的集合抽象- 分为可变集合和不可变集合- 常用集合列表 | **序号** | **集合类** | **说明** | | -------- | -------------------- | ---------------------------------------..._.ts scala

红米android怎么开机画面,开机画面顶端出现 kernel is not seandroid enforcing 怎么解决...-程序员宅基地

开机画面顶端出现 kernel is not seandroid enforcing 怎么解决以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!开机画面顶端出现 kernel is not seandroid enforcing 怎么解决那是因为你刷了4.3的bootloader,三星4.3开始更新bootloader,对..._kernel is not seandroid enforcing

【数论】数论分块(详细,小白):余数求和&&约数研究_n/i下取整有根号种取值-程序员宅基地

数论分块标题数论分块是一种非常重要的思想。就是对于一些表达式,它的值只有sqrt(n)种,那么我们就对于这sqrt(n)种数值进行分块,然后暴力算即可。简单来说就是:把一个数列分成一块一块的区域进行计算下面我们来详细分析一些题目和温故一些知识点:“ ⌊ ⌋” ←这个符号表示向下取整(⌊x⌋:表示小于 x 的最大整数;⌈x⌉:表示大于 x 的最小整数。)mod的等价公式:k..._n/i下取整有根号种取值

推荐文章

热门文章

相关标签