当前位置: 代码迷 >> 综合 >> 文献翻译3:FCOSR: A Simple Anchor-free Rotated Detector for Aerial Object Detection
  详细解决方案

文献翻译3:FCOSR: A Simple Anchor-free Rotated Detector for Aerial Object Detection

热度:79   发布时间:2023-11-15 06:22:31.0

文献翻译3:FCOSR: A Simple Anchor-free Rotated Detector for Aerial Object Detection

  • FCOSR: A Simple Anchor-free Rotated Detector for Aerial Object Detection
    • Abstract
    • Introduction
    • Related Works
      • Anchor-base methods
      • Anchor-free methods
    • FCOSR
      • Network outputs
      • Ellipse center sampling
      • Fuzzy sample label assignment
      • Multi-level sampling
      • Target loss
    • Experiments
      • Datasets
      • Implement Details
      • Ablation Studies
      • More Backbones
      • Speed VS Accuracy

FCOSR: A Simple Anchor-free Rotated Detector for Aerial Object Detection

Zhonghua Li, Biao Hou, Zitong Wu, Licheng Jiao, Bo Ren, Chen Yang

Abstract

Anchor-based类算法在oriented object detection中已取得了惊人效果,但是仍然要手动设置预设的anchor,因此仍然会引入额外的超参数和计算量。而现有的anchor-free算法通常很复杂且难以部署。本文旨在提出一种简单且易于部署的遥感图像检测算法。本文作者提出了一种基于FCOS的one-stage的anchor-free算法FCOSR。FCOSR是简单的全卷积结构。本文的重点工作在于训练阶段的标签分配策略。本文中使用了一种椭圆中心采样方法为OBB定义一个合适的正样本区域。针对目标重叠问题则提出了一种模糊样本分配策略。针对采样不足问题则设计了一种多级采样模块。结合上述的三种方案为训练分配更合适的样本。

DOTA1.0: 79.25% mAP

DOTA1.5: 75.41% mAP

HRSC2016: 90.15% mAP

Introduction

由于HBB算法在遥感图像中面临任意角度、密集排列和分别率差异等问题,当前已经转换为OBB类型的遥感图像目标检测算法。

目前的OBB算法基本都是从HBB算法改进而来,主要可以分为anchor-based和anchor-free两类。Anchor-based类算法需要预设anchor,因此会引入额外的超参数和计算量,而且也会对算法性能产生影响。而anchor-free类算法不会引入超参数和额外计算量,因此更具适应性。因此本文基于FCOS和二维高斯分布提出了FCOSR。FCOSR直接预测目标的中心点、宽、高以及旋转角度。

本文聚焦于训练阶段。受益于重新设计的标签分配策略,FCOSR可以在对FCOS进行很少的修改下直接地、准确地预测OBB。与精致的two-stage方法相比,FCOSR不仅更简单而且更易于部署(因为只有卷积层)。本文进行了一系列实验验证算法的有效性。

总结来说,本文的贡献在于:

  1. 提出了一种one-stage的anchor-free的遥感图像目标检测算法,其简单且易于部署。
  2. 基于二维高斯分布和遥感图像的特性,设计了一套标签分配策略,为训练样本分配更合适的目标。
  3. 在DOTA1.0、DOTA1.5和HRSC2016数据集上分别达到了高性能。与其他的anchor-free算法相比,FCOSR达到了SOTA,缩小了与anchor-based算法的差距。FCOSR在速度和精度上表现出色,超越了目前的主流算法。
  4. 将一个轻量的FCOSR模型转换到TensorRT格式,并成功迁移到Jetson Xavier NX上,在DOTA1.0上达到了73.93% mAP。

Related Works

当前的主流OOD算法可以分为两个主要的类型:anchor-free和anchor-based。有参考文献

Anchor-base methods

