我自己的原文哦~     https://blog.51cto.com/whaosoft/12386438

一、小目标检测QueryDet

又发现了一个  赶紧搬过来说说 勿怪啊  发现大佬太多 好多人瞬间做个这个 膜拜~ 本人做一些工业检测 会用到 所以关注一下~~ 但还没来及测试~

QueryDet,级联稀疏query加速高分辨率下的小目标检测

论文:https://arxiv.org/abs/2103.09136

代码(已开源):https://github.com/ChenhongyiYang/QueryDet-PyTorch

促进小目标检测的最常见和最有效的方法是使用高分辨率图像或特征图。然而,这两种方法都会导致计算成本高昂,因为计算成本会随着图像和特征大小的增加而成正比增长。

为了两全其美,研究者提出了QueryDet,使用一种新颖的查询机制来加速基于特征金字塔的目标检测器的推理速度。该流程由两个步骤组成没如下图。

首先在低分辨率特征上预测小物体的粗略位置,然后使用由这些粗略位置稀疏引导的高分辨率特征计算准确的检测结果。这样不仅可以收获高分辨率特征图的好处,还可以避免对背景区域进行无用计算。在流行的COCO数据集上,该方法将检测mAP提高了1.0,mAP small提高了2.0,高分辨率推理速度平均提高了3倍。在包含更多小目标的VisDrone数据集上,研究者创建了一个新的状态,同时平均获得2.3倍的高分辨率加速。

02

背景及动机

可以通过缩放输入图像的大小或降低CNN的下采样率以保持高分辨率特征来改进小目标检测,因为它们增加了结果特征图中的有效分辨率。然而,仅仅增加特征图的分辨率会产生相当大的计算成本。几项工作[A unified multi-scale deep convolutional neural network for fast object detection] [Feature pyramid networks for object detection][Ssd: Single shot multibox detector]提出通过重用来自CNN不同层的多尺度特征图来构建特征金字塔来解决这个问题。不同尺度的目标在不同的层次上被处理:大目标倾向于在高层次特征上被检测到,而小目标通常在低层次上被检测到。特征金字塔范式节省了在主干中从浅到深维护高分辨率特征图的计算成本。尽管如此,检测头对低级特征的计算复杂度仍然是巨大的。

例如,在RetinaNet中添加一个额外的金字塔级别P2将带来大约300%的计算量(FLOPs)和检测头的内存成本;因此在NVIDIA 2080Ti GPU上将推理速度从13.6 FPS严重降低到4.85 FPS。

研究者提出了一种简单有效的方法QueryDet,以节省检测头的计算量,同时提高小目标的性能。动机来自两个关键观察:

1)对低级特征的计算是高度冗余的。在大多数情况下,小目标的空间分布非常稀疏:它们只占据高分辨率特征图的一小部分;因此浪费了大量的计算。 

2)特征金字塔是高度结构化的。虽然我们无法准确检测低分辨率特征图中的小物体,但我们仍然可以高度自信地推断出它们的存在和粗略位置。

利用上图两个观察结果的一个自然想法是,我们只能将检测头应用于小目标的空间位置。该策略需要以低成本和稀疏计算在所需的特征图上定位小物体的粗略位置。 

在今天分享中,研究者提出了基于新型查询机制级联稀疏查询(CSQ)的QueryDet,如上图所示。递归地预测低分辨率特征图上小目标(查询)的粗略位置,并将它们用于 指导更高分辨率特征图中的计算。借助稀疏卷积,显着降低了检测头对低级特征的计算成本,同时保持了对小目标的检测精度。请注意,新提出的方法旨在节省空间计算,因此它与其他加速方法兼容,如轻量级主干网、模型修剪、模型量化和知识蒸馏。 

03

新框架

Revisiting RetinaNet

RetinaNet有两部分:一个带有FPN的主干网络,输出多尺度特征图和两个用于分类和回归的检测头。

  • ResNet+FPN:提取图片特征
  • Anchor:边框搜索
  • Class subnet (Focal Loss):预测类别
  • Box subnet:预测边框坐标和大小

P3 head占据了将近一半的FLOPs,而低分辨率功能P4到P7的成本仅占15%。因此,如果想将FPN扩展到P2以获得更好的小目标性能,成本是无法承受的:高分辨率的P2和P3将占据总成本的75%。在下面风分析中,描述了QueryDet如何减少对高分辨率特征的计算并促进推理sp。

Accelerating Inference by Sparse Query

在基于FPN的检测器的设计中,小目标倾向于从高分辨率低级特征图中检测到。然而,由于小目标通常在空间中分布稀疏,高分辨率特征图上的密集计算范式效率非常低。受此观察的启发,研究者提出了一种从粗到细的方法来降低低级金字塔的计算成本:首先,在粗略特征图上预测小物体的粗略位置,然后集中计算精细特征图上的相应位置。这个过程可以看作是一个查询过程:粗略的位置是查询键,用于检测小目标的高分辨率特征是查询值;因此称提出的方法为QueryDet。方法的整个流程如下图所示。

Relationships with Related Work

请注意,尽管新提出的方法与使用RPN的两阶段目标检测器有一些相似之处,但它们在以下方面有所不同:

  1. 新方法仅在粗略预测中计算分类结果,而RPN同时计算分类和回归
  2. RPN是在所有级别的全特征图上计算的,而QueryDet的计算是稀疏和选择性的
  3. 两阶段方法依靠像RoIAlign或RoIPooling这样的操作来将特征与第一阶段候选对齐。

尽管如此,它们并没有在新提出的方法中使用,因为研究者在粗略预测中没有框输出。值得注意的是,提出的方法与基于FPN的RPN兼容,因此可以将QueryDet合并到两阶段检测器中以加速提案生成。

04

实验及可视化

Comparison of accuracy (AP) and speed (FPS) of our QueryDet and the baseline RetinaNet on COCO mini-val set

Comparison of detection accuracy (AP) and speed (FPS) of our QueryDet and the baseline RetinaNet on VisDrone validation set

The speed and accuracy (AP and AR) trade-off with input images with different sizes on COCO and VisDrone. The trade-off is controlled by the the query threshold σ. The leftmost marker (the ▲ marker) of each curve stands for the result when Cascade Sparse Query is not applied. QD stands for QueryDet and RN stands for RetinaNet

Visualization of the detection results and the query heatmap for small objects of our QueryDet on MS-COCO and VisDrone2018 datasets. We remove class labels for VisDrone2018 to better distinguish the small bounding boxes

二、小目标检测x1

之前也说过几个关于小目标检测的

小目标检测是计算机视觉领域中的一个极具挑战性的问题。随着深度学习和计算机视觉领域的不断发展,越来越多的应用场景需要对小目标进行准确的检测和识别。本文将从小目标的定义、意义和挑战等方面入手,全面介绍小目标检测的各种解决方案。

定义

小目标检测广义是指在图像中检测和识别尺寸较小、面积较小的目标物体。通常来说,小目标的定义取决于具体的应用场景,但一般可以认为小目标是指尺寸小于 像素的物体,如下图 COCO 数据集的定义。当然,对于不同的任务和应用,小目标的尺寸和面积要求可能会有所不同。

在 COCO 数据集中,针对三种不同大小(small,medium,large)的图片提出了测量标准,其包含大约 41% 的小目标(area<32×32), 34% 的中等目标(32×32<area<96×96), 和 24% 的大目标(area>96×96)。其中,小目标的 AP 是很难提升的!

意义

小目标检测的意义在于它可以提高技术的应用范围,同时可以帮助大家更好地理解图像中的细节信息。此外,小目标检测其实在我们日常生活中的许多领域均有广泛的应用,例如交通监控、医学影像分析、无人机航拍等。举个例子:

在交通监控领域,小目标检测可用于识别交通信号灯、车牌等。

在医学影像分析领域,小目标检测可用于识别微小的肿瘤细胞等。

在自动驾驶领域,小目标检测可用于识别微小的障碍物,以弥补激光雷达难以探测的窘况。

挑战

做过检测任务的同学应该很清楚这一点,那便是小目标检测其实一直是一个极具挑战性的问题。下面随便举几个小例子给大家感受下:

小目标通常在图像中占据很小的区域,深度学习算法其实很难提取到有效的信息,更别提传统的特征提取方法。举个例子,对于一个室内会议场景,假设我们的摄像头装在左上角的上方区域,如果此时你训练完一个检测模型应用上去,会观察到在远离镜头的对角线区域其检测效果相对其它区域来说一般会差很多的,特别容易造成漏检和误检。

小目标并不具备常规尺寸目标的纹理、颜色等丰富的细节特征,这使得小目标的检测更加困难,而且容易被模型误认为是“噪声点”。

