目标检测(Object Detection)学习笔记(三)各种技巧


本篇笔记包括对目标检测中的一些提升的方法技巧的介绍,包括:

  • Data Augmentation
  • OHEM
  • Deformable Conv
  • Focal Loss
  • SoftNMS

不断更新ing…

Data Augmentation

Data Augmentation即数据增强,可以用来增加数据集的数量和多样性,从而提升算法的最终效果。常见的对图像进行的数据增强方法包括Horizontal Flip(水平翻转)、Scaling(缩放)、Translation(平移)、Rotation(旋转)、Shearing(裁剪)、Resizing等,此外还有亮度、饱和度、对比度的变换、颜色变换、加噪声扰动、模糊处理等。

OHEM

OHEM全称online hard example mining,简单来说,就是对所有RoIs的损失进行评估,选择那些loss大的样本来优化网络,而不是简单的采样。

  • 前向传播 Forward: 全部的ROI通过网络,根据loss排序;
  • 反向传播 Backward:根据排序,选择B/N个loss值最大的(worst)样本来后向传播更新model的weights.

这里会有一个问题,即位置相近的ROI在map中可能对应的是同一个位置,loss值是相近的,所以针对这个问题,提出的解决方法是:对hard examples做nms,然后再选择B/N个ROI反向传播。

Deformable Conv

Deformable convolution即可形变卷积。CNN的传统卷积比较死板,对物体的几何变换没有很好的适应性,因此文章作者提出用先用传统卷积预测卷积位置的offset,使得3x3的卷积不再是规则的方形。

image_1csqb5pke8ij1v8jg09frt1je237.png-113.4kB

可以实现感受野的改变:

image_1csqb6leu7ql1eh71bqv1jjlanj3k.png-340.2kB

以3x3为例,实现步骤如下:

<1> 先用一个channel为18(233 = 18)的传统卷积预测每个点的offset,这里18是因为每个点的offset是一个二维向量(确定方向),一共有3*3=9个点,故channel为18;

<2> 根据算出来的offset,计算新的9个点在特征图的上的值,由于可能算出来的offset为(0.3, 0.5)这种小数,也就是可能会需要知道特征图上(3.3,4.5)位置的值,所以作者用双线性差值计算这些经过offset修正的位置的响应;

<3> 最后就是与卷积核卷积得到最终的值。

Focal Loss

Focal Loss的思想是通过减少易分类样本的loss权重,使得模型在训练时更专注于难分类的样本。详见我的另一篇笔记 【论文阅读笔记】 Focal Loss for Dense Object Detection

SoftNMS

image_1csqa6d6h1nufjef137j5uh1jo39.png-571.5kB

Soft NMS使用一行代码改进了NMS算法:IoU如果超过某个阈值,不再是直接排除掉这个框,而是降低它的得分。得分如果低到一定程度就会被排除,但是如果降低后仍然比较高,就有保留下来的机会。
降低分数的方法有线性和高斯。可以参考作者的源代码。

image_1csqb1k8u1r7ipbp1s9dkdd1rot2d.png-25.9kB

image_1csqb0l4dpp4aa1aledfj1jqu20.png-75.1kB