本篇学习报告《End-to-End Object Detection with Transformers》,作者是Nicolas Carion为首的Facebook AI团队,于2020年11月在ECCV上发表。
一、背景
Detection Transformer是近三年一直都很火的目标检测框架。在现实生活中,目标检测的应用也很多,如:自动驾驶对周围一切物体的实时检测,对遥感图像的类别检测等。现如今目标检测的SOTA模型主要有YOLO和Faster R-CNN,并且在各个实际落地项目中都有了广泛的应用。而本文的DETR模型,则是创新性地将transformer模型和encoder-decoder架构加入到了目标检测中,并且通过FFN得出N个预测框,再计算图像中的框和ground truth的loss,最后得到图像类别的预测框。这其中没有anchorbox预测操作和非极大值抑制去除重复框的操作,从而实现了端到端的预测,去除了YOLO和Fater R-CNN里的一些后处理的人工操作,因此减少了DETR的训练和推理时间。
二、方法
2.1总体框架
本文采用CNN作为backbone,通过可学习的positional embedding连接,经过transformer的encoder和decoder层,再由FFN来预测固定的N个预测框,计算和ground truth的loss,最后对图像每个物体锚框判别class。这个过程直接由训练和推理过程直接完成预测,而不需要进行anchor和NMS这样的人工后处理操作,从而减少了推理和训练时间。
2.2损失函数
通过FFN预测出来的有N个固定的预测框,并在N个预测框里加入背景类作为预测结果。因此我们会想要将损失最小化,定义如下:
其中 Lmatch表示分类预测和预测置信度的成对匹配损失,但本文使用的损失函数为Hungarian loss,当ci预测为背景类时,负对数概率项的权重会除以10。定义如下:
最后就是bounding box loss,其中λiou和λL1都是超参数,定义如下:
这两个损失函数都对每个box在batch内进行归一化处理,在论文中也称为二分匹配损失。
三、实验
本文主要和faster R-CNN对比目标检测和全景分割的任务,使用的数据集为COCO 2017,包括118k训练图像和5k验证集,每个图像都有bouding boxes和全景分割。每个模型的训练结果如下:
本文的DETR模型使用的baseline是经过优化处理的Faster R-CNN,且本文中DETR并没有进行FPN的特征提取和之后的deformable attention处理,因此AP也并不高。
在消融实验过程中,由上图可以看出最基本的DETR模型相对于优化后的Faster R-CNN模型依然可以有差不多的AP甚至更高,并且参数量也大幅降低,只有FPS相对不高。
基于上图可以看出,在通过自注意力的encoder层后,已经能够分辨出该像素区域类别的形状。
上图可以看出,transformer的架构能够很好的将重叠在一起的类别分开,并且预测的置信度都很高。
四、总结
本文提出了新的模型架构,一种基于transformer的端到端目标检测模型。这种基础模型的方法也能够和优化后的Faster R-CNN的性能相对比,并且由于是基础模型,DETR能够轻易的将模型迁移到别的任务中,如:全景分割。该模型的框架结构也很简单,使用pytorch代码表示甚至不超过50行,也利于学习和研究。
但基础模型也有需要改进的地方,虽然DETR在大目标检测任务上表现很好,但小目标检测任务的表现没有Faster R-CNN好;然后就是难以优化。
一个新的模型提出,必然要经历一段时间的改进和优化,才能有更好的性能,因此在未来的时间里这些缺陷也一定能够得到解决。
撰稿:黄鹏燃
审稿:何乐为