用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读取与写入csv格式文件的示例代码
Dec 16 Python
Python实现获取nginx服务器ip及流量统计信息功能示例
May 18 Python
Python实现的绘制三维双螺旋线图形功能示例
Jun 23 Python
Python引用计数操作示例
Aug 23 Python
pyqt远程批量执行Linux命令程序的方法
Feb 14 Python
详解python实现小波变换的一个简单例子
Jul 18 Python
python模块常用用法实例详解
Oct 17 Python
基于Python实现签到脚本过程解析
Oct 25 Python
Python基础之变量基本用法与进阶详解
Jan 03 Python
浅谈Python里面None True False之间的区别
Jul 09 Python
Python常驻任务实现接收外界参数代码解析
Jul 21 Python
Python如何使用logging为Flask增加logid
Mar 30 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
PHP通用分页类page.php[仿google分页]
2008/08/31 PHP
yii 2.0中表单小部件的使用方法示例
2017/05/23 PHP
php注册审核重点解析(数据访问)
2017/05/23 PHP
js 获取浏览器版本以此来调整CSS的样式
2014/06/03 Javascript
DOM基础教程之使用DOM + Css
2015/01/20 Javascript
js树插件zTree获取所有选中节点数据的方法
2015/01/28 Javascript
JavaScript获取表格(table)当前行的值、删除行、增加行
2015/07/03 Javascript
js游戏人物上下左右跑步效果代码分享
2015/08/28 Javascript
jQuery联动日历的实例解析
2016/12/02 Javascript
js实现网页定位导航功能
2017/03/07 Javascript
vue的mixins属性详解
2018/03/14 Javascript
vue实现自定义多选与单选的答题功能
2018/07/05 Javascript
layui结合form,table的全选、反选v1.0示例讲解
2018/08/15 Javascript
vue 使用html2canvas将DOM转化为图片的方法
2018/09/11 Javascript
ES6知识点整理之对象解构赋值应用示例
2019/04/17 Javascript
读懂CommonJS的模块加载
2019/04/19 Javascript
js常用正则表达式集锦
2019/05/17 Javascript
八种Vue组件间通讯方式合集(推荐)
2020/08/18 Javascript
浅谈vue使用axios的回调函数中this不指向vue实例,为undefined
2020/09/21 Javascript
[01:09:01]完美世界DOTA2联赛循环赛 Magma vs PXG BO2第一场 10.28
2020/10/28 DOTA
python高并发异步服务器核心库forkcore使用方法
2013/11/26 Python
Python 时间操作例子和时间格式化参数小结
2014/04/24 Python
python实现识别相似图片小结
2016/02/22 Python
python实现学生管理系统
2018/01/11 Python
django与vue的完美结合_实现前后端的分离开发之后在整合的方法
2019/08/12 Python
Django通过dwebsocket实现websocket的例子
2019/11/15 Python
Python并发concurrent.futures和asyncio实例
2020/05/04 Python
Python bisect模块原理及常见实例
2020/06/17 Python
Python WebSocket长连接心跳与短连接的示例
2020/11/24 Python
美体小铺奥地利官方网站:The Body Shop奥地利
2019/04/11 全球购物
一个J2EE项目团队的主要人员组成是什么
2012/06/04 面试题
最新自我评价范文
2013/11/16 职场文书
介绍信的格式
2015/01/30 职场文书
教师求职自荐信范文
2015/03/04 职场文书
2015年新农村建设指导员工作总结
2015/07/24 职场文书
为什么不建议在go项目中使用init()
2021/04/12 Golang