在这里插入图片描述
code: https://github.com/fyangneil/Clustered-Object-Detection-in-Aerial-Image

背景介绍

看到下面这张图片,可以发现图片的像素很高,像行人这样的目标在图片中所占像素又小,使其很难与周围的背景分开,并且目标比较分散、分布不均匀,这就是航拍图像的目标检测所面临的挑战。
在这里插入图片描述

在这里插入图片描述
对于高分辨率的航拍图像,通常的方法是将图像裁剪成均匀的小块,对这些小块进行目标检测,这种方法召回率比较高,漏检率比较低,存在的问题就是:由于航拍图像目标具有稀疏性,导致这种方法的检测效率低。因此,根据航拍图像的特点作者提出了将目标聚类和检测结合起来的端到端的聚类检测框架(ClusDet)。上图分析,根据航拍图像的特点,若将图像进行聚类裁剪后再进行目标检测,则对于一张图像的目标检测时间会减少,效率会提高。

网络结构

总体框架

在这里插入图片描述

ClusDet中的关键组成包含一个聚类候选框网络(CPNet),一个尺度估计网络(ScaleNet),和一个专用检测网络(DetecNet)。给一张输入图像,CPNet产生目标聚类区域,ScaleNet估计聚类区域的目标尺度,将每个尺度归一化的聚类区域输入到DectecNet中进行目标检测,得到聚类区域的检测结果。最后,将全局目标检测与聚类目标检测进行特征融合,得到最终检测结果。

Cluster Region Extraction

CPNet
在这里插入图片描述

根据航空图像的初始提取的特征图生成一组目标聚类候选框,将其裁剪出来用于后续的精细检测。聚类区域提取的核心是CPNet,具体方法是CPNet从主干网中提取高层特征图作为输入,使用两个分支进行预测聚类区域的位置回归和分类。这是受到了RPN的启发,将CPNet表示为全卷积网络。RPN与CPNet不同的是,RPN是提取目标的候选区域,而CPNet则提取聚类的候选区域。与单个目标相比,聚类的规模要更大一些,因此CPNet需要比RPN更大的感受野,因此CPNet被放在特征提取网络的顶部。

值得注意的是,CPNet是一种监督学习的过程,由人为框出聚类区域,以此来训练CPNet。

ICM
在这里插入图片描述
如上图所示,可以观察到CPNet产生的初始聚类候选框密集又杂乱,这些聚类区域重叠度高、规模大,难以直接用于目标精确的检测,在实际检测会造成很大的计算量。图a是最初获得的聚类候选框,图b是进行ICM后得到的结果。

为了解决这个问题,作者提出了一种简单而有效的迭代聚类合并模块来精简聚类区域。下面就是ICM的伪代码说明:
在这里插入图片描述
简单说明一下该模块,首先选取分数最高的,然后选取重叠度大于等于阈值的区域进行合并,将所有合并的区域从集合中删除。继续这个过程直到集合内为空。多次执行上面的算法,直到最后保留的聚类区域数量为B’。

Fine Detection on Cluster Chip

ScaleNet

为了使用聚类区域,利用专门的检测器对这些区域进行检测。与现有的直接调整聚类区域尺寸进行检测的方法不同,作者提出了一种尺度估计网络(ScaleNet),用于估计聚类区域中目标的尺度,避免了目标极端尺度造成检测性能差的问题。下面就介绍这个方法。
在这里插入图片描述
作者把尺度估计看成一个回归问题,并利用一组全连接网络来构成ScaleNet。

ScaleNet把主干网提取的特征映射、聚类候选框和全局图像的初始检测结果作为输入,输出是聚类中目标的相对尺寸偏移值si。该网络的损失函数如下所示:

在这里插入图片描述
用于回归出比较合适的候选框的位置,以便将候选框输入到DetecNet进行精确的目标检测。

PP module
通过上面的损失函数计算出聚类区域中目标的相对尺寸偏移值,将其带入下面的公式中:图片

该公式的作用在于使用分区和填充操作来确保目标的比例在合适的范围内,具体操作:给定聚类目标框Bi、对应目标的尺度Si以及检测器的输入尺度Sin,可以估计检测器在输入空间的目标尺度图片
。作者把尺寸范围设置为[70,280],若尺寸小于70进行填充操作(即扩充聚类区域范围,直到区域为70*70);若尺寸大于280,则进行分区操作,分成两个相等的聚类区域。

在这里插入图片描述
需要注意的是,在最后整合结果时,填充部分会被忽略,上图显示了填充与分区的过程。

Fusion Operation

在这里插入图片描述
下面将进行特征融合操作,这是网络结构的最后一步。通过将聚类区域的局部检测结果与整个图像的全局检测结果,进行标准NMS后处理融合得到航空图像的最终检测。

需要说明的是,整个图像的全局检测与聚类区域的局部检测都采用Faster-RCNN进行检测。

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