多尺度滑动窗口 muti-scale

在行人检测中总是需要将一张大的图像切分成和训练样本一样大小的图像,包括其他的识别和检测任务一样,也需要这一步。刚开始研究阶段不是很明白如何在一张大的图像中精准的找到行人检测的那个识别框。后来才清楚其中道理,比如opencv中自带的行人检测模块,就是使用多尺度滑动窗口来提取n个检测窗口,并记录窗口的坐标,最后再将这些检测的子窗口送入分类器。

多尺度滑动窗口(以行人检测为例)主要包括两个部分一个是滑动窗口来提取大小为128*64窗口大小的图像,然后再对大图进行缩放,在进行滑动窗口,具体的算法如下

1.首先输入一张待检测的图像I,然后用设在scale=x(x>1),在scale尺度下通过滑动提取的子窗口集合为Y=【img1、img2、、、】

2.利用滑动窗口法在图像I上提取子图像,这是有两部分参数需要设置,首先是窗口的大小比如128*64,再者是滑动的步 长,比如每次滑动为K个像素,子窗口Yi=【img1、img2、、、】。

3.对图像I进行缩放I=I*(1/scale)返回步骤二执行

4,停止条件如果I<128*64的话,那么跳出循环


随着图像的缩小,提取到的子图像数目也在减少,例如在第五次循环结束,那么m1层数量>m2m1层数量>m3m1层数量>m4m1层数量>m5m1层数量,其中img(pq),为第p层的第q个窗口。如下图,所示,是不是很想金字塔,这也是图像金字塔这个名字的由来。

m5                                            img51 img52

m4                                   img41 img42 img43 img44

m3                     img31 img32 img33 img34 img35 img36

m2        img21 img22 img23 img24 img25 img26 img27 img28

m1  img11 img12 img13 img14 img15 img16 img17 img18 img19 img10 


不足之处,欢迎指正


你可能感兴趣的:(行人检测)