在人工智能领域有一句很流行的话:“有多少人工,就有多少智能”。这确实是一个很尴尬的问题,计算机的理解能力是建立在大量的人工标注数据之上的。我们知道,数据标注需要很高的成本,特别是像素级的图像,而且在复杂场景之下,也非常容易出错。
俗话说,人民的智慧是无穷的。为了改善或者解决这个问题,弱监督和无监督学习得到了用武之地。
好了,说到这篇论文,本文讨论的是弱监督学习的问题,主要内容是利用bounding box和少量的mask来进行图像的语义分割。
看一下论文的具体内容:
3. Baseline
BoxSup方法可以应用在所有的基于cnn的mask监督的语义分割网络中。作者采用的是FCN网络,然后使用条件随机场对结果进行优化。(ps:其实,就是FCN那一套,这篇论文也是在FCN的基础上做了一些改进)
而且,在FCN中,目标函数是这样的:
这篇论文既然是在FCN上进行的改进,那么目标函数肯定是要变一变的,具体怎么变,后面具体说。
4. Approach
4.1. Unsupervised Segmentation for Supervised Training
首先使用无监督方法产生一些candidate segments,然后利用这些candidate segments去更新网络参数。接下来,更新之后的网络又会产生一些更好的candidate。这个过程一直迭代进行下去,下面来张图来描述这个过程:
是不是很形象?这里有一点要注意的是,产生region proposal的步骤只出现在训练的过程中,在测试的时候,直接把网络的前向传播跑一遍就完事了。
4.2. Formulation
这部分只有两个公式,就是把FCN的目标函数按照这个思路稍微改造一下就可以了。
稍微解释一下这个公式,首先给产生的所有candidate segments一个类别标签,其中lB表示:bouding box的类别标签,lS表示:semantic label,如果两者相等,那么
那么,这个公式的含义就很好理解了,如果candidate segments和bouding box的重合度越高,那么,0的值就越小。
下面来看一下第二个公式:
是不是和FCN的目标函数很像?其实就是把标注的mask换成了我们自己生成的candidate segments。
最终的目标函数就变成了这样滴:
其中,
4.3. Training Algorithm
每一次迭代的过程分为两个阶段,第一个阶段:固定candidate segments,然后更新网络参数;第二个阶段:固定网络参数,然后产生新的candidate segments。注意,两个阶段都要把所有的图片过一遍。也就是说,每迭代一次,训练集的图片要使用两遍。
在第二个阶段还有一个问题需要解决,网络每次可能都会产生很多的candidate segments,怎么给它们打标签呢。作者给出了一个贪婪算法。对于每一个bounding box,只选择一个和它的IoU最大的那个segments作为对应的前景,其他没被选中的全部标记为背景。
但是,这种方法很可能导致,每一代选择的segments都是同一个,有可能会陷入局部最优。所以,这里改进的方法是:每次找出前5个IoU最大的segments,然后从里面随机选择一个。(作者在后面的验证中,也证明了这种方法比每次只选一个IoU最大的效果要好,其实,这也算一种数据增强方法,可以增加样本的差异性。)
到目前为止,上面提到的方法是只使用bouding box来训练语义分割,如果你有mask的分割数据的话,也可以进行混合训练,方法很简单,直接把公式中的candidate segments全部改成ground-truth masks就可以了。
Comparisons of Supervision Strategies
在这一部分,作者比较了只使用bounding box信息、只使用mask信息、同时使用bounding box和mask信息,三种方法的效果,得出如下结论:
从结果中可以看出,只使用bounding box的话,平均IoU和其他两种方法稍微逊色。只使用mask信息和semi方法(同时使用bounding box和mask信息)得到的结果几乎差不多。但是,semi方法的优势在于bounding box数据和mask数据的比例为1:9。也就是说:这里只使用了少量的mask数据,就达到了和全部都使用mask数据差不多的效果,节约了很多成本。
Error Analysis
从作者的分析中,得到了一个很有意思的结论:将bounding box的信息应用在网络中,对于物体边缘的识别效果提升有限,而对于物体内部信息的识别效果可以得到很大程度的提高。
也就是说,应用bounding box的信息之后,网络在物体内部(特别是物体中心)的特征提取能力得到了很大的提高,最后反而会使得物体的分类精度得到提高。当然,这也会提高网络segmatic segmentation的表现。