python目标检测滑动窗口算法_目标检测

滑动窗口(Sliding Windows)

拿车辆识别举例,首先我们把图片切割成很多正方型,为了保证不丢失信息,每个正方形都与上一个正方形有重叠.

因为我们不确定图片中目标的大小,所以可以使用不同大小的正方形对图片进行切割.

然后把这些正方形分别用神经网络进行识别,留下那些识别到对象的正方形:

分类器有可能会有误报的情况,我们可以使用热力图查看哪些区域确信度最大:

用方框画出确信度最大的区域:

假设我们需要识别28x28x3的图片,我们需要分别以不同的尺寸对图片进行切割,假设以14x14进行切割可以切割出8x8张图片:

然后将切割好的图片输入到神经网络中进行分类,神经网络的输入尺寸为14x14x3,使用不同尺寸切割的图片可以resize为神经网络的输入尺寸:

神经网络的输出是1x1x4的分类结果.8x8张图片会得到8x8x4的分类输出.

滑动窗口的卷积实现方法

滑动窗口确实可以工作,但是它有个非常明显的缺点,滑窗需要切割出非常多的小图片,再加上需要以不同大小的窗口切割图片,所以我们需要非常多次数的分类.

我曾经用python实现的一个滑窗程序,识别一张图片近乎需要一分钟,它太慢了.之所以这么慢的原因是滑动窗口做的很多重复的计算,因为滑窗切割出的很多图片都有重叠的部分.

你可能感兴趣的:(python目标检测滑动窗口算法_目标检测)