1

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

使用的内置函数:

vision.CascadeObjectDetector

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

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

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

4

1 回答 1

0

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

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

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

于 2014-11-19T16:12:32.437 回答