论文地址:https://arxiv.org/abs/1810.09726
发表于:BMVC’18
Abstract
最先进的语义分割方法在有监督的情况下使用大量的标注训练图像语料库进行训练。然而,与收集未标注的数据相比,收集这样的语料库是很昂贵的,因为需要人为的标注工作。我们提出了一个基于主动学习的策略,称为CEREALS,在这个策略中,人类只需要在未标记的图像语料库中手工标注一些自动选择的区域。这最大限度地减少了人类的标注工作,同时使语义图像分割方法的性能最大化。自动选择程序是通过以下方式实现的:a)使用一个合适的信息度量,结合从学习成本模型中推断出的对人类标注工作的估算,以及b)探索图像的空间一致性。CEREALS的性能在Cityscapes上得到了证明,我们能够将标注工作减少到17%,同时保持了用Cityscapes的完全标注训练集所训练的模型的95%的mIoU。
I. Overview
本文是一篇比较经典的基于区域(相对基于图像而言)的主动学习语义分割研究,一大特点是充分考虑了实际应用的需求。一般来说,主动学习的人工标注成本是通过需要标注的图片数量(image based)或需要标注的像素数(pixel based)来衡量的,不过本文认为用像素数并不合适,因为实际标注的时候不可能去一个一个的标,为此本文是用鼠标点击数去衡量的。而为了去估算鼠标点击数,甚至用了个单独的模型去学。
II. Architecture
接下来将逐步分析该AL框架所涉及到的各个步骤。
III. Training
训练部分有两个模型,一个就是正常的语义分割模型(图中的Sem. Seg. Model),用的是FCN8s,以生成语义分割预测结果。这里比较有意思的是,语义分割模型后面跟了个开销模型(图中的Cost Model),其输入为语义分割预测结果与未标注的数据。
IV. Information Extraction
Information Extraction这步做的是计算每张图像的标注价值。那么类似于其他的AL方法,这里的价值估算是基于Entropy的。形式化地讲,对于像素 ( u , v ) (u,v) (u,v),给定语义分割模型 f θ f_{\theta} fθ以及输入图像 x x x,由于语义分割是一个多分类问题,因此可以记预测结果 P P P在 ( u , v ) (u,v) (u,v)处的预测结果 P ( u , v ) P^{(u, v)} P(u,v)分布为: P ( u , v ) = ^ P ( u , v ) ( f θ ( x ) ) P^{(u, v)} \widehat{=} P^{(u, v)}\left(f_{\theta}(x)\right) P(u,v)= P(u,v)(fθ(x)) P ( u , v ) P^{(u, v)} P(u,v)可以认为就是种随机事件。接下来,计算该预测结果的熵: H ( u , v ) : = − ∑ c P c ( u , v ) ⋅ log ( P c ( u , v ) ) H^{(u, v)}:=-\sum_{c} P_{c}^{(u, v)} \cdot \log \left(P_{c}^{(u, v)}\right) H(u,v):=−c∑Pc(u,v)⋅log(Pc(u,v)) P c ( u , v ) P_{c}^{(u, v)} Pc(u,v)其实意思就是 ( u , v ) (u,v) (u,v)处属于类别 c c c的概率。不过,本文并没有直接拿熵作为信息量度量,而是又去搞了个投票熵。当然这个投票熵也是传统主动学习领域的概念了,有: V ( u , v ) : = − ∑ c ∑ e D ( P e ( u , v ) , c ) N E ⋅ log ∑ e D ( P e ( u , v ) , c ) N E where D ( a , c ) = { 1 , if argmax ( a ) = c 0 , otherwise V^{(u, v)}:=-\sum_{c} \frac{\sum_{e} D\left(P_{e}^{(u, v)}, c\right)}{N_{E}} \cdot \log \frac{\sum_{e} D\left(P_{e}^{(u, v)}, c\right)}{N_{E}} \quad \text { where } \quad D(a, c)= \begin{cases}1, & \text { if } \operatorname{argmax}(a)=c \\ 0, & \text { otherwise }\end{cases} V(u,v):=−c∑NE∑eD(Pe(u,v),c)⋅logNE∑eD(Pe(u,v),c) where D(a,c)={1,0, if argmax(a)=c otherwise 不过,投票熵涉及到用多个模型去预测一个样本,但这里用多个模型显然来说开销很大,因此这里采取了一个近似的方法,即Monte-Carlo dropout。MC dropout在某种程度上都像是为AL定制的,简单来说,可以将其视为一个drop out层。不过在推理的时候,其并不会关闭,并且能够并行地实现多次推理,从而实现"模拟不同网络结构"的结果。
现在再来重新看下投票熵。投票熵其实就是把原始熵公式中的 P c ( u , v ) P_{c}^{(u, v)} Pc(u,v)给替换成了 ∑ e D ( P e ( u , v ) , c ) N E \frac{\sum_{e} D\left(P_{e}^{(u, v)}, c\right)}{N_{E}} NE∑eD(Pe(u,v),c)。也就是说,给定 N E N_{E} NE个模型,对于某个模型 e e e给出的预测结果 P e ( u , v ) P_{e}^{(u, v)} Pe(u,v),如果预测对了,就得到1,否则为0。也就是说,如果这几个模型都预测对了,则投票熵会很小,否则会很大。
最终的信息度量基于投票熵,会得到一张信息图:
颜色越深的部分表示信息量越大。
V. Cost Extraction
本文有个开销模型(Cost Model)专门去算这个开销图:
如果某个位置被鼠标点击的次数越多,那么相应的位置颜色就会越深。这个东西其实也是拿ground truth cost map去监督训练的,网络结构用的是[1]里面的相应实现。
VI. Region Aggregation and Fusion & Acquisition
这部分算是本文的精髓。因为本文是一种基于区域的方法,也就是说,不是去标注一整张"有价值的图像",而是去标注某张有价值图像中"最有价值的部分"。因此这里就体现出了上面两张map的作用了:Information Map可以衡量一张图像中最有价值的区域,而Cost Map可以衡量某个区域的标注开销。
现在,我们要做的就是把这两张map给统一成一张图,以供选择决策。这里有一个细节,由于最终选择标注区域是一个"正方形",因此可以不用将整张图像直接去融合。本文用了个滑动窗口:
对于某一位置 ( u , v ) (u, v) (u,v),将该窗口区域内所有的信息值/开销值给累加起来,得到处理后的区域信息图以及区域开销图。然后,将这两张图归一化,再融合起来: g 1 = I 1 + C g_{1}=\frac{I}{1+C} g1=1+CI g 2 = ( 1 − C ) ⋅ I g_{2}=(1-C) \cdot I g2=(1−C)⋅I g 3 = I ⋅ α + ( 1 − C ) ⋅ ( 1 − α ) g_{3}=I \cdot \alpha+(1-C) \cdot(1-\alpha) g3=I⋅α+(1−C)⋅(1−α) 其中 I I I是信息图, C C C是开销图。这三种融合方式都行,实际上本文将其视为了一种超参数并在实验中验证哪种更好。
最终得到的融合图长这样:
至于最终的查询过程,对于融合图,我们可以得到若干个信息量最高的区域,并对其进行标注:
Ref
[1] Kirillov, Alexander, et al. “Instancecut: from edges to instances with multicut.” Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2017.