小目标其实有时候不好定义,以最简单的行人和车辆为例,不妨看下面这张图片:

大致划分了下,其中绿色框范围的目标其实是很容易标注的,主要是红色方框范围内的目标。大部分目标像素占比很小,标也不是,不标也不是,当然你可以采用ignore标签不计算损失或者干脆直接将这块区域mask掉,但现实就是很多情况下这种“小目标”其实很大概率会被漏打标,太多的话很容易造成训练曲线“抖动”。

解决方案

今天,让我们重点来聊聊如何解决小目标检测的难题。大家应具备批判性思维,根据实际情况针对性的采取合适的方式。

需要注意的是,双阶段目标检测算法由于存在RoI Pooling之类的操作, 因此小目标的特征会被放大,其特征轮廓也更为清晰,因此检出率通常也会更高。但本文还是主要围绕发展比较成熟的单阶段目标检测算法展开。

增大输入图像分辨率

图像分辨率,当之无愧是最大的罪魁祸首,想象一下,一张图像如果分辨率太小,假设我们就下采样32倍,理论上小于这个像素的目标信息基本就会完全丢失。因此,当处理小目标检测时,由于目标物体尺寸过小,通常需要将输入图像的分辨率提高,以便更好地捕捉目标的细节。通过提升输入图像分辨率,可以提高小目标检测的准确性和召回率,从而更好地识别和跟踪目标物体。

增大模型输入尺寸

图像缩放是另一种常用的解决方案,同样可以提高小目标检测的精度。常见的做法便是直接开启“多尺度训练”,设置比较大的尺寸范围。不过,增大模型输入尺寸可能会导致模型计算量的增加和速度的降低。因此,大家在使用时需要权衡精度和效率之间的平衡。通常需要根据实际需求和可用资源进行调整,以找到最佳的模型输入尺寸。

同样地,在推理时也可以视情况开启测试时增强Test Time Augmentation, TTA,特别是打比赛的时候。

特征融合

多尺度特征融合

由于小目标的尺寸较小,其特征信息往往分布在图像的多个尺度中,因此需要在多个尺度的特征图中进行融合,以提高模型对小目标的感知能力。常见的多尺度特征融合方法包括 Feature Pyramid Networks, FPN 和 Path Aggregation Network, PAN 等。

Extended Feature Pyramid Network for Small Object Detection

长跳跃连接

长跳跃连接是指将不同层级的特征图进行融合的一种方法,可以帮助模型更好地捕捉不同层级的特征信息。众所周知,浅层特征图的细节信息丰富但语义信息较弱,深层特征图则与之相反。因此,在小目标检测中,可以将低层级的特征图和高层级的特征图进行融合,以增强对小目标的定位能力。

注意力机制

注意力机制是一种能够将模型的注意力集中到重要区域的技术,可以通过对特征图进行加权处理,将更多的注意力集中到小目标所在的区域,从而提高对小目标的检测能力。常见的注意力机制包括SENet、SKNet等。

数据增强

数据增强是在保持数据本身不变的前提下,通过对数据进行随机变换来增加数据样本的数量和多样性,从而提高模型的泛化能力和鲁棒性。对于小目标检测任务,数据增强可以通过以下几种方式来解决:

尺度变换

对于小目标而言,其尺寸往往较小,因此可以通过对原始图像进行缩放或放大的操作来增加数据样本的尺度变化。例如,可以将原始图像缩小一定比例,从而得到多个尺寸较小的图像样本。

随机裁剪

对于包含小目标的图像,在不改变目标位置的情况下,可以通过随机裁剪的方式得到多个不同的图像样本,以增加数据的多样性。此外,可以使用非矩形的裁剪方式,例如多边形裁剪,来更好地适应小目标的不规则形状。

高级组合

这一块大家伙最熟悉的可能是 YOLO 中的 Mosaic 增强,其由多张原始图像拼接而成,这样每张图像会有更大概率包含小目标。此外,我们还可以通过诸如 Copy-Paste 的办法将各类小目标充分的“复制-黏贴”,从而增加小目标的“曝光度”,提升他们被检测的概率。

大图切分

Tiling

Tiling是一种对大图进行切分的有效预处理操作,上图为在Roboflow平台上的演示。通过tile可以有效地让目标检测网络更好的聚焦在小物体上,同时允许我们保持所需的小输入分辨率,以便能够运行快速推断。不过需要注意的是,在推理时也理应保持输入的一致性。

SAHI

Tiling 算是比较老旧的技术,目前笔者强烈推荐的还是Slicing Aided Hyper Inference, SAHI,即切片辅助超级推理,是一个专用于小目标检测的推理框架,理论上可以集成到任意的目标检测器上,无需进行任何微调。该方法目前已被多个成熟的目标检测框架和模型集成进去,如YOLOv5、Detectron2和MMDetection等。

损失函数

加权求和

这个非常好理解,就是我们可以自行定义小目标检测的尺寸,由于我们有 GT,因此在计算 Loss 的时候可以人为地对小目标施加更大的权重,让网络更加关注这部分。

Stitcher

Stitcher是早几年出的产物,其出自《Stitcher: Feedback-driven Data Provider for Object Detection》一文。作者通过统计分析观察到,小目标之所以检测性能很差是因为在训练时对损失的贡献很小(要么漏检要么漏标)。因此,文章中提出了一种基于训练时动态反馈的机制,即根据计算出来的损失,自动决定是否要进行图像拼接的操作。

其它

下面简单整理一些有代表性的小目标检测文章。

2023

TinyDet: Accurate Small Object Detection in Lightweight Generic Detectors

2022 

2020

  • Small-Object Detection in Remote Sensing Images with End-to-End Edge-Enhanced GAN and Object Detector Network

2019

  • Augmentation for small object detection

三、小目标检测x2

做小目标检测的正道还是那些只有小物体的任务?小目标检测还有哪些有价值的可深入的研究方向?本文讲述了在研究小目标检测的心路历程以及对小目标检测近年来的发展现状的看法。

当时COCO sota还只有61.0 AP,而现在已经到了66.0 AP,小物体的AP_S也从44.0 AP提升到了48.5 AP;另外当时还只是流行把Transformer当backbone,而如今DETR-based方法已经屠榜。

正如作者上篇文章所说的,一开始是坚定地朝着攻克通用小目标检测难题(COCO)的方向前进的,在对COCO中的小物体一通数据分析后,里面大量人眼都很难识别的hard case让我感到隐隐的绝望,发现自己太小看COCO了。经过一段时间的迷茫,我突然想着能不能去COCO数据集原文找灵感,发现了下图中的这句话:

当时觉得瞬间找到了方向,既然COCO的初衷就是用context来解小物体,那我就先朝着这条路走走试试。

于是对Context-based方法的探索就开始了,同时也在不知不觉中掉入一个大坑。Context-based方法主要有用self-attention建模物体关系的Relation Network[1]以及用图卷积神经网络GCN建模物体关系的SGRN[2]和Reasoning-RCNN[3]两大类。当时觉得Relation Network在2018年就被提出,改进空间不大,用GCN或许还有机会,于是开始着手复现SGRN。SGRN的核心思想是将proposal视作一个个物体,proposal的RoI特征视作物体特征,然后将proposal特征当作节点特征,proposal的中心点位置当作节点坐标,利用GCN建模物体之间的语义关联和空间关联。一开始我没有源码,但看论文的效果那么好,就头铁从零开始撸,整体框架搭起来倒是很快,只是一些细节文章里没有写清楚,比如GCN聚合邻近节点信息时权重是否做了归一化,只能自己不断尝试(PS:如非必要,千万不要在无源码的情况下复现AI论文,一是论文可能造假,二是很多技术细节论文里是不会写的,而这些细节的缺失往往是致命的)。

SGRN框架图

结果经过一个月的尝试,怎么都达不到论文里的效果,让我大受打击,疯狂怀疑自己的能力,于是通过某渠道直接找到了作者(一开始连发几封邮件未回),要到了源码。对比自己的代码,确实有些细节没考虑,于是开始用源码训练,发现提升确实是有的,但是可视化出来的物体关系图完全不像图中那样可解释,那么提升来自于哪里呢?一番研究后,我大受震撼,Baseline是Faster R-CNN,而源码是Faster R-CNN后再加一个relation reasoning stage,相当于three-stage模型,实际是直接用的Cascade R-CNN+GCN,经过实验发现性能的绝大部分提升是来源于Cascade R-CNN本身,因为即使我去除了GCN的relation reasoning过程,性能也提升了很多,而GCN的relation reasoning提升非常小。这意味着论文实际的baseline是Cascade R-CNN,但论文完全没有提到这点。。。并且,我发现HTD[4](也使用了GCN做relation reasoning)的作者在复现SGRN时和我发现了一样的问题,我瞬间觉得人生都灰暗了。。。

