面部检测MATLAB - 倾斜和上下侧

时间:2014-11-19 07:30:31

标签: matlab computer-vision face-detection matlab-cvst cascade-classifier

我正在开发一个MATLAB项目,该项目使用户能够进行人脸检测并将其模糊。

使用内置函数:

vision.CascadeObjectDetector

此功能的问题:它只检测正面。

我尝试的方法:在while循环中使用imrotate函数来旋转图像,同时度数小于360.所以我认为它会起作用。我每次都将旋转增加23。

缺点:它不起作用,它会改变图像的空间分辨率。

1 个答案:

答案 0 :(得分:0)

我过去做了一些实验,并且我了解到使用默认正面模型的vision.CascadeObjectDetector可以容忍大约15度的平面内旋转。所以我建议一次将图像旋转15度甚至10度,而不是23度。

在这种情况下训练自己的探测器的问题在于底层特征(Haar,LBP和HOG)对于平面内旋转不是不变的。你必须训练多个探测器,每个方向一个探测器,每15度左右。

另外,您是在静止图像还是视频中检测脸部?如果您正在观看视频,则可能需要尝试跟踪面部。这样,即使你因为某人的头部倾斜而错过了一张脸,你也有机会在以后检测它。一旦您检测到面部,即使它倾斜也可以跟踪它。看一下这个example