作者 | 派派星 编辑 | 极市平台
点击下方卡片,关注“自动驾驶之心”公众号
戳我-> 领取自动驾驶近15个方向学习路线
本文只做学术分享,如有侵权,联系删文
导读
本文旨在研究是否能够构建一种基于查询的端到端目标检测框架,而不采用复杂的Transformer架构。提出了一种名为Detection ConvNet(DECO)的新型检测框架,包括主干网络和卷积编码器-解码器结构。通过精心设计DECO编码器和引入一种新颖的机制,使DECO解码器能够通过卷积层实现目标查询和图像特征之间的交互。
标题:DECO: Query-Based End-to-End Object Detection with ConvNets
论文:https://arxiv.org/pdf/2312.13735.pdf
源码:https://github.com/xinghaochen/DECO
原文:https://zhuanlan.zhihu.com/p/686011746@王云鹤
引言
Detection Transformer(DETR)推出之后,迅速引发了目标检测领域的一股热潮,很多的后续工作也从精度和速度方面对原始的 DETR 进行了改进。然而,Transformer 是否真的大一统视觉领域呢,至少从 ConvNeXt 和 RepLKNet 等工作表明,CNN 结构在视觉领域还是有很大的潜力的。
我们这个工作探究的就是如何利用纯卷积的架构,来得到一个性能能打的类 DETR 框架的检测器。致敬 DETR,我们称我们的方法为DECO
(Detection ConvNets)。采用 DETR 类似的结构设定,搭配不同的 Backbone,DECO 在 COCO 上取得了38.6%和40.8%的AP,在V100上取得了35 FPS和28 FPS的速度,取得比DETR更好的性能。搭配类似RT-DETR的多尺度特征等模块,DECO取得了47.8% AP和34 FPS的速度,总体性能跟很多DETR改进方法比都有不错的优势。
方法
网络架构
DETR的主要特点是利用Transformer Encoder-Decoder的结构,对一张输入图像,利用一组Query跟图像特征进行交互,可以直接输出指定数量的检测框,从而可以摆脱对NMS等后处理操作的依赖。我们提出的DECO总体架构上跟DETR类似,也包括了Backbone来进行图像特征提取,一个Encoder-Decoder的结构跟Query进行交互,最后输出特定数量的检测结果。唯一的不同在于,DECO的Encoder和Decoder是纯卷积的结构,因此DECO是一个由纯卷积构成的Query-Based端对端检测器。
编码器
DETR 的 Encoder 结构替换相对比较直接,我们选择使用4个ConvNeXt Block来构成Encoder结构。具体来说,Encoder的每一层都是通过叠加一个7x7的深度卷积、一个LayerNorm层、一个1x1的卷积、一个GELU激活函数以及另一个1x1卷积来实现的。此外,在DETR中,因为Transformer架构对输入具有排列不变性,所以每层编码器的输入都需要添加位置编码,但是对于卷积组成的Encoder来说,则无需添加任何位置编码
解码器
相比而言,Decoder的替换则复杂得多。Decoder的主要作用为对图像特征和Query进行充分的交互,使得Query可以充分感知到图像特征信息,从而对图像中的目标进行坐标和类别的预测。Decoder主要包括两个输入:Encoder的特征输出和一组可学的查询向量(Query)。我们把Decoder的主要结构分为两个模块:自交互模块(Self-Interaction Module, SIM)和交叉交互模块(Cross-Interaction Module, CIM)。
这里,SIM模块主要融合Query和上层Decoder层的输出,这部分的结构,可以利用若干个卷积层来组成,使用9x9 depthwise卷积和1x1卷积分别在空间维度和通道维度进行信息交互,充分获取所需的目标信息以送到后面的CIM模块进行进一步的目标检测特征提取。Query为一组随机初始化的向量,该数量决定了检测器最终输出的检测框数量,其具体的值可以随实际需要进行调节。对DECO来说,因为所有的结构都是由卷积构成的,因此我们把Query变成二维,比如100个Query,则可以变成10x10的维度。
CIM模块的主要作用是让图像特征和Query进行充分的交互,使得Query可以充分感知到图像特征信息,从而对图像中的目标进行坐标和类别的预测。对于Transformer结构来说,利用cross attention机制可以很方便实现这一目的,但对于卷积结构来说,如何让两个特征进行充分交互,则是一个最大的难点。
要把大小不同的SIM输出和encoder输出全局特征进行融合,必须先把两者进行空间对齐然后进行融合,首先我们对SIM的输出进行最近邻上采样:
使得上采样后的特征与Encoder输出的全局特征有相同的尺寸,然后将上采样后的特征和encoder输出的全局特征进行融合,然后进入深度卷积进行特征交互后加上残差输入:
最后将交互后的特征通过FNN进行通道信息交互,之后pooling到目标数量大小得到decoder的输出embedding:
最后我们将得到的输出embedding送入检测头,以进行后续的分类和回归。
多尺度特征
跟原始的DETR一样,上述框架得到的DECO有个共同的短板,即缺少多尺度特征,而这对于高精度目标检测来说是影响很大的。Deformable DETR通过使用一个多尺度的可变形注意力模块来整合不同尺度的特征,但这个方法是跟Attention算子强耦合的,因此没法直接用在我们的DECO上。为了让DECO也能处理多尺度特征,我们在Decoder输出的特征之后,采用了RT-DETR提出的一个跨尺度特征融合模块。实际上,DETR诞生之后衍生了一系列的改进方法,我们相信很多策略对于DECO来说同样是适用的,这也希望感兴趣的人共同来探讨。
实验
我们在COCO上进行了实验,在保持主要架构不变的情况下将DECO和DETR进行了比较,比如保持Query数量一致,保持Decoder层数不变等,仅将DETR中的Transformer结构按上文所述换成我们的卷积结构。可以看出,DECO取得了比DETR更好的精度和速度的Tradeoff。
我们也把搭配了多尺度特征后的DECO跟更多目标检测方法进行了对比,其中包括了很多DETR的变体,从下图中可以看到,DECO取得了很不错的效果,比很多以前的检测器都取得了更好的性能。
文章中DECO的结构进行了很多的消融实验及可视化,包括在Decoder中选用的具体融合策略(相加、点乘、Concat),以及Query的维度怎么设置才有最优的效果等,也有一些比较有趣的发现,更详细的结果和讨论请参看原文。
总结
本文旨在研究是否能够构建一种基于查询的端到端目标检测框架,而不采用复杂的Transformer架构。提出了一种名为Detection ConvNet(DECO)的新型检测框架,包括主干网络和卷积编码器-解码器结构。通过精心设计DECO编码器和引入一种新颖的机制,使DECO解码器能够通过卷积层实现目标查询和图像特征之间的交互。在COCO基准上与先前检测器进行了比较,尽管简单,DECO在检测准确度和运行速度方面取得了竞争性表现。具体来说,使用ResNet-50和ConvNeXt-Tiny主干,DECO在COCO验证集上分别以35和28 FPS获得了38.6%和40.8%的AP,优于DET模型。希望DECO提供了设计目标检测框架的新视角。
投稿作者为『自动驾驶之心知识星球』特邀嘉宾,欢迎加入交流!
① 全网独家视频课程
BEV感知、毫米波雷达视觉融合、多传感器标定、多传感器融合、多模态3D目标检测、车道线检测、轨迹预测、在线高精地图、世界模型、点云3D目标检测、目标跟踪、Occupancy、cuda与TensorRT模型部署、大模型与自动驾驶、Nerf、语义分割、自动驾驶仿真、传感器部署、决策规划、轨迹预测等多个方向学习视频(扫码即可学习)
网页端官网:www.zdjszx.com② 国内首个自动驾驶学习社区
国内最大最专业,近2700人的交流社区,已得到大多数自动驾驶公司的认可!涉及30+自动驾驶技术栈学习路线,从0到一带你入门自动驾驶感知(2D/3D检测、语义分割、车道线、BEV感知、Occupancy、多传感器融合、多传感器标定、目标跟踪)、自动驾驶定位建图(SLAM、高精地图、局部在线地图)、自动驾驶规划控制/轨迹预测等领域技术方案、大模型、端到端等,更有行业动态和岗位发布!欢迎扫描下方二维码,加入自动驾驶之心知识星球,这是一个真正有干货的地方,与领域大佬交流入门、学习、工作、跳槽上的各类难题,日常分享论文+代码+视频
③【自动驾驶之心】技术交流群
自动驾驶之心是首个自动驾驶开发者社区,聚焦2D/3D目标检测、语义分割、车道线检测、目标跟踪、BEV感知、多模态感知、Occupancy、多传感器融合、transformer、大模型、在线地图、点云处理、端到端自动驾驶、SLAM与高精地图、深度估计、轨迹预测、NeRF、Gaussian Splatting、规划控制、模型部署落地、cuda加速、自动驾驶仿真测试、产品经理、硬件配置、AI求职交流等方向。扫码添加汽车人助理微信邀请入群,备注:学校/公司+方向+昵称(快速入群方式)
④【自动驾驶之心】平台矩阵,欢迎联系我们!