目标检测分块知识总结 1

tags: 目标检测;UnitBox;RetinaNet; Soft-NMS; IOU Net

1. UnitBox

论文题目《UnitBox: An Advanced Object Detection Network》 2016
这篇文章主要提出了使用IOU Loss作为损失函数。
在此之前,很多目标检测算法在进行坐标回归的时候使用的损失函数为L2或者smoothL1损失,但是这些损失函数忽视了各个坐标位置之间的相关性,这样在预测的时候,针对不同尺度的物体会表现下降。
提出的IOU loss主要是使用预测的bbox与gt之间的IOU作为衡量标准。

IOU的定义如下:

目标检测分块知识总结 1

IOU定义

目标检测分块知识总结 1

IOU损失的前向过程0

目标检测分块知识总结 1

IOU损失的反向传播1

目标检测分块知识总结 1

IOU损失的反向传播2

目标检测分块知识总结 1

IOU损失的反向传播3

从最终的损失函数中可以看到,前一项表示bbox的预测误差,后一项表示IOU的误差。这样在损失函数中就反映了坐标之间的相关性。

目标检测分块知识总结 1

IOU网络的结构

在训练的时候,IOUnet的输入有三个:原始图像,一个像素落在目标区域内与否的置信度热度图,一个所有像素的gt热度图。

目标检测分块知识总结 1

网路表现
从图中可以看到,IOUnet对于尺度变化有很好的适应性,而使用L2损失则预测会发生偏移。

2. RetinaNet

提出了focal loss来解决正负样本不均衡问题。主要针对单阶段检测器中利用滑动窗口产生大量的正负样本,而背景图片占主导部分导致训练困难,并且预测错误的问题。
focal loss 的函数曲线如下:

目标检测分块知识总结 1

focal loss
对于容易的样本,其预测概率p会比较大,则其对损失函数的贡献会被缩小,加上指数衰减,其影响几乎变得很小。而对于困难的样本,其概率会很小,那么其系数衰减很小,导致其对于损失函数的影响增大,使网络更多的关注困难样本,从而解决了训练困难问题。

RetinaNet的网络结构

目标检测分块知识总结 1

RetinaNet
网络是在resnet50的基础上加入了FPN的操作,从而可以在多级特征图中预测不同尺度的物体。同时在FPN的横向分支又加入了预测的子网络,一方面回归坐标,另一方面进行分类。 最终的输出,对于特征图中的每个像素,以其为中心,会产生若干个anchor,每个anchor都产生有A个类别,从而分类子网络的输出是W*H*KA,而每个anchor都会产生一组坐标,所以网络输出是W*H*A。

3. soft-NMS

论文题目《Improving Object Detection With One Line of Code》 2017
通常在产生了很多anchor之后,在预测阶段需要对每个anchor进行分类和回归,但是最终仍然会有很多bbox的预测结果,那么最终需要对这些anchor进行NMS操作。但是原始的NMS操作会将不满足条件的bbox直接提出,这样的做法有点简单粗暴,对于有遮挡情况出现的时候,或者两个物体相距比较接近的时候,这种做法可能会导致一些目标漏检。

目标检测分块知识总结 1

NMS

目标检测分块知识总结 1

NMS存在的问题

那么针对这种情况,设计的soft-NMS不是将IOU超过阈值的bbox删除掉,而是降低其对应的得分,仍然保留。那么在后续的NMS过程中,可以很大概率上保留这些bbox,从而增加检出率。

那么soft-NMS的方法也很简单:

目标检测分块知识总结 1

soft-NMS
可以看到,这个过程也就是将原本要剔除的框给与一个低分的置信度,从而还是要保留其存在。 那么具体的f函数作者给出了两种:

目标检测分块知识总结 1

soft-NMS1

目标检测分块知识总结 1

soft-NMS2
当然,还有其他的非线性函数可以进行这样的操作,但是还会引入其他的超参数,所以这里就没有进一步进行探讨。

4. IOU-Net

论文题目《Acquisition of Localization Confidence for Accurate Object Detection》 2018
当前目标检测算法在进行NMS的时候,往往利用分类置信度得分进行排序从而进行NMS,但是真正用来衡量目标框的准确性的时候,往往是要计算目标框是否足够好。因此,这里作者建议使用位置置信度来作为NMS处理的排序依据。以便得到较为精准的检测框。

目标检测分块知识总结 1

利用分类置信度作为标准的缺点

从上图中可以看出,gt是黄色的框,而红色框和绿色框分别为预测的bbox,但是明显可以看到,绿色框的位置要更好一些,但是分类置信度却不如红色框高,那么后面在进行NMS的时候会根据分类置信度进行排序,也就导致最终绿色框的最终被提出,留下红色框作为预测结果。导致这样结果的原因在于只使用分类置信度作为排序基础,而这个置信度和框的准确性之间没有必然的联系。
从下图中的IOU与分类置信度和位置置信度之间相关性可以看出,IOU与位置置信度之间是正比的关系,而与分类置信度之间没有太大的联系:

目标检测分块知识总结 1

IOU与分类置信度和位置置信度之间的相关性

而且还有一个原因:在使用分类置信度作为排序基准的时候,往往NMS过程具有不可迭代性。也就是说,当进行了多次NMS之后,得到的结果反而不会有很大的提升,反而会导致结果下降,从下图中可以看到。

目标检测分块知识总结 1

不可迭代性
由于cascade RCNN具有三个阶段的网络,因此可以看到,当进行了三次坐标修正之后,如果再增加修正迭代次数,那么ap会下降。 这也有违直觉。照理说,如果一个bbox的准确度不够,那么经过反复的迭代修正应该会变好,但实际上的表现却不是这样的。

目标检测分块知识总结 1

不可迭代性
从上图中可以看出,上图中的bbox在经过多次迭代之后,反而预测结果变差。这个原因可能是因为网络想要生成更大的感受野图像,从而判定该目标的类别是正确的,但是这反而使位置不准确。 因此,作者提出了使用IOU-Net来进行预测。基础结构如下所示:

目标检测分块知识总结 1

IOU-Net网络结构
可以看到,原始图像在FPN的分支基础上,加入了PrROI-Pooling。并且在预测阶段加入了IOU预测来进行监督,从而使网络利用IOU进行排序,而非分类置信度。

目标检测分块知识总结 1

IOU guided-NMS

从图中可以看到,在进行NMS操作之前进行排序的时候, 使用的是IOU的预测结果。同时,如果两个框之间的IOU大于阈值的时候,会将两者之间较大的置信度得分分给保留下来的框,也就是说,最终保留下来的框的置信度得分不一定是原始置信度。这样的话,从分类置信度和位置置信度两方面都能够保证结果的准确性。

目标检测分块知识总结 1

基于优化的bbox修正

优化目标:

目标检测分块知识总结 1

优化目标

目标检测分块知识总结 1

PrROI Pooling
上面的PrROI Pooling是在ROI Align算法的基础上进行了进一步修改,大大增加了位置的准确性。 这部分内容在其他处有很好的讲解。

目标检测分块知识总结 1

PrROI Pooling反向传播
![实验结果](https://images-1258659611.cos.ap-shanghai.myqcloud.com/story_writer/algorithm/Object_Detection/IOU-Net/%E5%AE%9E%E9%AA%8C%E7%BB%93%E6%9E%9C.jpg#pic_center)
实验结果

参考文献:

  1. UnitBox: An Advanced Object Detection Network
  2. Focal Loss for Dense Object Detection
  3. Soft-NMS – Improving Object Detection With One Line of Code
  4. Acquisition of Localization Confidence for Accurate Object Detection