python调用百度AI开放平台真的好简单啊,之前试过c++调用,但是配置那三个库已经把我心态搞崩了,尼玛还有两个是嵌套的。所以python大法好。
言归正传,我用的是百度的sdk,对应的看sdk v3的文档就可以了,在python的窗口命令行执行 pip install baidu-aip,然后就可以写代码了。或者直接进入https://ai.baidu.com/sdk 下载对应的SDK,不过这个还要每个月更新token,怪麻烦的。对了忘记说了,我用的是2.7版本的python,也试过3.6的,但是由于版本的升级,可能会报错,所以建议大家直接用2.7的。
直接上代码吧(这里就写了四个函数):
import base64
import json
from aip import AipFace
APP_ID = '你的ID'
API_KEY = '你的key'
SECRET_KEY = '你的sk'
client = AipFace(APP_ID, API_KEY, SECRET_KEY)
def face_detect(filepath1,filepath2): #人脸对比
result = client.match([
{
'image': base64.b64encode(open(failpath1, 'rb').read()),
'image_type': 'BASE64',
},
{
'image': base64.b64encode(open(failpath2, 'rb').read()),
'image_type': 'BASE64',
}
])
print(result) #打印出所有的信息
a=result['result']['score']
print(a) #单独显示出相似度 其他的类似
# if a>80:
# return 1
# else:
# return 0
def face_search(filepath): #人脸库搜索 222207
with open(filepath, 'rb') as fp:
image=base64.b64encode(fp.read())
imageType="BASE64"
groupIdList="你的用户组名称"
result=client.search(image,imageType,groupIdList)
print(result) #打印出所有信息
# print(result['result']['user_list'][0]['score']) #打印出相似度其他信息类似
# print(result['result']['face_token'])
# print(result['error_code'])
def face_add(filepath,unit,num): #人脸库增加 地址 组 用户
with open(filepath,'rb') as fp:
image=image=base64.b64encode(fp.read())
imageType="BASE64"
groupid=unit
userid=num
result=client.addUser(image,imageType,groupid,userid)
if result['error_code']==0:
print("增加人脸成功")
else:
print("增加人脸失败")
# print(result)
def face_delete(filepath): #删除人脸库
userId = "用户名称"
groupId = "用户组名称"
result = client.deleteUser(groupId, userId); #其实这里不用按照官方的demo三个参数 每张照片单独的token不用也可以的!
print(result)
if result['error_code']==0:
print("删除人脸成功")
else:
print("删除人脸失败")
if __name__=='__main__':
# face_detect('你照片的路径','你另一张照片的路径')
# face_search('照片的路径')
# face_delete('照片的路径')
# face_add('照片的路径','用户组名称','用户名称')
写道这里忍不住想吐槽一下,百度AI平台名义上是AI,但是我并没有发现他具体有哪些人工智能,就拿人脸识别来说吧,你不过是在平台上申请了一个账号,然后把照片传上去,调用的时候执行一下他的人脸识别的算法,就这么简单,用的是他训练好的模型。(百度的水很深啊)然后这样就形成了一个良性循环,训练的人脸库越多,识别的准确度越高,百度哪里来的那么多的人脸库呢,我们上传的啊,用完之后我们还感叹,百度平台好方便…
其实呢这里并没有黑百度的意思,也希望百度不要针对我,(嘻嘻嘻)还是鼓励大家认真学习,自己写算法,起码以后会不愁吃饭的。。。