Viola-Jones算法 - "像素和"?

时间:2014-04-19 14:25:39

标签: algorithm opencv image-processing detection pixels

我查看了很多关于Viola-Jones算法如何运作的问题的文章和答案。我一直在寻找答案说"像素总和"在某个区域中减去"像素总和"在邻近地区。我对什么"像素总和感到困惑"手段。基于什么价值?它是该区域的像素数量吗?颜色的强度?

提前致谢。

2 个答案:

答案 0 :(得分:3)

这些是基于Viola-Jones论文'Robust Real-time Object Detection'的定义。

积分图像:位置x处的积分图像(ii),y = ii(x,y)

ii(x,y) = > Sum of the pixels above and to the left of x, y inclusive

这里'像素之和'暗示像素强度值的总和(例如,对于8位灰度图像,0到255之间的值),在像素(x,y)的上方和左侧的每个像素元素处并且包括行/列x和y,考虑表示中的灰度图像。

积分图像的重要性在于它加速了任何矩形像素块内像素强度之和的计算。例如四个数组引用。

由ii(x,y)给出的每个点处的积分图像值可以在原始图像i(x,y)上一次计算

在通过期间在每个点使用以下等式,详见参考文件:

s(x,y) = s(x,y-1) + i(x,y);

ii(x,y) = ii(x-1,y) + s(x,y);

其中

s(x,y) = the cumulative row sum;
s(x,-1) = 0;
ii(-1,y) = 0;

然后使用这些积分图像值生成要学习并随后检测对象的特征。

答案 1 :(得分:1)

最初的Viola-Jones算法使用" Haar-like"特征,是第一和第二高斯导数滤波器的近似值。

高斯导数滤波器如下所示: enter image description here

Haar-like过滤器看起来像这样: enter image description here

Viola和Jones使用类似Haar的过滤器的原因是它们可以非常有效地进行评估。您所要做的就是从白色区域覆盖的像素总和中减去滤镜黑色区域所覆盖的像素总和。并且由于区域是矩形的,因此可以从相应的积分图像有效地计算每个区域中的像素的总和。