用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编写web API的教程
Apr 30 Python
Python 多线程抓取图片效率对比
Feb 27 Python
Python实现视频下载功能
Mar 14 Python
Python基于回溯法子集树模板解决最佳作业调度问题示例
Sep 08 Python
python实现简单点对点(p2p)聊天
Sep 13 Python
安装python时MySQLdb报错的问题描述及解决方法
Mar 20 Python
解决python大批量读写.doc文件的问题
May 08 Python
Flask实现跨域请求的处理方法
Sep 27 Python
numpy 对矩阵中Nan的处理:采用平均值的方法
Oct 30 Python
python binascii 进制转换实例
Jun 12 Python
python dumps和loads区别详解
Feb 04 Python
Python抓包程序mitmproxy安装和使用过程图解
Mar 02 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
一个取得文件扩展名的函数
2006/10/09 PHP
PHP+fiddler抓包采集微信文章阅读数点赞数的思路详解
2019/12/20 PHP
js event事件的传递与冒泡处理
2009/12/06 Javascript
jQuery 锚点跳转滚动条平滑滚动一句话代码
2010/04/30 Javascript
Javascript玩转继承(三)
2014/05/08 Javascript
jQuery实现带有动画效果的回到顶部和底部代码
2015/11/04 Javascript
莱鸟介绍window.print()方法
2016/01/06 Javascript
探析浏览器执行JavaScript脚本加载与代码执行顺序
2016/01/12 Javascript
Ionic如何实现下拉刷新与上拉加载功能
2016/06/03 Javascript
React快速入门教程
2017/01/17 Javascript
使用Xcache缓存器加速PHP网站的配置方法
2017/04/22 Javascript
Javascript继承机制详解
2017/05/30 Javascript
Ionic项目中Native Camera的使用方法
2017/06/07 Javascript
JavaScript实现移动端页面按手机屏幕分辨率自动缩放的最强代码
2017/08/18 Javascript
vue编译打包本地查看index文件的方法
2018/02/23 Javascript
jQuery实现每隔一段时间自动更换样式的方法分析
2018/05/03 jQuery
Vue 样式绑定的实现方法
2019/01/15 Javascript
JS如何实现手机端输入验证码效果
2020/05/13 Javascript
优化Python代码使其加快作用域内的查找
2015/03/30 Python
python基础之包的导入和__init__.py的介绍
2018/01/08 Python
解决pycharm下os.system执行命令返回有中文乱码的问题
2019/07/07 Python
opencv设置采集视频分辨率方式
2019/12/10 Python
python实现简单的五子棋游戏
2020/09/01 Python
利用css3如何设置没有上下边的列表间隔线
2017/07/03 HTML / CSS
美国特价机票专家:Airfarewatchdog
2018/01/24 全球购物
个人作风剖析材料
2014/02/02 职场文书
事业单位绩效考核实施方案
2014/03/27 职场文书
电子商务助理求职自荐信
2014/04/10 职场文书
张家口市高新区党工委群众路线教育实践活动整改方案
2014/10/25 职场文书
2014年技术员工作总结
2014/11/18 职场文书
六一领导慰问欢迎词
2015/01/26 职场文书
教师工作能力自我评价
2015/03/04 职场文书
大学生自荐信范文
2015/03/05 职场文书
2015年度个人思想工作总结
2015/04/08 职场文书
入党积极分子半年考察意见
2015/06/02 职场文书
Mysql 如何实现多张无关联表查询数据并分页
2021/06/05 MySQL