用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实现数通设备tftp备份配置文件示例
Apr 02 Python
Python字符串处理函数简明总结
Apr 13 Python
Python学习小技巧之列表项的推导式与过滤操作
May 20 Python
python文件操作之批量修改文件后缀名的方法
Aug 10 Python
Python+OpenCV图片局部区域像素值处理详解
Jan 23 Python
django的model操作汇整详解
Jul 26 Python
python是否适合网页编程详解
Oct 04 Python
python @propert装饰器使用方法原理解析
Dec 25 Python
python Tensor和Array对比分析
Jan 08 Python
python GUI模拟实现计算器
Jun 22 Python
python 爬取免费简历模板网站的示例
Sep 27 Python
Python采集股票数据并制作可视化柱状图
Apr 04 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
咖啡知识 除了喝咖啡还有那些知识点
2021/03/06 新手入门
php xml文件操作代码(一)
2009/03/20 PHP
php的日期处理函数及uchome的function_coomon中日期处理函数的研究
2011/01/12 PHP
PHP中CURL方法curl_setopt()函数的参数分享
2013/01/19 PHP
PHP5.5和之前的版本empty函数的不同之处
2014/06/13 PHP
ThinkPHP2.x防范XSS跨站攻击的方法
2015/09/25 PHP
php7 新增功能实例总结
2020/05/25 PHP
脚本吧 - 幻宇工作室用到js,超强推荐expand.js
2006/12/23 Javascript
jquery的Theme和Theme Switcher使用小结
2010/09/08 Javascript
Jquery为a标签的href赋值实现代码
2013/05/03 Javascript
js捕获鼠标滚轮事件代码
2013/12/16 Javascript
jQuery中dequeue()方法用法实例
2014/12/29 Javascript
javascript实现的多个层切换效果通用函数实例
2015/07/06 Javascript
JS模拟Dialog弹出浮动框效果代码
2015/10/16 Javascript
浅谈jquery.form.js的ajaxSubmit和ajaxForm的使用
2016/09/09 Javascript
详解nodeJs文件系统(fs)与流(stream)
2018/01/24 NodeJs
浅析vue给不同环境配置不同打包命令
2018/08/17 Javascript
移动端H5页面返回并刷新页面(BFcache)的方法
2018/11/06 Javascript
jQuery+vue.js实现的多选下拉列表功能示例
2019/01/15 jQuery
selenium+java中用js来完成日期的修改
2019/10/31 Javascript
解决vue页面刷新,数据丢失的问题
2020/11/24 Vue.js
javascript实现左右缓动动画函数
2020/11/25 Javascript
[01:13:59]LGD vs Mineski Supermajor 胜者组 BO3 第三场 6.5
2018/06/06 DOTA
python web框架学习笔记
2016/05/03 Python
Python实现对象转换为xml的方法示例
2017/06/08 Python
python logging重复记录日志问题的解决方法
2018/07/12 Python
对tensorflow 的模型保存和调用实例讲解
2018/07/28 Python
Python项目实战之使用Django框架实现支付宝付款功能
2021/02/23 Python
电信营业员自我评价分享
2014/01/17 职场文书
旅游活动总结
2014/08/27 职场文书
2015年高三年级组工作总结
2015/07/21 职场文书
八年级物理教学反思
2016/02/19 职场文书
基于Redis过期事件实现订单超时取消
2021/05/08 Redis
python 实现图与图之间的间距调整subplots_adjust
2021/05/21 Python
python opencv旋转图片的使用方法
2021/06/04 Python
只用Python就可以制作的简单词云
2021/06/07 Python