需求分析

人脸识别已经在最近几十年取得了飞速的发展,但伴随着一些问题也发生了,一些不法分子利用一些技术仿冒人的生物特征去欺骗识别系统,为了更安全地进行身份认证,就需要对真实人脸和翻拍人脸进行识别和判断。基于图像的活体人脸检测技术是不需要人主动配合,成本低廉,安全可靠的一种方式,是一个很值得关注的一个领域。

图像特征提取算法

通过研究真实人脸和翻拍人脸的差异,我们选取了图像纹理轮廓和色彩组成两大特征进行提取。通过LBP(Local Binary Pattern)和DoG(Difference of Gaussian)两种算法,提取图像纹理特征;通过HSV颜色空间直方图算法,提取图像色彩特征,之后将两类特征进行组合,得出最终的图像特征。

之所以提取图像纹理特征,一是因为图像的纹理代表着像素分布的内部规律,是场景物体组织形式的外在反映;二是经过翻拍,图片纹理会发生改变、轮廓也会变模糊,纹理特征可较好反映其中的差异。

但因为有关图像纹理的算法都是基于灰度空间的,只提取纹理轮廓特征,会丢失图像的色彩信息,而考虑到翻拍图像受介质变化、拍摄时光照等因素的影响,色彩必然会发生一定改变,因此我们选取了HSV颜色直方图算法提取图像色彩特征。

接下来逐一介绍用到的算法

  • LBP算法(提取图像纹理轮廓特征)
    LBP(Local Binary Pattern,局部二值模式),是一种用来描述图像局部特征的算子。对于一张灰度图,原始的LBP算子定义在像素3x3的邻域内,以邻域中心像素为阈值,相邻的8个像素的灰度值与邻域中心的像素值进行比较,若周围像素大于中心像素值,则该像素点的位置被标记为1,否则为0。这样,3*3邻域内的8个点经过比较可产生8位二进制数,将这8位二进制数依次排列形成一个二进制数字,这个二进制数字就是中心像素的LBP值。

    LBP的特征是通过比较相邻的像素得到的,因此如果图片整体变暗或者变亮,则提取出来的特征几乎不变,即LBP特征对光照变化具有很强的鲁棒性。但由于LBP只关心一个局部的像素分布情况,因此得到的特征一定程度上缺乏全局信息。通过将LBP算法与其他特征提取方法结合可以更加全面的获得图像特征。
    LBP_effect

  • DoG算法(提取图像纹理轮廓特征)
    DOG(Difference of Guassian):高斯函数的差分,是角点检测的一种方法。

第一步:对图像进行高斯滤波。高斯滤波即为用高斯模板作为加权平均的矩阵(并非普通的平均矩阵,矩阵值由高斯运算得到),对每个像素点做卷积运算,可起到平滑图像高频噪点的作用,因为若中心点灰度值较高,则相当于和周围灰度值较低的点做了平均,即去掉了图像噪点。这里分别用两个不同的sigma值(0.5和1)对原始图像做高斯滤波,会得到另两幅图片。

第二步:对图像进行角点检测。原始图片和另外两张高斯滤波后图片,上中下三张图片构成三维空间,每个像素点x在三维空间下最多有26个相邻点,如果x是所有邻接像素点中的最大值或最小值,则被标记为特征点,即角点。因此角点的直观理解就是图像局部范围内最“不合群”的点,图像中所有的角点就决定了物体的纹理和轮廓信息,这也是做角点检测的意义。

下两幅图即为检测出的角点,黑(红)色为极小值,白(绿)色为极大值


  • HSV颜色直方图算法
    HSV指色调(H),饱和度(S),明度(V),其相比RGB更符合人的视觉感知模型,因此选择了HSV作为色彩空间进行计算。
    颜色直方图提取特征的优点是:只关心图像色彩分量的色阶组成,而不关心色彩在图像中的具体位置。因此更易反映图像因介质变化、光照影响所产生的色彩差异。算法流程图如下:

支持向量机SVM算法

  • 基于统计理论的有监督学习算法,已知训练点的类别,求训练点和类别之间的关系。构建分割两类的超平面,使得所分隔两类的泛化误差最小。

  • 本题中,将提取出的真实人脸图像特征作为正样本,类别标记为+1;仿冒人脸图像特征作为负样本,类别标记为-1。将两类样本及其类别分别送入支持向量机中学习,支持向量机会自动调整内部参数,达到最优,即求得分类模型。
    线性可分SVM
    线性不可分SVM
    核函数映射高维空间



Post Date: 2018-05-03

版权声明: 本文为原创文章,转载请注明出处