全新范式 | Box-Attention同时让2D、3D目标检测、实例分割轻松涨点(求新必看)(二)

简介: 全新范式 | Box-Attention同时让2D、3D目标检测、实例分割轻松涨点(求新必看)(二)

4BoxeR-2D:A Box Transformer


为了证明方法的有效性提出了BoxeR,一个基于Transformer具有box-attention结构的网络。

image.png

如图4所示,BoxeR由一个编码器和一个解码器组成,编码器用于编码从Backbone中提取的多尺度特征图,而解码器用于预测实例边界框和像素Mask。本文方法遵循端到端目标检测框架(即DETR)的精神,减少了手工制作模块的需求,如NMS和Anchor。

4.1 BoxeR编码器

与Transformer一样,每个BoxeR编码器层都包含box-attention和前馈层,每个子层后面都有一个带有残差连接的LayerNorm。

编码器将多尺度图像特征映射从ResNet Backbone的C3提取到C5(通过1x1卷积转换到隐藏维数)作为其输入。第t个feature map 是通过在最终的C5 feature上应用3x3卷积层,步长为2得到的。BoxeR编码器将多尺度输入转换为多尺度上下文表示。

注意,多尺度上下文表示与输入具有相同的分辨率。

在编码器中,Q和V都是来自多尺度特征图的特征。为每个query向量分配一个引用窗口,该窗口位于query空间位置的中心。在多尺度特征映射上,滑动窗口的大小为(t=4)(或在每个多尺度特征映射上有42个特征)。由于box-attention的平行注意头能够在每个特征级别隐式地捕捉多种长宽比的方框,作者发现没有必要有多种长宽比的参考窗口(见图5)。除了用位置嵌入增强每个query之外,还添加了Size嵌入,它表示对应于每个query的引用窗口的大小。Size嵌入在不同level的query向量之间是不同的。这两种嵌入都是标准化的,并使用正弦编码进行编码。

由于两阶段网络表明了目标检测的显著改进,作者证明了BoxeR编码器能够产生高质量的目标建议作为解码器的输入。在object proposal阶段,来自最后一个编码器层的特征被送入预测头,以预测object proposal的参考窗口。

不把在object proposal阶段预测的边界框的正弦嵌入处理为对象query,而是简单地将分类得分最高的编码器特征(通过线性投影转换)作为解码器的输入特征。这为BoxeR解码器提供了更丰富的信息,因为编码器特性同时包含空间信息和上下文信息。在解码器中,将预测的边界框作为其相应建议的参考窗口。

4.2 BoxeR解码器

在每个BoxeR解码器层中,交叉注意子层是我们的多头实例注意,而Self-Attention和前馈子层保持不变。编码器提出的目标建议的特征是BoxeR解码器的输入。在这一阶段对目标建议的参考窗口进行了细化,以便给出准确的预测。

具体地说,用表示第个解码器层的输入。第个解码器层的输出和。这两个输出的前馈层是相同的。输出特征然后被解码为Box坐标和类标签,而用于生成实例Mask。遵循Mask R-CNN中的训练策略,用一个逐像素的sigmoid和一个binary  损失来预测实例Mask。

由于注意力模块中的“where-to-attend”模块基于参考窗口预测感兴趣区域,作者设计了检测头来预测一个边界框作为相对偏移,其参考窗口的大小和位置。在预测阶段,参考窗口作为对其对象提议特征的初步猜测。其他解码器层的辅助解码损失也是有效的。BoxeR解码器中的所有预测头共享它们的参数。论文发现没有必要在匈牙利匹配器中增加Mask成本,从而使训练更有效。


5BoxeR-3D: End-to-end 3D Object Detection


将box-attention和BoxeR扩展到点云输入,从而实现端到端三维物体检测。

5.1 Box-Attention for 3D Object Detection

