python+百度ai平台实现人脸识别

       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,但是我并没有发现他具体有哪些人工智能,就拿人脸识别来说吧,你不过是在平台上申请了一个账号,然后把照片传上去,调用的时候执行一下他的人脸识别的算法,就这么简单,用的是他训练好的模型。(百度的水很深啊)然后这样就形成了一个良性循环,训练的人脸库越多,识别的准确度越高,百度哪里来的那么多的人脸库呢,我们上传的啊,用完之后我们还感叹,百度平台好方便…

       其实呢这里并没有黑百度的意思,也希望百度不要针对我,(嘻嘻嘻)还是鼓励大家认真学习,自己写算法,起码以后会不愁吃饭的。。。

你可能感兴趣的:(python+百度ai平台实现人脸识别)