上述事件持续了几个月事件,一边是论文结果无法复现,一边是导师要结果,觉得是我复现问题,是我研究生期间极其焦虑、痛苦的一段时期,也彻底粉碎了读博的念头,最终的结果是迫于毕业的压力,随便找了个简单的子任务重头开始做小目标检测。好在失败的研究经历也算是有了一定的研究基础,加上华为的作息,用两个多月魔改现有方法水了一篇论文。论文刚好在过年那天被接收,我记得看到邮件的那刻,我蹦跳着下楼告诉爸妈和我哥,兴奋地喊着“我毕业了!我毕业了!”,然后开心地举杯庆祝,心里悬着的石头终于落下。

回想这失败的学术生涯,除了自己本身的学术天赋不足外,造成此种结果的另一个重要原因是小目标检测这个问题太难了。而选择在COCO这种多尺度数据集上做小目标检测更是一个愚蠢的决定,因为大、小物体是相互影响的,你关注小物体,那么大物体便可能因为缺少关注而损失性能,这一点在QueryDet[5](第一版论文,见下图)上也有体现,我自己做实验时也发现过这种现象。这也是为什么在COCO上做小目标检测的少之又少,因为你要提升小物体AP,且要保持大中物体AP不掉,那么意味着你的总体AP要提升,那么既然同样是要提升总体AP,我从全局地去优化而不是只从最难的小物体去切入不是更简单吗?这也是COCO上SOTA方法的思路,提升整体AP,小物体AP的提升是自然而然的,而不用特地发明方法提升小物体AP。当然值得注意的是,流行的Transformer类方法并不太适合检测小物体,主要原因是小物体检测需要高分辨率特征,而这会使得self-attention的计算量爆炸,虽然也有一些缓解方法,但目前无法从根本上解决该问题。

QueryDet的实验结果,AP_S比过了其他方法,但AP_M和AP_L却比不上

做小目标检测的正道还是那些只有小物体的任务,例如交通标志检测、卫星图像检测,或者自己发布新的benchmark,如TinyPerson[6]、AI-TOD[7],然后针对数据集特性,设计方法达到SOTA(RFLA[8]和DotD[9]均是如此)。自己一直关注的RFLA作者便是走的后面那条路,他是我见过的唯一做小目标检测能频繁发顶会的,研究思路很灵活,最新的工作已经转到做旋转小目标检测了,且不论他的工作对领域的实际贡献如何,至少认为这是在学术上做小目标检测的一条可行之路,大家可以多关注他。

SHAI方法,将高清图crop分别检测

但是必须要指出的是,学术界在小目标检测的进展已经停滞很久了,查查每年顶会的小目标检测相关论文就知道了,当然这也和深度学习的整体饱和大趋势有关。另外,小目标检测是个很有应用价值的方向,特别是在落地时,基本上都是卡在小目标这种corner case上(例如自动驾驶里的红绿灯检测、远处车辆检测),所以我上一篇文章才会有那么多读者关注。

从个人经验来看,在那么多小目标检测方法中,最有用的还是数据增广(例如Stitcher[10]、copy-paste[11])、放大输入图片(例如用GAN放大再检测、crop成patch再放大的SAHI方法[12])、使用高分辨率的特征(例如QueryDet[5]),或者针对极小目标(<=16*16 pixel)的检测,设计合适的标签分配方法(例如RFLA[8]、DotD[9]),以让小目标有更多的正样本。这些方法的共性就是简洁,正所谓大道至简,它们背后的思想都非常朴素,无非是增加小目标的训练样本数量(数据增广)、放大图片或特征使小物体变成大物体(放大输入图片或使用高分辨率特征)、增加小目标的正样本数量(合适的标签分配方法)

而最花哨却无用的便是利用物体关系来辅助检测小物体一类的方法,其一,大部分小目标检测数据集没有像COCO一样丰富的物体关系可用(比如有读者检测的是朴实无华的小石头);其二,就算可用,现有的AI在关系推理方面的能力以及数据集的规模让模型不足以学习到理想的物体关系,往往最后上帝都不知道模型学到的是什么,并且从COCO上的实验结果来看,性能提升非常有限;其三,这方面已经研究烂了,被学术界验证最有效的用attention建模关系的方法(Relation Network[1]),已经被DETR类方法设为默认配置了。

DETR Decoder中的multi-head self-attention本质就是在建模物体关系

除了走学术道路,还可以走工程道路-->打比赛。记得上篇文章里有读者问我小目标检测是工程问题还是学术问题,当时我的回答是学术问题,如今我倾向于认为是工程问题,因为对于小目标检测而言,花里胡哨的方法通常都不管用,这意味着不好发论文;管用的方法朴实无华,如放大图片或复制粘贴小物体等等,但难以写成论文。因此你可以尝试去打比赛,不用再因为所谓的创新性束手束脚,十八般武艺齐上就行,能涨点就是好方法,这种比赛通常在各类比赛平台上都能找到,例如CodaLab最近的Small Object Detection Challenge for Spotting Birds;很久之前Kaggle上的小麦检测大赛;飞桨平台的海上船舶智能检测大赛等等(如果大家有需要的话,我可以花时间整理一篇文章专门讲一些比赛相关的,可以评论留言),比赛打的好的话,也可以利用比赛方案魔改出一篇论文,毕竟有性能了,剩下的就是编故事。自己也是受益于比赛才勉强找到不错的工作,因此建议同领域的读者在发不出顶会的时候,但又想搞算法的话,不要一条路走到黑,尝试尝试打比赛这条路,要不然秋招教你做人。

四、FA-SSD

之前也发过几个小目标检测的 又遇到一个 就发来了~~~ 上下文和注意力机制提升小目标检测-FA-SSD

 论文:https://arxiv.org/pdf/1912.06319.pdf

在各种环境中应用目标检测算法有很多局限性。特别是检测小目标仍然具有挑战性,因为它们分辨率低,信息有限。

有研究员提出了一种利用上下文的目标检测方法来提高检测小目标的精度。该方法通过连接多尺度特征,使用了来自不同层的附加特征作为上下文。研究员还提出了具有注意机制的目标检测,它可以关注图像中的目标,并可以包括来自目标层的上下文信息。实验结果表明,该方法在检测小目标方面的精度高于传统的SSD框架。

下图显示了SSD框架无法检测到小目标时的案例情况。对小目标的检测还有很大的改进空间。

由于低分辨率低,像素有限,小目标检测很困难。例如,通过只看下图上的目标,人类甚至很难识别这些物体。然而,通过考虑到它位于天空中的背景,这个物体可以被识别为鸟类。因此,我们认为,解决这个问题的关键取决于我们如何将上下文作为额外信息来帮助检测小目标。

新框架将从基线SSD开始讨论,然后是研究者提出的提高小目标检测精度的组件。首先,SSD与特征融合,以获取上下文信息,名为F-SSD;第二,带有保留模块的SSD,使网络能够关注重要部件,名为A-SSD;第三,研究者结合了特征融合和注意力模块,名为FA-SSD。

F-SSD: SSD with context by feature fusion

为了为给定的特征图(目标特征图)在我们想要检测目标的位置提供上下文,研究者将其与目标特征层更高层次的特征图(上下文特征)融合。例如,在SSD中,给定我们来自conv4_3的目标特性,我们的上下文特征来自两层,它们是conv7和conv8_2。

虽然新框架的特征融合可以推广到任何目标特征和任何更高的特征。然而,这些特征图具有不同的空间大小,因此研究者提出了如上图所示的融合方法。在通过连接特征进行融合之前,对上下文特征执行反卷积,使它们具有与目标特征相同的空间大小。将上下文特征通道设置为目标特征的一半,因此上下文信息的数量就不会超过目标特征本身。仅仅对于F-SSD,研究者还在目标特征上增加了一个额外的卷积层,它不会改变空间大小和通道数的卷积层。

此外,在连接特征之前,标准化步骤是非常重要的,因为不同层中的每个特征值都有不同的尺度。因此,在每一层之后进行批处理归一化和ReLU。最后通过叠加特征来连接目标特征和上下文特征。

A-SSD: SSD with attention module

如上图,它由一个trunk分支和一个mask分支组成。trunk分支有两个残差块,每个块有3个卷积层,如上图d所示;mask分支通过使用残差连接执行下采样和上采样来输出注意图(图b为第一阶段和图c为第二阶段),然后完成sigmoid激活。残差连接使保持下采样阶段的特征。然后,来自mask分支的注意映射与trunk分支的输出相乘,产生已参与的特征。最后,参与的特征之后是另一个残差块,L2标准化,和ReLU。                          