除了在where-to-attend模块中平移和缩放外,还在鸟瞰平面中添加了旋转变换来模拟物体的角度。用表示q的参考窗口,其中表示其中心位置,为窗口的宽度和高度,为在归一化坐标中围绕其中心的旋转角度。最后的旋转函数预测窗口旋转角度的偏移量。然后在从采样的网格坐标上应用一个旋转矩阵:

image.png

式中为参考角的偏置。同样,使用q上的线性投影来预测。

5.2 BoxeR for 3D Object Detection

为了更好地捕捉不同角度的目标,为BoxeR编码器特征的每个query向量分配了多角度的参考窗口。在每个滑动位置,基于二维目标检测设置,在每个角度的多尺度特征图上使用3个的参考窗口。每个注意力头将被分配一个角度的参考窗口。通过这样做,由box-attention生成的特征对于旋转预测是很强的(见图5)。在对象建议阶段,对于每个编码器特征,预测类别分数和三个建议的边界框,它们的三个角度的参考窗口。3D 匈牙利匹配器是在训练期间使用。

由于参考窗口的均匀分布,我们的系统中只嵌入了关于特定对象类的最小先验知识,例如车辆的典型尺寸。这不同于以前的方法[35,37,38,47],以前的方法对每个类别使用不同的Anchor size、Heatmap或Backbone。本文的网络还消除了手工制作模块的需要,如旋转非最大抑制或3D计算。


6实验


6.1 消融实验

1、Box-Attention vs. Alternatives

image.png

首先在端到端目标检测中比较Box Attention、Self-Attention、Deformable-Attention和Dynamic-Attention。表1中的结果表明Box-Attention在所有指标上都有改进,小目标(APS)提升最高(1.5%)。此外,与其他注意力机制相比,Box-Attention需要更少的FLOPs。

作者还实验了Box-Attention没有采用参考窗口但不采用转换函数(平移和缩放)的where-to-attend模块。从表1中可以看出,where-to-attend模块在所有类别中的提升均超过2分。这表明转换和缩放在学习注意力相关区域方面的重要性。

2、BoxeR-2D Ablation

image.png

由于BoxeR-2D在其编码器中使用多尺度参考窗口来预测object proposals,因此这些proposals在解码器中用作参考窗口。在表2a中,通过在解码器层中添加object proposals 细化来评估object proposals的质量。虽然这种改进在先前的工作中被证明是有益的,但可以观察到AP下降了1个百分点。这表明当BoxeR-2D编码器使用参考窗口生成object proposals时,它们足以让BoxeR-2D解码器预测proposals,而无需在每个步骤中进行细化(见图4)。

BoxeR-2D很灵活,因为可以轻松地将Instance-Attention插入其解码器,以预测目标位置及其Mask。表2b显示了BoxeR-2D从多任务训练(目标检测和实例分割)中获益。

3、BoxeR-3D Ablation

image.png

在表3中删除BoxeR-3D设计对3D目标检测的有效性。表明了旋转变换在where-to-attend模块中的作用,它在所有类别中贡献了超过1分,但代价是很小的计算量。

具体来说,作者发现旋转变换在添加到解码器层中的box-attention时最有效。表3还显示了BoxeR-3D编码器层中多角度与单角度参考窗口之间的比较。使用多角度参考窗口对车辆和骑自行车者类别产生改进,同时对行人保持稳定。这表明多头注意力中的每个头都能够有效捕捉不同旋转角度的信息。

6.2 与SOTA方法对比

1、2D目标检测

2、3D目标检测

6.3 方法的局限性

在本文中,作者提出了一种基于Transformer的检测器,用于端到端的目标检测和实例分割,名为BoxeR。该网络的核心是box-attention,它旨在通过从初始参考窗口学习转换来关注图像区域。由于其灵活性,BoxeR可以执行2D和3D端到端目标检测以及实例分割,而无需手工制作模块。在COCO和Waymo Open数据集上的实验证实了所提出架构的有效性。

