用python来做人脸识别代码量少 思路清晰,

在使用之前我们需要在我们的配置的编译器中通过pip       install baidu-aip  即可

from aip import AipFace

就可以开始使用api了 我们第一次接触这个东西不妨

help(AipFace)

你就可以看到他所支持的功能。

在使用之前我们需要在百度的后台创建应用。将我们人脸都存放入库中。

其次我们要了解一个概念,我们要将本机中的图片与后台的人脸对比的话我们需要将图片转成base64的字符串的格式

import base64
f = open('./photo/mr.jpg', 'rb')
image = base64.b64encode(f.read())
image64 = str(image,'utf-8')
image_type = "BASE64"

当然我们也可以将base64码转换成图片。

人脸检测的原理是通过机器学习转化提前图片人脸中的七十二个关键点。并进行其他的分析。

python3的代码为

'''
# 人脸检测与属性分析
''' request_url = "https://aip.baidubce.com/rest/2.0/face/v3/detect" f = open('./photo/mr.jpg', 'rb')
image = base64.b64encode(f.read())
image64 = str(image,'utf-8')
image_type = "BASE64" # params = "{\"image\":\"%s\",\"image_type\":\"BASE64\",\"face_field\":\"faceshape,facetype\"}"%image64
params = {'image': image64,'image_type':"BASE64",'face_field': 'faceshape,facetype'}
# 此处的faceshape和facetype需要自己加上去 更具自己需要的返回值 params = urllib.parse.urlencode(params).encode("utf-8") access_token = '[24.3941b86dfcbc8eaea432d11df4f6660d.2592000.1542368987.282335-14255146]'
request_url = request_url + "?access_token=" + access_token request = urllib.request.urlopen(url=request_url, data=params) # 发送请求 content = request.read() # 将返回结果读取出来
print(content) # 显示返回结果 import urllib.request,sys,base64
import urllib.parse # 返回实例
a = {'error_code': 0,
'error_msg': 'SUCCESS',
'log_id': 1011018945051,
'timestamp': 1540301526,
'cached': 0,
'result': {'face_num': 1,
'face_list': [{'face_token': '80ed04e5e8771730b3fe240f8ead4e97',
'location': {'left': 564.6082764,
'top': 117.9681244,
'width': 263,
'height': 265,
'rotation': 1},
'face_probability': 1,
'angle': {'yaw': -0.301689893,
'pitch': -15.59528351,
'roll': 0.9747127891
}
}
]
}
}

具体各种属性请看百度文档  https://ai.baidu.com/docs#/Face-Detect-V3/top

介绍完人脸检测我们就可以进行人脸对比了

import base64

from aip import AipFace