FA-SSD: Combining feature fusion and atten- tion in SSD

研究者提出了以上的两个特征的方法,它可以考虑来自目标层和不同层的上下文信息。与F-SSD相比,研究者没有在目标特征上执行一个卷积层,而是放置了one stage的注意模块,如下图所示。

实验

注意力模块的可视化。有些通道关注目标,有些通道关注上下文。conv4_3上的注意模块具有更高的分辨率,因此与conv7上的注意相比,可以关注更小的细节。 

五、小目标检测的基于高斯感受野的标签分配

还是搬运一下啊 先弱弱的道歉 若有雷同纯属巧  求大佬原谅 

来自于 武大&华为提出的RFLA

一种基于高斯感受野的标签分配(RFLA)策略用于微小目标检测。并提出了一种新的感受野距离(RFD)来直接测量高斯感受野和地面真值之间的相似性,而不是使用IoU或中心采样策略分配样本。

考虑到基于IoU阈值和中心采样策略对大对象的倾斜,作者进一步设计了基于RFD的分层标签分配(HLA)模块,以实现小对象的平衡学习。在四个数据集上的大量实验证明了所提方法的有效性。作者的方法在AI-TOD数据集上的AP点数为4.0,优于SOTA。

原文:https://arxiv.org/abs/2208.08738

代码:https://github.com/Chasel-Tsui/mmdet-rfla

微小物体的像素数量极为有限(小于AI-TOD[49]中定义的16×16像素),一直是计算机视觉领域的一个难题。微小目标检测(TOD)是最具挑战性的方法之一,一般的物体检测器通常无法在TOD任务中提供令人满意的结果,这是由于微小物体缺乏鉴别特征。

考虑到微小物体的特殊性,提出了几种定制的TOD基准(如AI-TOD、TinyPerson和AI-TOT-v2),以促进一系列下游任务,包括驾驶辅助、交通管理和海上救援。最近,TOD逐渐成为一个受欢迎但具有挑战性的方向,独立于一般对象检测。

在本文中,作者认为当前的先验盒和点及其相应的测量策略对于微小物体是次优的,这将进一步阻碍标签分配过程。具体来说,作者以单个先验盒和点为例,从分布的角度重新思考它们。

不同先验的示意图如图1的第二行所示,现有先验信息与其相应的测量策略相结合,对于微小物体存在以下问题。

图1.不同标签分配方案的检测结果之间的比较

第一:当特定ground truth与特定先验不重叠时,它们的位置关系无法通过IoU或中心度解决。对于微小对象,通常情况下,真实框与几乎所有的锚框都没有重叠(即IoU=0)或不包含任何锚定点,导致微小对象缺少正样本。

为此,采用启发式方法来保证微小对象的更多正样本。然而,赋值器通常无法基于零值IoU或中心度补偿微小对象的正样本。因此,网络将减少对微小对象学习的关注。

第二,当前先验区域主要遵循均匀分布,并同等对待先验区域内的每个位置。然而,基本上利用先验信息来辅助标签分配或特征点分配过程。

当将特征点的感受野重新映射回输入图像时,有效感受野实际上是高斯分布的。均匀分布先验和高斯分布感受野之间的间隙将导致ground truth和分配给它的特征点的感受野之间不匹配。

为了缓解上述问题,作者引入了一种新的基于高斯分布的先验知识,并建立了一种基于高斯感受野的标签分配(RFLA)策略,该策略更有利于微小对象。

本文的主要贡献

(1)实验表明,当前基于锚和无锚的检测器在微小目标标签分配中存在尺度样本不平衡问题。

(2) 为了缓解上述问题,引入了一种简单但有效的基于感受野的标签分配(RFLA)策略。RFLA很容易取代主流检测器中的标准盒和基于点的标签分配策略,提高了它们在TOD上的性能。

(3) 在四个数据集上的大量实验验证了提出的方法的性能优越性。在具有挑战性的AI-TOD数据集上,引入的方法在推理阶段没有额外成本的情况下显著优于最先进的竞争对手。

方法感受野建模

基于锚的检测器在FPN的不同层上平铺不同尺度的先验框,以辅助标签分配,因此在FPN不同层上检测不同尺度的对象。对于无锚探测器,它们将不同比例范围内的对象分组到不同水平的FPN上进行检测。尽管标签分配策略各不相同,但基于锚和无锚检测器的一个共同点是将适当感受野的特征点分配给不同尺度的对象。

因此,在不设计启发式锚框预设或规模分组的情况下,感受野可以直接用作标签分配的有根据和有说服力的先验。

图2.RFLA的过程

在本文中,作者直接测量有效感受野(ERF)和ground truth区域之间的匹配度,以进行标记分配,从而消除使TOD恶化的盒或点先验。在这项工作中,将每个特征点的ERF建模为高斯分布,先通过以下公式推导出标准卷积神经网络上第n层的理论感受野(TRF),即trn:

感受野距离

获得高斯ERF,关键步骤是测量特征点的ERF与某个ground truth之间的匹配度。阶跃变化的均匀分布不利于ground truth体,还需要将真实值建模为另一个分布。

观察到物体的主体聚集在边界框的中心,作者还将ground truth框(xg、yg、wg、hg)建模为标准的二维高斯分布Ng(µg,∑g),其中每个带注释框的中心点用作高斯的平均向量,半边长的平方用作协方差矩阵,即,

在本文中,作者研究了高斯分布之间的三种典型距离作为感受野距离候选(RFDC)。这些距离测量包括Wasserstein距离、K-L散度和J-S散度。高斯分布之间的J-S散度没有闭式解,在近似其解时将引入大量计算,因此,不使用J-S散度。

Wasserstein距离

Wasserstein距离来自最优运输理论。Wasserstein距离的主要优点是它可以测量两个非重叠分布。通常情况下,ground truth框与大多数在先框和点没有重叠,并且赋值器无法将这些候选ground truth级排序到某个真实值。

因此,可以很容易地说,Wasserstein距离的特性有利于TOD,TOD可以一致地反映所有特征点与某个ground truth盒之间的匹配程度,使赋值器能够根据合理的优先级对微小对象补偿更多的正样本。然而,Wasserstein距离不是尺度不变的,当数据集包含大尺度方差的对象时,它可能是次优的。

Kullback-Leibler散度

Kullback-Leibler散度(KLD)是一种经典的统计距离,用于衡量一种概率分布与另一种概率的差异。KLD在两个二维高斯分布之间具有尺度不变性,并且尺度不变性对检测至关重要。而KLD的主要缺点是,当两个分布的重叠可以忽略时,它不能一致地反映两个分布之间的距离。

因此,本文选择ERF和ground truth之间的KLD作为另一个RFDC。

然后,作者将非线性变换应用于RFDC,并得到归一化值范围在(0,1)之间的RFD,如下所示:

分层标签分配

作者通过分数排序将标签分层分配给微小对象。为了保证任何特征点和任何ground truth之间的位置关系都可以求解,所提出的分层标签分配(HLA)策略建立在所提出的RFD之上。在分配之前,基于ground truth计算特征点和真实值之间的RFD ground truth。

在第一阶段,作者使用特定的真实值对每个特征点的RFD得分进行排序。然后,将ground truth配给具有最高k个RFD分数的特征点,并具有一定的ground truth。最后,得到分配结果r1和已分配特征的对应掩码m。

在第二阶段,为了提高整体召回率并缓解异常值,通过乘以阶段因子β来略微衰减有效半径ern,然后重复上述排序策略,并向每个ground truth补充一个正样本,得到分配结果r2。通过以下规则获得最终分配结果r:

 探测器的应用

所提出的RFLA策略可以应用于基于锚和无锚的框架。为了更快的R-CNN,RFLA可以用来代替标准的锚平铺和MaxIoU锚分配过程。对于FCOS,消除了限制ground truth框内特征点的限制,因为小框只覆盖非常有限的区域,通常比大对象包含的特征点少得多。

用RFLA代替基于点的分配,实现平衡学习。

作者将中心度损失修改为以下公式,以避免梯度爆炸:

实验

如表1所示,可以看出,GIoU不如RFD,因为它无法区分相互包容的盒子的位置,而WD和KLD的性能相当。

表1.不同感受野距离测量方法的比较

作者逐步将RFD和HLA应用到更快的RCNN中。结果列于表2,AP逐步改善,从而验证了个体有效性。

表2.不同设计的影响

在HLA中,作者为ERF设计了阶段因子β,以缓解异常值效应。在表3中,作者保持所有其他参数不变,实验表明0.9是最佳选择。将β设置为较低的值将引入太多的低质量样本。

表3.分级标记赋值器(HLA)中阶段因子β的影响

