高手问答第 228 期 —— 如何用 Python 从零实现一个人脸识别引擎?

局长 发布于 06/03 15:45
阅读 18K+
收藏 62

人工智能在近些年的发展可以说是有目共睹。伴随着学术发展的突飞猛进,工业界基于人工智能的应用呈现“井喷”之势,一些公司甚至提出了“All in AI”的口号,这其中比较典型的一种应用便是人脸识别

从历史的角度来看,人们对人脸识别的探索也是比较早的,但是,人脸识别从实验室走出来,来到人们的生活中,却只是近些年才发生的事情。深度学习在计算机视觉领域应用后,使得人脸识别的精度逼近乃至超越人工水平。如果将人脸识别发展的进程用函数曲线来拟合的话,Sigmoid 函数或许是一个不错的选择。

人脸识别技术的应用十分广泛,但市面上从工程角度介绍人脸识别实现原理和方法的资料比较稀少。

本期高手问答(2019.6.10-6.16)邀请到了在人脸识别领域有丰富实践经验的王天庆老师从工程实践的角度出发,和大家一起探讨如何使用 Python 实现一款人脸识别引擎。

王天庆,长期从事 AI、数据科学与分布式系统等相关技术工作,对计算机视觉、强化学习、分布式数据处理系统等具有较深入了解,在人脸识别方面有丰富的实践经验,现从事数据科学相关技术领域的预研工作。熟悉大数据平台研发、架构,以及数据的处理和分析。同时也是中国电子学会(计算机应用分会)会员,运营有个人技术微信公众号 cn92geek,热爱技术交流与分享。

各位可以从以下这些主题进行提问:

  • 人脸识别技术的原理
  • 人脸识别技术的应用领域与设计思想
  • 机器学习和深度学习算法
  • 计算机视觉库 OpenCV
  • 图像检索和存储系统架构
  • ……

或有其他相关的问题也可以在此提问。

为了鼓励踊跃提问,@华章  会在问答结束后从提问者中抽取 5 名幸运会员赠予《Python人脸识别:从入门到工程实践》一书。

本书适合的读者对象

-对机器学习、人工智能感兴趣的读者
-对计算机视觉、深度学习感兴趣的读者
-对人脸识别感兴趣的读者
-希望用人脸识别技术完成课程设计的高校学生
-人工智能或人脸识别相关产品经理
-从事软件研发的技术工作者

OSChina 高手问答一贯的风格,不欢迎任何与主题无关的讨论和喷子。

下面欢迎大家向王天庆老师@newchin 积极提问,直接回帖提问即可。

加载中
0
_rm-rf_
_rm-rf_

@newchin 想问一下,具体到双胞胎的识别过程。

_rm-rf_
_rm-rf_
回复 @newchin : 双胞胎识别准确率,业内最高的能达到多少? 同卵的,长的一般人肉眼分辨不出来的那种,您有相关的数据么?
n
newchin
双胞胎识别的过程与普通人脸识别基本无区别,只是在进行训练时,增加一些难例样本,譬如双胞胎图片
0
z
zxp千瞳
@newchin 您好,我想问问一下这个人间识别的数据特征库,是根据自己的需要去训练,还是说掏钱去买别人的训练数据来的方便点?
n
newchin
你指的买是指买数据集?确实有这样从事图片标注的众包服务,训练样本和测试样本的分布情况越接近自然越好,这更符合同分布规律。
0
一条开发狗
一条开发狗

2019年最新总结,从程序员到CTO,从专业走向卓越,大牛分享文档pdf与PPT整理
https://github.com/0voice/from_coder_to_expert

n
newchin
good
0
y
yzonline

@newchin 老师您好,我想请教一下怎么实现更快更准的人脸识别,同时怎么把人脸识别技术应用于移动端?用过一些人脸识别的软件,但是识别速度慢,准确率不高

n
newchin
移动端上进行人脸识别主要的问题是 深度学习网络复杂,参数多,预测时间长 可以考虑选择传统方法,或者换用轻量级的网络如mobilenet系列。 同时要考虑网络不要太复杂,深度不要太深,同时输入数据做好降维处理等
0
威廉黄
威廉黄

@newchin 请问python做人脸识别,性能方面如何?能否做到毫秒级识别出结果?

知行合一1
知行合一1
秒级应该可以 ,毫秒没试过
0
dingdayu
dingdayu

@newchin 老师,你好,新手一枚,具了解,opencv 会从图片提取人脸位置和特征信息,然后通过机器模型比对学习,其实,在看开源项目时,有思考,是否可以跳过模型,因为采用模型的方式,需要比较高的计算资源,是否可以通过特征信息直接比对,然后得出匹配率;不是很能理解这里机器模型的必要性。

n
newchin
你所说的“特征信息直接对比”特征从何而来呢?其实人脸识别的关键也就是如何去提取特征,这是一个降维过程,如果网络不去提取特征,直接对比会丧失主次,喧宾夺主
0
打杂uu
打杂uu

@newchin 人脸识别的数据标准化和归一化 ,是怎么实现的?为啥要做归一化处理?

n
newchin
通常分为数值归一化和几何归一化。几何归一化是人脸摆正,数值归一化就是映射到0.1区间。这可以加快模型训练,提高泛化能力
0
打杂uu
打杂uu

@newchin  老师现在的著名的人脸识别的测试集数据哪个比较好用? 训练模型的电脑配置最低要求是啥?

n
newchin
例如lfw等数据集比较常用,没有什么最低配置的说法。内存能够把模型参数和数据集装进去,在训练过程中不oom就可以了,cpu菜一点顶多就是慢,也不会报错,当然有gpu就更好了。
0
静静222
静静222
请问5G和人脸识别结合起来会有什么火花
静静222
静静222
谢谢 幸苦了!
n
newchin
5G重点解决的问题其实是物联网,我觉得这会让人脸识别移动到云计算或者边缘计算上去,而5G作为一种通信方式获取结果。这会极大降低物联网终端设备的硬件投入成本,且效果也会更好。
0
R
RoadNorth
老师你好,如何在Trust zone中使用FaceID,您有什么方案吗?当前有没有适合的开源项目?
n
newchin
你指的是ARM的那种体系结构吗?我对ARM上的TrustZone不了解哈
返回顶部
顶部