Anchor-base方法需要手动预设一系列anchor进行边界回归和细化。早期的方法使用具有多个角度和多个纵横比的锚点来检测定向对象。但是,预设角度的增加导致anchors和计算量的快速增加,使得模型难以训练。作为two-stage方法,RoI Transformer通过RRoI learner模块将horizontal proposal转换为oriented proposals,然后提取oriented proposals中的特征,用于后续的分类和回归。这种方法通过网络给出角度值来代替预设的角度,大大减少了anchor数量和计算量。长期以来,出现了许多基于RoI-transformer的方法并取得了良好的效果。 ReDet在整个模型中引入了旋转不变卷积(E2CNN),并通过使用 RiRoI 对齐来提取旋转不变特征。 Oriented R-CNN 用更轻量、更简单的orientation RPN替换了 RoI-transformer中的 RRoI learner模块。 R3Det是一种改进的单阶段面向对象检测方法,通过特征创新模块(Feature Refinement Module, FRM)微调HBB格式的anchor得到OBB结果。 S2ANet由特征对齐模块(Feature Alignment Module, FAM)和定向检测模块(Oriented Detection Module, ODM)组成,其中 FAM用于 生成高质量的oriented anchor,ODM采用滤波器生成方向敏感和方向不变的特征,以缓解分类分数和回归精度间的不一致性。CSL将回归问题转化为分类问题以解决角度的不连续性。DCL在CSL的基础上采用密集编码来优化训练速度,并且采用角度距离和纵横比敏感加权(Angle Distance and Aspect Radio Sensitive Weighting, ADARSW)来提高精度。

Anchor-free methods

目前anchor-free算法一般都是one-stage的。IENet采用了一个具有子注意力机制的分支交互模块,用于融合分类分支和回归分支的特征。Anchor-free算法直接预测目标的bounding box,这使得回归任务的loss设计具有一定的局限性。GWD、KLD和ProbIoU使用两个高斯分布之间的距离度量来表示loss,为anchor-free方法提供了一种新的loss方案。PIoU基于像素统计为OBB设计了一个IoU loss。BBAVectors和PolarDet分别用bbav矢量和极坐标定义OBB。CenterRot用DCN来融合多尺度特征。AROA利用注意力机制在one-stage的anchor-based网络中用提高性能。

FCOSR

image-20220105164606128

如上图所示,FCOSR以FCOS为基础。网络直接预测中心点、长、宽和旋转角度(OpenCV格式的角度)。算法通过标签分配模块(Label Alignment Module, LAM)确定特征图的收敛目标。FCOSR不会在FCOS框架中引入额外的组件,并且删除了centerness分支,使得网络部署更简单容易。本文的工作中点是训练阶段的标签分配。

Network outputs

网络输出包含了一个CCC维的分类分支向量和一个5维的回归分支向量。与FCOS不同,作者希望回归的每个组件的输出有不同的范围(可能意思是每个特征层的回归分支有不同的范围)。Offset可以为负,长和宽必须为正,且角度angle∈[0,90]angle\in{[0,90]}angle[0,90]。这个简单的过程由下式定义:
offsetxy=Regxy?k?swh=(Elu(Regwh?k)+1)?sθ=Mod(Regθ,π/2)offset_{xy}=Reg_{xy}\cdot{k}\cdot{s} \\ wh=({\rm{Elu}}(Reg_{wh}\cdot{k})+1)\cdot{s} \\ \theta={\rm{Mod}}(Reg_{\theta},\pi/2) offsetxy?=Regxy??k?swh=(Elu(Regwh??k)+1)?sθ=Mod(Regθ?,π/2)
其中RegxyReg_{xy}Regxy?RegwhReg_{wh}Regwh?RegθReg_{\theta}Regθ?分别表示回归分支最后一层的直接输出,kkk是可学习的调整因子,sss是多层特征的下采样步长。Elu\rm{Elu}EluReLuReLuReLu的改进。

通过上式的计算,网络的输出被转换为一个5维的向量(offsetx,offsety,w,h,angle)(offset_{x},offset_{y},w,h,angle)(offsetx?,offsety?,w,h,angle)。采样点的坐标加上坐标偏移量就得到了OBB的坐标。

Ellipse center sampling