作者将锚直接建模为高斯分布,计算ground truth之间的RFD得分,然后使用HLA分配标签。结果如表4所示。结果表明高斯先验及其与HLA的结合具有很大的优势。

表4.高斯锚和接受锚

作者将作者的方法与AI-TOD基准上的其他最先进检测器进行了比较。如表5所示,带RFLA的探测器达到24.8 AP,比最先进的竞争对手高出4.0 AP。

表5.AI-TOD的主要结果

图3.快速R-CNN w/HLA中的top k与快速R-CNN基线中的锚定微调之间的比较

作者将标度范围划分为16个区间,如图4所示,并计算分配给不同标度范围中每个ground truth的正样本的平均数量。图4中的观察结果表明现有检测器存在严重的标度样本不平衡问题。

图4.不同检测器的比例样本不平衡问题

AI-TOD数据集的可视化结果如图5所示。当将RFLA应用于更快的R-CNN时,可以大大消除FN预测。

图5.AI-TOD的可视化结果

结论

在本文中,作者指出框和点先验对于TOD不起作用,导致在分配标签时出现比例样本不平衡问题。为此,作者引入了一种新的高斯感受野先验。

然后,作者进一步设计了一种新的感受野距离(RFD),它度量了ERF和ground truth之间的相似性,以克服TOD上IoU和中心性的不足。RFD与HLA策略一起工作,为微小对象获得平衡学习。

在四个数据集上的实验表明了RFLA的优越性和鲁棒性。

六、SCTransNet

本文提出了SCTransNet,它利用多个空间通道交叉Transformer块(SCTB)连接所有编码器和解码器,以预测在网络更深层中目标及其背景的上下文。

红外小目标检测(IRSTD)最近从U形神经模型中获益良多。然而,现有的技术在目标与背景高度相似的情况下,很大程度上忽视了有效的全局信息建模。作者提出了一个空间通道交叉Transformer网络(SCTransNet),它利用空间通道交叉Transformer块(SCTBs)在远程跳跃连接之上,以解决上述挑战。在所提出的SCTBs中,所有编码器的输出与交叉 Transformer 互动生成混合特征,这些特征重新分配给所有解码器,以在完整尺度上有效加强目标与杂波之间的语义差异。具体而言,SCTB包含以下两个关键元素:

  1. 空间嵌入的单头通道交叉注意力(SSCA),用于交换局部空间特征和全级全局通道信息,以消除编码器之间的歧义,促进图像的高级语义关联;
  2. 一个互补的前馈网络(CFN),通过多尺度策略和跨空间通道信息交互,增强特征的判别性,促进有益信息传递。

SCTransNet有效地编码了目标与背景之间的语义差异,从而提升了其内部表征,以准确检测小红外目标。在三个公开数据集NUDT-SIRST、NUAA-SIRST和IRSTD-1k上的大量实验表明,所提出的SCTransNet优于现有的IRSTD方法。代码:https://github.com/xdFai

1 Introduction

红外小目标检测(IRSTD)在交通监控,海上救援,以及目标预警中发挥着重要作用,在这些领域需要将复杂场景背景中的小目标分离出来。由于场景动态性质所带来的挑战,单帧IRSTD已经引起了相当多的研究关注。这个方向上的早期方法采用了图像滤波,人类视觉系统(HVS),以及低秩近似技术,同时依赖于复杂的手工特征设计,经验观察,和模型参数的微调。然而,由于缺乏对整个场景的可靠的高级理解,这些方法表现出较差的鲁棒性。

近期,基于学习的方法因其强大的数据驱动特征挖掘能力而变得更为流行。为了捕捉目标的轮廓并减轻因目标尺寸小而导致的性能下降,这些方法将IRSTD问题视为语义分割任务,而不是传统的目标检测问题。与自动驾驶中的通用目标分割不同,远程感知应用中红外检测系统的成像机制导致图像中的小目标表现出以下特点:

  • 1) 暗淡且小: 由于远程成像,红外目标尺寸小,通常表现出低信杂比,容易沉浸在重噪声和背景杂波中。
  • 2) 无特征: 热成像目标缺乏颜色和纹理信息,不精确的相机对焦可能导致目标模糊。这些因素在设计IRSTD的特征提取技术时提出了特殊挑战。
  • 3) 不确定的形状: 红外目标的尺度和形状在不同场景下变化显著,这使得检测问题变得相当具有挑战性。

为了在复杂背景下识别小型红外目标,已经提出了许多基于学习的方法,其中神经网络的U形结构受到了广泛关注。这些网络包括编码器、解码器和长距离跳跃连接。非对称上下文调制(ACM)网络最初证明了跨层特征融合在保留红外目标特征方面的有效性。这是通过使用非对称的自上而下和自下而上的结构双向聚合高层语义信息和低层细节来实现的。

随后,特征融合策略在红外目标检测任务中被广泛采用。一些最近的方法通过改进跳跃连接,促进有益特征向解码器组件的传递。受到嵌套结构的启发,DNA-Net开发了一个密集嵌套的交互模块,以促进高低 Level 特征之间的逐步互动并自适应地增强特征。此外,还有一些方法专注于开发更有效的编码器和解码器。例如,UIU-Net将较小的U-Net嵌入到U-Net中,以学习目标的局部对比信息,并执行交互式跨注意力(IC-A)进行特征融合。

尽管上述基于卷积神经网络(CNN)的方法取得了满意的结果,但它们缺乏对目标综合属性的编码能力,遗漏了其判别性特征。为了解决这一问题,MTU-Net 采用了一种多级的视觉 Transformer (ViT)-CNN混合编码器,以利用所有编码特征之间的空间相关性来进行上下文信息的聚合。然而,一个简单的空间ViT-CNN混合模块不足以理解图像的全局语义,这会导致高误报率。

为了进一步剖析这个问题,作者在图1(c)-(f)中分别展示了ACM,DNA-Net,UIU-Net和MTU-Net的框架,以及不同解码器 Level 的注意力图的可视化。作者观察到,当现有模型将其注意力集中在高层特征中背景杂波的局部区域时,会发生误报。换句话说,误报通常是由更深层次背景的不连续性建模造成的。作者将这个问题归因于以下三个主要原因:

1) 不同特征层级之间的语义交互并未良好建立。由于红外小目标尺寸较小,其展现的特征有限。多次下采样过程不可避免地导致空间信息的丢失。这极大地影响了网络中层级与层级之间的特征交互,最终导致对全局语义信息的编码能力不足。

2) 特征增强未能弥合编码器和解码器之间的信息差距。编码器的输出特征与解码器的输入特征之间存在语义差距。简单的跳跃连接和密集嵌套模块不足以增强特征对解码器的有利响应,因此使得从红外图像到分割空间的映射关系建立变得具有挑战性。

3) 在更深层次中目标与背景的长距离上下文感知不准确。红外小目标可能与场景背景高度相似。一个强大的检测器不仅要感知到目标的局部显著性,还需要对背景的连续性进行建模。卷积神经网络(CNNs)和普通的ViTs在这方面并不完全具备所需的能力。

为了解决上述问题,作者提出了一个空间通道交叉变换网络(SCTransNet)用于红外小目标检测(IRSTD),旨在在更深层次区分小目标和背景干扰。如图1(g)所示,SCTransNet在原始跳跃连接上增加了多个空间通道交叉变换块(SCTB)(第III-B节),与所有编码器和解码器建立显式关联。具体来说,SCTB由两个组件组成:空间嵌入的单头通道交叉注意力(SSCA)(第III-B1节)和互补的前馈网络(CFN)(第III-B2节)。

SSCA在所有 Level 上应用通道交叉注意从特征维度学习全局信息。此外,在特征协方差计算之前,使用深度卷积进行局部空间上下文混合。这一策略提供了两个优点:

  • 首先,它利用卷积的局部连接性以较小的计算开销突出了局部空间上下文,从而增加了红外小目标的显著性。
  • 其次,它确保在注意矩阵计算过程中隐式捕获全 Level 特征像素之间的上下文化全局关系,从而增强背景的连续性。

在SSCA完成跨层级信息交互之后,CFN通过两个互补的阶段在每一层级上进行特征增强。起初,它使用多尺度深度卷积来增强目标邻域空间响应,并在像素 Level 上汇总跨通道的非线性信息。随后,它通过全局平均池化逐通道估计总的空间信息,并将不同语义模式之间的局部跨通道交互作为注意力图创建。上述策略有两个优点:

  1. 多尺度空间建模可以强调目标与背景之间的语义差异。
  2. 建立局部空间全局通道(LSGC)与全局空间局部通道(GSLC)的互补相关性,可以促进红外图像与语义图之间的接口。

