首页 » 刷脸背后:人脸检测 人脸识别 人脸检索 » 刷脸背后:人脸检测 人脸识别 人脸检索全文在线阅读

《刷脸背后:人脸检测 人脸识别 人脸检索》3.2 LAEO人脸检测算法

关灯直达底部

LAEO人脸检测算法是由Marin-Jimenez等人提出的[6],该算法主要是为了检测视频中的人是否正在看彼此(Looking At Each Other,LAEO)。该算法主要分为三步:①使用UB(upper-body)检测器,检测出人身体的上半部分,再使用head detector在upper-body的检测框内检测出人头;②估计人头部的姿势,即偏移角度yaw和pitch;③通过偏移角度判断人们是否正在看彼此(LAEO)。本书介绍的人脸检测程序是这个检测算法的第一部分,Manuel等人提供了开源的代码和训练模型,我们可以直接使用它进行人脸检测。

3.2.1 LAEO人脸检测算法的使用

LAEO人脸检测算法,是使用MATLAB语言开发的,对应的项目名称为headdetsMatlab。该项目内包含leaohead_v2[7]和voc-release4.01[8]两部分,leaohead_v2中包含主要函数、测试图片、训练好的模型;voc-release4.01中包含程序运行过程中需要调用的函数。

在运行该项目之前,首先需要进行配置,具体如下:

(1)首先打开MATLAB,切换到主函数test.m所在的目录。

(2)单击home→Set Path→ Add to Path with Subfolders,选择voc-release4.01文件夹,同图3-1,最后单击“保存”按钮并关闭。

(3)本书程序是在Windows 64位操作系统和MATLAB 2012b下运行的。如果读者的运行环境和本实验一致,则配置完成。如果读者使用的是32位操作系统或者在文献[8]中下载voc-release4.01,则使用headdetsMatlabchange文件下的.cc文件,替换掉voc-release4.01中对应的文件,同时使用“mex –O xx.cc”对这类.cc文件进行编译。编译成功后,则配置完成。

检测图片在headdetsMatlablaeohead_v2image文件夹下。

检测结果在headdetsMatlablaeohead_v2result文件夹下。

读者可根据实际情况修改检测图片和检测结果的存放路径,具体如下。

修改检测图片的存放路径:在test.m中修改images_folder_path。

修改检测结果的存放路径:在demoheaddet.m中修改out。

选择好路径后,运行test.m,即可使用LAEO人脸检测算法进行测试。

程序的说明

本书实现的程序对文献[7]中的demoheaddet.m文件进行了修改,因为原程序在检测图片时,如果没有得到检测框,则该程序会报错。此外,为了自动检测一个文件夹下的所有图片,我们创建了test.m作为测试的入口,具体如下。

Code4:test.m

在demoheaddet.m中,默认的detthr=-0.82,得分大于detthr的框都有可能成为检测框。detthr值越小,得到的检测框越多,同时噪声也增多。本书中选择detthr=-0.92。

3.2.2 LAEO人脸检测算法的原理

Manuel等人首先训练了一个UB(upper-body)检测器,使用的也是Felzenswalb等人的DPM目标检测模型[5]。正训练样本采用的是好莱坞电影数据集中标注过的关键帧,这些正训练样本包含了不同角度、不同尺寸的包含人体上半部分的图片;负训练样本采用INRIA-Person数据集中不包含人的图片。UB检测器只包含一个组件。使用这个UB检测器单独处理每一帧,随着时间把对应的检测框联合起来,使用Everingham等人设计的追踪方法:在不同帧中的同一个检测框被许多KLT点连接起来,如果一个追踪中检测框个数小于20或者检测得分和小于某个阈值,则认为这个检测框是误报(false-positive)并将之舍弃。

和UB检测器类似,LEAO也使用Felzenswalb等人的DPM目标检测模型[5]训练一个头部检测器(head detector),使用和UB检测器相同的图片进行训练。最后使用head detector在UB检测框内检测出人的头部对应的坐标位置。

上面分析了LAEO人脸检测算法的相关理论,接下来我们结合源代码对该算法进行分析。由test.m可知,把存放测试图片路径下的每张图片一一传递给demoheaddet.m,由demoheaddet.m进行人脸检测处理。下面是demoheaddet.m的代码,该代码来自文献[7]。

Code5:demoheaddet.m

通过程序test.m和demoheaddet.m,读者已经对LAEO人脸检测算法的步骤有了整体的了解,有关该算法更具体的实现细节,可以查看FaceDetectAlgosheaddetsMatlab中的相关文件。

3.2.3 LAEO人脸检测算法的检测结果

和DPM相比,LAEO人脸检测算法的检测效果没有DPM好,但是它可以检测尺寸相对大的图片,而DPM却不能。下面呈现了一些有代表性的图片的检测结果,如图3-5和图3-6所示。

图3-5 当detthr=-0.82时headdet算法的检测结果

图3-5 当detthr=-0.82时headdet算法的检测结果(续)

图3-6 当detthr=-0.92时headdet算法的检测结果

由图3-5和图3-6可以发现,当detthr值变小时,可以得到更多的检测框,但检测到更多的噪声(误报)。此外,我们也测试了detthr=-1的情况,但结果噪声多、效果不理想。综合上述考虑,我们选择了detthr=-0.92。