用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的socket编程入门教程
Apr 23 Python
Python模块结构与布局操作方法实例分析
Jul 24 Python
python实现公司年会抽奖程序
Jan 22 Python
Python实现的登录验证系统完整案例【基于搭建的MVC框架】
Apr 12 Python
Python Django 页面上展示固定的页码数实现代码
Aug 21 Python
python3 map函数和filter函数详解
Aug 26 Python
Django自关联实现多级联动查询实例
May 19 Python
Python configparser模块常用方法解析
May 22 Python
使用 prometheus python 库编写自定义指标的方法(完整代码)
Jun 29 Python
matplotlib之pyplot模块之标题(title()和suptitle())
Feb 22 Python
详解Django中的FBV和CBV对比分析
Mar 01 Python
关于Python使用turtle库画任意图的问题
Apr 01 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代码(星期六,星期日总和)
2009/11/12 PHP
PHP批量检测并去除文件BOM头代码实例
2014/05/08 PHP
CodeIgniter扩展核心类实例详解
2016/01/20 PHP
PHP实现适用于文件内容操作的分页类
2016/06/15 PHP
Laravel框架Eloquent ORM删除数据操作示例
2019/12/03 PHP
JS延迟加载(setTimeout) JS最后加载
2010/07/15 Javascript
与jquery serializeArray()一起使用的函数,主要来方便提交表单
2011/01/31 Javascript
javascript 模拟坦克大战游戏(html5版)附源码下载
2014/04/08 Javascript
node.js中的url.format方法使用说明
2014/12/10 Javascript
基于JS实现PHP的sprintf函数实例
2015/11/14 Javascript
JavaScript实现斗地主游戏的思路
2016/02/29 Javascript
javascript实现延时显示提示框特效代码
2016/04/27 Javascript
微信小程序 vidao实现视频播放和弹幕的功能
2016/11/02 Javascript
jQuery 禁止表单用户名、密码自动填充功能
2017/10/30 jQuery
在vue组件中使用axios的方法
2018/03/16 Javascript
javascript匿名函数中的'return function()'作用
2018/10/15 Javascript
在Vue项目中使用Typescript的实现
2019/12/19 Javascript
java遇到微信小程序 "支付验证签名失败" 问题解决
2019/12/22 Javascript
vue实现移动端input上传视频、音频
2020/08/18 Javascript
巧用Python装饰器 免去调用父类构造函数的麻烦
2012/05/18 Python
python实现可将字符转换成大写的tcp服务器实例
2015/04/29 Python
python从入门到精通(DAY 1)
2015/12/20 Python
简单谈谈python的反射机制
2016/06/28 Python
Python中is和==的区别详解
2018/11/15 Python
如何通过python实现人脸识别验证
2020/01/17 Python
深入浅析Python 函数注解与匿名函数
2020/02/24 Python
python开发实例之python使用Websocket库开发简单聊天工具实例详解(python+Websocket+JS)
2020/03/18 Python
Pycharm创建文件时自动生成文件头注释(自定义设置作者日期)
2020/11/24 Python
JDBC操作数据库的基本流程是什么
2014/10/28 面试题
广告学专业毕业生自荐信
2014/05/28 职场文书
高等教育学专业自荐书
2014/06/17 职场文书
2015年五四青年节演讲稿
2015/03/18 职场文书
2015年党员岗位承诺书
2015/04/27 职场文书
考研经验交流会策划书
2015/11/02 职场文书
MySQL RC事务隔离的实现
2022/03/31 MySQL
vue ref如何获取子组件属性值
2022/03/31 Vue.js