得益于上述结构(图1(g)),SSC-TransNet比其他方法能更好地感知图像语义,从而减少误报。主要贡献如下:

  1. 作者提出了SCTransNet,它利用多个空间通道交叉Transformer块(SCTB)连接所有编码器和解码器,以预测在网络更深层中目标及其背景的上下文。
  2. 作者提出了一个空间嵌入式单头通道交叉注意力(SSCA)模块,以促进所有特征 Level 之间的语义互动并学习图像的长距离上下文相关性。
  3. 作者设计了一种新颖的互补前馈网络(CFN),通过交叉空间-通道信息来增强目标和背景之间的语义差异,弥合编码器和解码器之间的语义差距。

2 Method

这一部分详细阐述了所提出的空间通道交叉变换网络(SCTransNet)用于红外小目标检测。作者在III-A节中首先介绍所提出的SCTransNet的整体结构。随后,在III-B节中,作者详细阐述空间通道交叉变换块(SCTB)的技术细节及其内部结构:空间嵌入的单头通道交叉注意力(SSCA)和互补的前馈网络(CFN)。

Overall pipeline

最后,采用通道域交叉注意力(Channel-wise Cross Attention, CCA)来融合高低层次的特征,随后使用两个CBL块进行解码。

Spatial-channel Cross Transformer Block

近期,像MLP-mixer 和 Poolformer 这样成功的架构都考虑到了在构建上下文信息时空间和通道信息之间的交互。然而,传统的CCT过度关注建立通道信息,而忽略了空间信息在邻近建模中的关键作用。

Iii-B1 Spatial-embedded single-head channel-cross attention

在图3(a)中,考虑到执行层归一化(LN)的五个输入标记和,自监督空间通道注意(SSCA)的启动点是计算单层特征与全层拼接特征之间的局部空间通道相似性,以建立全局语义。

值得注意的是,作者在两个方面与常见的通道交叉注意力机制不同:图像块不包含位置编码,并且作者使用单个头学习注意力矩阵。这些策略将在消融研究 IV-E1 中详细比较其有效性。

Iii-B2 Complementary Feed-forward Network

如图4(a)所示,先前的研究总是将单一尺度的深度可分卷积纳入标准的前馈网络中,以增强局部关注。最近,最先进的多尺度特征网络(MSFN)采用不同核大小的深度可分卷积的两条路径,以增强多尺度表示。然而,上述方法局限于特征表示的局部空间全局通道范式。

实际上,全局空间和局部通道信息(图4(b))同样重要。因此,作者设计了一个复合特征网络(CFN),它结合了两种特征表示的优势。

IV Experiments and Analysis

Evaluation metrics

作者使用几个标准指标将提出的SCTransNet与现有最先进(SOTA)方法进行了比较。

交并比(IoU): IoU是一个像素 Level 的评估指标,定义为:

Experiment settings

数据集: 在实验中,作者使用了三个公共数据集,分别为:NUAA-SIRST,NUDT-SIRST,以及IRSTD-1k,这些数据集分别包含427、1327和1000张图像。作者采用了[22]中的方法来划分NUAA-SIRST和NUDT-SIRST的训练集和测试集,以及[34]中的方法来分割IRSTD-1k。因此,所有的划分都是标准的。

实现细节: 作者采用结合了ResNet-10的U-Net作为检测的主干网络。Patch 嵌入的核大小和步幅大小为16,SCTB的数量为4,在CFN中的通道扩展因子为2.66。SCTransNet在训练时没有使用任何预训练权重,每张图像都经过归一化处理,并随机裁剪成256256的 Patch 。

为了避免过拟合,作者通过随机翻转和旋转来增强训练数据。模型使用Adam优化器进行训练,初始学习率为0.001,并采用余弦退火策略逐渐将学习率降至。批量大小和周期大小分别设置为16和1000。所提出的SCTransNet是在单个Nvidia GeForce 3090 GPU、Intel Core i7-12700KF CPU和32 GB内存上使用PyTorch实现的。训练过程大约耗时24小时。

Baseline 方法: 为了评估SCTransNet的表现,作者将SCTransNet与现有的SOTA IRSTD方法进行了比较。具体来说,作者在NUAA-SIRST、NUDT-SIRST和IRSTD-1k数据集上,将其与六种已确立的传统方法(Top-Hat,Max-Median,WSLCM,TLLCM,IPI,MSLSTIPT)以及七种基于学习的方法(ACM,ALCNet ,RDIAN,DNA-Net,ISTDU,UIU-Net,和MTU-Net)进行了比较。

为了保证公平的对比,作者使用与SCTransNet相同的训练数据集重新训练了所有基于学习的方法,并根据原始论文采用了它们设定的固定阈值。

这些技术的大多数开源实现可以在以下链接找到:https://github.com/XinyiYing/BasicIRSTD 和 https://github.com/xdFai。

Quantitative Results

定量结果展示在表1中。总的来说,基于学习的方法在目标检测准确性和目标轮廓预测方面显著优于传统算法。同时,SCTransNet也优于所有其他算法。在IoU、nIoU和F-measure这三个指标上,SCTransNet在所有三个公开数据集上都明显领先。这表明SCTransNet具有很强的保留目标轮廓的能力,并且能够区分目标与背景之间的像素级信息差异。

作者还注意到,尽管SCTransNet没有获得最佳的和,例如,在NUDT-SIRST中,DNA-Net的只比SCTransNet高0.2,然而作者的目标检测误报率却是DNA-Net的一半以上。这证明SCTransNet在误报和检测精度之间取得了优越的平衡,这一点从显著高的综合指标F-measure可以体现出来。接下来,作者全面地将当前算法与最具有竞争力的深度学习方法,DNA-Net和UIU-Net进行了比较。

表2给出了不同算法在三个数据上的平均指标,作者可以观察到,在最高性能下,SCTransNet拥有可接受的参数,并且优于强大的UIU-Net。

图5展示了各种基于竞争学习算法的ROC曲线。很明显,SCTransNet的ROC曲线优于所有其他算法。例如,通过适当地选择一个分割阈值,SCTransNet在NUAA-SIRST和NUDT-SIRST数据集上实现了最高的检测准确率,同时保持了最低的误报率。

Visual Results

七个代表性算法在NUAA-SIRST、NUDT-SIRST和IRSTD-1k数据集上的定性结果在图6和图7中给出。其中,传统的算法如Top-Hat和TTLCM常常产生大量的误报警和漏检。此外,即使在目标被检测到的情况下,其轮廓也常常不清晰,这阻碍了对目标类型的进一步准确识别。

在学习型算法中,SCTransNet实现了精确的目标检测和有效的轮廓分割。如图6(2)所示,SCTransNet成功地区分了两个位置相近的目标,而其他深度学习方法往往将它们合并为一个目标。这表明SCTransNet准确地区分了图像中的每个元素。

在图6(d)中,只有SCTransNet准确地从山脉中分离出无人机的形状。这是因为SCTransNet不仅学习了目标的特征,还构建了关于背景的高级语义信息,从而准确地捕捉到了背景的整体连续性。在图6(f)中,除了当前方法和DNA-Net外,其余方法在草地上的石头上产生了误报警。这可以归因于它们仅构建局部对比度信息,并且没有在图像上建立远距离依赖的限制。

E. Ablation Study

在这一部分,作者逐步将深度监督(DS)、SSCA、CFN和CCA模块整合到 Baseline UNet-Res10中,以验证上述模块对于红外小目标检测的有效性。结果展示在表4中。作者观察到,随着所提及模块的加入,算法性能持续提升。特别是SSCA模块显著提高了算法的IoU、IoU和F-measure值,分别提升了4.66%、4.93%和2.87%。这有效地证明了目标全层次信息建模的有效性。接下来,作者将深入讨论所提出的SSCA和CFN模块,并将采用的CCA模块与其他在IRSTD中实现的特征融合方法进行比较。

V-B1 Impact of SSCA Block

为了证明所提出的选择性通道变换块(SCTB)的有效性,作者展示了多头交叉注意力(MCA)以及三种网络结构变体:带有位置编码的SSCA(_SSCA w PE_)、带有多头的SSCA(_SSCA w MH_)以及不带空间嵌入的SSCA(_SSCA w/o SE_)。

SSCA w PE:在块嵌入阶段,作者引入位置编码。为了适应不同大小的测试图像,作者采用插值方法来缩放位置编码矩阵,确保算法的正常运作。

SSCA w MH:作者使用典型的多头交叉注意力机制来替代SSCA中的单头交叉注意力机制,以验证单头策略在提取红外小目标有限特征方面的有效性。

无SE的SSCA:为了验证局部空间信息编码的有效性,作者在SCTB中移除了在QKV矩阵生成过程中的深度卷积。

