Advertisement

Oriented Object Detection with Transformer阅读笔记

阅读量:

(一) Title

在这里插入图片描述

前言: 本文未提供开源支持,但最近我在探索一个基于Transformer架构的目标检测方案(Detector)的想法,因此决定先深入阅读相关论文.随后计划在此基础上构建一个基于DETR模型框架的旋转目标检测系统.在深入研究过程中发现:虽然我对公式中的每一个符号都有清晰的理解,但将它们整合起来却难以理解其整体工作原理.阅读该论文后留下诸多疑惑:为何这种方法在理论上如此创新?具体实现细节又是如何支撑其有效性?希望未来能获得该算法的公开代码资源.

(二) Summary

背景

相较于现有的目标检测器(如Faster R-CNN),DETR在这一领域的竞争性能表现突出。
然而,在相关领域问题的研究方面仍显不足。
本文聚焦于旋转框目标检测问题来评估DETR的效果表现。

本文的主要工作

  • 开发了一种突破性的旋转框目标检测方法
  • 通过采用深度可分离卷积取代注意力机制,在编码器效率方面取得了显著提升
  • 树立了新的旋转框目标检测基准,在性能上采用了将头模块微调至O2DETR并结合级联模块以优化效果

(三) Problem Statement

目前针对航空DOTA数据集进行的研究发现,在无角度旋转场景下对目标进行检测仍存在挑战(主要体现在单个实例体积较小、呈现一定角度且较为密集)。传统方法依赖于预设方向角的锚框,在回归预测以及非最大值抑制(NMS)等后续处理环节面临较高的计算复杂度。现有的anchor-free方法通常通过热图(heatmap)来估计目标中心点位置,在密集场景下这一技术手段的效果会受到限制(注:此处作者基于对热图原理的理解提出了一些看法)。

在这里插入图片描述

此外,在DOTA数据集中存在一个显著的问题:各类别之间的尺度差异极大。这使得引入多尺度特征映射变得尤为必要。然而,在处理多尺度特征时,Transformer模型面临的计算负担非常重。研究者认为注意力机制赋予了模型进行全局推理的能力。但这种全局推理并非必需,因为同类物体通常集中在相似的空间区域中,并且通常仅与邻近区域的视觉特征产生相互作用而非整个图像域的视觉特征。此处值得商榷。因此作者采用深度可分离卷积替代Transformer中的自注意力机制(depthwise separable convolutions代替Transformer中的self-attention mechanism),以降低计算复杂度并加速收敛速度

(四) Research Object

本文基于DETR提出了新的角度,并将其与set prediction问题相结合,采用深度卷积替代了Transformer中的自注意力机制。

(五) Method

本文的主要工作为:

*采用可分离深度卷积取代注意力机制以带来更高的效率实现一个更加高效的Transformer 这里我有一个想法 尝试用MAE训练这个编码器 看看能不能得到预期的效果

5.1 Depthwise Separable Convolution and Attention

这里需要解决的问题是:怎么将原先的Attention使用Depthwise Separable Convolution来替换?需要回顾下Depthwise的原理,以及关注这里的替换方式
首先就是Depthwise Separable Convolution 方式
标准卷积的运算方式为:
\operatorname{Conv}(W, y)_{(i, j)}=\sum_{k, l, c}^{K, L, C} W_{(k, l, c)} \cdot y_{(i+k, j+l, c)}
其中K,L表示卷积核的size,也就是卷积核的长宽,应该是为了不使用W,H,然后C表示Channel数。
Depthwise separable convolution(DSConv)表示成:
\begin{aligned} \text { DepthwiseConv }(W, y)_{(i, j)} &=\sum_{k, l}^{K, L} W_{(k, l)} \odot y_{(i+k, j+l)}, \\ \text { PointwiseConv }(W, y)_{(i, j)} &=\sum_{c}^{C} W_{c} \cdot y_{(i, j, c)}, \\ \text {DSConv}\left(W_{p}, W_{d}, y\right)_{(i, j)} &= \text { PointwiseConv }_{(i, j)}\left(W_{p}, \text { Depthwise Conv }_{(i, j)}\left(W_{d}, y\right)\right) \end{aligned}
其中\odot表示element-wise product,跟上面的点没啥区别啊,这里Depthwise卷积的通道数同输入feature map的通道数相同,但是不再通道上进行加和,Pointwise卷积跟正常卷积相同,只不过这里使用的是1\times1大小的卷积核,这里的符号有点儿混乱,下面结合知乎上的图示来进行说明:

Depthwise Separable Convolutions
由于卷积并不使用矩阵相乘,为了减少计算量,可以将卷积的过程分成两部分:a depthwise convolution and a pointwise convolution.空间特征学习+通道特征学习
depthwise convolution
首先,我们使用3个5x5x1的卷积核产生8x8x3的图像:

在这里插入图片描述

pointwise convolution
此外, 使用1\times 1\times 3的卷积核对每个像素进行计算, 输出结果为8\times 8\times 1的图像:

在这里插入图片描述

通过应用数量为256个的卷积核尺寸为(1×1×3),从而得到尺寸为8×8×256的图像:
观察可知,在原始操作中使用了尺寸为(12×12×3)输入并经过(5×5×3→256)的操作后输出结果仍为(12×12×256),而当前方法将该过程分解为三个步骤:首先是应用了三个尺寸为(5×5×1)的操作将输入转换至(8×8),随后再执行一次尺寸为(3→48)的操作生成最终结果。
这一改进的核心意义在于显著降低了计算开销:原先采用的方法需要约一百二十二万八千次乘法运算(具体计算式见下文),而采用深度卷积技术后仅需四千八百次乘法运算;相比之下点状卷积则需要四万九千一百五十二次运算。综合以上数据可以看出当前方法总共只需约五万三千九百五十二次乘法运算即可完成相同操作。

接着就是Transformer中注意力的表现形式这一表述确实让我感到困惑,因为我原本认为自己已经熟悉了transformer模型,然而这里的符号体系确实让人难以理解.于是乎,我决定重新梳理后,再去探索不同深度卷积层之间存在的联系.这也是这篇文章的核心内容之一吧 😒:
\Omega_{q} \in \mathbb{R}^{H \times W}\Omega_{k} \in \mathbb{R}^{H \times W}分别代表查询层和键层元素的集合,其中q属于\Omega_{q}, k属于\Omega_{k}

5.2 O^2DETR

这部分主要看下这里面Multi-scale Feature PresentationDetection Head 是怎么表述的?
首先是Multi-scale Feature Presentation ,本文中的multi-scale feature maps是来自骨干网络的,文中描述这个输出feature map为\left\{x^{l}\right\}_{l=1}^{L-1}从stage C_3到stage C_5,其中C_l表示2^l下采样,最低分辨率的那个feature map是在C_5使用一个3\times3并且步长为2的卷积实现的,所有的feature map都是256通道的.根据这里的描述吧,输出是4个不同尺寸的feature map,对应的下采样倍数分别为8,16,32,64,同时,通道数是256.

刚刚测试了下mmdetection ResNet50结构提取feature map得到的输出:

在这里插入图片描述

对应着下采样倍数分别为4,8,16,32.并且通道数增加,实际上ResNet50结构如下:

在这里插入图片描述

等弄代码的时候再仔细考虑这边骨干网络怎么弄吧

接着将多尺度的feature map进行进行聚合,这是怎么聚合的呢?
\begin{array}{l} \operatorname{DSConv}\left(W_{p}, W_{d}, x\right)^{l}=\operatorname{DSConv}\left(W_{p}, W_{d}, x\right)^{l}+\operatorname{Dropout}\left(D S \operatorname{Conv}\left(W_{p}, W_{d}, x\right)^{l-1}\right. \\ \left.\quad+D S \operatorname{Conv}\left(W_{p}, W_{d}, x\right)^{l+1}\right), \quad l \in[1, L-1] \end{array}
首先问题就是:没看懂上面的公式表示的是什么意思?角标l是加到谁的上面的?如果说是加在x上面,表示的应该是输出的4个尺度的feature map,那么l=1的时候,会出现x^0这个指的又是什么呢?
接着给出了encoded multi-scale features E_{l}(l \in L)???没想到l竟然能够属于一个Value L,又给我整懵了。最后这里的multi-scale attention表示式为:
\operatorname{MSAttn}\left(z_{q}, p,\left\{E_{l}\right\}_{l=1}^{L}\right)=\sum_{l=1}^{L} \sum_{k \in \Omega_{k}} A_{(q, k, l)} \cdot W \cdot x_{k}^{l}
公式还是没看懂,为什么说使用Depthwise Separate Convolution来替换multi-head self attention的,回头这个地方的话,我打算自己结合DETR的实际情况进行改动吧。
最后就是这个Detection Head这边,最终得到的feature map大小为D \in \mathbb{R}^{N \times C},然后分别通过一个3层的MLP以及一个linear层来预测边界框和类别置信度:
\begin{aligned} \operatorname{Box}_{\left\{x_{c}, y_{c}, w, h, \alpha\right\}} &=\operatorname{Sigmoid}(\operatorname{MLP}(D)) \\ \text { Score } &=\mathbf{F C}(D) \end{aligned}
这里我的理解就是将原来DETR的内容保持不动,增加一个最终的预测角度。