中心采样指的是将采样点集中在目标中心附近,有助于减少低质量检测并提高模型性能。这种策略在FCOS、YOLOX和一些其他网络中被采用,稳定地提高了精度。但是如果直接将horizontal中心采样迁移到ODD中会出现两个问题:第一,horizontal中心采样一般是一个5×55\times{5}5×53×33\times{3}3×3的方形区域,因此角度会影响采样区域的形状;第二,短边进一步减少了大纵横比的目标的中心采样点数量。最直观的中心采样应该是目标中心一定范围内的圆形区域,但是短边限制了中心采样的范围。为了减少这些负面影响,本文提出了一种基于二维高斯分布的椭圆中心采样(Elliptical Center Sampling, ECS)策略。本文用OBB的五个参数(cx,cy,w,h,θ)(cx,cy,w,h,\theta)(cx,cy,w,h,θ)来定义一个二维高斯分布:
Σ=Rθ?Σ0?RθTμ=(cx,cy)Rθ=[cosθ?sinθsinθcosθ]Σ0=112[w200h2]\begin{aligned} \Sigma &=& R_{\theta}\cdot{\Sigma_{0}\cdot{R_{\theta}^T}} \\ \mu &=& (cx,cy) \\ R_{\theta} &=& \begin{bmatrix} {\rm{cos}\theta} & -{\rm{sin}\theta} \\ {\rm{sin}\theta} & {\rm{cos}\theta} \end{bmatrix} \\ \Sigma_{0} &=& \frac{1}{12}\begin{bmatrix} w^2 & 0 \\ 0 & h^2 \end{bmatrix} \end{aligned} ΣμRθ?Σ0??====?Rθ??Σ0??RθT?(cx,cy)[cosθsinθ??sinθcosθ?]121?[w20?0h2?]?
其中Σ\SigmaΣ是协方差矩阵,Σ0\Sigma_0Σ0?是角度为0时的协方差矩阵,μ\muμ是均值,R0R_0R0?是旋转变换矩阵。二维高斯分布的概率密度函数的轮廓是椭圆曲线。下式是一般情况下的概率密度函数:
f(X)=12π∣Σ∣1/2exp(?12(X?μ)TΣ?1(X?μ))f(X)=\frac{1}{2\pi|\Sigma|^{1/2}}{\rm{exp}}(-\frac{1}{2}(X-\mu)^T\Sigma^{-1}(X-\mu)) f(X)=2πΣ1/21?exp(?21?(X?μ)TΣ?1(X?μ))
其中XXX是二维坐标向量,本文去掉了规则化项得到了g(X)g(X)g(X)
g(X)=exp(?12(X?μ)TΣ?1(X?μ))g(X)={\rm{exp}}(-\frac{1}{2}(X-\mu)^T\Sigma^{-1}(X-\mu)) g(X)=exp(?21?(X?μ)TΣ?1(X?μ))
g(X)∈(0,1])g(X)\in{(0,1])}g(X)(0,1])二维高斯分布的椭圆轮廓可以表示为g(X)=Cg(X)=Cg(X)=C。当C=C0=exp(?1.5)C=C_0={\rm{exp}}(-1.5)C=C0?=exp(?1.5)时,椭圆轮廓刚好内接于OBB。椭圆轮廓的范围随着CCC的减小而扩大,因此C∈[C0,1]C\in[C_0,1]C[C0?,1]。考虑到遥感图像中的目标往往较小,本文取C=0.23C=0.23C=0.23以避免采样面积过小导致采样不足。目标的中心采样区域由g(X)≥Cg(X)\ge{C}g(X)C确定,若g(X)>Cg(X)>Cg(X)>C则说明XXX在采样区域内。由于纵横比大的目标十分细长,使得长轴方向的部分远离中心区域。为解决这一问题,作者通过修该高斯分布来缩小采样区域。下式定义了新的协方差矩阵:
Σ0=min(w,h)12[w00h]\Sigma_0=\frac{ {\rm{min}}(w,h)}{12}\begin{bmatrix} w & 0 \\ 0 & h \end{bmatrix} Σ0?=12min(w,h)?[w0?0h?]
image-20220105174152353

