简单来说:
DETR通过将目标检测重新定义为set prediction问题,引入了稀疏的object queries进行预测。该方法利用二分图匹配进行标签分配,确保每个目标仅由一个query负责预测,有效减少了传统目标检测中常见的重复检测(duplicates)问题。
DETR无需依赖非极大值抑制(NMS)等后处理手段。从原始论文的实验中可以观察到,随着解码器层数的增加,NMS对模型性能的正面影响逐渐减弱,进一步证明了DETR在简化目标检测流程方面的有效性。
具体的我们来看看DETR的结构。
1.模型结构
上图为DETR结构图,主要分为encoder-decoder,具体来说:
-
Encoder:在计算机视觉任务中,如目标检测,我们通常从一张尺寸为(C, H, W)的原始图片开始。首先,使用一个强大的特征提取器,比如resnet50,来处理这张图片并输出特征图。为了增强模型对位置信息的敏感性,会在这些特征图上添加二维位置编码,这种编码可以是固定的(例如基于三角函数的编码)或可学习的。接着,通过一些额外的卷积神经网络(CNN)处理,得到最终的特征图,其尺寸变为(hidden_dim, H_, W_)。最后,将这个特征图展平,形成H_ * W_个尺寸为(1, hidden_dim)的向量,这些向量作为encoder的输入,被统一称为token。这整个过程是构建高效目标检测模型的关键步骤,特别是在DETR框架中,它避免了传统方法中需要的非极大值抑制(NMS)等后处理操作,大大简化了目标检测流程。
-
Decoder:在传统的卷积神经网络(CNN)目标检测模型中,由于缺乏精细化的预测控制,一个目标对象往往会被多个重叠的检测框标记,这就不得不采用像非极大值抑制(NMS)这样的后处理步骤来移除多余的检测框。然而,DETR模型的设计理念是实现一个端到端的目标检测流程,其理想状态是每个对象只被一个检测框标识,从而免除任何形式的后处理。
-
object query:为实现Decoder目标,DETR引入了“object query”的概念。基于实际场景中一张图片所包含的目标数量是有限的假设,例如最多有n个,DETR便设置相同数量的object queries(在DETR的实际应用中,这个数值通常设为100)。在模型操作中,每一个object query会学习与其唯一对应的真实目标检测框及其类别。那些未与特定目标对应的额外object queries则被视作背景。这种设计大大简化了目标检测的流程,并减少了对后处理技术的依赖,使得DETR成为一个高效且简化的端到端目标检测框架。
2. 总结
DETR(Detection Transformer)是一种革命性的目标检测模型,它通过将目标检测任务重新定义为一个直接的set prediction问题,显著地简化了传统目标检测流程。在DETR中,引入了稀疏的object queries和位置编码来改善特征表示,并采用变压器(Transformer)结构来直接预测固定数量的目标及其属性,避免了传统目标检测中普遍存在的重复检测问题。这种方法的核心优势在于每个目标仅由一个检测框表示,理论上不需要任何后处理操作如非极大值抑制(NMS)。