5.3 Fine-tune \mathbf{O}^2DETR

这里我的理解就是先将上面的DETR训练好,然后冻结,把整个看成一个FPN,然后再把Faster-RCNN基于proposals来预测最终边界框的方法拿过来,得到更加精细的预测边界框。
\begin{array}{c} F=\text { ROIAlign }\left(P,\left\{x^{l}\right\}_{l=1}^{L-1}\right) \\ \text { Box }_{\left\{x_{c}, y_{c}, w, h, \alpha\right\}}^{F}=\text { Sigmoid }(\mathbf{M L P}(F)) \\ \text { Score } e^{F}=\mathbf{F C}(F), \\ \text { Box }=\text { Box }_{\left\{x_{c}, y_{c}, w, h, \alpha\right\}}+\text { Box }_{\left\{x_{c}, y_{c}, w, h, \alpha\right\}}^{F}, \end{array}
又给我整懵了,首先第一个问题就是:

  • ROIAlign我要是没理解错的话,好像是将proposal对应到feature map上,然后再将这个feature map做pool到固定的大小上,难道说旋转框的feature map这边也做了适配吗?
  • 第二个问题就是最后的Box是\text { Box }_{\left\{x_{c}, y_{c}, w, h, \alpha\right\}}\text { Box }_{\left\{x_{c}, y_{c}, w, h, \alpha\right\}}^{F}加和,这里的\text { Box }_{\left\{x_{c}, y_{c}, w, h, \alpha\right\}}是啥?通过ROIAlign以及新的prediction head得到的更加准确的预测边界框和分数吗?那为什么还要加上原来的边界框呢?并且作者这里说不需要做NMS?
  • 最最最重要的一个问题就是这边损失函数用的啥?旋转框不给出损失函数感觉很难顶~

(六) Experiments

实验设置

数据集 :DOTA,corp original images into 1024x1024,random horizontal flipping
模型 :基于ResNet50,ResNet101得到了O2DETR-R50和O2DETR-R101,同时还有一个Fine-tune的F-O2DETR,没有使用FPN。
训练 :训练50个epoch,在第40个epoch时学习率下降1/10,Transformer encoder-decoder的学习率10-4,resnet骨干网络学习率为10-5,这边旋转框是怎么使用IoU loss呢?F-O2DETR训练了12个epoch。咱也不知道用的啥学习器啊?

6.1 同Faster-RCNN以及RetinaNet的比较

在这里插入图片描述

6.2 消融实验

Depthwise Separable Convolution的作用

在这里插入图片描述

Fine-tune on O2DETR
比较Faster-RCNN的RPN和F-O2DETR的召回率

在这里插入图片描述

比较O2DETR和F-O2DETR的区别

在这里插入图片描述

6.3 同state-of-the-art比较

在这里插入图片描述

(七) Conclusions

本文主要依赖于DETR实现了旋转框目标检测这一技术难题,并在此框架下提出了一种微调的方法进一步提升了检测效果。

(八) Notes

8.1 旋转框目标检测的方法

Rotated-Resolved Pyramid Network (R-RPN),Rotated R^2 Convolutional Neural Network (R^2CNN),Region of Interest Transformer Model (RoI Transformer),Single Shot Detection (SCRDet),Two Stage Detection (RSDet),Contextual Similarity Learning (CSL),Rotated R^3 Detection (R^3Det),Squared Detectors (S^2Det),
今年发表的论文中提到了一种名为Redet的旋转等价检测器用于空中物体检测。

8.2 基于DETR的一些工作

在这一问题上值得探讨的是:是否基于标准DETR?

全部评论 (0)

还没有任何评论哟~