通过修改协方差矩阵,椭圆的长轴变为wh\sqrt{wh}wh ?,而短轴保持不变。上图展示了OBB的椭圆中心采样区域。与水平中心采样相比,椭圆中心采样更适合OBB,并且通过缩小长轴集中了大纵横比的目标的采样区域。

Fuzzy sample label assignment

FCOS通过将不同尺寸的目标分配给不同步长的特征图来减少二义性样本。对于尺度相似的目标,FCOS将较小的目标标签分配给不明确的采样点。显然,这种基于最小面积原则的模糊样本分配方法难以处理复杂的场景。本文设计了一种基于二维高斯分布的样本标签分配方法(Fuzzy sample Label Assignment, FLA)来分配模糊标签。高斯分布呈钟形,靠近中心位置的相应更高。随着采样点远离中心,其响应值逐渐变小。本文通过近似地将二维高斯分布作为采样点与目标中心之间的距离度量。中心距离J(X)J(X)J(X)由下式给出:
J(X)=wh?f(X)J(X)=\sqrt{wh}\cdot{f(X)} J(X)=wh ??f(X)
其中f(X)f(X)f(X)二维高斯分布的概率密度函数。

对于任意目标,计算每一个采样点的J(X)J(X)J(X)。大的J(X)J(X)J(X)意味着XXX与目标更近。当一个采样点同时被多个目标包含时,将J(X)J(X)J(X)最大的标签分配给采样点。一个简单的模糊样本分配如下图所示。

image-20220105175219618

Multi-level sampling

纵横比大的目标的采样范围主要受短边影响。如下图所示,当特征图的步长大于短边时,目标可能由于太窄而无法有效采样。因此,针对采样不足问题,作者添加了一个简单的补充方案:通过比较短边和步长来确定是否在低层特征中分配标签。分配标签要满足以下两个条件:第一,短边与步长之比小于2;第二,目标最小外接矩形的长边大于特征图的接受范围。

image-20220105180248536

多级采样(Multi-Level Sampling, MLS)策略使得能够将一些无法有效采样的目标添加到低层特征中。低层特征由更密集的采样点,从而缓解了采样不足问题。

Target loss

FCOSR的损失包含分类损失和回归损失。Quality Focal Loss(QFL)用作分类损失,主要是从原始FCOS中移除了centerness分支。回归采用ProbIoU loss。

QFL是GFL(General Focal Loss)的一部分,通过用ground truth和预测结果间的IoU替换one-shot标配来统一训练和测试过程。QFL抑制了低质量的预测结果,提高了模型性能。下式给出了QFL的定义:
QFL(σ)=?∣y?σ∣β((1?y)log(1?σ)+ylog(σ))QFL(\sigma)=-|y-\sigma|^{\beta}((1-y){\rm{log}}(1-\sigma)+y{\rm{log}}(\sigma)) QFL(σ)=?y?σβ((1?y)log(1?σ)+ylog(σ))
其中yyy表示用于替换的IoU,参数β\betaβ(建议却2)用于平滑控制降权率。

ProbIoU loss是针对OBB设计的一种IoU loss。其主要通过二维高斯分布之间的距离来表示OBB之间的IoU,与GWD和KLD相似。总损失定义如下:
Loss=1NposΣzQFL+1Σz1{cz?>0}IoU?Σz1{cz?>0}IoU?LossProbIoULoss=\frac{1}{N_{pos}}\Sigma_{z}{QFL}+\frac{1}{\Sigma_{z}{ {\rm{1}}_{\{c_z^*>0\}}IoU}}\cdot{\Sigma_{z}{ {\rm{1}}_{\{c_z^*>0\}}IoU\cdot{Loss_{ProbIoU}}}} Loss=Npos?1?Σz?QFL+Σz?1{ cz??>0}?IoU1??Σz?1{ cz??>0}?IoU?LossProbIoU?
其中NposN_{pos}Npos?表示正样本数。总的和实在多层特征上的所有位置zzz上计算的1{cz?>0}{\rm{1}}_{\{c_z^*>0\}}1{ cz??>0}?是指示函数,cz?>0c_z^*>0cz??>0为1否则为0。

