该论文为one-stage目标检测。是以RetinaNet为基础,增加了FRM(feature refinement module)以及设计了一个可导的近似偏斜损失函数(approximate SkewIoU),目的为了解决目标检测的三大挑战:1.大纵横比目标,2.密集目标的图像,3.任意旋转目标的图像。针对不同的场景做出相对应的解决方案。
网络结构
该论文是在RetinaNet的基础上进行增加新的模块和改变损失函数设计而成的,每层FPN连接着分类子网(class subnet)和边界盒回归子网(box subnet)以及FRM(feature refinement module)。
1.分类子网(class subnet)
FPN的每层都都连接着两个分类子网,第一个分类子网是直接接收FPN层输入的feature map,第二个分类子网接收的是FRM处理过后的feature map。
2.边界盒回归子网(box regression subnet)
与分类子网相同。
3.FRM(feature refinement module)
FRM同时接收第一个分类回归子网的特征和FPN层输入的特征,将这两个特征进行堆叠然后进行卷积操作输入到第二个分类回归子网。
4.anchor的设计
在FPN的p3~p7层对应着面积为~
的anchor,并且每层使用长宽比例为{1, 1/2, 2, 1/3, 3, 5, 1/5}和缩放比例为{
,
,
}的anchor,并且增加了6个角度{-90°,-75°,-60°,-45°,-30°,-15°}的旋转anchor用来应对对任意旋转的目标的检测。
提出的创新或改进
1.FRM(feature refinement module)
FRM是为了解决one-stage中的特征未对齐(Feature misalignment)的问题,而在two-stage中,该问题是由RoI Pooling或者RoI Align来解决。该模块连接在两个分类回归网络之间,并且该模块可以重复多次设置。
大核双向卷积(LK)
将特征输入到Large Kernel中,Large Kernel由两个路径构成,一个路径为1*1的卷积层,另一个路径由一个5*1和一个1*5的卷积层串联而成,两个路径最后的特征进行堆叠输出。
边框盒过滤器(Bbox Filter)
将refined bbox输出的box进行过滤,过滤后留下高分的bbox,以达到加速的效果。将过滤后的bbox输入到Feature Reconstruction。
特征重构(Feature Reconstruction)
对未对齐的特征点进行纯计算的方式(双线性插值)来重构特征图,通过这个方法来解决one-stage目标检测中出现的特征未对齐(Feature misalignment)的问题。
如图可见,通过特征重构后Refined Bbox得到的特征点被重新对齐到ground-truth的特征点上。
特征插值-双线性插值:
公式中F代表各个点的向量,A表示表示各个区域的面积。
最后将大核双向卷积得到的feature map与feature reconstruction得到的feature map进行堆叠输出。
2.近似偏斜损失(approximate SkewIoU)
因为目标检测存在着很多大纵横比的目标,相同偏斜角度的不同的纵横比的IoU相差很大,而smooth L1在相同倾斜角度上的值是相同的,而SkewIoU又不能直接作为损失函数,因为SkewIoU不可导,所以该论文为了解决大纵横比目标检测的问题,设计了近似偏斜损失。
该损失函数为SkewIoU与分类损失函数和回归损失函数的组合。
模型的初始化和训练
数据集的使用
实验采用了三个遥感数据集(DOTA,HRSC2016,UCAS-AOD)以及一个场景文本数据集(ICDAR2015)
模型的训练
对所有的数据集都是进行20epochs的训练,并且学习率在第12epochs和第16epochs分别降低10倍,初始的学习率为5e-4,权重衰减为0.0001,动量为0.9。
实验结果与分析
与基础网络(RetinaNet-R,RetinaNet-H)进行比较,仅仅使用LK(Large Kernel)的提升效果并不明显,甚至有些类别不如RetinaNet-R的效果好。但是在增加了Bbox Filter模块和Feature Reconstruction模块之后,提升的效果就很明显了,mAP从63.52%提升到了66.31%,三个类别也都比RetinaNet-R的效果好。
1.消融实验
该文章的消融实验分别是对FRM、Refinement Stage的数量以及近似偏斜损失作为变量进行比较,选择了三个代表性的类别SV-small vehicle,LV-large vehicle,SH-ship进行比较。
与RetinaNet-R与RetinaNet-H的比较中,未加入BF和FR模块的R3Det的性能提升并不明显,尤其是在其中两个class中。
加入了BF和FR的R3Det在性能的提升上就很明显了,三个类别也都超过了RetinaNet-R,进一步加入两个Refinement-stage的R3Det在SV类别上的性能提升明显,加入近似倾斜损失的R3Det在SH上的精确度的提升相当明显,因为SH往往为大纵横比的目标,在加入近似倾斜损失之后,大纵横比目标所提供的Loss所占比重变大,倾斜度的影响增加,进而在检测大纵横比目标时的精确度得到明显提升。
refinement-stage的数量的增加可以带来收益,但是增加的数量过多收益却降低。并且多阶段合并也可以提高模型的性能。
2.不同数据集的实验结果
DOTA数据集
mAP在one-stage和two-stage方法中取得了最佳的效果,并且在几个class中也获得了最佳的效果。
HRSC2016数据集
在HRSC2016数据集中使用ResNet101为主干网络的R3Det在mAP上取得了最佳的效果,使用MobileNetV2为主干网络的R3Det中速度方面上取得了最佳效果。
UCAS-AOD数据集
在UCAS-AOD数据集上也就在mAP上取得了最佳效果。
ICDAR2015
在场景文本数据集ICDAR2015中精确度达到了最佳的成绩,并且Hmean也取得了最佳的成绩,并且增加LK会使得召回率和精确率得到明显提升,增加refinement-stage会使召回率得到5.91%的提升。
3.结论
通过上述的实验结果显示,该文章提出的FRM模块和近似偏斜损失对大纵横比、密集、任意旋转目标的图像中得到了极佳的效果,R3Det在同时期的最先进的方法中最高效也最精确,并且one-stage检测的速度也要远超two-stage方法。
零基础学习,希望大佬们可以多多指点!!!