前言
本文是对论文:Align Deep Features for Oriented Object Detection 的学习总结,通过个人理解,尽可能以通俗易懂的方式表述,以方便大家的理解
一、S2A-NET可以用来做什么
在早期的目标检测算法中,识别一个物体的感兴区域总是横平竖直的(如SSD、RCNN等),但在很多情况下,横平竖直的锚框并不能将物体完美的选中,如下图蓝色的框被没有将飞机完全框起来。这时可以将蓝色的锚框框放大,就可以将飞机完全框起来,但是放大蓝色锚框,将会增加更多背景,对后续的处理造成负面影响。而S2A-NET可以生成旋转的锚框(如下图绿色锚框),此时就可以将飞机完全选中并且尽可能少的增加背景画面,从而使接下来的物体识别变得更容易。
二、S2A-NET是什么?
S2A-NET,全称:Single-shot Alignment Network,翻译为:单发对齐网络。S2A-NET由四部分组成,1.骨干网络 Backbone、2.特征金字塔网络 Feature Pyramid Network、3.特征对齐模块 Feature Alignment Module、4.方向检测模块 Oriented Dection Module。下面三、四、五、六节,将对这四部分进行详细介绍。
S2A-NET的网络结构图如下:
三、骨干网络 Backbone
S2A-NET的骨干网络为RetinaNet,RetinaNet是继SSD和YOLO V2公布后诞生的一款目标检测模型。RetinaNet主要的创新点使采用了一种新的损失函数——Focal Loss损失函数
Focal Loss的引入主要是为了解决目标检测中正负样本数量极不平衡问题,因为在进行物体检测时,会生成大量锚框 比如一张图片生成了10000个锚框,但只有几十个锚框匹配到了被测物体(正样本),其他锚框只匹配到了背景(负样本),这么多的负样本不仅对训练网络起不到什么作用,反而会淹没掉少量但有助于训练的样本。 为了弱化负样本对训练的影响,损失函数采用Focal Loss
RetinaNet由ResNet+FPN+2xFCN构成,这里将RetinaNet的结构框图放出来,具体细节就不一一描述了 注意:常规的RetinaNet输出x、y、w、h,即锚框的中心坐标、长和宽 这里需要进行改进,将输出的信息需改为x、y、w、h、θ,即锚框中心坐标、长、宽和锚框与x轴的夹角
四、特征金字塔网络 Feature Pyramid Network
在图像处理中,低层的特征语义信息比较少,但是目标位置准确;高层的特征语义信息比较丰富,但是目标位置比较粗略。FPN将高层次和低层次的语义信息做独立预测,并进行了融合。
五、特征对齐模块 Feature Alignment Module(FAM)
AlignConv 对齐卷积(在常规卷积上增加了一个旋转矩阵)是FAM的核心结构 与标准卷积相比,Alignment convolution (AlignConv)为每个位置p增加了一个额外的偏移字段O 如下图(d),即AlignConv 对齐卷积的实现效果图
Feature Alignment Module结构图如下:
六、方向检测模块 Oriented Detection Module (ODM)
ODM由两部分组成:
- 主动旋转滤波器 Active Rotating Filters
ARF是一个k × k × N滤波器,它在卷积过程中主动旋转N - 1次,产生具有N个方向通道(N默认为8)的通道 - 最大池化层max-pooling
将效果最好的方向通道作为输出特性来完成。 通过这两部分,来增加整体框架,对旋转信息的敏感程度
总结
以上就是本人对S2A-NET的拙见,如有错误,恳请大家指出
本文图片和公式均来源于论文:Align Deep Features for Oriented Object Detection
|