【CVPR2019】C-MIL: Continuation Multiple Instance Learning for Weakly Supervised Object Detection

【CVPR2019】C-MIL: Continuation Multiple Instance Learning for Weakly Supervised Object Detection

MIL回顾

介绍

MIL将图片视为“包”, B i B B_i\in B 为第 i i 个包(图片), B B 为所有包, y i Y , Y = { 1 , + 1 } y_i\in Y,Y=\{-1,+1\} 表示 B i B_i 是否包含某个类别的物体。比如 y i = 1 y_i=1 表示一个正的“包”(至少有一个正的实例), y i = 0 y_i=0 表示一个负的“包”(没有一个正的类实例), B i , j , y i , j B_{i,j},y_{i,j} 表示 B i B_i 的proposal和该proposal的类别, j { 1 , 2 , 3 , . . . , N } , N j\in \{1,2,3,...,N\},N 为实例的个数。

MIL可以分为两个交替的步骤,实例选择和检测器估计。其中实例选择为一个实例选择器 f ( B i , j , w f ) f(B_{i,j},w_f) 可以计算出每一个proposal的类别得分。 B i , j = a r g m a x j ( f ( B i , j , w f ) ) , ( 1 ) B_{i,j^*}=argmax_j(f(B_{i,j},w_f)), (1) 为得分最高的proposal。而检测器估计器 g z ( B i , j , w g ) g_z(B_{i,j},w_g) 对于上述被选择的proposal进行训练。
在这里插入图片描述

凸性分析

当第三个式子, y i = 1 y_i=-1 时永远是凸函数,但 y i = 1 y_i=1 时是非凸的(有种说法是当1减去一个可能大于1或者小于1的数,最终的值等于0,也可能大于0。但是一般我们计算得分基本上是0~1的范围,而且hinge loss在SVM中也有应用是凸函数但是不可微,论文后续也没有说为什么改进后就是凸的。)这里个人理解是因为公式1仅仅是取最大值,不具有代表性,得分高不一定就是“最优解”,可能是“局部最优解”,而后续的改进都是主打的是“平滑”,使实例选择出来的proposal更具代表性。

Continuation MIL

在模型训练的过程中,定义了一系列的 λ \lambda ,也就是epoch,在0~1范围内,每个epoch式子都有所不同。
在这里插入图片描述
这里的 B i , J ( λ ) B_{i,J(\lambda)} 是实例的子集, J ( λ ) J(\lambda) 就是子集的index,也就是说训练实例选择器的时候,一个bag按照被分为多个的实例子集,这些子集里面的proposal空间上关联(互相有重叠)或者类别相关(类别分数相同)。那么是如何分的呢?迭代执行以下步骤:

  1. 选择分数最高但是还未属于任何一个实例子集的proposal建立一个新的实例子集
  2. 将那些与这个分数最高的proposal重叠大于等于 λ \lambda 的proposal归入该新的实例子集

λ = 0 \lambda=0 时,每个实例子集是整张图片的所有proposal的集合;
λ = 1 \lambda=1 时,每个实例子集是整张图片的每个proposal。

于是实例选择器的损失函数为:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
至于检测器估计,因为实例选择出来的子集可能包括了背景或是只有物体的一部分,所以融入了参数 λ \lambda ,于是式5)变成了下式:
在这里插入图片描述
随着 λ \lambda 从0变到1, 1 λ / 2 1-\lambda/2 从1变到0.5,损失函数如下所示:
在这里插入图片描述

发布了86 篇原创文章 · 获赞 10 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_36530992/article/details/104336266