主机参考:VPS测评参考推荐/专注分享VPS服务器优惠信息!若您是商家可以在本站进行投稿,查看详情!此外我们还提供软文收录、PayPal代付、广告赞助等服务,查看详情! |
我们发布的部分优惠活动文章可能存在时效性,购买时建议在本站搜索商家名称可查看相关文章充分了解该商家!若非中文页面可使用Edge浏览器同步翻译!PayPal代付/收录合作 |
这是一个基于python人脸检测的微信微信官方账号开发。今天,我们通过腾讯的ai平台分析用户的图片,然后将其返回给用户。下面我们一起来体验一下微信官方账号的颜值检测。
效果图
1.接入腾讯AI平台我们来看看官方对人脸检测分析界面的描述:
检测给定图像中所有人脸的位置和相应的面部属性。位置包括(x,y,w,h),面部属性包括性别、年龄、表情、美貌、眼镜和姿势(俯仰、滚动、偏航)。
请求参数包括以下内容:
App_id应用标识,我们在AI平台注册后即可获得app_id。
时间戳
随机字符串
签名签名信息需要我们自己计算。
需要检测的图像(最远1米)
模式检测模式
1.接口认证,构造请求参数官方给了我们接口认证的计算方法。
按照关键字在字典中的升序对所请求的参数对进行排序,以获得有序的参数对列表n
将列表N中的参数对按照URL键值对的格式拼接成字符串,得到字符串T(例如key1=value1&key2=value2)。URL键值拼接过程的值部分需要URL编码,URL编码算法使用大写字母,如%E8,而不是小写的%e8。
将app_key作为密钥名称的应用程序密钥的URL密钥值拼接到字符串T的末尾以获得字符串S(例如,key 1 = value 1 & key 2 = value 2 & app _ key = key)。
对字符串S进行MD5运算,将MD5值的所有字符转换为大写,得到接口请求签名。
2.请求接口地址以请求接口信息。我们发送带有请求的请求,我们将获得json格式的返回图像信息,即pip安装请求。
3.处理返回的信息,在图片上显示信息,然后保存处理后的图片。这里我们使用opencv,和pillow两个库,pip安装pillow和pip安装opencv-python,来进行安装。
开始编写代码,我们创建一个新的face_id.py文件来对接AI平台并返回检测到的图像数据。
导入时间import randoms import base64 import hashlib import requests from urllib . parse import urlencode import cv2 import numpy as NP from PIL导入映像,Imagedraw,imagefontport OS # 1。计算接口认证和构造请求参数def random _ str():& # 39;''获取随机字符串nonce _ str & # 39''str = & # 39abcdefghijklmnopqrstuvwxyz & # 39;r = & # 39'对于范围(15)中的I:index = random . randint(0,25)r+= str【index】return rdef image(name):with open(name,& # 39;rb & # 39)as f:content = f . read()return base 64 . b 64 encode(content)def get _ params(img):& # 39;''组织接口请求的参数形式,计算签名接口认证信息,最后返回接口请求所需的参数字典& # 39;''params = { & # 39app _ id & # 39: '1106860829', '时间戳& # 39;:str(int(time . time())),& # 39;nonce _ str & # 39:random_str(),& # 39;图像& # 39;:img、& # 39;模式& # 39;: '0'} sort _ dict = sorted(params . items(),key = lambda item:item【0】,reverse = false)# sort _ dict . append(& # 39 & # 39;app _ key & # 39, 'P8 gt 8 nxi 6k 8 vlk bs & # 39;))# Add app _ keyrawtext = urlencode(sort _ dict)。encode()# URL encoding sha = hash lib . MD5()sha . update(raw text)MD 5 text = sha . hex digest()。upper()#计算符号和接口验证参数【& # 39;标志& # 39;】= md5text #添加到请求参数列表return params# 2。请求接口URL def access _ API(img):frame = cv2 . im read(img)nParry _ encode = cv2 . imen code(& # 39;。jpg & # 39,frame)【1】data _ encode = NP . array(nparry _ encode)img _ encode = base64 . b 64 encode(data _ encode)#转换为base64编码格式的图像url = & # 39https://api.ai.qq.com/fcgi-bin/face/face_detectface'资源=请求。post(URL,get _ params(img _ encode))。json()#请求URL并获取JSON信息#如果RES【& # 39;ret & # 39】== 0: # 0代表成功的请求PIL _ img = image。from array(cv2 . CVT color(frame,cv2 . color _ bgr 2 RGB))#将opencv格式转换为PIL格式,便于书写中文draw = imagedraw。draw(pil _ img)for objin RES【& # 39;数据& # 39;]['face _ list & # 39】:img _ width = RES【& # 39;数据& # 39;]['image _ width & # 39】# Image width img _ height = RES【& # 39;数据& # 39;]['image _ height & # 39】#图像高度# print(obj)x = obj【& # 39;x & # 39】# X坐标y =面框左上角obj【& # 39;y & # 39】# Y坐标w =面框左上角obj【& # 39;宽度& # 39;】#面部边框宽度h = obj【& # 39;身高& # 39;】#面框高度#自定义显示的文本内容如果obj【& # 39;玻璃& # 39;】= = 1:# Glasses glass = & # 39;是的& # 39;else:glass = & # 39;无& # 39;if obj【& # 39;性别& # 39;】》= 70: #性别值从0-100表示从女性变为男性性别= & # 39;男& # 39;elif 50
这几篇文章你可能也喜欢:
- 详细解释mp、开放和付费平台之间的直接关系(mp平台是什么意思)
- 微信公众平台和小程序有什么区别?
- 看看你的颜值有多高!基于python的微信官方账号(Python开发微信微信官方账号)
- 微信的公众平台和小程序有什么区别?(微信微信官方账号和小程序有什么区别?)
本文由主机参考刊发,转载请注明:让我们看看你的颜值有多高!基于python开发的微信官方账号(Python微信官方账号开发) https://zhujicankao.com/104951.html
评论前必须登录!
注册