Learning RoI Transformer for Detecting Oriented Objects in Aerial Images

Learning RoI Transformer for Detecting Oriented Objects in Aerial Images

参考
Introduction
  • 对于任意方向目标的检测,HRoI已经不能满足要求,因此出现了RRoI,此前的RRoI是通过多增加不同角度的anchor来实现不同方向的目标检测,但是这种方式会因为anchor的增加而产生大量的计算量。
  • RoI Transformer 是一个三阶段检测模型,主要由RRoI Leaner(学习从HRoI到RRoI的转换)和RRoI Wraping(从RRoI中提取旋转不变的特征,用于后续的分类和回归子任务。)两部分组成,核心思想是把RPN输出的水平锚框HRoI转换为旋转锚框RRoI。此策略无需增加锚点的数量且可以获得精确的RRoI。
  • 为了进一步提高效率,作者为所有的RoI-wise operations采用了light head structure。roi-wise operation一直是二阶检测器的效率瓶颈,因为它们之间的计算不共享。Light-head R-CNN提出使用分离卷积来获得thin feature以解决这个问题,它还使用PS RoI Align来进一步削减特征图的通道数,本文方法的baseline就是Light-head R-CNN。
RoI Transformer
  • image-20210801152851075
    • RoI Transformer检测模型结构如图所示,主要由RRoI Leaner和RRoI Wraping两部分组成。对于RPN生成的每个水平锚框HRoI,都会作为输入传递给RRoI Leaner, RRoI Leaner结构是由PS RoI Align(PS RoI Align减少特征图的维数,将单个全连接层合并到10个通道,显著提高了计算速度)、尺寸为5的全连接层(在全连接层使Rotated Ground Truths(RGTs)相对于HRoI的偏移量回归)以及解码器(解码器将HRoI和偏移量作为输入并输出解码后的RRoI)构成。将特征图和解码后的RRoI传入RRoI Wrapping进行深度特征提取。最后,利用RRoI Transformer输出的特征进行分类和回归。
RRoI Learner
  • RRoI Leaner主要负责从水平特征图HRoIs中学习RRoIs。假设我们得到了n个由(x,y,w,h)表示的HRoI,x,y表示HRoI中心点的位置,w表示宽度,h表示高度。理想情况下每个HRoI都是RRoI的外接矩形。利用全连接层从每个HRoI推测RRoI的几何形状。对于一般情况下RRoI的偏移量回归目标如下

    • image-20210801155547902
    • 上图中的标柱参考系是指文中原图的x1oy1,即使用预测框的坐标系,我特地推了一下上述公式中的offset: t x ∗ t_x^* tx t y ∗ t_y^* ty,如下所示
    • 我们对中心点画直角三角形,得到 x ∗ − x r x^*-x_r xxr y ∗ − y r y^*-y_r yyr两组参数,那么由基础几何得到, ( x ∗ − x r ) cos ⁡ θ r (x^*-x_r)\cos{\theta_r} (xxr)cosθr ( y ∗ − y r ) sin ⁡ θ r (y^*-y_r)\sin{\theta_r} (yyr)sinθr以及 ( y ∗ − y r ) cos ⁡ θ r (y^*-y_r)\cos{\theta_r} (yyr)cosθr ( x ∗ − x r ) sin ⁡ θ r (x^*-x_r)\sin{\theta_r} (xxr)sinθr的几何表示如上面右下角的图表示。可以看到上面的公式不过是用预测框的斜着的坐标系算以gt框为基准的坐标系的$\delta x 和 和 \delta y 的 大 小 , 而 公 式 中 的 的大小,而公式中的 t*_w$和$th 以 及 以及 t^_\theta$的值就是两者的比值再取对数(角度不取)
  • 再回到模型的结构中来,作者使用FC-5实现这个效果,G代表全链接层,F代表HRoI的feature map, θ \theta θ 代表G的权重参数。

    • t = G ( F ; Θ ) ( 2 ) t = G(F; Θ) \qquad (2) t=G(F;Θ)(2)

    • 也就是说模型训练时,将输入的HRoI和OBB(GroundTruth)进行匹配。匹配后通过等式(1)得到 t ∗ t^* t ,然后从中解码出RRoI的参数。使用Smooth L1 loss作为回归损失进行梯度下降。

RRoI Warping
  • RRoI Warping通过RRoI的参数提取旋转不变的深度特征(其实就是用Rotated Position Sensitive RoI pooling实现旋转版的池化)。

  • 通过RPS RoI pooling将输入的大小为HxWxC的RRoI的Feature map分成KxKxC的feature map(由双线性插值实现)

    • y c ( i , j ) = ∑ ( x , y ) ∈ b i n ( i , j ) D i , j , c ( T θ ( x , y ) ) / n i j ( 3 ) y_c(i,j) = \sum_{(x,y) \in bin(i,j)} D_{i,j,c}(T_\theta (x,y))/n_{ij} \qquad (3) yc(i,j)=(x,y)bin(i,j)Di,j,c(Tθ(x,y))/nij(3)

      • D是输入的feature map(RRoI),
      • y y y是输出的feature map,
      • bin 是池化的一小块,其中 ( i , j ) ∈ ( 0 , K ) (i, j) \in (0,K) (i,j)(0,K) ,
      • c是输出channel, c ∈ ( 0 , C ) c \in (0,C) c(0,C)
      • n i j n_{ij} nij是每一块bin的样本参数量
    • T θ T_\theta Tθ的转换的式子为:

      • ( x ′ y ′ ) = ( cos ⁡ θ − sin ⁡ θ sin ⁡ θ cos ⁡ θ ) ( x − ω r 2 y − h r 2 ) + ( x y ) \left( \begin{array}{cc} x^{'} \\ y^{'} \end{array} \right) = \left( \begin{array}{cc} \cos\theta & -\sin\theta \\ \sin\theta & \cos\theta \end{array} \right)\left( \begin{array}{cc} \frac{x-\omega_r}{2} \\ \frac{y-h_r}{2} \end{array} \right)+\left( \begin{array}{cc} x \\ y \end{array} \right) (xy)=(cosθsinθsinθcosθ)(2xωr2yhr)+(xy)

猜你喜欢

转载自blog.csdn.net/symuamua/article/details/119331284