0, 前言

百度开放了很多AI能力,其中人脸识别就是其中之一。

本文对百度人脸识别AI进行实践检验,看看其使用效果如何。

鉴于是最为基础的实践,基本都是在其接口范例代码修改而来。

百度人脸识别AI网站:

https://console.bce.baidu.com/ai/#/ai/face/overview/index
http://ai.baidu.com/docs#/FACE-API/6f44de4a

首先要进行开发者认证,然后建立APP,再申请API Key  和 Secret Key,再获取access_token。

这些步骤在此略过。

1,人脸检测调用

代码:face_detect.py

运行结果:

b'{"result_num":1,"result":[{"location":{"left":313,"top":109,"width":95,"height":92},"face_probability":0.96016013622284,"rotation_angle":31,"yaw":-12.178998947144,"pitch":6.8234496116638,"roll":30.81263923645,"landmark":[{"x":336,"y":144},{"x":370,"y":165},{"x":346,"y":184},{"x":331,"y":196}],"landmark72":[{"x":305,"y":122},{"x":298,"y":137},{"x":293,"y":153},{"x":290,"y":171},{"x":295,"y":191},{"x":304,"y":209},{"x":318,"y":219},{"x":334,"y":218},{"x":349,"y":210},{"x":362,"y":202},{"x":372,"y":193},{"x":380,"y":182},{"x":387,"y":170},{"x":327,"y":140},{"x":334,"y":140},{"x":339,"y":142},{"x":343,"y":146},{"x":344,"y":153},{"x":339,"y":151},{"x":334,"y":149},{"x":330,"y":144},{"x":336,"y":144},{"x":325,"y":125},{"x":336,"y":124},{"x":344,"y":127},{"x":351,"y":133},{"x":355,"y":141},{"x":348,"y":137},{"x":341,"y":132},{"x":334,"y":127},{"x":363,"y":165},{"x":369,"y":162},{"x":374,"y":163},{"x":378,"y":167},{"x":379,"y":172},{"x":375,"y":172},{"x":371,"y":171},{"x":367,"y":168},{"x":370,"y":165},{"x":372,"y":153},{"x":379,"y":152},{"x":385,"y":154},{"x":390,"y":157},{"x":390,"y":164},{"x":387,"y":160},{"x":383,"y":158},{"x":377,"y":155},{"x":350,"y":157},{"x":344,"y":165},{"x":338,"y":173},{"x":330,"y":178},{"x":336,"y":183},{"x":346,"y":189},{"x":350,"y":190},{"x":353,"y":181},{"x":356,"y":172},{"x":359,"y":163},{"x":346,"y":184},{"x":315,"y":184},{"x":326,"y":190},{"x":334,"y":195},{"x":340,"y":198},{"x":345,"y":201},{"x":337,"y":203},{"x":329,"y":202},{"x":321,"y":195},{"x":324,"y":192},{"x":332,"y":197},{"x":339,"y":200},{"x":338,"y":200},{"x":331,"y":198},{"x":324,"y":192}],"age":24.123235702515,"beauty":69.033996582031,"expression":1,"expression_probablity":0.9958593249321,"faceshape":[{"type":"square","probability":0.0057251220569015},{"type":"triangle","probability":0.0012500827433541},{"type":"oval","probability":0.21884967386723},{"type":"heart","probability":0.62574058771133},{"type":"round","probability":0.14843453466892}],"gender":"female","gender_probability":0.99999916553497,"glasses":0,"glasses_probability":0.99999940395355,"race":"yellow","race_probability":1,"qualities":{"occlusion":{"left_eye":0,"right_eye":0,"nose":0,"mouth":0,"left_cheek":0,"right_cheek":0,"chin":0},"blur":0,"illumination":0,"completeness":0,"type":{"human":0.99739569425583,"cartoon":0.0026042922399938}}}],"log_id":3917056385}'

能够返回完整的轮廓描述信息。

2,人脸比对

运行代码:face_compare.py

b'{"result":[{"index_i":"0","index_j":"1","score":79.925468444824}],"result_num":1,"log_id":4196468489123021}'

文档说明score字段为比对得分,推荐80作为阈值,80分以上可以判断为同一人,此分值对应万分之一误识率。结果不够理想。

换成马云后,辨识度很高:

b'{"result":[{"index_i":"0","index_j":"1","score":91.242309570312}],"result_num":1,"log_id":4218484369123021}'

换成马云和美女,完全不相似了,呵呵。

b'{"result":[{"index_i":"0","index_j":"1","score":5.0950660705566}],"result_num":1,"log_id":4230167824123021}'

3, 人脸注册

代码:face_add.py

将jackma.jpg和jackma2.jpg两张图片注册在id为jackma下。

将timg.jpg和timg1.jpg两张图片注册在id为beauty1下。

4,人脸识别

代码:face_identify.py

将下面2张图片,传入比对。

结果如下:

b'{"result":[{"uid":"jackma","scores":[94.850677490234],"group_id":"test_group_2","user_info":"\\u9a6c\\u4e91"},{"uid":"jackma","scores":[92.1611328125],"group_id":"test_group_2","user_info":"\\u9a6c\\u4e91"}],"result_num":2,"log_id":2863131081123023}'

