用Python识别人脸,人种等各种信息


Posted in Python onJuly 15, 2019

最近几天了解了一下人脸识别,应用场景可以是图片标注,商品图和广告图中有没有模特,有几个模特,模特的性别,年龄,颜值,表情等数据的挖掘。

用Python识别人脸,人种等各种信息

基础的识别用dlib来实现,dlib是一个机器学习的包,主要用C++写的,但是也有Python版本。其中最流行的一个功能是Facial Landmark Detection, 配备已经训练好的轮廓预测模型,叫shape_predictor_68_face_landmarks.dat, 从名字就可以看出,它可以检测出面部的68个关键点,包括五官和外轮廓等。

安装dlib会花比较长时间,因为依赖包有十个左右,装完了dlib别忘了下载predictor数据文件。

wget

http://dlib.net/files/shape_predictor_68_face_landmarks.dat.bz2

pip install dlib

我在Adrian大神的代码做了一点修改和封装,先定位脸部的方框,box_face画出方框,在此基础上可选调用tag_face_number来标注脸的标号或者draw_face_landmarks来标注特征点,也可以直接调用count_faces来统计脸的个数,mark_all_faces给所有的脸把所有信息都加上。

用Python识别人脸,人种等各种信息

拿九张模特图来试试,半脸的不行,侧的太厉害不行,其它都能识别出来。

用Python识别人脸,人种等各种信息

一张图多张脸的也毫无压力

用Python识别人脸,人种等各种信息

接下来性别和年龄就不好做了,必须通过机器训练数据,还没时间摸透,又想尽快拿到这些标注,于是先走捷径去调face++的API, 注册个账号申请key和secret即可,免费账户有qps限制,且一张照片内最多支持五人识别。

官方的代码示例极差,而且还是只支持Python2的, 收先要改写一下。Attribute中有很多数据可以拿,你想的到的想不到的都有,甚至包括颜值,人种等。颜值还算靠谱,范冰冰90分,凤姐49分,人种就难说了,欧美模特分分钟当成Asian.

用Python识别人脸,人种等各种信息

用Python识别人脸,人种等各种信息

机器说: 性别女,表情偏悲伤,颜值89分,28岁,亚洲人,基本没笑

{'image_id': 'wPGIyROqltTdjvRX3zopbg==', 'request_id': '1519574701,3113e37e-b000-4440-af08-871831cf1ba8', 'time_used': 355, 'faces': [{'attributes': {'emotion': {'sadness': 93.448, 'neutral': 4.114, 'disgust': 0.002, 'anger': 0.002, 'surprise': 2.414, 'fear': 0.002, 'happiness': 0.018}, 'beauty': {'female_score': 89.348, 'male_score': 88.925}, 'gender': {'value': 'Female'}, 'age': {'value': 28}, 'headpose': {'yaw_angle': 17.526142, 'pitch_angle': 11.047059, 'roll_angle': 19.623343}, 'smile': {'threshold': 30.1, 'value': 28.532}, 'ethnicity': {'value': 'Asian'}}, 'face_rectangle': {'width': 202, 'top': 103, 'left': 69, 'height': 202}, 'face_token': '7be6a72f497ed16cc7883424584052c5'}]}

用Python识别人脸,人种等各种信息

机器说: 性别男,表情很快乐,颜值52分,61岁,黑人,大笑