如表5所示,SSCA在三个数据集上的IoU、IoU和F-measure值均高于MCA和变体_SSCA w PE_。这表明SCTransNet可以通过全面的信息交互比MCA更好地感知小目标和复杂背景之间的信息差异。这也说明,绝对位置编码不适合IRSTD任务。这是由于在可变大小图像输入中位置嵌入矩阵的缩放,导致小目标位置编码信息不准确,从而影响目标像素的预测。

与SSCA相比,_SSCA w MH_ 在SIRST-1K数据集上的IoU、IoU和F-measure值分别下降了1.15%、1.52%和0.73%。这是因为多 Head 策略复杂化了红外小目标特征映射空间,这对于从特征有限的目标中提取信息相当不利。因此,在SCTransNet中,作者为IRSTD使用了单 Head 注意力。

比较SSCA及其变体_SSCA w/o SE_,作者发现局部空间嵌入可以显著提高在三个公共数据集上红外小目标检测的性能。图8中展示的可视化图进一步说明了这种策略的有效性。这归功于局部空间嵌入在深层中捕捉目标的具体细节和背景潜在空间相关性的能力。因此,这种方法减少了漏检的情况,并提高了检测过程的置信度。

V-B2 Impact of CFN Block

前馈网络(FFNs)被用于加强特征内的信息相关性并引入非线性激化以丰富特征表示。在本节中,作者基于SCTransNet使用了五种不同的FFN模型来与所提出的CFNs进行比较。如图9所示,作者使用了典型的FFN(用于图像分类的ViT),在局部空间内嵌入的LeFF(用于图像恢复的Uformer),基于门控卷积的GDFN(用于图像恢复的Restormer),基于多尺度深度卷积的MSFN(用于图像去雨的Sparse transformer),以及不带全局空间和局部通道模块的变体CFN(_CFN w/o GSLC_)。

如表6所示,LeFF在指标上略优于FFN,这表明在前馈神经网络中采用的局部空间信息聚合对于红外小目标检测(IRSTD)是有效的。因为门控卷积倾向于将红外小目标视为噪声并将其滤除,这就导致了GDFN的检测准确性较低。作者还发现,除了CFN方法之外,MSFN优于所有方法,这证明了多尺度结构在交互空间信息方面比单尺度结构具有更强的能力。最后,作者观察到变体_CFN w/o GSLC_的性能不如MSFN。

然而,当作者引入GSLC模块时,CFN在NUAA和NUDT数据集上达到了IoU和nIoU的最优值。此外,网络的参数和计算复杂性几乎保持不变,这证明了本文提出的互补机制对于IRSTD任务的有效性和实用性。如图10所示,在互补机制的帮助下,网络能更有效地增强红外小目标,并在建筑和丛林背景中抑制杂波,从而提高了目标检测的准确性。

V-D3 Impact of CCA Block

正如第二节A部分提到的,跨层特征融合可以促进增强目标信息的保持。在本节中,作者利用三种来自不同IRSTD方法的跨层特征融合结构,即ACM、AGPC和AFFPN,来替换SCTransNet中使用的CCA模块。这种替换产生了变体结构,分别为C.ACM、C.AGPC和C.AFFPN。如表7所示,结果表明,SCTransNet在NUAA和NUDT数据集上获得了最高的IoU和nIoU值,同时具有最低的模型参数和计算复杂度。这展示了作者所使用的CCA的有效性。

Robustness of SCTransNet

在实际的红外检测系统中,焦平面阵列(FPN)的非均匀响应可能导致红外图像中的条纹噪声。这对红外STD方法的噪声免疫性和泛化能力提出了挑战。图11显示了带有真实条纹噪声的红外图像在各种检测方法下的视觉效果。很明显,噪声破坏了目标局部邻域信息。

在图11(1)中,只有SCTransNet准确检测到两个目标,而其他方法出现漏检和误报。在图11(2)中,条纹图像中还存在着一块盲元,这干扰了对建筑物语义的理解。因此,ACM、RDIAN和MTU-Net在盲元周围产生了误报。能够明确建立关于目标和背景的完整层次上下文信息,正是SCTransNet更为鲁棒的原因所在。

V Conclusion

在本文中,作者提出了一种用于红外小目标检测的空域-通道交叉Transformer网络(SCTransNet)。SCTransNet利用空域-通道交叉Transformer块建立编码器和解码器特征之间的关联,以预测更深网络层中目标和背景的上下文差异。作者引入了一种空间嵌入的单头通道交叉注意力模块,它通过局部空间特征与全局全层次通道信息的交互,建立目标和背景之间的语义相关性。作者还设计了一个互补的前馈网络,该网络采用多尺度策略并交叉空域-通道信息,以增强目标和背景之间的特征差异,从而有效促进将红外图像映射到分割空间。作者对三种公共数据集上方法的全面评估显示了所提技术有效性和优越性。

七、小目标检测的一些问题,思路和方案

对小目标检测进行了分析,并结合已有的方法给出了一些思路。

机器学习正越来越多地进入我们的日常生活。从个人服务的广告和电影推荐,到自动驾驶汽车和自动送餐服务。几乎所有的现代自动化机器都能“看”世界,但跟我们不一样。为了像我们人类一样看到和识别每个物体,它们必须特别地进行检测和分类。虽然所有现代检测模型都非常擅长检测相对较大的物体,比如人、汽车和树木,但另一方面,小物体仍然给它们带来一些麻烦。对于一个模型来说,很难在房间的另一边看到手机,或者在100米之外看到红绿灯。所以今天我们要讲的是为什么大多数流行的目标检测模型不擅长检测小目标,我们如何提高它们的性能,以及其他已知的解决这个问题的方法。

原因

所有现代目标检测算法都是基于卷积神经网络的。这是一种非常强大的方法,因为它能够创造一些低级的图像抽象,如线,圆圈,然后将它们“迭代地组合”成我们想要检测的目标,但这也是它们难以检测小目标的原因。

上面你可以看到一个通用的图像分类神经网络的插图。我们最感兴趣的是隐藏层部分。如你所见,这个网络有许多卷积的组合,然后是一个池化层。许多目标检测网络,如YOLO, SSD-Inception和Faster R-CNN也使用这些,而且使用得相当多。将图像的分辨率从600×600降低到约30×30。由于这个事实,他们在第一层提取的小目标特征(一开始就很少)在网络中间的某个地方“消失”了,从来没有真正到达检测和分类步骤中。我们可以尝试一些方法来帮助模型更好地查看这些目标,但是在改进性能之前,让我们先看看它现在的状态。

目前流行的目标检测器的性能

论文SOD-MTGAN在COCO数据集上进行实验并收集了2016年的测试结果。+++表示F-RCNN的特殊训练过程。

一些很小改动去提升小目标检测的方法

使用Focal loss

如果你有很多类要检测,一个最简单的方法来提高对小物体和难以检测的类的检测是在训练神经网络的过程中使用Focal loss。这里的主要直觉是,这种损失对网络的“惩罚”不是对它已经可以很好地检测到的类别进行错误分类,而是对它现在有问题的类别进行更多分类。因此,为了进一步最小化损失函数,权值将开始以这样一种方式改变,使网络更好地挑选困难的类别。这很容易从主要论文提供的图中看到:

将图像分成小块

我们自己也遇到过模型不能检测到相对较小的物体的问题。任务是检测足球运动员和比赛场上的足球。游戏的分辨率是2K,所以我们有很多细节。但我们用来检测玩家的模型的输入分辨率要小得多——从300×300到604×604。所以,当我们把图像输入网络时,很多细节都丢失了。它仍然能够找到前景中的球员,但既没有球也没有球员在球场的另一边被检测到。因为我们有一个大的输入图像,我们决定先尝试我们能想到的最简单的解决方案 —— 把图像分割成小块,然后对它们运行检测算法。而且效果很好。你可以在下面看到运行测试的结果。

虽然该模型的FPS大幅下降,但它给了该模型在玩家检测上一个非常好的准确性提升。另一方面,球仍然是个问题。稍后我们将更深入地探讨我们是如何解决它的。

利用图像的时间特性

如果我们有一个来自静止摄像机的视频,我们需要检测它上面的移动物体,比如足球,我们可以利用图像的时间特性。例如,我们可以做背景减法,或者仅仅使用后续帧之间的差异作为一个(或多个)输入通道。所以,我们可能有3个RGB通道和一个或多个额外的通道。这确实让我们改变了一些网络的输入,但仍然不是很多。我们所需要改变的只是第一个输入层,而网络的其他部分可以保持不变,仍然可以利用整个架构的力量。

