python 与 百度人脸识别api
用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的更多相关文章
- 百度人脸识别api及face++人脸识别api测试(python)
一.百度人脸识别服务 1.官方网址:http://apistore.baidu.com/apiworks/servicedetail/464.html 2.提供的接口包括: 2.1 多人脸比对:请求多 ...
- 转《trackingjs+websocket+百度人脸识别API,实现人脸签到》流程
先用websocket与后台建立通讯:用trackingjs在页面调用电脑摄像头,监听人脸,发现有人脸进入屏幕了,就把图片转成base64字符串,通过websocket发送到后端:后端拿到图片,调用百 ...
- trackingjs+websocket+百度人脸识别API,实现人脸签到
在公司做了个年会的签到.抽奖系统.用java web做的,用公司的办公app扫二维码码即可签到,扫完码就在大屏幕上显示这个人的照片.之后领导让我改得高大上一点,用人脸识别来签到,就把扫二维码的步骤改成 ...
- 免费人脸识别APi
今天对应一些免费的人脸识别的api 做了一下简单的对比,觉得百度开发出来的人脸识别接口还是最符合的我的要求,简单易用,容易上手. 据说百度的一些门禁也使用上了人脸识别的功能了,功能很强大,而且能识别出 ...
- 基于Emgu CV+百度人脸识别,实现视频动态 人脸抓取与识别
背景 目前AI 处于风口浪尖,作为 公司的CTO,也作为自己的技术专研,开始了AI之旅,在朋友圈中也咨询 一些大牛对于AI 机器学习框架的看法,目前自己的研究方向主要开源的 AI 库,如:Emgu C ...
- C# 30分钟完成百度人脸识别——进阶篇(文末附源码)
距离上次入门篇时隔两个月才出这进阶篇,小编惭愧,对不住关注我的卡哇伊的小伙伴们,为此小编用这篇博来谢罪. 前面的准备工作我就不说了,注册百度账号api,创建web网站项目,引入动态链接库引入. 不了解 ...
- Python 使用 face_recognition 人脸识别
Python 使用 face_recognition 人脸识别 官方说明:https://face-recognition.readthedocs.io/en/latest/readme.html 人 ...
- 某简单易懂的人脸识别 API 的开发环境搭建和简易教程
最近接了个人脸识别相关的项目,是基于某个非常简单易懂的人脸识别 API:face_recognition 做的.这个库接口非常傻瓜,很适合新手上手,而且可以研究其源码来学习 dlib 这个拥有更加灵活 ...
- Python的开源人脸识别库:离线识别率高达99.38%
Python的开源人脸识别库:离线识别率高达99.38% github源码:https://github.com/ageitgey/face_recognition#face-recognitio ...
随机推荐
- day53 Pyhton 前端04
内容回顾: 盒子: 内边距:padding,解决内部矛盾,内边距的增加整个盒子也会增加 外边距:margin,解决外部矛盾,当来盒子都有外边距的时候,取两者最大值 边框:border border-c ...
- python BeautifulSoup的使用方法
BeautifulSoup的使用 我们学习了正则表达式的相关用法,但是一旦正则写的有问题,可能得到的就不是我们想要的结果了,而且对于一个网页来说,都有一定的特殊的结构和层级关系,而且很多标签都有id或 ...
- 【暑假集训】HZOI2019 水站 多种解法
题目内容 已知有一个\(n\)层的水站: \(W_i\)表示未操作之前第\(i\)层的已有水量: \(L_i\)表示第\(i\)个水站能够维持或者储存的水的重量: 表示在第\(P_i\)层进行减压放水 ...
- P2340 [USACO03FALL]Cow Exhibition G题解
新的奇巧淫技 原题传送门 众所周知,模拟退火是一种很强大的算法,DP很强,但我模拟退火也不虚,很多题你如果不会的话基本可以拿来水很多分.比如这道题,我用模拟退火可以轻松水过(虽然我是足足交了两页才过) ...
- .NET Core+MongoDB集群搭建与实战
目录 安装 MongoDB apt 直接安装(方法1) apt 仓库安装(方法2) 方法1.2启动 MongoDB 通过二进制包安装(方法3) 安装依赖 deb 安装 MongoDB tgz 安装 M ...
- zabbix:以主动模式添加一台受监控主机 (zabbix5.0)
一,zabbix被动模式和主动模式的区别? zabbix-agent默认的模式是被动模式, zabbix agent被动地接受zabbix server发来的指令, 获取数据后再返回给zabbix s ...
- Martyr2项目实现——Number部分问题求解(3) Prime Factorization
Martyr2项目实现--Number部分问题求解(3) Prime Factorization 质因子分解 问题描述: Prime Factorization – Have the user ent ...
- fiddler 实用小技巧
1.添加查看响应时间
- 解决Android RadioGroup跑到输入法上面
Android开发过程中,发现一个小问题,当我们点击屏幕下面的输入框时,我们的RadioGroup会跑到输入法的上面去,如下图 两种解决方法 1.Manifest.xml文件activity标签中添加 ...
- 基于ECS搭建云上博客
场景介绍 本文为您介绍如何基于ECS搭建云上博客. 背景知识 本场景主要涉及以下云产品和服务: 云服务器ECS 云服务器(Elastic Compute Service,简称ECS)是阿里云提供的性能 ...