与其他基于Transformer的架构类似,与基于卷积的架构(如Faster R-CNN或Mask R-CNN)相比,在网络训练期间观察到更大的内存占用。这导致需要更先进的GPU和更高的能耗。此外,在相同的FLOPs下,box-attention比卷积算子慢。原因可能来自于box-attention中网格采样的无序内存访问以及传统卷积的高度优化的硬件和实现。作者希望通过发布具有更优化实现的代码来缓解其中的一些问题。


7参考


[1].BoxeR:Box-Attention for 2D and 3D Transformers

相关文章
|
机器学习/深度学习 算法
【基础回顾】在回归任务中常见的损失函数比较(mse、mae、huber)
【基础回顾】在回归任务中常见的损失函数比较(mse、mae、huber)
2322 0
【基础回顾】在回归任务中常见的损失函数比较(mse、mae、huber)
|
传感器
多传感器感知原理解读 | BEVFusion解读(二)
多传感器感知原理解读 | BEVFusion解读(二)
1251 0
|
8月前
|
自然语言处理 API 开发工具
14_代码生成初试:LLM辅助编程
在软件开发领域,代码编写是最基础也是最耗时的工作之一。随着人工智能技术的快速发展,特别是大语言模型(LLM)的出现,代码生成技术正在经历前所未有的变革。LLM不仅能够理解自然语言描述的需求,还能生成符合语法规范、逻辑合理的代码片段甚至完整的程序。
911 0
|
9月前
|
运维 Kubernetes Cloud Native
K8s
Kubernetes,源自Google的开源容器编排平台,被誉为数字时代的“隐形操作系统”。它以声明式API和控制器模式为核心,实现应用的自动化部署、扩缩容与自愈,支撑全球企业云原生转型。从微服务到AI、边缘计算,K8s正构建统一的分布式应用基石,重塑软件交付与运维范式,成为数字化世界的底层引擎。(238字)
|
并行计算 PyTorch 算法框架/工具
基于CUDA12.1+CUDNN8.9+PYTORCH2.3.1,实现自定义数据集训练
文章介绍了如何在CUDA 12.1、CUDNN 8.9和PyTorch 2.3.1环境下实现自定义数据集的训练,包括环境配置、预览结果和核心步骤,以及遇到问题的解决方法和参考链接。
1154 4
基于CUDA12.1+CUDNN8.9+PYTORCH2.3.1,实现自定义数据集训练
|
Java 关系型数据库 数据库连接
SpringBoot项目使用yml文件链接数据库异常
【10月更文挑战第3天】Spring Boot项目中数据库连接问题可能源于配置错误或依赖缺失。YAML配置文件的格式不正确,如缩进错误,会导致解析失败;而数据库驱动不匹配、连接字符串或认证信息错误同样引发连接异常。解决方法包括检查并修正YAML格式,确认配置属性无误,以及添加正确的数据库驱动依赖。利用日志记录和异常信息分析可辅助问题排查。
1555 11
“RuntimeError: main thread is not in main loop“的几种解决方案
“RuntimeError: main thread is not in main loop“的几种解决方案
|
数据采集 Python
环境调试——EA-LSS
对比 E-H:同样增加速度增强之后,放大图像的调整范围,DAL 会比 BEVFusion 略微提升。作者说速度增强挑战了点云线索的回归任务预测,这迫使模型利用图像线索。(没懂,插个眼)
610 1
|
机器学习/深度学习 数据采集 图形学
基于深度学习的面片修复
面片修复(Mesh Repair)是计算机图形学和计算机视觉中的重要任务,旨在修复三维网格(mesh)中的缺陷,如孔洞、裂缝和噪声。基于深度学习的方法在面片修复中展现了强大的能力,通过学习数据中的几何特征,能够自动、高效地完成修复工作。
330 1
|
监控 网络协议 Linux
振南技术干货集:各大平台串口调试软件大赏(7)
振南技术干货集:各大平台串口调试软件大赏(7)