这一变化将预示着网络将为移动目标创造更“强大”的特性,而这些特性不会消失在池化和大stride的卷积层中。

改变anchor大小

目前的一些探测器使用所谓的“锚”来探测物体。这里的主要直觉是通过明确地向网络提供一些关于物体大小的信息来帮助网络检测物体,并在图像中每个预定义的单元格中检测几个物体。

因此,改变锚点以适应你的数据集是一个很好的主意。对于YOLOv3,有一种简单的方法可以做到这一点。这里:​​https://github.com/AlexeyAB/darknet#how-to-improve-object-detection你将发现一系列改进YOLO体系结构检测的方法。​

为小目标检测定制模型

上面描述的方法很好,但远不是最好的,如果你使用专为寻找小目标而设计的体系结构,你很可能会获得更好的结果。所以,让我们开始吧。

特征金字塔网络 (FPN)

由于其有趣的结构,这些类型的网络在检测小目标方面表现得相当有效。虽然像SSD和YOLOv3这样的网络也检测不同尺度的目标,但是只使用了这些尺度的信息,即所谓的金字塔特征层,而FPN建议将高层特征向下传播。这一方法“丰富”了抽象的底层,并具有更强的语义特征,这些特征是网络在其头部附近计算出来的,最终帮助探测器拾取小物体。这种简单而有效的方法表明,可以将目标检测数据集的总体平均精度从47.3提高到56.9。

Finding Tiny Faces

这篇做了大量的工作和研究。我强烈建议你阅读全文:https://arxiv.org/pdf/1612.04402.pdf,但我们在这里总结一下:

上下文很重要,利用它更好地找到小物体

  • 建立多个不同尺度的网络成本高,但效果好
  • 如果你想要高精度,区域建议仍然是一个好方法
  • 查看你的骨干网络做预训练的数据集,然后尝试缩放你的图像,使你需要检测/分类的目标的大小匹配那些预训练的数据集。这将减少训练时间和并得到更好的结果。检测大小为20×45的目标,使用同样大小的kernel可能并不一定是最有效的。将图像放大两倍并使用40×90的kernel,就可能真正提高性能。大物体的情况则相反。

F-RCNN的改进

因为在几乎所有你看到的关于网络之间的速度/准确性比较的图表中,F-RCNN总是在右上角,人们一直在努力提高这种体系结构的速度和准确性。我们将简要看一下不同的改进方法,以提高其准确性。

Small Object Detection in Optical Remote Sensing Images via Modified Faster RCNN

在本文中,作者做了几件事。首先,他们测试了不同的预训练骨干网络用于F-RCNN的小目标检测。结果表明,ResNet-50的效果最好。他们已经选择了最适合他们测试网络的数据集的最佳锚尺寸。此外,就像之前关于寻找小人脸的论文一样,使用物体周围的背景也显著有助于检测。最后,他们采用了从高到低结合特征的FPN方法。

然而,架构并不是他们唯一改变和创新的东西。训练过程也得到了改进,并对训练结果产生了很大的影响。第一个变化是为训练平衡数据集的特定方式。他们通过多次处理一些图像来平衡数据集,而不是让它保持原样,然后调整损失函数来进行均衡类别的学习。这使得每个时代的阶级分布更加均匀。他们改变的第二件事是添加了一个随机旋转。因此,它们不是将图像旋转90或180度,而是将图像旋转一个随机生成的角度,例如13.53。这需要重新计算边界框,你可以在原始论文中看到公式。

Small Object Detection with Multiscale Features

本文作者也使用Faster-RCNN作为主要网络。他们所做的修改与FPN的想法相似 —— 将高层的特征与低层的特征结合起来。但是,他们没有迭代地组合层,而是将它们连接起来,并对结果运行1×1卷积。这在作者提供的体系结构可视化中得到了最好的体现。

在结果表中,他们显示,与普通的Faster-RCNN相比,这种方法使mAP增加了0.1。

SOD-MTGAN: Small Object Detection via Multi-Task Generative Adversarial Network

首先,在读到这种方法的名称后,你可能会想:“等等,使用GAN来检测目标?”。但请耐心等待,这种方法的作者做了一件相当聪明的事情。你可能之前就想到过:“如果物体都很小,为什么我们不放大它们呢?”简单地使用插值将图像放大的问题在于,对于原来的5×5的模糊的像素,我们将得到10×10(或20×20,或任何你设置的倍增因子)甚至更模糊的像素。这在某些情况下可能有所帮助,但通常情况下,这以处理更大的图像和更长时间的训练为代价,提供了相对较小的性能提升。但是如果我们有一种方法可以放大图像同时保留细节呢?这就是GANs发挥作用的地方。你可能知道,它们被证明在放大图像时非常有效。所谓的超分辨率网络(SRN)可以可靠地将图像缩放到x4倍,如果你有时间训练它们并收集数据集的话,甚至可以更高。

但作者们也不仅仅是简单地使用SRN来提升图像,他们训练SRN的目的是创建图像,使最终的检测器更容易找到小物体,检测器与生成器一起训练。因此,这里的SRN不仅用于使模糊的图像看起来清晰,而且还用于为小物体创建描述性特征。正如你在之前的图中看到的,它工作得很好,提供了一个显著的提高准确性。

总结

  • 小目标检测仍然不是一个完全解决的问题,
  • 上下文问题
  • 放大图像是个好主意
  • 结合不同层的输出
  • 检查预训练网络的数据集,更好地评估其性能和利用它。

英文原文:​​https://medium.datadriveninvestor.com/small-objects-detection-problem-c5b430996162​​​

八、RGBT-Tiny

国防科大提出RGBT-Tiny数据集与SAFit指标,推动小目标检测技术发展

在无人机监控、自动驾驶、夜间搜救等场景中,小目标检测(如远处行人、微型无人机)一直是技术难点——目标尺寸小、背景干扰多、光照条件复杂。

现有数据集多聚焦单一模态(可见光或红外成像),且目标尺寸偏大、场景单一,难以满足实际需求,针对可见光-红外双模态(Visible-Thermal, RGBT)小目标检测的研究却鲜有突破。

为了填补这一空白,国防科技大学团队最新发布RGBT-Tiny基准数据集SAFit评价指标,填补领域空白,为RGBT小目标检测提供了一个全新的基准和评估工具。

  • 项目地址:https://github.com/XinyiYing/RGBT-Tiny
  • 论文链接:https://doi.org/10.1109/TPAMI.2025.3544621
  • 论文标题:Visible-Thermal Tiny Object Detection: A Benchmark Dataset and Baselines

RGBT-Tiny:首个大规模RGBT小目标检测数据集

图1 RGBT-Tiny数据集示例

图1 RGBT-Tiny数据集示例

  • 丰富多样:115组对齐序列、9.3万帧图像、120万标注,覆盖7类目标(如船舶、汽车、行人等)和8种场景(如海洋、湖泊、城市道路等)。
  • 极致挑战:81%目标小于16×16像素,包含极端光照(白天高光、夜间低光/不可见光)和高密度场景(单帧最多161个目标)。
  • 精准对齐:通过专业校准和图像裁剪,解决可见光与热成像镜头的视场和分辨率偏差,确保跨模态数据精准匹配。
  • 应用广泛:提供双光匹配的边界框标注和跟踪ID,支持多模态融合、目标检测和跟踪等多种任务。

SAFit:适应不同目标尺度的鲁棒评价指标

图2 不同评价指标的量化结果对比

图2 不同评价指标的量化结果对比

传统基于IoU(Intersection Over Union)度量的小目标检测评价指标对小目标的位置偏差敏感,难以准确评估检测性能。

为此,研究团队提出了一种新的评价指标SAFit(Scale Adaptive Fitness),通过Sigmoid加权IoU和NWD(Normalized Wasserstein Distance),能够根据目标的尺寸动态调整评估权重:

  • 对于小目标,SAFit更关注位置偏差的鲁棒性;
  • 对于大目标,SAFit更注重边界框的精确度。

实验表明,SAFit能够实现可调控多尺度目标鲁棒评估,配套设计的SAFit损失函数优化检测模型的训练收敛。

实验验证:30种算法全面评测

表1 不同算法检测性能量化结果对比

图片

基于RGBT-Tiny数据集和SAFit指标,研究团队对30种主流目标检测算法进行了全面评估,包括:

  • 可见光通用目标检测(如YOLO、Faster R-CNN);
  • 可见光小目标检测(如RFLA、QueryDet);
  • 热红外小目标检测(如ACM、DNA-Net);
  • RGBT目标检测(如UA-CMDet、CMA-Det)。

研究团队总结跨模态语义冲突等核心挑战和跨模态语义调制等有效方案,为该领域提供了重要数据基准与方法论参考。

九、

十、

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