文章目录[隐藏]
Density Map Guided Object Detection in Aerial Images 论文阅读笔记
出处:CVPR2020
一、介绍
文章主要研究的是基于高分辨率航拍图像的目标检测,其难点有二:1)目标尺度变化较大; 2) 目标的数量和类别分布不均匀;3)目标遮挡和截断;4)小目标占比多。
比较通用的方法是将图像进行规则的裁剪,然后对每一块裁剪区域分别进行目标检测。这种方法能够提高小目标的检测精度,因为当小物体的大小被调整到原始图像的大小时,它们的分辨率会变得更高。然而这些方法并不能平衡裁剪所导致的语义信息的丢失,除此之外,大的物体也可能会被裁剪成多份。
所以,文章重点关注图像的裁剪策略来解决这一问题,并提出了一种基于密度图指导的目标检测网络——DMNet,其包含三个主要的模块:
- 密度图生成模块
- 图像裁剪模块
- 目标检测模块
启发于密度图中显示了物体是如何根据图的像素强度进行分布的。随着像素强度的变化,它能够判断一个区域是否有物体,根据密度强度学习尺度信息,最终形成裁剪区域。
二、相关工作
2.1 通用目标检测
基于提议的检测器引入了多级锚框的概念。Fast R-CNN通过选择性搜索生成提议,然后根据这些提议提取特征并对对象进行分类。Faster R-CNN通过区域提议建议网络(RPN)生成建议框,显著提高推理速度。Mask R-CNN扩展了Faster R-CNN,同时执行检测和实例分割任务。
另一方面,YOLO3,SSD和RetinaNet都是单级探测器。单级探测器跳过了建议阶段,直接对采样区域进行检测,提高了检测精度。一些对象检测任务可能会出现数据不平衡的问题。为了解决这一问题,RetinaNet引入了局部损失,交叉熵损失的一种变体。它更重视难学的例子而不是简单的例子,以引导检测器更多地关注难学的对象。
2.1 航空图像的目标检测
与一般目标检测相比,航空图像目标检测面临更多的挑战:
- 小目标在航拍图像数据集中所占比例较高,需要对小目标给予更多的关注;
- 由于摄像机视角的变化,每个图像、每个类别的物体尺度都不同;
- 航拍图像数据集存在数据不平衡问题,一些类别(如VisionDrone数据集中的三轮车和遮天棚三轮车)在现实世界中很少出现;
- 航拍图像在拍摄过程中可能存在物体遮挡问题。
文献[15]表明,平铺有助于提高小对象的检测性能。针对视点变化引起的尺度变化,在[20]中提出了一种检测网络,增加对高级语义特征的接受域,细化空间信息,用于多尺度目标检测。[26]提出了一种针对密集对象的作物区域的聚类网络,并利用ScaleNet来调整生成的作物形状。最后的检测结果将裁剪后的图像与原始图像融合,以提高整体性能。[27]注重从检测器中学习分数较低的区域,并通过对那些分数较低的区域进行更好的评分来获得性能。为了解决数据不平衡问题,[27]引入了IOU采样方法和均衡L1损失。此外,[19,28]讨论了超分辨率遥感图像中目标检测的挑战和见解。
2.1 密度图估计
密度图是人群统计文献中常用的一种方法。由于物体的高密度,一般的物体检测器无法正确地检测和计数人数。由于密度图可以反映头部的位置并提供空间分布,因此密度图的积分可以近似地计算头部的数量,这是一个更好的解决方案。该方法具有较高的精度,广泛应用于计算任务中。
为了提高基于密度图的计数性能,MCNN提出了几何自适应和高斯卷积固定核生成密度图。[10]通过引入基于vgg16的扩展卷积神经网络,进一步提高了密度图的质量。[25]观察到,由于物比例尺差异较大,导致密度图变化较大。该算法引入尺度保持和自适应网络来平衡生成的密度图中的像素差异,提高了计数性能。[21]捕获原始图像的像素级相似性,在保持几何特性的同时,实现局部线性嵌入算法估计密度图。[22]通过引入基于流形学习的稀疏约束,进一步提高了生成的密度图的质量。
三、本文方法
3.1 密度图生成
采用的是MCNN中的密度图生成方法。
对固定的卷积核和自适应卷积核做了对比实验后发现在固定的核下效果更好,因为作者认有以下几点原因:
- 目标不是单一类的,也不是每幅图像的均匀分布,无法保证几何畸变的准确估计;
- 假设目标大小与相邻两个目标的平均距离有关是不合理的,因为航拍图像中目标的分布不像人群计数时那么密集。基于这些考虑,作者选择了几何固定核。
在定核法中,无论目标的具体形状如何,高斯滤波器的标准差对所有目标都是恒定的。这将导致在裁剪大型对象(如总线)时可能出现截断。因此,作者提出了类大小的核,分析每个目标类别的平均尺度,然后通过估计每种对象类别的平均尺度来计算σ。
3.2 基于密度图的图像裁剪
- 密度掩膜图的生成:
在密度图上引入一个滑动窗口,其中窗口的大小是训练集中对象的平均大小。以窗口大小为步长滑动窗口(即不重叠)。然后将当前窗口中的所有像素值求和,并与密度阈值进行比较。如果和值低于阈值,那么这个窗口中的像素值都为0,相反的情况为“1”。这导致密度掩膜具有0和1值。
引入密度阈值来控制预测密度图产生的噪声。同时,它会动态调整每个密度裁剪区域最终包含的对象数量。通过增加阈值,边界上的像素将更有可能是不规则的并被较高的阈值滤掉。这将导致更多的裁剪区域只拥有少量的对象。
不同阈值如何影响裁剪边界:
- 从密度掩膜图生成密度裁剪图:
首先,选择所有对应密度掩膜值为“1”的像素。其次,将八个相邻连通像素合并成一个大的候选区域。最后,利用候选区域的外切矩形对原始图像进行裁剪。
过滤掉分辨率低于密度阈值的裁剪区域。其原因是:
(1)在低密度阈值下,一些预测的密度图的质量不高,并且含有噪声,噪声会扩散到整个地图。因此,它很可能获得一些随机的单一窗口作为单一裁剪。
(2)物体探测器在低分辨率的裁剪区域上表现不佳,裁剪区域在调整到原始输入大小后变得非常模糊。
3.3 在密度裁剪图像上的目标检测
从密度图中获取图像裁剪区域后,下一步是对目标进行检测,融合密度裁剪区域和整个图像的检测结果。可以选择现有的检测器进行检测。首先对原始验证集和密度裁剪区域分别进行检测,然后从密度裁剪区域检测中提取预测的边界框,并将其加回原始图像的检测结果中进行融合。最后,我们对所有的包围盒应用非最大抑制(non - maximum suppression, NMS=0.5),并计算最终结果。
四、实验
4.1 实验设置
文章的实现采用了:MMDetection工具箱,密度图生成采用了MCNN,目标检测采用了Faster R-CNN+FPN,用ImageNet进行检测器的预训练。
密度图生成模块使用SGD优化器训练80个epoch。初始学习率为10−6。动量为0.95,权重衰减为0.0005。只使用一个GPU来训练密度图生成网络,没有使用数据增强。
检测模块在两个数据集上设置输入大小为600× 1000。按照[26]中的类似设置对数据集进行训练和测试。检测器在2个gpu上训练42个epoch,每个批次大小为2。初始学习速率为0.005。在25和35个时期,将学习速率衰减10倍。融合检测的非最大抑制阈值为0.7。融合检测后允许的最大包围盒数为500。
4.2 数据集
- VisionDrone:
一个广泛应用于航空图像检测的数据集。它总共包括10209张航拍图像。其中训练图像6471张,验证图像548张,测试图像3190张。提供了十个类别,注释丰富。图像比例约为2,000×1,500像素。由于无法访问测试数据和评估服务器,所以用验证集进行评估。 - UAVDT:
拥有丰富的航拍图像(23258张训练图像和15069张测试图像),它有三大类,即轿车、卡车和公共汽车。相比VisionDrone,(除了汽车)都有一个更大的尺寸。UAVDT的分辨率约为1,024×540像素。
4.3 评价标准
遵循MS COCO[13]中提出的相同的评估指标。采用AP(平均精度)、AP50、AP75、APsmall、APmedium和APlarge六个评价指标。AP是多个IoU阈值下的平均精度,取值范围为0.50 ~ 0.95,步长为0.05。由于生成的图像裁剪的数量会影响推理速度,作者也在表格中记录图像的数量,以便进行公平的比较。使用“#img”表示在验证集中使用的图像总数(包括原始图像和密度裁剪图)
4.4 定性结果
推理速度:
在GTX 1080 Ti GPU上进行了实验。三个主干网(ResNet 50、ResNet 101和ResNeXt 101)上的推理速度分别为0.29 s/img、0.36 s/img和0.61 s/img。
4.5 消融实验
五、结论
文章的主要贡献有以下三点:
- 首次将密度图引入到航空图像目标检测中,提出了基于密度图的裁剪方法,利用目标之间的空间和上下文信息来提高检测性能;
- 提出了一种有效的算法来生成裁剪图像,而不需要训练额外的深度神经网络;
- 在VisionDrone 和 UAVDT这两个航空数据集上取得了SOTA。
文章主要解决的问题还是航空图像中尺度较小的目标无法检测的问题,从而引入密度图,把原图裁剪为更小的区域,然后放大至原图的大小进行检测,最后将裁剪图的检测结果和原图的检测结果融合,取得了更好的效果,针对的是图片中目标尺度变化较大的问题,对于图片中目标尺度大小基本一致的目标可能提升效果并不大。
版权声明:本文为CSDN博主「勤勤恳恳小码牛」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/wjytbest/article/details/122237477
暂无评论