用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的Flask框架实现视频的流媒体传输
Mar 31 Python
理解Python中函数的参数
Apr 27 Python
使用Python从零开始撸一个区块链
Mar 14 Python
对python打乱数据集中X,y标签对的方法详解
Dec 14 Python
python 读取鼠标点击坐标的实例
Dec 29 Python
详解Python3中ceil()函数用法
Feb 19 Python
Python shelve模块实现解析
Aug 28 Python
用python解压分析jar包实例
Jan 16 Python
Python yield生成器和return对比代码实例
Apr 20 Python
python如何变换环境
Jul 21 Python
PyCharm+PyQt5+QtDesigner配置详解
Aug 12 Python
如何在pycharm中快捷安装pip命令(如pygame)
May 31 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 5.4 你必须要知道的
2013/08/07 PHP
解决laravel-admin 自己新建页面里 js 需要刷新一次的问题
2019/10/03 PHP
Laravel 实现Eloquent模型分组查询并返回每个分组的数量 groupBy()
2019/10/23 PHP
JavaScript实现网页上的浮动广告的简单方法
2013/06/14 Javascript
JavaScript网页定位详解
2014/01/13 Javascript
node.js入门教程
2014/06/01 Javascript
JS实现很酷的水波文字特效实例
2015/02/26 Javascript
javascript事件委托的方式绑定详解
2015/06/10 Javascript
javascript图片滑动效果实现
2021/01/28 Javascript
node.js连接mongoDB数据库 快速搭建自己的web服务
2016/04/17 Javascript
onclick和onblur冲突问题的快速解决方法
2016/04/28 Javascript
JavaScript中实现键值对应的字典与哈希表结构的示例
2016/06/12 Javascript
jquery精度计算代码 jquery指定精确小数位
2017/02/06 Javascript
JavaScript面向对象精要(上部)
2017/09/12 Javascript
ElementUI radio组件选中小改造
2019/08/12 Javascript
vue prop属性传值与传引用示例
2019/11/13 Javascript
[01:34]传奇从这开始 2016国际邀请赛中国区预选赛震撼开启
2016/06/26 DOTA
Python2.X/Python3.X中urllib库区别讲解
2017/12/19 Python
在Python中通过getattr获取对象引用的方法
2019/01/21 Python
Python3+Pycharm+PyQt5环境搭建步骤图文详解
2019/05/29 Python
Python 3.8中实现functools.cached_property功能
2019/05/29 Python
python实现图像检索的三种(直方图/OpenCV/哈希法)
2019/08/08 Python
python中几种自动微分库解析
2019/08/29 Python
使用python实现离散时间傅里叶变换的方法
2019/09/02 Python
在Python中画图(基于Jupyter notebook的魔法函数)
2019/10/28 Python
python使用梯度下降算法实现一个多线性回归
2020/03/24 Python
python异步Web框架sanic的实现
2020/04/27 Python
在django中form的label和verbose name的区别说明
2020/05/20 Python
贝玲妃英国官网:Benefit英国
2018/02/03 全球购物
英国探险旅游专家:Explore
2018/12/20 全球购物
建筑行业的大学生自我评价
2013/12/08 职场文书
小学生运动会通讯稿
2014/09/23 职场文书
社区综治工作汇报
2014/10/27 职场文书
离婚协议书范本
2015/01/26 职场文书
党员证明模板
2015/06/19 职场文书
分析Python list操作为什么会错误
2021/11/17 Python