用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 算法 排序实现快速排序
Jun 05 Python
python的三目运算符和not in运算符使用示例
Mar 03 Python
Python聚类算法之DBSACN实例分析
Nov 20 Python
详解Python 模拟实现生产者消费者模式的实例
Aug 10 Python
wx.CheckBox创建复选框控件并响应鼠标点击事件
Apr 25 Python
Python堆排序原理与实现方法详解
May 11 Python
浅析PHP与Python进行数据交互
May 15 Python
python程序 线程队列queue使用方法解析
Sep 23 Python
Python3.7下安装pyqt5的方法步骤(图文)
May 12 Python
如何利用python检测图片是否包含二维码
Oct 15 Python
python自动打开浏览器下载zip并提取内容写入excel
Jan 04 Python
Python日志打印里logging.getLogger源码分析详解
Jan 17 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
php4的session功能评述(二)
2006/10/09 PHP
浅析php插件 Simple HTML DOM 用DOM方式处理HTML
2013/07/01 PHP
php修改指定文件后缀的方法
2014/09/11 PHP
为你总结一些php系统类函数
2015/10/21 PHP
PHP获取IP地址所在地信息的实例(使用纯真IP数据库qqwry.dat)
2016/11/15 PHP
验证用户是否修改过页面的数据的实现方法
2008/09/26 Javascript
基于jquery的loading效果实现代码
2010/11/05 Javascript
jquery中实现简单的tabs插件功能的代码
2011/03/02 Javascript
jQuery 1.7.2中getAll方法的疑惑分析
2012/05/23 Javascript
早该知道的7个JavaScript技巧
2013/03/27 Javascript
使用jQuery UI的tooltip函数修饰title属性的气泡悬浮框
2013/06/24 Javascript
jQuery操作DOM之获取表单控件的值
2015/01/23 Javascript
javascript实现复选框选中属性
2015/03/25 Javascript
jQuery实现立体式数字滚动条增加效果
2016/12/21 Javascript
利用Plupload.js解决大文件上传问题, 带进度条和背景遮罩层
2017/03/15 Javascript
javascript实现二叉树的代码
2017/06/08 Javascript
js 倒计时(高效率服务器时间同步)
2017/09/12 Javascript
JS中的算法与数据结构之队列(Queue)实例详解
2019/08/20 Javascript
Python编程判断一个正整数是否为素数的方法
2017/04/14 Python
python中文乱码不着急,先看懂字节和字符
2017/12/20 Python
基于tensorflow加载部分层的方法
2018/07/26 Python
自学python的建议和周期预算
2019/01/30 Python
Pandas之Fillna填充缺失数据的方法
2019/06/25 Python
Python字符串对象实现原理详解
2019/07/01 Python
python内存监控工具memory_profiler和guppy的用法详解
2019/07/29 Python
使用K.function()调试keras操作
2020/06/17 Python
浅析Python 抽象工厂模式的优缺点
2020/07/13 Python
在PyCharm中安装PaddlePaddle的方法
2021/02/05 Python
捐款倡议书
2014/04/14 职场文书
2014年信贷员工作总结
2014/11/18 职场文书
民事答辩状范本
2015/05/21 职场文书
信仰纪录片观后感
2015/06/08 职场文书
网络研修随笔感言
2015/11/18 职场文书
幼儿园开学家长寄语(2016春季)
2015/12/03 职场文书
化工生产实习心得体会
2016/01/22 职场文书
Java处理延时任务的常用几种解决方案
2022/06/01 Java/Android