只是因为在人群中多看了你一眼
再也没能忘记你容颜。
如果一个人类做到了这点,他/她可能爱上了你。
如果一个Python/Java/C++/Linux…开发者做到了这点,他/她可能只是调用了一个全面深度化的视觉服务API而已。
让我们花3分钟来弄清,经过深度学习的飞速发展,深度化后的视觉技术是怎样在落地应用中取得突破化进展,以超越人类的识别精度来识别人脸的。
最基础的人脸识别算法系统是由以下几个Step组成的:
Step1:人脸检测
首先我不能把插座认成人脸。
实现这一步骤的方法很多,大家比较熟知的大概是基于方向梯度直方图(Histogram of Oriented Gradient, HOG)、LBP(Local Binary Pattern,局部二值模式)、或者Haar-like特征提取的物体检测架构。
Step 2. 定位特征:
然后,在检测出的人脸上标记基本特征点。举例一种面部特征点估计(face landmark estimation)的算法,比如由 Vahid Kazemi博士在三年前发明,在任何一张脸上定位68 个普遍存在的特定点。
Step 3.进行人脸识别与比对
接下来是最重要的部分,在定位的特征中,挑选出有用的测量值,来识别或者区分和其它脸的区别。
有用的测量值包括哪些呢?对于人类来说有用的,比如眼睛的颜色、脸上的褶子对机器竟然却没有意义!这也是为什么几年前的人脸识别系统会把插座认成人脸。
而现在,经过深度学习的机器会自己找出要收集的测量值,它比人类更清楚脸上的哪些测量值是重要的。
为此,人类可以训练一个深度卷积神经网络,让机器不断为两张相同、一张略有不同的人脸生成测量值,使得最终结果为:相同的脸测量值无限相似,不同的脸测量值不同。通过无数次的训练,百千万次重复步骤,神经网络就学习到了如何为人脸生成(比如100个)靠谱的测量值!