【论文阅读记录】Unsupervised Hard Example Mining from Videos for Improved Object Detection

前言:

{

    在https://github.com/amusi/awesome-object-detection里看到了论文《Unsupervised Hard Example Mining from Videos for Improved Object Detection》(https://arxiv.org/pdf/1808.04285.pdf)。论文主要是关于使用视频来提升目标检测的效果,也是我最近想了解的。

    这次添加了一个新分类,之后应该会持续更新这个分类。

}

正文:

{

    第一节讲述了本论文对于提升模型效果的主要方向—大量增加困难样本(hard example)(来自视频)。

    之前我也有想过通过视频来提升模型效果,不过这篇论文倒是给出了具体的方法。

    在介绍本论文的方法前,作者先介绍了3种目前的方法:active bias;on-line hard example mining(OHEM)和 focal loss。

    本论文的方法的基础在于:视频的图像具有连贯性,目标不太可能突然出现又突然消失(也不太可能突然消失又突然出现),见图1。

   

    作者称这种短暂的虚假检测(图中的红框)为detector flicker。

    虽然现有方法(例如automatically generated training set)可以通过某些方式生成训练样本,但是本论文的方法却使用了新的而且是未标注的大量样本。本论文的方法可以发挥无监督训练的优势,并且得到的负样本的质量较佳。

    第二节介绍了相关工作。

    主要是两个方面:负样本的质量和半监督学习。

    滑动窗口式的训练和检测会出现大量负样本,数量大到有时分类器只给出false就会得到不错的结果。很多现有方法(例如OHEM和focal loss)都是在标注数据的基础上进行改进。

    关于半监督学习,论文这里提到了《semi-supervised self-training of ob- ject detection models》(Rosenberg, C., Hebert, M., Schneiderman, H.   2005),说其中的方法是先在未标注的数据上训练目标检测器,之后在有噪声的标注样本子集上进行监督训练,由于论文日期比较早,在时间有限的情况下就暂时跳过具体流程了;还提到了基于轨迹的方法,不过我认为,本论文的方法也算是涉及到了轨迹。

    第三节具体介绍了样本挖掘方法。

    视频数据来自各种情景喜剧和YouTube上的相关搜索(貌似都是镜头比较稳定的视频,比如演讲和行车录像)。

    1,首先,对获得的视频的各个图像进行现有检测器的检测,并且去除置信度得分小于0.8的结果;2,对于过滤后的各个检测结果,在其±5帧的时间范围内进行轨迹识别:对其bounding box扩大100个像素以得到一个空间范围,并且在此时间范围和空间范围内使用归一化交叉相关(normalized cross correlation,NCC)搜索其最佳匹配(NCC的相似度得分必须大于0.5);3,并且如果搜索得到的结果与预测结果的最大交并比(intersection-over-union,IoU)小于0.2,则认为此检测结果是detector flicker。

    detector flickers又被作为困难负(hard negatives)。称与搜索得到的结果一致(文中没有量化说明)的预测结果为伪正(pseudo-positive)。保留包含至少一个伪正和一个或多个困难负的帧(序列)作为数据集。当时间范围为±1帧时如图2。

   

    可以看出,当时间范围为±5帧时,困难负的评判会变的非常严格,这样就需要更大规模的挖掘。

    另外,文中提出了困难正(hard positive)。和困难负的设想类似,困难正是指在空间范围内突然消失的预测结果,如图3。

   

    在部分实验中,这种方法获得的困难负的正确率分别为88.65%(人脸),96.87%(人脸+歧义),74.48%(行人)和82.18%(行人+歧义);并且困难正的的正确率分别为94.46%(人脸)和83.13%(行人)。

    第四节介绍了相关实验。

    作者考虑到了三个方面:训练迭代数,多出的数据量和挖掘的数据的不同。

    对于行人检测,使用模型的是预训练的基于VGG16的Faster R-CNN,其被在Caltech Pedestrian上使用OHEM训练了150000次迭代,训练RPN时IoU ratio被设为0.5,其他的设置如同[1]。作者从视频数据中挖掘出了14,967个困难负帧和42,914个困难正帧,使用OHEM和固定的学习率0.0001在Caltech Pedestrian和挖掘的困难样本上对预训练的模型进行了60000次迭代的训练。测试在reasonable的数据条件下进行,结果如图4中的(a)。

   

    图中With more iter是指增加训练次数;Flickers as Pos是指使用一般正样本;Flickers as HP是指使用困难正样本;Flickers as HN是指使用困难负样本;并且Flickers as HN+HP是指同时使用困难正样本和困难负样本。(b)部分图表是对SDS-RCNN[2]使用本方法的结果。

    可以看出,本方法对目标检测会有一定的改进。不过值得注意的是,加入困难负样本反而会降低SDS-RCNN的效果,作者说SDS-RCNN在排除困难负样本的过程中也降低了正确结果的召回率。

    对于人脸检测,过程类似,作者还是使用基于VGG16的Faster R-CNN,训练在WIDER Face上进行。我就不详述,直接放结果了,见表1。

   

    这样看来,似乎添加困难正样本和困难负样本都会提升Faster R-CNN的效果,不管使用场景如何。

    但是,作者也提出,挖掘的样本中存在少数错误样本,这对某些模型(例如RetinaNet)的效果来说是很大的打击。

    最后附上一组具体的检测结果,见图6。

   

    就像图中的F1和F3一样,小目标检测的效果目前还不是很好。

    在第五节,作者给出了一些方向上的进一步考虑。

    考虑假正分布(False Positive Distribution)的熵。假正检测也具有一定的规律,例如错误的人脸检测可能来自于人手等一些固定的目标。

    考虑域转移(Domain Shift)的效果。域转移会降低模型的效果,谷歌最近发起的包容性图像识别竞赛[3]就考虑了域的不同带来的问题。

    考虑对其他类的扩展。

}

结语:

{

    虽然作者说是无监督,但还是使用了已经训练好的模型,训练好的模型应该使用了标注样本。

    使用视频数据是一个好的方向,因为这是大量连续性数据,不仅只是增加了数据的量。

    本文很多地方都是自己的理解,如有不当欢迎指出。

    [1] Faster R-CNN: towards real-time object detection with region proposal networks. Ren, S., He, K., Girshick, R.B., Sun, J.

    [2] Illuminating Pedestrians via Simultaneous Detection & Segmentation Garrick Brazil, Xi Yin, Xiaoming Liu Michigan State University, East Lansing. (https://arxiv.org/pdf/1706.08564.pdf)

    [3]Inclusive Images Challenge, Google AI (https://www.kaggle.com/c/inclusive-images-challenge)

}

猜你喜欢

转载自blog.csdn.net/fish_like_apple/article/details/82856012