'''新建aipface的配置'''
''' 你的 app id ak sk '''
AppId = '14255146'
ApiKey = 'UoyrHmKFG3nGPL5HmDiGo80G'
SecretKey = 'HUo1z36aDc1UxOwuS8d7Vxldh4GsQg8l'
client = AipFace(AppId, ApiKey, SecretKey) f = open('./photo/huge.jpg', 'rb')
image = base64.b64encode(f.read())
image64 = str(image,'utf-8')
image_type = "BASE64"
print(client.detect(image64, image_type)) # 此处的返回值为人脸的基本检测的数值效果 # print(strs)
# 人脸检测
# image = str(strs) # 取决于image_type参数,传入BASE64字符串或URL字符串或FACE_TOKEN字符串 imageType = "BASE64" groupIdList = "17ai_1" """ 调用人脸搜索 """ print(client.search(str(image64), image_type, groupIdList)) # 将返回对比结果 '''
""" 如果有可选参数 """
options = {}
options["quality_control"] = "NORMAL"
options["liveness_control"] = "LOW"
options["user_id"] = "233451"
options["max_user_num"] = 3 """ 带参数调用人脸搜索 """
# print(client.search(image, imageType, , options)) # 人脸搜索返回例子
'''
face = {
"face_token": "fid",
"user_list": [
{
"group_id": "test1",
"user_id": "u333333",
"user_info": "Test User",
"score": 99.3
}
]
}

python 与 百度人脸识别api的更多相关文章

  1. 百度人脸识别api及face++人脸识别api测试(python)

    一.百度人脸识别服务 1.官方网址:http://apistore.baidu.com/apiworks/servicedetail/464.html 2.提供的接口包括: 2.1 多人脸比对:请求多 ...

  2. 转《trackingjs+websocket+百度人脸识别API,实现人脸签到》流程

    先用websocket与后台建立通讯:用trackingjs在页面调用电脑摄像头,监听人脸,发现有人脸进入屏幕了,就把图片转成base64字符串,通过websocket发送到后端:后端拿到图片,调用百 ...

  3. trackingjs+websocket+百度人脸识别API,实现人脸签到

    在公司做了个年会的签到.抽奖系统.用java web做的,用公司的办公app扫二维码码即可签到,扫完码就在大屏幕上显示这个人的照片.之后领导让我改得高大上一点,用人脸识别来签到,就把扫二维码的步骤改成 ...

  4. 免费人脸识别APi

    今天对应一些免费的人脸识别的api 做了一下简单的对比,觉得百度开发出来的人脸识别接口还是最符合的我的要求,简单易用,容易上手. 据说百度的一些门禁也使用上了人脸识别的功能了,功能很强大,而且能识别出 ...

  5. 基于Emgu CV+百度人脸识别,实现视频动态 人脸抓取与识别

    背景 目前AI 处于风口浪尖,作为 公司的CTO,也作为自己的技术专研,开始了AI之旅,在朋友圈中也咨询 一些大牛对于AI 机器学习框架的看法,目前自己的研究方向主要开源的 AI 库,如:Emgu C ...

  6. C# 30分钟完成百度人脸识别——进阶篇(文末附源码)

    距离上次入门篇时隔两个月才出这进阶篇,小编惭愧,对不住关注我的卡哇伊的小伙伴们,为此小编用这篇博来谢罪. 前面的准备工作我就不说了,注册百度账号api,创建web网站项目,引入动态链接库引入. 不了解 ...

  7. Python 使用 face_recognition 人脸识别

    Python 使用 face_recognition 人脸识别 官方说明:https://face-recognition.readthedocs.io/en/latest/readme.html 人 ...

  8. 某简单易懂的人脸识别 API 的开发环境搭建和简易教程

    最近接了个人脸识别相关的项目,是基于某个非常简单易懂的人脸识别 API:face_recognition 做的.这个库接口非常傻瓜,很适合新手上手,而且可以研究其源码来学习 dlib 这个拥有更加灵活 ...

  9. Python的开源人脸识别库:离线识别率高达99.38%

    Python的开源人脸识别库:离线识别率高达99.38%   github源码:https://github.com/ageitgey/face_recognition#face-recognitio ...

随机推荐

  1. 微信小程序tabbar不显示2019.04.06

    app.json中pages的第一项必须在tabBar中,且这一项需要在pages的list中(与顺序无关)否则无法显示tabBar app.json中pages数组中第一项(首页),必须在tabBa ...

  2. C++时间函数小结

    time time_t time (time_t* timer); 返回的值表示自1970年1月1日0时0分0秒(这个时间名叫 The Unix Epoch)起,到现在过去的时间,这里C/C++标准中 ...

  3. LeCun自曝使用C语言23年之久,2年前才上手Python,还曾短暂尝试Lua!

    程序员圈子的流行风潮,过几年就怀旧风走一波. 这不,最近Twitter上刮起了一阵编程语言使用历史的风潮. 连图灵奖得主.CNN之父-- Yann LeCun 也参与进来了. 他自曝使用C语言时间最长 ...

  4. linux(centos8):prometheus使用mtail监控错误日志

    一,mtail的用途? mtail :从应用程序日志中提取指标以导出到时间序列数据库或时间序列计算器 它是一个google开发的日志提取工具,用途就是: 实时读取应用程序的日志. 再通过自己编写的脚本 ...

  5. linux(fedora30):安装/配置maven(maven3.6.1)

    一,maven的用途 1,用途 Maven 是一个项目管理工具,主要用于项目构建,依赖管理,项目信息管理 maven可以用来: 帮用户下载jar包, 有依赖包时自动下载所需的依赖包 打包war包或ja ...

  6. 通过命令行上传ipa到appstore

    搞持续集成自动化打包上传到appstore遇到这个问题,记录一下. 其实主要就一条到命令: xcrun altool --upload-app -f xxxx.ipa -u "yanqizh ...

  7. WebSocket的理解

    Websocket相对于无状态的HTTp协议,是在一次成功连接之后,在关闭请求之前,服务器和客户端能顺利进行信息传输.而不用像HTTP那样每一次都要告诉服务器这个请求者是谁(身份鉴别信息). 在HTT ...

  8. Python入门教程完整版(懂中文就能学会)

    前几天给大家分享<从零学会Photoshop经典教程300集>的教程受到了广泛的关注,有人不知道怎么领取,居然称小编为"骗子". 不过小编的内心是强大的,网友虐我千百遍 ...

  9. Ace editor中文文档

    介绍 Ace是一个用JavaScript编写的可嵌入代码编辑器.它与Sublime,Vim和TextMate等本地编辑器的功能和性能相匹配.它可以轻松地嵌入任何网页和JavaScript应用程序中. ...

  10. Generalized Focal Loss: Learning Qualified and Distributed Bounding Boxes for Dense Object Detection

    目录 Generalized Focal Loss: Learning Qualified and Distributed Bounding Boxes for Generalized Focal L ...