RetinaNet能够在实现和one-stage同等的速度基础上,在精度上超越所有(2017年)two-stage的检测器。
1. 网络结构
RetinaNet是由一个backbone和两个自网络组成的统一目标检测网络。backbone的主要作用是通过一系列卷积操作得到整张输入图像的feature map。两个子网分别将不同层的feature map进行目标分类和位置回归。
图1-1 RetinaNet结构
1.1 backbone
由图1-2可以观察到该结构是对FPN的结构做了微微改动,只不过去掉了FPN的C2产生的P2,这是因为P2比较大会占内存,P6是P5卷积产生的(FPN中P6是P5池化产生的),P6卷积产生了一个P7结构。
图1-2 Retina的特征提取结构
1.2 Anchors
RetinaNet在FPN的P3-P7这5个feature map上分别设置了3种大小×3种比例=9种anchor。
图1-3 Anchor的大小和比例
1.3 分类和回归
图1-1中的分类和回归网络中表示的是输出feature map。
backbone输出的feature map送入分类网络和回归网络:分类子网和回归子网先进行了四层3×3的卷积。对于分类来说,一张feature map有A个anchor,每个anchor都有K个类别,因此输出(W,H,KA)表示分类信息。对于回归来说,一张feature map有A个anchor,每个anchor都有4个回归参数(x,y,w,h),因此输出(W,H,4A)表示回归信息。
2. 正负样本不均衡
在two-stage的检测器中,为了实现正负样本的比例均衡,一般采取抽样的方法,将正负样本比例控制在3:1。但在one-stage中 ,他只有一个阶段,因此产生的候选比two-stage要多的多,整个过程会产生大量易于区分的负样本。RetinaNet采用了focal loss这样的动态缩放交叉熵损失,通过一个动态缩放因子,可以动态降低训练过程中易区分样本的权重,从而将loss中心快速聚焦在难区分的样本上。
Focal Loss
通过可以抑制正负样本的数量失衡,通过可以控制简单/难区分样本数量失衡。
Focal Loss不太理解?