可见识别效果相当好!

传入此美女的2张新的图片,也是识别不错。

b'{"result":[{"uid":"beauty1","scores":[93.205795288086],"group_id":"test_group_2","user_info":"\\u7f8e\\u59731"},{"uid":"beauty1","scores":[91.085876464844],"group_id":"test_group_2","user_info":"\\u7f8e\\u59731"}],"result_num":2,"log_id":2922953983123023}'

传入未注册过的2张图片试试,

b'{"result":[{"uid":"beauty1","scores":[41.366012573242],"group_id":"test_group_2","user_info":"\\u7f8e\\u59731"},{"uid":"beauty1","scores":[30.834575653076],"group_id":"test_group_2","user_info":"\\u7f8e\\u59731"}],"result_num":2,"log_id":2954086825123100}'

虽然归类为美女1,但置信度已大为降低,远低于80。因此可以认为匹配失败。这个识别结果是OK的。

百度人脸识别AI实践.doc的更多相关文章

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

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

  2. Qt封装百度人脸识别+图像识别

    AI技术的发展在最近几年如火如荼,工资待遇也是水涨船高,应用的前景也是非常广阔,去年火起来的人脸识别,今年全国遍地开花,之前封装了下face++的人脸识别等接口,今年看了下百度的AI,还免费了,效果也 ...

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

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

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

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

  5. uniapp安卓ios百度人脸识别、活体检测、人脸采集APP原生插件

    插件亮点 1 支持安卓平板(横竖屏均可),苹果的iPad.2 颜色图片均可更换. 特别提醒 此插件包含 android 端和 iOS 端,考虑到有些同学只做其中一个端的 app,特意分为 2 个插件, ...

  6. 日常API之C#百度人脸识别

    最近看到一只我家徒儿发来的链接,原来是一堆百度AI的SDK,于是一时兴起就做了一只人脸识别,喵喵喵(●'◡'●) 一.准备工作 首先,当然是下载SDK啦:http://ai.baidu.com/sdk ...

  7. C# 10分钟完成百度人脸识别——入门篇

    嗨咯,小编在此祝大家新年快乐财多多! 今天我们来盘一盘人脸注册.人脸识别等相关操作,这是一个简单入门教程. 话不多说,我们进入主题: 完成人脸识别所需的步骤: 注册百度账号api,创建自己的应用: 创 ...

  8. python 与 百度人脸识别api

    用python来做人脸识别代码量少 思路清晰, 在使用之前我们需要在我们的配置的编译器中通过pip       install baidu-aip  即可 from aip import AipFac ...

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

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

随机推荐

  1. java监控工具jconsole

    jconsole可以监控本地和远程进程 jvisualvm

  2. Java RMI之HelloWorld程序以及相关的安全管理器的知识

    Java RMI 指的是远程方法调用 (Remote Method Invocation).它是一种机制,可以让在某个 Java 虚拟机上的对象调用还有一个 Java 虚拟机中的对象上的方法.可以用此 ...

  3. hdu 5015 233 Matrix (矩阵高速幂)

    233 Matrix Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Tota ...

  4. 算法基础:正整数指定规则排序问题(Golang实现)

    给定字符串内有非常多正整数,要求对这些正整数进行排序.然后返回排序后指定位置的正整数 排序要求:依照每一个正整数的后三位数字组成的整数进行从小到大排序 1)假设不足三位,则依照实际位数组成的整数进行比 ...

  5. spark hadoop 对比 Resilient Distributed Datasets

    hadoop 迭代消耗大 每次迭代启动一个完整的MapReduce作业 spark 首要目标就是避免运算时 过多的网络和磁盘IO开销 Resilient Distributed Datasets ht ...

  6. 控件CListCtr详解

    1.CListCtrl控件 CListCtrl控件在数据库编程中是用得比较多的控件之一,也是Window控件中较难掌握的一个控件.他可以有四显示方式,Report.List.Icon.SmallIco ...

  7. BZOJ_3280_小R的烦恼_最小费用最大流

    BZOJ_3280_小R的烦恼_最小费用最大流 Description 小R最近遇上了大麻烦,他的程序设计挂科了.于是他只好找程设老师求情.善良的程设老师答应不挂他,但是要 求小R帮助他一起解决一个难 ...

  8. 【POJ 3352】 Road Construction

    [题目链接] 点击打开链接 [算法] tarjan算法求边双联通分量 [代码] #include <algorithm> #include <bitset> #include ...

  9. ATX 学习 (三)-atxserver2-android-provider

    服务端代码 代码clone到本地,搭好相应环境(怎么搭的这里就不介绍了,很好搭的哈)一般库首先查看main.py文件,debug模式开始运行 一开始就是没接触过的tornado.ioloop,有点偏底 ...

  10. java 并发编程 Executor框架

    http://blog.csdn.net/chenchaofuck1/article/details/51606224 demo package executor; import java.util. ...