SCRDet: Towards More Robust Detection for Small, Cluttered and Rotated Objects,2019,ICCV-A
SCRDet旨在解决:小目标检测,杂乱排列,任意方向检测这三个问题
网络整体架构:
1)文章首先提出:目标特征信息不足和anchor采样的不足会阻碍小目标检测,然后提出了会造成上述两个情况的原因:池化操作会使会小目标物体在深层丢失特征信息,高阶特征图中大的anchor采样步距会造成生成锚框时直接忽略小目标物体。于是提出了采样特征融合网络SF-Net结构来解决上述小目标检测问题:
SA是anchor stride,其实也就是特征图相对于原始图像的缩放因子,图片经过ResNet的C3、C4输出后再上采样将特征图大小缩放为F3的大小,及缩放因子为S;C3的那条通道上采样后通过一个inception结构来扩展C3的接受域并增加语义信息。inception结构包含各种比率卷积核,以捕捉对象形状的多样性。
2)由于RPN生成的proposals会带有很多噪声,会造成漏掉小目标或误检。文章提出了监督多维注意力网络结构MDA-Net:
由像素注意力机制和通道注意力机制组成,前者将F3特征图送入Inception块后得到新的特征图,再进行1*1*2的卷积得到显著图每个像素点的目标的前景分数和背景分数,然后softmax操作后将前景分数map与原特征图F3相乘,这样就实现抑制噪声,蹭强边界。训练时采用交叉熵损失回归。
后者就是SENet,通过全局池化层GAP得到C维(C应该等于F3的channels数)向量,然后经过1*1卷积全连接层后进行sigmoid操作,将值限制在0-1,最后广播与F3相乘最后得到A3。
3)损失函数
目标检测引入旋转角度后,会产生很多问题,其中一个就是因角度周期性导致的边界不连续问题,即当预测框和GT很接近时,却产生很大的损失问题,如下图的红色预测框和绿色GT框,明明很接近,但通过他们的坐标计算出的损失却很大。
所以作者在损失中引入了iou因子,
以iou作为损失值,就是说如果预测框和GT很接近时,iou近似等于1,于是将损失乘以|-log(iou)|后损失约等于0,就解决了上述问题,前者控制梯度方向,后者的iou控制梯度大小。
损失函数采用多任务损失,N是proposals数,t′n = 1 for foreground and t′n = 0 for background,Lreg是smooth L1 loss,Latt是像素注意力损失,Lcls是分类损失,两者都为softmax crossentropy,v'和v是bbox回归参数,u'和u分别是每个像素点的分类得分和标签,pn是每个proposal的分类得分,tn是每个类别的标签。