Viola Jones(Haar Cascade)滑动/缩放探测器在训练和探测过程中如何工作?

时间:2017-06-30 15:22:35

标签: image opencv face-recognition haar-classifier

我已经阅读了原版的Viola Jones文章,Wikipedia文章,openCV手册以及这些SO答案:

How does the Viola-Jones face detection method work?

Defining an (initial) set of Haar Like Features

我正在尝试在原始文章中实现我自己版本的两个探测器(Adaboost-200-features版本和最终的级联版本),但我的理解中缺少某些东西,特别是24 x 24探测器适用于整个图像和(可能)其子图像(可能)不同的尺度。根据我的理解,在检测期间:

(1)图像积分计算两次,对于图像方差归一化,一次一次,一次平方:

  

可以使用a快速计算图像子窗口的方差   一对整体图像。

(2)将24 x 24平方的探测器以1像素的步长移过标准化图像,确定每个方格是否是面(或不同的对象):

  

最终探测器以多种比例扫描图像   位置。

(3)然后将图像缩小到1.25,我们回到(1)

这样做12次,直到图像矩形的较小边长为24像素(原始图像中的288除以(1.25 ^(12 - 1))刚刚超过24):

  

以12个刻度扫描384×288像素的图像,每个刻度为1.25倍   比上一个大。

但是我在文章中看到了这句话:

  

通过缩放探测器本身来实现缩放   比缩放图像。这个过程因为功能而有意义   可以以相同的成本进行任何规模的评估。检测很好   结果是使用尺度得到的   相隔1.25。

我在维基百科文章中看到了这句话:

  

我们不是缩放图像本身(例如金字塔滤镜),而是缩放特征。

我不知道到底发生了什么。如何缩放24 x 24探测器?在该区域计算的整套特征(无论是200个特征版本还是~6K级联版本)都是基于最初探索这个24 x 24矩形的162K可能特征。为什么我认为金字塔范式仍然适用于这种算法?

上述算法应该改变什么?它是缩放的图像还是24 x 24探测器,如果它是探测器,它是如何完成的?

0 个答案:

没有答案