小目标检测:Feature Extraction

共 3341字,需浏览 7分钟

 ·

2021-02-09 12:43

↑ 点击蓝字 关注极市平台

作者丨南山
来源丨AI约读社
编辑丨极市平台

极市导读

 

本文介绍了一篇BMCV的文章,该方法是网络上的改进,通过消除Stride操作增大feature map来提升小目标检测性能,以及小目标和大目标的具有单独路径的双路径权重共享方案。 >>加入极市CV技术交流群,走在计算机视觉的最前沿

前面我们介绍了使用数据扩增的方式提高小目标检测的性能,这种方法虽然会提升小目标检测的性能,但也会影响大目标检测的性能。

今天我们介绍一篇BMCV的文章,该方法是网络上的改进,通过消除Stride操作增大feature map来提升小目标检测性能,以及小目标和大目标的具有单独路径的双路径权重共享方案。



论文:Rethinking Convolutional Feature Extraction for Small Object Detection
论文:https://bmvc2019.org/wp-content/uploads/papers/1057-paper.pdf


01 Analysis


作者对造成小目标检测和大目标检测之间巨大性能差异进行了实验分析,他的想法与之前一篇Augmentation for small object detection完全不同,他认为影响小目标检测性能的主要原因是特征提取网络backbone将图片缩小过多倍而导致的结果,同时还对小目标训练样本数量对小目标检测性能的影响进行了实验分析,得出了小目标训练样本数量对小目标检测性能影响较小。
1.1 小目标样本数量的影响
作者实验分析了小目标训练样本对小目标检测性能的影响,作者对两类目标进行分析分别是person和car,首先作者在person将大中小目标的训练数量保持均衡,但是在RFCN 和 SSD两个检测器上都小目标的性能依旧比大目标相差甚远,其次作者在car类别上将小目标的训练示例超过中和大目标,但是在小目标检测的性能依旧远低于大中目标。(ps:我认为这里不一定实验应该还需要考虑到大中小目标所占的面积影响)
1.2 特征提取网络的影响
作者选择SSD mobilenet v1 进行分析,首先对baseline进行了测试,发现在MS COCO 数据集上map为18.8,而其中小目标的AP仅为1.8,中目标的AP为19.1,大目标的AP为36.3,小目标和大目标的性能相差30倍,作者对小目标尝试了改进三种方式:
1、增大输入图像的尺寸(300 x 300 提升至500 x 500)
2、在早期层进行预测(在第六个卷积层的feature map进行预测)
3、小型的anchor box(增加了10 x 10大小)
三种方式的结果在 Table 1 ,从表中可以看出三种方法均有提升,其中扩大输入图像尺寸增加较多。


02 Proposed Approach


作者提出对目标检测的backbone网络进行两次修改。第一,作者消除了Strided Convolution和Pooling以扩大 feature map。二,为了避免第一步对大目标检测性能的影响,作者使用权重共享的单独路径来检测大型物体。
2.1 Strided Convolution and Pooling Elimination
Strided Convolution和Pooling一直以来被认为是backbone必不可少的一部分,这主要是由于它们有助于增加平移不变性,并且在不断缩小特征图可以使得神经元具有更大的感受野。在实践中,这对于图像分类任务是非常有效的,但是对于目标检测之类的位置敏感任务却会产生问题,例如,在SSD Mobilenet v1中,输入图像尺寸为300x300,用于预测的最大特征图的尺寸为19x19。我们会认为有效接收区域为16x16,但是由于卷积算子的性质导致相邻特征的贡献也会随着feature map的尺寸变小而增加。
作者进行了一个简单的实验,在backbone中消除了几层Strided Convolution,采用了相同的权重居然可以检测小的目标,这表明了现有的权重是可以用于小目标的分类,只需要增加特征图的大小。因此作者对backbone进行了消除 Strided 操作的多种配置,对于每种配置,通过消除步幅S的数量和消除步幅的层的数量L来参数化命名约定,例如,在SSD Mobilenetv1 S1-L0中,在第0层消除了一次跨步卷积。如图3展示了两个示例。

作者创建了许多不同的配置消除,并在网络的各个部分消除了Strided Convolution。在所有的配置中,可以看到小对象性能不断提高,但代价是计算量增加了。作者认为小目标检测相对应的语义特征受相邻干扰因素的影响较小,因此可以消除Strided Convolution。并且实验得出在后期消除Strided Convolution时,较小物体的贡献会较早减小。在相同的计算顺序下,早期Strided Convolution显示出最佳结果。图4中显示了MS COCO val 2017的视觉比较。在所有的修改配置中,可以正确检测到小网球,而在baseline中则不能正确检测到。

2.2 Dual-Path Weight Sharing for Large Object Detection
虽然消除backbone的stride操作对于小目标没有影响,但是却会降低大目标的性能,为了避免这个问题,作者提出了采用权重共享的双路径方法,大对象的单独路径是通过对放大的特征图进行二次采样来创建的。作者根据比例尺各自对应的图层将比例尺特定的特征图进行级联,例如对于S1L0结构,第13层的特征图为19 x 19,在大目标路径,第11个特征图的大小为19 x 19。因此将小物体路径的第13个特征图和大物体路径的第11个特征图连接起来并提供给预测层。该过程如图5所示。
这种方式可以将大目标的检测性能恢复到基本值,但是,此修改增加了参数和计算的数量。因此作者提出了另一种选择,其中将小目标和大目标的预测器分开。对于SSD Mobilenet v1 S1L0,第一个和第二个预测器仅在小型对象路径特征图(38 x 38和19 x 19)上起作用,而预测器3至6仅在大目标路径特征图(10 x10上)起作用。通过这种方法,双路径没有其他参数。作者分别将这些配置称为C和S后缀。

03 Experimental Results


作者在SSD 上进行实验,并且对多种消除stride操作进行了测试,实验结果在 Table2 ,可以发现在早期进行消除stride操作对于小目标的提升更加有效,并且采用将大目标和小目标进行共享权重的双路径方法可以缓解大目标的性能的下降,但是还是会有一定下降。

04 总结


这篇文章的重新对小目标检测性能差的原因进行了分析,发现影响小目标检测的原因主要是特征提取网络backbone将图片缩小过多倍,因此作者采取了消除stride操作,并且为了避免大目标检测性能的下降,提出了采用了大目标和小目标双路径权重共享的方法,并且实验证明了其有效性。


推荐阅读



添加极市小助手微信(ID : cvmart2),备注:姓名-学校/公司-研究方向-城市(如:小极-北大-目标检测-深圳),即可申请加入极市目标检测/图像分割/工业检测/人脸/医学影像/3D/SLAM/自动驾驶/超分辨率/姿态估计/ReID/GAN/图像增强/OCR/视频理解等技术交流群:每月大咖直播分享、真实项目需求对接、求职内推、算法竞赛、干货资讯汇总、与 10000+来自港科大、北大、清华、中科院、CMU、腾讯、百度等名校名企视觉开发者互动交流~

△长按添加极市小助手

△长按关注极市平台,获取最新CV干货

觉得有用麻烦给个在看啦~  
浏览 44
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报