人脸算法

人脸检测

人脸检测的目标是找出图像中所有的人脸对应的位置,算法的输出是人脸外接矩形在图像中的座标,可能还包括姿态如倾斜角度等信息。

传统方法

早期的人脸检测算法使用了模板匹配技术,即用一个人脸模板图像与被检测图像中的各个位置进行匹配,确定这个位置处是否有人脸,一般是使用mlp、 svm、adaboost等算法:根本思想在于通过多个简单的弱分类器(前面的强分类器设计很简单,包含的弱分类器很少,可以快速排除掉大量的不是人脸的窗口,)构建出准确率很高的强分类器。用到的一些特征有pca,herr like等。

深度学习方法

  • Cascade CNN:构建多尺度的人脸图像金字塔,12-net将密集的扫描这整幅图像(不同的尺寸),快速的剔除掉超过90%的检测窗口。采用非极大值抑制(NMS)合并高度重叠的检测窗口,保留下来的候选检测窗口将会被归一化到24x24作为24-net的输入。第一级还是基于密集滑动窗口的方式进行窗口过滤。
  • MTCNN:将人脸区域检测和人脸关键点检测放在了一起
    三个部分:PNet(用来生成候选框)、RNet(去除大量的非人脸框和非极大值抑制)和ONet(输出框和关键点)人脸分类,边框回归,关键点定位
  • Face-RCNN
  • PyramidBox

人脸关键点提取

传统方法

  • ASM:主动形状模型。为每个关键点构建局部特征,目的是在每次迭代搜索过程中每个关键点可以寻找新的位置。对其人脸,在对齐后的各个点附近搜索,匹配每个局部关键点
  • AAM:形状加纹理特征

深度学习方法

  • DCNN:级联回归方法。作者通过精心设计拥有三个层级的级联卷积经网络,每层不断的去优化。
  • MTCNN

人脸图像分割

传统方法

  • 基于阈值的分割方法:基于图像的灰度特征来计算一个或多个灰度阈值,并将图像中每个像素的灰度值与阈值作比较,最后将像素根据比较结果分到合适的类别中。难点就是阈值选择上,单阈值,多阈值。
  • 基于区域的图像分割方法:区域生长:从单个像素出发,逐步合并以形成所需要的分割区域,另一种是从全局出发,逐步切割至所需的分割区域(种子像素,生长准则,生长停止条件)。
  • 基于边缘检测的分割方法:不同区域的边界上像素的灰度值变化比较剧烈,如果将图片从空间域通过傅里叶变换到频率域,边缘就对应着高频部分。一阶边缘算子,二阶边缘算子
  • 主动轮廓ASM的方法:先定义初始曲线C,然后根据图像数据得到能量函数,通过最小化能量函数来引发曲线变化,使其向目标边缘逐渐逼近,最终找到目标边缘。

深度学习方法:

  • Mask-RCNN:在faster-rcnn基础上增加像素级分割
  • FCN:图片会先进性上采样(扩大像素);再进行卷积,通过学习获得权值
  • UNet:特征提取,上采样部分(每上采样一次就与对应的通道相同尺度融合)
  • deepLab系列算法
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章