Experiments

Datasets

  • DOTA

本文中作者用train和val集训练,test集测试。所有图像被裁成1024×10241024\times{1024}1024×1024的patches,步长为512。多尺度增强时参数DOTA1.0为{0.5,1.0}\{0.5,1.0\}{ 0.5,1.0},DOTA1.0为{0.5,1.0,1.5}\{0.5,1.0,1.5\}{ 0.5,1.0,1.5}。同时训练时也采用了random flipping、random rotation增强。

  • HRSC2016

本文中作者用train和val集训练,test集测试。所有图像都被缩放为800×800800\times{800}800×800,同时保持纵横比。同时训练时也采用了random flipping、random rotation增强。

Implement Details

Backbone为ResNext50-FPN。DOTA训练36epoch,HRSC2016训练40k iterations。采用SGD优化。DOTA初始学习率为0.01,在{24,33}\{24,33\}{ 24,33}epoch时衰减为十分之一。HRSC2016的初始学习率为0.001,在{30k,36k}\{30k,36k\}{ 30k,36k}衰减。Momentum和weight decay分别为0.9和0.0001。本文训练使用了Nvidia DGX Station(4 V100 GPUs@32GB),总的batch size为16,test使用一张2080Ti。合并patch时的阈值为0.1,test时的置信度阈值为0.1。受rotation-equivariant CNNs的启发,本文采用了一种新的旋转增强方法:分两步,第一步以等概率将图像随即旋转{0,90,180,270}\{0,90,180,270\}{ 0,90,180,270}角度,第二部再以50%的概率将图像随即旋转30或60度。基于mmdetection。

Ablation Studies

本文在DOTA1.0上开展了一系列的实验以评估所提出方法的有效性。采用ResNext50的模型被称为FCOSR-M。训练和测试都在single scale上。

image-20220106120124205

如上表所示,FCOS-M的baseline为70.4% mAP,随着旋转增强的使用,mAP提高了4.03%。当使用QFL代替Focal Loss时,性能又提高了0.91% mAP。当添加了ECS和FLA模块后,mAP达到了76.80%。最后添加了MLS后,DOTA1.0的单尺度性能达到了77.15% mAP。通过添加各种模块,FCOSR-M实现了非常显著的性能提升。这些模块在推理过程中没有任何额外的计算,使得FCOSR成为一个非常简单、快速且易于部署的OBB检测器。

More Backbones

本文用其他不同的backbones替代ResNext50来重新构建FCOSR。采用MobileNetv2的成为FCOSR-S,采用ResNext101的被称为FCOSR-L。其在DOTA上的模型尺寸、FLOPs、FPS以及mAP如下表所示。

image-20220106120941995

为了使FCOSR能够在嵌入式平台上部署,作者对其进行了轻量化处理。在FCOSR-S的基础上调整了backbone的输出阶段:将FPN的额外卷积层替换为pooling层,称之为FCOSR-lite。在此基础上,作者又将head的特征通道从256降低到128,并将其成为FCOSR-tiny。上述两个模型被转换为了16bit TensorRT格式,并在Nvidia Jetson Xavier NX上进行了test。结果如下表所示。轻量化的FCOSR在Jetson Xavier NX上达到了速度和精度的完美平衡。FCOSR-tiny达到了73.93% mAP和10.68FPS。这是在边缘计算设备上部署高性能OBB的成功尝试。

image-20220106121455314

Speed VS Accuracy

测试了FCOSR系列模型和其他一系列主流模型(R3Det, ReDet, S2ANet, Faster RCNN-O, Oriented RCNN, RetinaNet-O)的inference速度。为了方便,用Oriented RCNN的Faster RCNN-O和RetinaNet-O。

  相关解决方案