首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

ICCV 2019:航拍图像中行人像素小、目标稀疏不均匀怎么破?

本文由AI研习社用户BBuf投稿,来稿见文末联系方式

作者 | BBuf

单位 | 北京鼎汉技术有限公司 算法工程师(CV)

编辑 | 唐里

美国费城天普大学,美国空军研究实验室,美国石溪大学共同提出ClusDet用于航空图像的目标检测,降低了计算复杂度并大幅提升了精度,即将开源。

下面要介绍的论文发表于ICCV2019,题为「Clustered Object Detection in Aerial Images」;

论文地址: https://arxiv.org/abs/1904.08008

航空图像中的目标检测主要面临以下两个挑战:(1)像行人这样的目标在图片中所占像素小,使其很难与周围背景分开。(2)目标通常稀疏且分布不均匀,因此检测效率很低。

这篇论文探讨这两个问题,灵感来自于观察到航空图像中的目标通常是聚集的。论文提出了一个将目标聚类和检测结合起来的端到端的聚类检测框架(ClusDet)。ClusDet中的关键组成部位包含一个簇提议网络(CPNet),一个尺度估计网络(ScaleNet),和一个专用检测网络(DetecNet)。给一张输入图像,CPNet产生目标簇区域,ScaleNet估计簇区域的目标尺度。然后,每个尺度归一化的簇区域输入到DectecNet中进行目标检测。

相比于以前的解决方法,ClusDet有如下优点:(1)很大程度上减少了用于最终检测的分块数并获得了很好的运行时间效率。(2)基于簇的尺度估计比之前基于单个物体的方法更准确。(3)最终的检测网络专门用于簇区域,隐式地对先验上下文信息进行建模,以提高检测精度。

该方法在VisDrone、UAVDT和DOTA三个常用航空影像数据集上进行了测试。代码将开源在: https://github.com/fyangneil 。

1. 研究背景

近年来一些先进的目标检测器如Faster-RCNN,SSD,YOLO等已经在自然图像上(例如MS COCO数据集)取得了重大成果。但这些检测器在处理航空影像时速度和精度方面均效果不佳。主要是因为以下两点原因:

(1)目标相对原图来说尺度很小;

(2)目标通常稀疏且不均匀地分布在整个图像中。

所以,现代目标检测器很难有效的利用外观信息来区分物体与周围背景或者类似物体。

为了解决尺度问题,当前的主流方法一般是把原图分成一些小块,然后在每个小块上做检测。但由于忽视了目标的稀疏性,在检测中效率很低。在目标稀疏甚至没有目标的高分辨率图耗费了大量计算资源,如Figure 1所示。

Figure 1

我们可以看到,在航空图像中,物体不仅稀疏、不均匀,而且在某些区域往往高度聚集。例如,行人通常集中在广场和高速公路上的车辆。因此,提高检测效率的一个直观方法是将检测器聚焦在这些簇区域,其中有大量的目标。

根据这一观察,论文提出了一个聚类检测网络。通过将模板检测和聚类检测集成在一个统一的框架中来解决上述两个问题。如Figure 2所示:

Figure 2

可以看ClusDet由三个关键部分构成,包括聚类提议子网络(CPNet),尺度估计子网络(ScaleNet),专用检测网络(DetecNet)。CPNet根据航空图像的初始检测结果生成一组目标聚类候选框,将其裁剪出来用于后续的精细检测。为此,必须首先调整这些区域的大小以适合检测器,这可能会导致簇区域中的物体过大或过小,从而降低检测性能。

为了解决这个问题,作者提出了ScaleNet来估计每个聚类区域中目标合适的尺度,然后将簇区域送入检测器之前按照这个尺度重新缩放。然后将每个簇区域送入DetecNet进行精细的检测。最终将检测结果融合到全局图像上。

2. 具体方法

如Figure 2所示,航空图像的检测分为3个阶段,簇区域提取,簇区域的精细检测和检测结果融合。

具体来说,在航空图像经过特征提取后,CPNet将特征图作为输入,输出簇区域。为了避免处理过多的簇区域,作者提出了一个迭代簇合并(ICM)模块来减少噪声。然后将簇区域和全局图像的初始检测结果输入到ScaleNet,对每个簇区域估计合适的尺度。利用尺度信息将簇区域进行缩放,然后使用DetecNet进行精细检测。最终结果是将每个簇区域的结果和原图使用NMS融合后得到。