{'image_id': 'YZ5wzeVDiAgCN9yIFX44Gw==', 'request_id': '1519574926,31f6d4d8-bdf6-4863-b29a-cf61ff04ffbe', 'time_used': 323, 'faces': [{'attributes': {'emotion': {'sadness': 0.0, 'neutral': 0.0, 'disgust': 0.0, 'anger': 0.0, 'surprise': 0.0, 'fear': 0.0, 'happiness': 99.999}, 'beauty': {'female_score': 62.678, 'male_score': 51.847}, 'gender': {'value': 'Male'}, 'age': {'value': 61}, 'headpose': {'yaw_angle': 2.6326802, 'pitch_angle': 11.909821, 'roll_angle': -11.707241}, 'smile': {'threshold': 30.1, 'value': 99.081}, 'ethnicity': {'value': 'Black'}}, 'face_rectangle': {'width': 208, 'top': 88, 'left': 120, 'height': 208}, 'face_token': '19067cf0f5358312c109a0e70bab62ae'}]}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python配置文件解析模块ConfigParser使用实例
Apr 13 Python
Python数据可视化编程通过Matplotlib创建散点图代码示例
Dec 09 Python
Python发送http请求解析返回json的实例
Mar 26 Python
Python常用的json标准库
Feb 19 Python
Python数据类型之Number数字操作实例详解
May 08 Python
Python 一行代码能实现丧心病狂的功能
Jan 18 Python
python使用列表的最佳方案
Aug 12 Python
详解python tkinter 图片插入问题
Sep 03 Python
python+appium+yaml移动端自动化测试框架实现详解
Nov 24 Python
Python从MySQL数据库中面抽取试题,生成试卷
Jan 14 Python
python opencv常用图形绘制方法(线段、矩形、圆形、椭圆、文本)
Apr 12 Python
Pytorch中Softmax和LogSoftmax的使用详解
Jun 05 Python
django中账号密码验证登陆功能的实现方法
Jul 15 #Python
python tkinter窗口最大化的实现
Jul 15 #Python
在pycharm下设置自己的个性模版方法
Jul 15 #Python
Pycharm新建模板默认添加个人信息的实例
Jul 15 #Python
在python中将list分段并保存为array类型的方法
Jul 15 #Python
详解Python对JSON中的特殊类型进行Encoder
Jul 15 #Python
linux中如何使用python3获取ip地址
Jul 15 #Python
You might like
第十五节--Zend引擎的发展
2006/11/16 PHP
PHP 生成的XML以FLASH获取为乱码终极解决
2009/08/07 PHP
ThinkPHP分页类使用详解
2014/03/05 PHP
PHP动态生成javascript文件的2个例子
2014/04/11 PHP
php sybase_fetch_array使用方法
2014/04/15 PHP
PHP添加图片水印、压缩、剪切的封装类
2015/08/17 PHP
php生成毫秒时间戳的实例讲解
2017/09/22 PHP
php工具型代码之印章抠图
2018/07/18 PHP
Laravel5.1框架注册中间件的三种场景详解
2019/07/09 PHP
laravel 实现划分admin和home 模块分组
2019/10/15 PHP
Jquery 常用方法经典总结
2010/01/28 Javascript
JQuery中的ready函数冲突的解决方法
2010/05/17 Javascript
JavaScript中number转换成string介绍
2014/12/31 Javascript
js模仿php中strtotime()与date()函数实现方法
2015/08/11 Javascript
JavaScript中数组的合并以及排序实现示例
2015/10/24 Javascript
快速解决js开发下拉框中blur与click冲突
2016/10/10 Javascript
BootStrap table使用方法分析
2016/11/08 Javascript
基于Three.js插件制作360度全景图
2016/11/29 Javascript
基于angular实现三级联动的生日插件
2017/05/12 Javascript
angular动态删除ng-repaeat添加的dom节点的方法
2017/07/20 Javascript
微信小程序 功能函数小结(手机号验证*、密码验证*、获取验证码*)
2017/12/08 Javascript
vue里input根据value改变背景色的实例
2018/09/29 Javascript
javascript用defineProperty实现简单的双向绑定方法
2020/04/03 Javascript
[02:44]2014DOTA2 国际邀请赛中国区预选赛 大神红毯秀
2014/05/25 DOTA
Python模块WSGI使用详解
2018/02/02 Python
Python Pandas 箱线图的实现
2019/07/23 Python
tensorflow的计算图总结
2020/01/12 Python
使用jupyter Nodebook查看函数或方法的参数以及使用情况
2020/04/14 Python
Strawberrynet草莓网新加坡站:护肤、彩妆、香水及美发产品
2018/08/31 全球购物
文科教师毕业的自我评价
2014/01/16 职场文书
办公室主任竞聘演讲稿
2014/05/15 职场文书
设计专业自荐信
2014/06/19 职场文书
领导班子专题民主生活会情况想汇报
2014/09/30 职场文书
自愿离婚协议书范本
2015/01/26 职场文书
Vue中foreach数组与js中遍历数组的写法说明
2021/06/05 Vue.js
html中显示特殊符号(附带特殊字符对应表)
2021/06/21 HTML / CSS