论文阅读笔记《Few-Example Object Detection with Model Communication》

核心思想

  本文提出一种少样例目标检测算法(MSPLD)。首先说明一下本文提到的“少样例学习”(few-example learning)和我们之前了解的“少样本学习”(few-shot learning)还是有一些区别的。最重要的区别就是few-example是指训练集中包含少量带有标签的样本和大量无标签的样本(类似于半监督学习或弱监督学习,但半监督学习中有标签样本所占比例通常在50%,而少样例学习中有标签样本所占比例通常为1%左右,每个类别中包含3-4个样本),而few-shot是指训练集中只包含少量带有标签的样本,而不包含无标签样本。本文并不是提出一种目标检测的算法,而更接近于一种通过交替训练的方式,利用无标签样本不断提高目标检测器的性能,并采用多模型结构解决少样例学习容易陷入局部最优解的问题。整个网络的处理过程如下图所示。
在这里插入图片描述
  首先我们看到最上面一行中蓝色方框中包含许多图片,其中黄色底表示少量有标签样本,灰色底表示大量的无标签样本。第二行黑色方框中表示的是目标检测器,本文选用了R-FCN和Fast RCNN作为baseline。在第一次迭代(round 0)过程中,用少量带有标签的图像对目标检测器做初始化。然后利用初始化后的模型给无标签图片生成一系列的伪标签(边界框和类别),第二次迭代(round 1)时,则利用带有标签的数据集和一部分置信度比较高的带有伪标签的数据集对目标检测器进行训练。重复迭代这个“生成伪标签-训练目标检测器”的过程,就能不断提高目标检测器的性能,而且这一过程类似与课程学习(本文中也称作Self-paced Learning,SPL),是一个由简到难的渐进过程,刚开始模型的检测能力较差,只能找到少部分比较容易的目标物体,但随着训练的进行,模型的能力逐步增强,逐渐可以找到难度更高的目标物体,如图中最右侧蓝色框内所示。为了避免少样例学习容易陷入局部最小化的问题,本文提出了多模型学习方案,如下图所示。
在这里插入图片描述
  多个模型分别独立地预测出一系列标签,而各个模型之间会相互比较,如果前一个模型预测地结果优于本模型的结果,则保留上一个模型的预测结果,如模型1预测的汽车,在模型2的结果中得以保留;如果本模型预测的结果要优于前一个模型的结果,则取代前一个模型的预测结果,如模型1预测的花盆,就被模型2的预测结果所取代了。最后通过极大值抑制NMS的方式,保留所有模型预测的结果中超过设定阈值的目标,作为这一回合的输出。

实现过程

网络结构

  目标检测器选择R-FCN和Fast RCNN的网络结构

损失函数

  本文设定的目标函数如下

在这里插入图片描述
上式看起来有点复杂,我们逐步拆解来看,首先介绍各个符号的含义:

  • wjw^j表示第jj个模型的参数(也就是目标检测器的参数)
  • vi,cjv^j_{i,c}表示第ii个图像中被预测为第cc个类别的边界框是否用于模型jj的训练,因此只有0,1两种取值
  • yiujy^{uj}_i表示模型jj为第ii个无标签图像所预测的伪标签
  • λ,γ\lambda,\gamma表示两个正则化项的系数
  • Ψ\Psi表示一种先验知识
  • mm表示模型总数
  • l,ul,u分别表示每个类别中有标签图片个数和无标签图像个数
  • CC表示类别总数
  • BB表示边界框预测函数,B(I)B(I)就是图片II中各个物体边界框的预测结果
  • VjV^j是一个u×Cu \times C的矩阵,包含了第jj个模型所对应的vi,cjv^j_{i,c}的情况

然后我们介绍目标函数中各项表示的含义,第一项LsjL_s^j表示模型jj对有标签图像的预测损失;第二项LcjL_c^j表示模型jj对无标签图像的预测损失,计算方法如下
在这里插入图片描述
第三项表示SPL正则化项,希望在每次迭代训练中被选中用于模型训练的伪标签样本尽可能多;第四项表示多模型正则化项,希望每个模型所采用的伪标签训练样本尽可能地相似,而这是由前一回合模型预测结果的置信度决定的,这一项的意义就是希望各个模型认为置信度高的目标应该是比较统一的。约束条件5和6共同决定了,对于第ii幅无标签图像最多只能有一个类别的物体,用于第jj个模型的训练;约束条件7则表明,对于无标签图像的预测结果是来自于多个模型的综合结果FF^*,且要满足先验知识Ψy\Psi_y。关于多模型综合的方式前面已经介绍过了,而此处提到的先验知识Ψ\Psi则是作者为了降低同一幅图中包含多个类别或同一类别包含多种物体的情况下目标检测的难度,所人为设定的约束,即如果同一幅图中包含类别超过四种,或同一类别包含物体超过四个,那么这张图片将被移除。

训练策略

  本文的训练过程如下
在这里插入图片描述
  首先利用有标签数据集L\mathbb{L}初始化参数WW,并初始化矩阵VjV^j;然后对于每次迭代的每个模型,都要先利用先验知识Ψ\Psi清楚无标签数据集中不符合条件的样本,再利用下式生成伪标签
在这里插入图片描述
实际过程中求解上式的最优解难度太大,本文是选择NMS策略保留各个模型预测的结果中阈值超过0.2的伪标签,用作下一阶段的训练;计算第jj个模型的分类损失,然后利用下式更新vi,cjv^j_{i,c}
在这里插入图片描述
最后用更新过的带有伪标签的数据集和带有真实标签的数据集再次训练目标检测器的参数wjw_j

创新点

  • 本文提出一种利用少量带有标签的数据集和大量无标签数据集共同训练目标检测网络的方法
  • 利用交替训练和多模型交互的方式提高了少样例目标检测的效果

算法评价

  本文提出的方法比较符合实际的应用情况,即图像易得,标签不易得,利用网络预测出无标签图像的伪标签,再选择置信度高的伪标签图像对网络进行训练,反复交替迭代训练,逐步提高网络的效果。并且提出了多个模型独立预测,再相互比较,选择最佳结果的方式,解决了少样例目标检测容易陷入局部最优解的问题。整篇文章内容扎实,介绍详细,推理也比较清楚,只是符号太多,容易让读者感到混乱。

如果大家对于深度学习与计算机视觉领域感兴趣,希望获得更多的知识分享与最新的论文解读,欢迎关注我的个人公众号“深视”。在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章