准备做一个树莓派的人脸识别系统,查了下Face++是免费的而且比较好用,找了一下网上的资料都是python2.7的,所以在此记录下整个开发过程。
调用face++的api首先需要注册账号,然后创建api key,这些都很简单就不说了。
先上测试代码
注意:
这里我遇到了两个问题
第一个是绝对路径的问题,我使用的时候不能用“\” 而要用“\”才行
第二个是No module named ‘requests’
解决方法是去下载这个东西,而下载这个东西又要先下载pip,方法在这
不过我是按评论里的用powershell安装的,博主的方法在我这不知道为什么没用。
powershell的用法和linux一样,先到下载的文件目录下,然后使用博主给的命令就可以了。最后结果如下
pip安装成功,再去安装’requests’,
这里是方法
注意第二条命令里地址,例如我的是这样的
最后结果如下
然后在pycharm里还是不行,好像是环境配置有点问题,这个等下个博客再写这个问题的解决办法,目前我是直接打开python3.6然后输入代码解决的。
import requests
from json import JSONDecoder
http_url ="https://api-cn.faceplusplus.com/facepp/v3/detect"
#你要调用API的URL
key ="公钥"
secret ="私钥"
#face++提供的一对密钥
filepath1 ="D:\py\image\WIN_20180412_21_52_13_Pro.jpg"
#图片文件的绝对路径
data = {
"api_key":key, "api_secret": secret, "return_attributes": "gender,age,smiling,beauty"}
#必需的参数,注意key、secret、"gender,age,smiling,beauty"均为字符串,与官网要求一致
files = {
"image_file": open(filepath1, "rb")}
'''以二进制读入图像,这个字典中open(filepath1, "rb")返回的是二进制的图像文件,所以"image_file"是二进制文件,符合官网要求'''
response = requests.post(http_url, data=data, files=files)
#POTS上传
req_con = response.content.decode('utf-8')
#response的内容是JSON格式
req_dict = JSONDecoder().decode(req_con)
#对其解码成字典格式
print(req_dict)
#输出
大概现象如下
我使用的两张图片如下