最近,人们开始关注航拍图像中的目标检测任务。与自然图像中的物体不同,航拍目标的朝向通常很随意。因此,检测器需要更多的参数来编码朝向信息,非常冗余且低效率。此外,因为常见的CNN无法显式地建模朝向变化,我们就需要增广大量的旋转数据来训练一个准确的目标检测器。本文作者提出了一个 Rotation-equivariant 检测器(ReDet),可以解决这些问题,显式地编码旋转同变性和旋转不变性。更具体点,作者在检测器中融入了 rotation-equivariant 网络,提取 rotation-equivariant 特征,可以准确地预测朝向,大幅度降低模型大小。基于 rotation-equivariant 特征,作者也提出了一个 rotation-invariant RoI Align (RiRoIAlign) 操作,根据 RoI 的朝向自适应地从 equivariant 特征中提取 rotation-invariant 特征。在航空图像数据集上,如DOTA-v1.0, DOTA-v1.5 和 HRSC2016,作者进行了大量的实验,表明该方法的性能是 state of the art 的。与之前最佳结果相比,ReDet 在 DOTA-v1.0, DOTA-v1.5 和 HRSC2016 上分别实现了 1.2, 3.5, 和 2.6 mAP 的提升,降低了 60 % 60\% 60%的参数量(313 Mb vs. 121 Mb)。代码位于:https://github.com/csuhan/ReDet。
本文研究了航空图像领域的目标检测问题。和自然图像的目标不同,航空图像中的目标通常朝向是任意的。为了克服这些挑战,人们一般将航空目标检测表示为依赖于朝向边框(Oriented Bounding Boxes, OBBs)表征的朝向目标检测任务,而非水平边框(Horizontal Bounding Boxes, HBBs)。
最近人们提出了许多的朝向目标检测器,在航空图像数据集上报告了不错的效果。为了在不受约束航空图像上实现精准的目标检测,大多数方法都会提取 rotation-invariant 特征。在实际操作中,Rotated RoI(RRoI) warping(比如 RRoI Pooling, RRoI Align)是最常见的提取 rotation-invariant 特征的方法,它会根据 2D 平面内的 RRoI 边框来准确地扭曲区域特征。但是,用正常的 CNN 特征 进行 RRoI warping,是无法输出准确的 rotation-invariant 特征的。Rotation invariance 是通过能力更强的网络和更多的训练样本来近似实现的,对 rotation variation 建模。如图1所示,正常的 CNN 对于旋转来说是不具备同变性的,即将一个旋转后图像输入进 CNN 与旋转原图的特征图是不一样的。因此,从正常的 CNN 特征图上扭曲得到的区域特征是不稳定的,而且对朝向变化太敏感了。
图1. 本文方法(顶部)以及 RRoI warping(下面)的比较。 CNN 特征对于旋转 T r T_r Tr不是同变的,即将一个旋转后的图像输入进 CNN 和旋转原图的特征图是不一样的。因此,相应的 RoI 特征对于旋转是会变动的。然而,本文方法采用了 rotation-equivariant CNNs(ReCNN),来提取旋转同变特征。设 I I I 和 Φ \Phi Φ 分别是网络的输入和ReCNN,该方法的需同变性可以表示为: Φ ( T r I ) = T r Φ ( I ) \Phi(T_rI)=T_r \Phi(I) Φ(TrI)=TrΦ(I),也就是说,对图像 I I I做旋转 T r Tr Tr,与旋转它的特征图是一样的。既然我们有了 rotation-equivariant 特征,rotation-invariant 特征就可以通过 RRoI warping 提取。而 RRoI Align 只能实现空间维度的旋转不变,于是作者提出了一个新的 Rotation-invariant RoI (RiRoI) Align,在空间维度和朝向维度提取旋转不变的特征。
最近一些方法扩展了 CNN,利用分组卷积实现旋转同变性。这些方法的特征图带有额外的朝向通道,记录不同朝向的特征。但是,直接将 RRoI warping 应用在旋转同变的特征上,无法产生旋转不变的特征,因为它只能在2D平面上扭曲区域特征,即空间维度,而朝向维度仍没有对齐。为了提取出完整的旋转不变特征,我们也需要根据 RRoI 的朝向,调节特征图的朝向维度。
本文,作者提出了 Rotation-equivariant 检测器(ReDet),从旋转同变特征中提取出完整的旋转不变特征。如图1所示,该方法有两个部分:旋转同变特征提取和旋转不变特征提取。首先,我们在主干网络中加入旋转同变网络,产生旋转同变特征,可以准确预测朝向,降低对朝向变化建模的复杂度。因为直接使用 RRoI warping 仍无法从旋转同变特征中提取旋转不变特征,作者提出了 RiRoI Align。它可以根据空间维度中 RRoI 边框来扭曲区域特征,通过循环地切换朝向通道与特征插值来对齐朝向维度的特征。最后,将旋转同变的主干网络和 RiRoI Align 组合起来,得到了 ReDet,完整地提取旋转不变特征,用于精准的航空目标检测。
实验证明了该方法的有效性。本文贡献如下:(1)提出了一个旋转同变的检测器,用于高质量航空目标检测,它同时编码了旋转同变性和旋转不变性。本文是第一次有人将旋转同变性引入到朝向目标检测。(2)作者设计了 RiRoI Align 来从旋转同变特征中提取旋转不变特征。与其它 RRoI warping 方法不同,RiRoI Align 输出在空间和朝向通道中完全旋转不变的特征。(3)在DOTA-v1.0, DOTA-v1.5 和 HRSC2016 数据集上,该方法分别取得了 80.10, 76.80 和 90.46 mAP。和之前最佳方法相比,该方法能得到显著而持续的提升,降低了 60 % 60\% 60%的参数量。此外,该方法也实现了更好的模型大小与准确率的平衡(如图2)。
与大多数的使用 HBBs 的通用目标检测器不同,朝向目标检测器需要通过 OBBs 来定位并分类目标,它可以提供更加准确的目标朝向信息。这对于航空目标的检测来说非常重要,它们具有大宽高比、任意朝向和密集分布的特点。随着通用目标检测的发展,人们针对朝向目标检测提出了一些不错的方法,在有挑战性的数据集上表现不错。为了检测任意朝向的物体,一些方法使用了大量的不同角度、尺度和宽高比的旋转 anchors 来更好的回归,但这增加了计算复杂度。Ding等人提出了 RoI Transformer 来将 Horizontal RoIs(HRoIs) 变换为 RRoIs,不需要用大量的 anchors。Gliding vertex 和 CneterMap 分别使用四边形和 mask 来准确地描述朝向目标。 R 3 Det \text{R}^3\text{Det} R3Det和 S 2 A-Net \text{S}^2\text{A-Net} S2A-Net 将水平感受野和旋转 anchors 之间的特征进行对齐。DRN 通过动态特征选择和优化来检测朝向目标。CSL 将角度预测看作为一个分类任务,避免不连续的边界问题。最近一些基于 CenterNet 方法也显示了其在小目标检测方面的优点。这些方法致力于优化目标表征或特征表征。本文方法尝试通过网络整体来优化特征表征:从主干网络到检测 head。特别地,本文方法的主干网络可以输出旋转同变特征,极大地降低对朝向变化建模的复杂度。在检测 head,RiRoI Align 会提取出完全地旋转不变的特征,目标定位更加鲁棒。
Cohen等人首先提出了分组卷积,将4-fold旋转不变性带入了 CNNs。HexaConv 在六边形格子上将分组卷积扩展为6-fold。为了实现更多朝向的旋转同变性,一些方法通过插值对滤波器进行再采样,而另一些方法则使用谐波(harmonics)作为滤波器,在连续域中产生同变特征。这些方法逐渐地将旋转同变性扩展到更大的分组上去,在分类任务上取得不错的效果,而本文方法则将旋转同变的网络加入到检测器中,在检测任务上取得巨大提升。这是第一次有人将旋转同变性系统地应用到朝向目标检测任务中去。
旋转不变的特征对于任意朝向的目标检测来说很重要。但是,CNN 对旋转变化进行建模的能力很差,也就是说需要更多的参数来编码朝向信息。STN 和 DCN 直接在网络中建模旋转角度,在朝向目标检测上广泛使用。Cheng 等人提出了一个旋转不变层,对目标函数施加了一个显式的正则约束。尽管上述方法能够取得旋转不变性的近似效果,但需要大量的参数和训练样本。此外,目标检测需要实例级的旋转不变特征。因此,一些方法将 RoI warping 扩展为 RRoI warping,比如 RoI Transformer 学习如何将 HRoIs 变换为 RRoIs,然后利用一个旋转的位置敏感的 RoI Align 操作来扭曲区域特征。但是正常的 CNN 不具备旋转同变性。所以,哪怕通过 RRoI Align,我们仍无法提取出旋转不变特征,如图1所示。和这些方法不同,本文方法通过旋转不变 RoI Align(RiRoI Align) 从旋转同变特征中提取旋转不变特征。作者在主干网络中加入了旋转同变网络,产生旋转同变特征,然后在空间维度和朝向维度,利用 RiRoI Align 从旋转同变特征中提取出旋转不变特征。
图2. 模型大小 vs. DOTA-v1.5 数据集上的准确率(mAP)。作者用 ResNet18(R18) 和 ResNet50(R50) 主干网络评测了 RetinaNet OBB, Faster R-CNN OBB(FR), Mask-RCNN(Mask) 和 Hybrid Task Cascade(HTC)。所有的算法都是作者针对DOTA重新实现的,与表7保持一致。ReDet 用 ResNet18(R18) 和 ResNet50(R50) 主干网络进行了测试。与其它方法相比,基于 ReR18 的 ReDet 取得了相近的准确率;而 ReR50 则超越了所有其它方法一大截子,更好地平衡了模型大小和准确率。
同变性就是说,如果我们对模型的输入做变换,我们应该可以预测该特征的变换结果。给定一个变换分组 G G G和函数 Φ \Phi Φ: X → Y X\rightarrow Y X→Y,同变性可以表示为:
Φ [ T g X ( x ) ] = T g Y [ Φ ( x ) ] ∀ ( x , g ) ∈ ( X , G ) (1) \Phi[T_g^X(x)] = T_g^Y[\Phi(x)] \quad \forall(x,g) \in (X,G)\tag{1} Φ[TgX(x)]=TgY[Φ(x)]∀(x,g)∈(X,G)(1)
其中 T g T_g Tg表示在相应空间内对每一组的操作。如果 T g Y T_g^Y TgY对于所有的 T g X T_g^X TgX是一样的,同变性就变成了不变性。
一般而言,CNN 以其平移不变性而著称。让 T t T_t Tt表示平移分组 ( R 2 , + ) (\mathbb{R}^2, +) (R2,+)的一个操作,将其应用在 K K K维的特征图 f f f上: Z 2 → R K \mathbb{Z}^2 \rightarrow \mathbb{R}^K Z2→RK,平移不变性就可表示为:
[ [ T t f ] ∗ ψ ] ( x ) = [ T t [ f ∗ ψ ] ] ( x ) (2) [[T_t f]\ast \psi](x) = [T_t[f\ast \psi]](x)\tag{2} [[Ttf]∗ψ](x)=[Tt[f∗ψ]](x)(2)
其中 ψ : Z 2 → R K \psi:\mathbb{Z}^2 \rightarrow \mathbb{R}^K ψ:Z2→RK 表示卷积核, ∗ \ast ∗是卷积操作。最近提出的一些方法将 CNN 扩展为更大的分组,实现平移不变和旋转不变。以 H H H表示旋转分组,如循环分组 C N C_N CN包含多个离散的旋转角度,角度为 2 π N \frac{2\pi}{N} N2π的倍数。我们可以定义分组 G G G为平移分组 ( R 2 , + ) (\mathbb{R}^2, +) (R2,+)和旋转分组 H H H的间接乘积,即 G ≅ ( R 2 , + ) ⋊ H G\cong (\mathbb{R}^2, +) \rtimes H G≅(R2,+)⋊H。在等式2中,将 x ∈ ( R 2 , + ) x\in (\mathbb{R}^2,+) x∈(R2,+)替换为 g ∈ G g\in G g∈G,旋转同变性卷积可以定义为:
[ [ T g f ] ∗ ψ ] ( g ) = [ T g [ f ∗ ψ ] ] ( g ) (3) [[T_g f]\ast \psi](g) = [T_g[f\ast \psi]](g) \tag{3} [[Tgf]∗ψ](g)=[Tg[f∗ψ]](g)(3)
Rotation-equivariant Networks。正常的 CNN 由一系列卷积层组成,具有平移权重共享的性质。类似地,旋转同变性网络也由一组旋转同变层组成,权重共享的程度更高,即平移和旋转权重共享。以 Φ = { L i ∣ i ∈ { 1 , 2 , . . . , M } } \Phi=\{L_i|i\in \{1,2,...,M\}\} Φ={Li∣i∈{1,2,...,M}} 表示对于分组 G G G,具有 M M M个旋转同变层的网络。对于某一层 L i ∈ Φ L_i \in \Phi Li∈Φ,旋转变换 T r T_r Tr可以通过该层被保留下来,
L i [ T r ( g ) ] = T r [ L i ( g ) ] g ∈ G (4) L_i [T_r (g)] = T_r [L_i (g)] \quad g\in G \tag{4} Li[Tr(g)]=Tr[Li(g)]g∈G(4)
如果我们对输入 I I I使用 T r Tr Tr,将它输入进网络 Φ \Phi Φ,变换 T r Tr Tr 就会被整个网络保留下来:
[ ∏ i = 1 M L i ] ( T r I ) = T r [ ∏ i = 1 M L i ] ( I ) (5) [\prod_{i=1}^M L_i](T_r I) = T_r [\prod_{i=1}^M L_i](I) \tag{5} [i=1∏MLi](TrI)=Tr[i=1∏MLi](I)(5)
变换 T r T_r Tr在不同的空间(输入图像空间或特征空间)中可能有不同的形式,这里作者出于简洁性考虑,没有区分它们。
Rotation-invariant Features. 对于输入做任意的旋转变换 T r T_r Tr,如果输出保持不变,我们就说这个输出特征是旋转不变的。旋转不变特征可以分为3个层级:图像层级,实例层级和像素层级。这里我们主要关注实例层级的选择不变特征,对于目标检测任务来说更加适合。 I R ∈ I I_R\in I IR∈I和 f R ∈ f f_R\in f fR∈f分别表示图像 I I I的 RoI 和特征图 f f f的 RoI, f = Φ ( I ) f=\Phi(I) f=Φ(I)。假设 I R I_R IR是一个 HRoI ( x , y , w , h ) (x,y,w,h) (x,y,w,h),对朝向保持不变,其中 ( x , y ) , w , h (x,y),w,h (x,y),w,h分别表示 HRoI 的中心点、高度和宽度。 T r I R T_r I_R TrIR 是一个关于朝向 θ \theta θ 的 RRoI ( x , y , w , h , θ ) (x,y,w,h,\theta) (x,y,w,h,θ)。与等式5相似,对于 RoI I R I_R IR,旋转同变性可以表示为:
Φ ( T r I R ) = T r Φ ( I R ) (6) \Phi (T_r I_R) = T_r \Phi(I_R) \tag{6} Φ(TrIR)=TrΦ(IR)(6)
如果我们将 HRoI I R I_R IR 看作为图像 I I I的 RRoI T r I R T_r I_R TrIR 的旋转不变的表征, Φ ( I R ) \Phi(I_R) Φ(IR)可以当作为 Φ ( T r I R ) \Phi(T_r I_R) Φ(TrIR) 在对应特征空间中的旋转不变的表征。为了得到 Φ ( I R ) \Phi(I_R) Φ(IR),我们需要知道旋转变换 T r T_r Tr。幸运的是, T r T_r Tr通常就是朝向 θ \theta θ的一个函数: T r = T ( θ ) T_r = T(\theta) Tr=T(θ)。在实际操作中,我们可以使用 RRPN 或 R-CNN 来学习朝向 RRoI 的 θ \theta θ,以及变换 T r T_r Tr。最终,旋转不变特征 Φ ( I R ) \Phi(I_R) Φ(IR) 可以通过对等式6应用一个反向变换 T r ′ T_r' Tr′ 得到:
Φ ( I R ) = T r ′ Φ ( T r I R ) (7) \Phi(I_R) = T_r' \Phi(T_r I_R) \tag{7} Φ(IR)=Tr′Φ(TrIR)(7)
这一部分介绍 ReDet,编码旋转同变性和旋转不变性。首先,我们采用旋转同变网络作为主干网络,提取旋转同变的特征。如前面所讨论的,直接对旋转同变特征图使用 RRoI Align 不会得到旋转不变的特征。所以,作者设计了 Rotation-invariant RoI Align(RiRoI Align),从旋转同变的特征图上产生 RoI 旋转不变特征。ReDet 的整体结构如图3所示。给定一个输入图像,我们将它输入进旋转同变网络。然后采用 RPN 来生成 HRoIs,后面跟着一个 RoI Transformer(RT),将 HRoIs 变换为 RRoIs。最后通过 RiRoI Align 来提取旋转不变的特征,用于 RoI 的分类和边框回归。
图3. ReDet 的概览。(a) 旋转同变检测器的整体结构。首先使用旋转同变主干网络提取旋转同变特征,后面跟着一个 RPN 和RT,产生 RRoIs。然后使用旋转不变的 RoI Align(RiRoI Align) 产生旋转不变的特征,用于分类和边框回归。(b) 旋转同变的特征图。在循环分组 C N C_N CN之下,大小是 ( K , N , H , W ) (K,N,H,W) (K,N,H,W)的旋转同变的特征图有 N N N个朝向通道,每个朝向通道对应着 C N C_N CN的一个元素。© RiRoI Align。RiRoI Align 有两部分组成:空间对齐和朝向对齐。对于一个 RRoI ( x , y , w , h , θ ) (x,y,w,h,\theta) (x,y,w,h,θ),空间对齐会从空间维度中扭曲 RRoI,而朝向对齐则循环地切换朝向通道,进行特征插值,产生完全旋转不变的特征。
目前的目标检测器通常使用 CNN 作为主干网络,自动提取语义信息丰富的深度特征,如广泛使用的带有 FPN 的 ResNet。作者也将带有 FPN 的 ResNet 作为基线模型,实现了一个旋转同变的主干网络,叫做 Rotation-equivariant ResNet (ReResNet) with ReFPN。
作者重新实现了旋转同变网络的所有层,基于 e2cnn,包含卷积、池化、归一、非线性函数等。考虑到计算成本,ReResNet 和 ReFPN 只对离散分组 ( R 2 , + ) ⋊ C N (\mathbb{R}^2,+) \rtimes C_N (R2,+)⋊CN 同变,即所有的平移变换和 N N N个离散的旋转变换。如图3(b)所示,我们可以将一张图片输入进旋转同变的主干网络,产生旋转同变的特征图。与常见特征图不同,旋转同变的特征图 f f f有 N N N个朝向通道: f = { f ( i ) ∣ i ∈ { 1 , 2 , . . . , N } } f=\{f^{(i)}|i\in \{1,2,...,N\}\} f={f(i)∣i∈{1,2,...,N}},每个朝向通道的特征图 f ( i ) f^{(i)} f(i)对应着 C N C_N CN中的一个元素。
与常见的主干网络相比,旋转同变主干网络具有以下优点:(a) 更高度的权重共享。作者介绍了旋转同变特征图具有一个额外的朝向维度,不同朝向的特征共享相同的滤波器,这些滤波器具有不同的旋转变换,即共享旋转权重。(b)丰富的朝向信息。对于朝向固定的输入图像,旋转同变的主干网络可以输出多个朝向的特征。这对于朝向目标检测非常重要,需要准确的朝向信息。© 模型体积更小。与基线相比,作者设计主干网络时有两个选择:计算量相似或参数量相似。通常,我们保持与基线模型相似的计算量,即输出通道相同。因为旋转权重共享,旋转同变的主干网络就大幅度降低了模型体积,约 1 / N 1/N 1/N的参数量。
如第三部分介绍,对于一个 RRoI ( x , y , w , h , θ ) (x,y,w,h,\theta) (x,y,w,h,θ),我们可以用 RRoI warping 从旋转同变特征图中提取出旋转不变的 RoI 特征。但是,常见的 RRoI warping 只能在空间维度对齐特征,而没有对齐朝向维度。所以,作者提出了 RiRoI Align 来提取旋转不变特征。如图3©所示,RiRoI Align 包含2个部分:(a)空间对齐。对于一个 RRoI ( x , y , w , h , θ ) (x,y,w,h,\theta) (x,y,w,h,θ),空间对齐会在空间维度中,从特征图 f f f来对其做扭曲,产生旋转不变的区域特征 f R f_R fR,这和 RRoI Align 一致。(b) 朝向对齐。为了确保不同朝向的 RRoI 产生完全旋转不变的特征,我们在朝向维度进行了朝向对齐。对于输出区域特征 f ^ R \hat f_R f^R,将朝向对齐表示为:
f ^ R = I n t ( S C ( f R , r ) , θ ) , r = ⌊ θ N / 2 π ⌋ (8) \hat f_R = Int(SC(f_R, r),\theta), r=\lfloor \theta N/2\pi \rfloor \tag{8} f^R=Int(SC(fR,r),θ),r=⌊θN/2π⌋(8)
其中 S C , I n t SC, Int SC,Int分别表示切换通道和特征插值操作。对于区域特征 f R f_R fR,首先计算出一个索引值 r r r,然后循环地切换朝向通道,确保 C N ( r ) C_N^{(r)} CN(r)是第一个朝向通道。但是,因为旋转同变性只是在离散的分组 C N C_N CN中得到的,如果 θ ∉ C N \theta \notin C_N θ∈/CN,我们需要对特征做插值。我们用最近的 l l l朝向来对朝向特征做插值。例如, l = 2 l=2 l=2的第 i i i个朝向通道的输出特征可以表示为:
f ^ R ( i ) = ( 1 − α ) f R ( i ) + α f R ( i + 1 ) (9) \hat f_R^{(i)} = (1-\alpha)f_R^{(i)} + \alpha f_R^{(i+1)} \tag{9} f^R(i)=(1−α)fR(i)+αfR(i+1)(9)
其中 α = θ N / 2 π − r \alpha = \theta N/2\pi - r α=θN/2π−r表示一维插值的距离因子。注意,我们使用 mod \text{mod} mod函数来确保 i ∈ [ 1 , N ] i\in [1,N] i∈[1,N]。
和 RRoI Align+MaxPool 的比较。和 RiRoI Align 不同,通过 RRoI Align 然后再在朝向维度中最大池化特征是另一个提取旋转不变特征的方法。朝向池化操作通常在分类任务中采用。对于特征图上的每个位置,它只保留响应最强的朝向,而其它朝向的特征会被丢弃掉。但是,作者认为所有朝向的响应,不管强弱,对于目标检测来说都是很重要的。在 RiRoI Align 中,所有朝向的特征都被保留,通过朝向对齐操作来对齐。
Pls read paper for more details.