我正在努力了解Viola Jones的方法,而且我大部分都是这样做的。
它使用简单的Haar类似功能提升为强分类器,并组织成层/级联,以实现更好的性能(不打扰明显的“非对象”区域)。
我认为我理解积分图像,我理解这些特征的计算值是多少。
我唯一无法弄清楚的是算法如何处理面部大小变化。
据我所知,他们使用24x24子窗口在图像上滑动,并且在算法内部算法通过分类器并试图弄清楚是否有面/对象。
我的问题是 - 如果一张脸是10x10尺寸,其他100x100是什么?那么会发生什么?
我很想知道前两个功能是什么(在级联的第一层),它们是怎样的(请记住,这两个功能,根据Viola& Jones,几乎不会错过任何一个面对,并将消除60%的不正确的)?如何??
并且,如何构建这些功能以处理图像中不同面部大小的这些统计数据?
我错过了什么,或者我认为这一切都错了吗?
如果我不够清楚,我会试着更好地解释我的困惑。
答案 0 :(得分:6)
Viola-Jones分类器训练有24 * 24张图像。每个面部图像包含类似缩放的面部。这产生了一组特征检测器,这些特征检测器由两个,三个或四个矩形构成,针对特定尺寸的面进行了优化。
通过重复不同比例的分类来检测不同的脸部大小。 original paper注意到通过尝试不同的比例相差1.25来获得良好的结果。
请注意,积分图像意味着只需缩放矩形角的坐标即可轻松计算任何比例的矩形特征。
原始纸张包含在典型级联中选择的前两个功能的图片(请参阅第4页)。
第一个特征是在脸颊宽阔的矩形上方检测到眼睛的宽黑暗矩形。
----------
----------
++++++++++
++++++++++
第二个特征是在含有眼睛的两侧较暗的矩形之间检测到鼻梁明亮的薄矩形。
---+++---
---+++---
---+++---