1、簇区域提取

1)簇提议子网络(CPNet)

簇区域提取的核心是簇提议子网络(CPNet)。CPNet在航空图像高层次特征上预测簇区域的位置和尺度。受到RPN的启发,作者将CPNet表示为全卷积网络。

具体来说,CPNet从特征提取骨干网络中提取高层特征图作为输入,使用两个分支进行回归和分类。虽然CPNet和RPN有相似之处,但不同在于RPN是用于提取目标的候选区域,CPNet用于提取簇的候选区域。与单个目标相比,簇的规模要大得多,因此CPNet需要比RPN更大的感受野,所以本文将CPNet放在特征提取网络的顶部。

值得注意的是,CPNet的学习是有监督的过程,关于如何在公共数据集上产生簇的标签信息请参见补充材料。

2)迭代簇合并(ICM)

Figure 3

如Figure 3(a)所示,我们观察到CPNet产生的初始簇区域又密又乱。这些密集、杂乱的簇区域由于重叠度高、规模大,很难直接用于精细检测,在实际应用中会造成极其沉重的计算负担。

为了解决这个问题,作者提出了一个简单有效的迭代簇合并模块来精简簇区域。让代表CPNet产生的个簇区域集合,代表每个簇区域的分类置信度。使用预定义的最大重叠阈值和合并后最大的簇区域数,可以使用算法1得到合并后的簇区域集合。

算法1

简要的概述下这个算法,先选取分数最高的。然后选取和重叠度大于等于的区域和合并,将所有合并的区域从集合中删除。继续这个过程直到集合为空。执行上面的算法多次直到最后保留的簇区域数量为。在Figure 3(b)中展示了经过ICM簇合并模块后的结果。

2、簇区域上的精细检测

在获得簇区域后,利用专用检测器对这些区域进行检测。和现有的直接调整簇区域尺寸进行检测的方法不同,作者提出了一个尺度估计子网络(ScaleNet)用于估计簇区域中目标的尺度,避免了目标极端尺度过低降低检测性能。基于估计的尺度,ClusDet在每个簇区域上执行分区和填充操作再进行检测。

1)尺度估计子网(ScaleNet)

作者把尺度估计看成一个回归问题,并利用一组全连接网络来构成ScaleNet。如Figure 4所示,

Figure 4

ScaleNet接收骨干网络提取的特征映射,簇边界框和全局图像的初始检测结果作为输入,输出簇中目标的相对尺度偏移。这里初始检测结果是从检测子网获得的。让为第i个簇的相对尺度偏移,其中和分别代表检测目标的参考尺度和簇i中的目标框真实尺度的均值。因此ScaleNet的损失函数可以表示为公式(1):

其中代表尺度偏移的估计值,是网络估计的尺度,是簇的个数。是Smooth L1损失函数。

2)分区和填充

使用分区和填充操作(PP)来确保目标的比例在合理的范围内。给定簇目标框,相应的估计目标尺度和检测器的输入尺寸。我们可以估计检测器在输入空间中的目标尺度。如果尺度大于某个范围,则按比例填充簇区域,否则将其分为两个相等的簇。注意,在最后整合结果时,填充部分被忽略。Figure 5展示了分区和填充的过程。

Figure 5

3、局部检测融合成最终全局检测结果

航空图像的最终结果是通过簇区域的局部检测结果和整个图像的全局检测结果使用NMS后处理得到的,如图Figure 6所示,

Figure 6

局部检测结果是使用论文的方法得到的,全局检测结果是通过Figure 2中的目标检测子网络得到的。

3. 结果

作者使用Caffe2实现了ClusDet,将带FPN的Faster-RCNN作为DetecNet子网络PNet的结构使用5*5卷积和两个1*1卷积分支搭建而成。ScaleNet,将特征图转为特征向量的全连接层的长度为1024。由于是回归任务,最后输出的维度为1,代表尺度这个数值。本文将合并簇区域的重叠阈值设置为0.7。在VisDrone航空数据集上进行训练时的结果如下表所示:

在UAVDT数据集上的性能测试结果为:

在DOTA数据集上的测试结果为:

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190930A0LISN00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券