深度学习与人脸识别

IDL内部分享的人脸识别技术。

深度学习是机器学习研究中的一个新的领域,其动机在于建立、模拟人脑进行分析学习的神经网络,它模仿人脑的机制来解释数据。

卷积神经网络(CNN)

局部连接

传统的神经网络是全连接,即一层的神经元与上一层的所有神经元都建立连接,这样导致参数非常多,计算量非常大,而CNN是局部连接,一层的神经元只与上一层的部分神经元建立连接,这样可以减少参数和计算量。

权值共享

给一张输入图片,用一个filter去扫时,filter里面的数就叫权重。用该filter对整个图片进行了某个特征的扫描,例如Edge detection,这个过程就是权值共享,因为权重不变。

人脸识别

多个CNN加其他层,遍历而成的人脸识别处理结构:

层提取到的信息的演进:

人脸检测

传统算法

识别:滑动窗口+分类器

用一个固定大小的窗口去滑动扫描图像,并通过分类器去分辨是否是人脸。有时候人脸在图片中过小,所以还要通过放大图片来扫描。

训练:特征+Adaboost

传统特征:LBP/HOG/Harr

图片原始的RGB信息,维度太高,计算量过大,且不具备鲁棒性,即光照和旋转,对RGB信息影响非常大。

利用LBP得到二进制值,再转换成十进制:

效果图:

Adaboost

由于移动设备对计算速度有一定要求,所以用多个弱分类器加权叠加来完成一个强分类器,从而保证速度。

深度学习

特征的选取是比较复杂的,可能需要大量的统计学和生物学知识积累,而深度学习不需要选择特征,这是其很大优势,另外通过GPU代替CPU等方式,可以得到一个更好的效果。

关键点检测、跟踪

传统算法

Cascade regression/ESR/SDM

传统算法步骤:

  • 根据人脸检测的框位置,先初始化初始脸部轮廓位置;
  • 进行上一步位置和图形特征检测下一步位置(一般是迭代残差);
  • 进行迭代,最终得到相对准确的轮廓位置。

深度学习

深度学习算法步骤:

  • 对图像进行轮廓定位态校正;
  • 全局粗定位;
  • 局部精细定位。

典型应用:

人脸语义分割

人脸语义分割:自定确定人脸每个pixel的所属类别(哪个器官)。

基于CDNN训练一个直接model输入图像到输出概率map的模型,然后将图像输入,即可得出pixel-level的分类概率输出。

典型应用:

属性识别

人脸属性识别:自动估计人脸的属性,比如性别、年龄、表情、人种、是否佩戴眼镜、美丑等。

传统算法

步骤:

  • 基于特征点定位结果进行几何矫正;
  • 手工特征提取(HOG\LBP\GABOR)
  • 分类器/回归(SVM\BOOSTRING)

深度学习

基于CDNN,直接在一个网络中学习并识别出多个属性。

典型应用:

活体检测

活体检测:确定识别的物体是活物,而非死物。

人脸识别

人脸识别:根据人脸的表观特征自动识别人的身份。

深度学习

通过深度学习来进学习特征,让同一个人在特征空间中距离非常近,而不同人则非常远,且必须具备不受光照等影响的鲁棒性。

基本步骤

  • 人脸检测;
  • 关键点定位;
  • 人脸表示。

人脸切割

将人脸切割成小块,每块去学习Model。

特征融合

将每一块学习到的特征,进行特征融合。

训练过程

  • 训练分类;
  • 对于两张照片的比较,用pairwise模式进行训练,得到两张图的特征,并计算特征间的距离,小于阈值时,则判断为同一个人;
  • 对于三张照片的比较,用triplet模式进行训练,得到三张图之间的关系,而不是关注于距离值。

 

你可能感兴趣的:(人脸识别,深度学习,人脸识别,deeplearning,face,recognition)