用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. 发布MeteoInfo 1.2.3

    提升了对GeoTiff格式数据的读取能力(多个tiles).当然还有MeteoInfoLab功能的提升.下载地址:http://yun.baidu.com/share/link?shareid=669 ...

  2. echo输出彩色文字

    开启转义功能 echo -e表示开启转义功能,比如: 彩色文字语法 echo -e "\e[前景;背景;特效m""hello""\e[0m" ...

  3. 在VC6.0下运行C语言程序,以及编程入门必备的常识类小知识!

    今天给大家分享在VC6.0环境下编写C语言程序的基本步骤,为初学者打开学习C语言的第一道门.具体步骤如下(如果需要软件资源,可以留言): 1)新建工作区 依次点击 文件--新建--工作区 或是Ctrl ...

  4. 【学习笔记】陀螺 Treap

    以下来自一堆人从食堂走回机房时的 yy \(\Huge{强烈谴责\ \mathrm{s\color{red}{kyh}}\ 看博客不留评论的行为}\) 听说 longdie 要爆砍 FHQ 无旋 Tr ...

  5. ImageMagick:用identify得到图片的平均颜色(基本颜色/主色调)

    一,平均颜色的用途: 很多app在流式的展示图片时, 在图片没加载出来之前, 不是使用统一的背景图, 而是先显示一个纯色的背景, 而背景色和图片的颜色非常接近, 这样给用户的体验会更好. 我们这里演示 ...

  6. lumen中间件 Middleware

    app/http 下新建 TestMiddleware.php <?php namespace App\Http\Middleware; use Closure; class TestMiddl ...

  7. vue知识点10

    今天彻底掌握了如下: 1.解决回调地狱三种方案        callback async await Promise 2.中间件(middleware)        express.static  ...

  8. java: 非法字符: '\ufeff'

    错误问题记录: Error:(1, 1) java: 非法字符: '\ufeff' Error:(1, 1) 错误: 需要class, interface或enum报错 问题发生时因为编码问题导致,如 ...

  9. RocketMQ 4.7.1 环境搭建、集群、MQ整合SpringBoot

    导读 之前学过ActiveMQ但是并发量不是很大点我直达,所以又学阿里开源的RocketMQ,据说队列可以堆积亿级别.下面是网上找的消息队列对比图,仅供参考 部署 官网 点我直达 前置条件 推荐使用6 ...

  10. Scala编程 笔记

    date: 2019-08-07 11:15:00 updated: 2019-11-25 20:00:00 Scala编程 笔记 1. makeRDD 和 parallelize 生成 RDD de ...