Adaptive Affinity Field for Semantic Segmentation

Adaptive Affinity Field for Semantic Segmentation

  最近在阅读目标分割的一系列论文,今天读到伯克利大学的Adaptive Affinity Field for Semantic Segmentation 文章,觉得应该记点什么与大家一同分享。

背景介绍

  目标分割 对应的是像素级别的前景背景分析,本篇文章针对前景背景混合,前景信息弱(本文点出譬如:玻璃窗这类透明前景,如下图所示)无法有效分离的问题,提出了不同于CRF(条件随机场)和GANs(生成对抗网络)的方式。AAF方法捕捉和匹配空间像素点之间的关联,描述每个像素点语义标签如何彼此相互关联。
针对不同方法捕捉空间结构
  其中描述到 affinity idea 的时候提到了文献【26】1,文献是1985年的描述了一个关于early vision 的 ill-posed 的问题, 这个问题是什么, Ill-Posed Problems in Early Vision 此文献里有详细的描述以及证明,并阐述如何从数学方面解决此类问题,简单的说 Ill-Posed Problems 是一个不可逆问题,譬如遮挡的边界恢复问题。文献【26】提出了一个新型解决方案,从物理电学以及化学的局部相关性解决问题,也就是说从构造硬件去解决一个数学非线性方程。本文应该是借助这种局部场去描述内在结构,可能那么理解有些牵强吧。
  接着阅读了【23】2,文献中详细描述了Complex affinities for grouping , 通过 Angular Embedding:
A Robust Quadratic Criterion 文献中的 angular embedding (AE)方法解决了群体中的异常值,对于修整细节以及边缘特性有效。原始图如下其中 least squares(LS)。

  与上述方法不同的为,本文强调了两个边界性,从 loss function 中也可以看出来, 具有一个最大最小值,在范围内都 OK 。
其中比较吸引人的几点如下:
1.提出了KL分布表示空间结构信息。
2. 训练方式比GAN容易,inference易于CRF。
3.关注与几何结构而不是像素(应该是loss中的取极大极小的极值效应)

相关工作介绍

  语义分割是像素级别的分类任务,同样相关模型结构分析对正确率有一定提升。

  Semantic Segmentation :自从全卷积神经网络,更深,更广泛的卷积网络架构的生成,极大提高了VOC测试标准,特别是 ResNet 代替了主干网络以及空洞卷积对于网络细节修整。但这些方法无法避免前景背景混合时造成的判断失误。譬如: DeepLabV3+(结合DCNN中的空洞卷积以及编码解码的方式,抛弃了比较困难的CRF的迭代方式3)。

  Structure Modeling :图片像素点之间有较高的空间关联特性,如果将其定义成一个像素级别的分类工作,会造成不必要的困难以及空间不一致的特性。从而提出了CRF+DCNN的方法,但是这个方法会造成迭代时间过长,inference 相对来说费时。

方法介绍: Adaptive Affinity Fields

  分为两个部分首先1.回顾了对于语义分割中像素级别的交叉熵函数 2.面对其缺陷,提出了通过 affinity fields 进行区域级别的监督,介绍了对抗的过程学习每一类适应亲和卷积核的大小。整个具体流程图如下:图中分为两个部分,a)多核亲和场的损失,b)对应对抗类别的权值。其中注意AAF的方法只用作训练对于 inference 没有影响。(以此表明了比 GANs 好训练,inference 比 CRF 容易)

像素级到区域级的过程

  像素级的一元监督形式,是一种比较常用的语义分析的手段。像素之间的关联可以通过有效表示域来挖掘,那么随着网络的加深有效感受域随之也就越大。其中 y i ^ ( l ) \hat{y_i}(l) yi^(l) 预测对应类别的概率,对应在像素 i i i 的类别为 l l l ( g r o u n d t r u t h ground truth groundtruth.)
L u n a r y i ( l ) = L c r o s s − e n t r o p y i ( l ) = − l o g y i ^ ( l ) L_{unary}^i(l) =L_{cross-entropy}^i(l) =-log\hat{y_i}(l) Lunaryi(l)=Lcrossentropyi(l)=logyi^(l)  一元标签没有描述语义之间的相关性以及场景结构的信息。包含不同类别之间的相互作用。譬如:某个东西伴随某个东西产生可能性会比较大,某个东西为什么样的形状可能性更大。这一类我们称之为类间以及类内之间的相互关联。从而提出了一个区域级的损失,来惩罚不一致的特性,鼓励像素之间的内在因素。
  从而创建了region-wise的 L r e g i o n i ( l ) L_{region}^i(l) Lregioni(l)损失函数, ℵ ( y i ^ ( l ) ) \aleph(\hat{y_i}(l)) (yi^(l)) 为预测的结果, ℵ ( y i ( l ) ) \aleph({y_i}(l)) (yi(l)) 为标准的结果。最后函数为两个相加:
S ∗ = a r g m i n S L = a r g m i n S 1 n ∑ i ( L u n a r y i ( y i ^ ( l ) , y i ( l ) ) + γ L r e g i o n i ( ℵ ( y i ^ ( l ) ) , ℵ ( y i ( l ) ) ) S^*=\underset{S}{argmin}L=\underset{S}{argmin} \frac 1 n \sum_i (L_{unary}^i(\hat{y_i}(l),{y_i}(l)) + \gamma L_{region}^i(\aleph(\hat{y_i}(l)),\aleph({y_i}(l))) S=SargminL=Sargminn1i(Lunaryi(yi^(l),yi(l))+γLregioni((yi^(l)),(yi(l)))  n为总得像素个数

Affinity Field 损失函数

  亲和场采用了灵活地方式定义region-wise 损失,优化方便。主旨在于描述像素点和点之间联系,一个加权的边表示点与点相似度。一共存有两类标签:一类为相似一类为不相似,相似的像素之间具有亲和力,不相似的之间具有斥力。如下图所示
在这里插入图片描述
  图中描述的正是文章中两类方法:左边的正是提出的这种亲和力的方式 L a f f i n i t y i c L_{affinity}^{ic} Laffinityic,最右边的定义如上所述的 L r e g i o n i ( ℵ ( y i ^ ( l ) ) , ℵ ( y i ( l ) ) L_{region}^i(\aleph(\hat{y_i}(l)),\aleph({y_i}(l)) Lregioni((yi^(l)),(yi(l)),损失函数是基于KL散度的二分类的概率分布,公式具体的意思就是如果是同一类就保持一直,不同类之间具有一个最近距离 m m m 。对于像素 i i i,领域像素 j j j,对于相同类别 c c c在于ground truth y i ( c ) y_i(c) yi(c)下的损失函数,分开算边界 L a f f i n i t y i b ‾ c L_{affinity}^{i\overline bc} Laffinityibc以及非边界的损失 L a f f i n i t y i b c L_{affinity}^{ibc} Laffinityibc,当然最后算的是 L a f f i n i t y i c L_{affinity}^{ic} Laffinityic 平均值
L a f f i n i t y i c = { L a f f i n i t y i b ‾ c = D K L ( y ^ j ( c ) ∣ ∣ y ^ i ( c ) ) if  y j ( c ) = y i ( c ) L a f f i n i t y i b c = m a x ( 0 , m − D K L ( y ^ j ( c ) ∣ ∣ y ^ i ( c ) ) ) if  o t h e r w i s e L_{affinity}^{ic} = \begin{cases} L_{affinity}^{i\overline bc}=D_{KL}(\hat y_j(c)||\hat y_i(c)) &\text{if } y_j(c)=y_i(c) \\ L_{affinity}^{ibc}=max(0,m-{D_{KL}(\hat y_j(c)||\hat y_i(c))}) &\text{if } otherwise \end {cases} Laffinityic={Laffinityibc=DKL(y^j(c)y^i(c))Laffinityibc=max(0,mDKL(y^j(c)y^i(c)))if yj(c)=yi(c)if otherwise  对于以上的公式做出以下两点讨论:
  1.这种配对学习的方式,不论类别,两个像素只限制与同一类或不同类,对于给出边界具有较好的帮助。
  2.这样的学习方式类似于CRF,限制领域像素对于像素点的影响,但是这样的方式不需要牺牲inference时间,通过连续迭代的方式完成。
  当然公式可以统一:(若同一类为1,反之为0)
L a f f i n i t y i c = y L a f f i n i t y i b ‾ c + ( 1 − y ) L a f f i n i t y i b c = y D K L ( y ^ j ( c ) ∣ ∣ y ^ i ( c ) ) + ( 1 − y ) m a x ( 0 , m − D K L ( y ^ j ( c ) ∣ ∣ y ^ i ( c ) ) ) L_{affinity}^{ic} =y L_{affinity}^{i\overline bc} + (1-y) L_{affinity}^{ibc} =y D_{KL}(\hat y_j(c)||\hat y_i(c))+(1-y) max(0,m-{D_{KL}(\hat y_j(c)||\hat y_i(c))}) Laffinityic=yLaffinityibc+(1y)Laffinityibc=yDKL(y^j(c)y^i(c))+(1y)max(0,mDKL(y^j(c)y^i(c)))

Adaptive Kernel Sizes from Adversarial Learning

  在训练的过程中有一个内核的大小,但是对于不同的类别我们会有一个不一样的大小,所以我们不能去统一规定。从而提出了自适应的方法对于大小以及权值进行学习。
L m u l t i s c a l e = ∑ c ∑ k w c k L r e g i o n c k         s . t . ∑ k w c k = 1    a n d    w c k ⩾ 0 L_{multiscale}=\sum _c \sum _k w_{ck}L_{region}^{ck} \ \ \ \ \ \ \ s.t. \sum _k w_{ck}=1\ \ and\ \ w_{ck} \geqslant 0 Lmultiscale=ckwckLregionck       s.t.kwck=1  and  wck0  对应于类别 c c c k ∗ k k*k kk 大小核对应权值 w c k w_{ck} wck。其中前文给出 L r e g i o n c k L_{region}^{ck} Lregionck 。具体文章没有给出特别详细公式,我怀疑就是交叉熵函数,细节还要看代码。(看代码之后再公布细节)
正因如此,为了让损失函数 L m u l t i s c a l e L_{multiscale} Lmultiscale最小,会自动让无边界的地方具有较小的核,而有边界的地方具有较大核。因为现实生活中越近出现边界的概率越小。
最后我们的训练方式选取了博弈的方法,和 GANs 类似,分别去取最大最小的值去进行对抗,一方面我们需要让分割越漂亮越好,另一方面选择核以及权值需要让损失越大越容易去训练到较好状态,所以 the affinity loss 公式如下:
S ∗ = a r g m i n S m a x w L u n a r y + L m u l t i s c a l e S^*=arg \underset{S}{min}\underset{w}{max}L_{unary}+L_{multiscale} S=argSminwmaxLunary+Lmultiscale
  分离边界以边界情况 L a f f i n i t y b ‾ c k L_{affinity}^{\overline bck} Laffinitybck以及非边界 L a f f i n i t y b c k L_{affinity}^{bck} Laffinitybck,AAF公式如下
S ∗ = a r g m i n S m a x w L u n a r y + L A A F L A A F = ∑ c ∑ k ( w b ‾ c k L a f f i n i t y b ‾ c k + w b c k L a f f i n i t y b c k )         s . t . ∑ k w b c k = 1   ∑ k w b ‾ c k = 1    a n d    w b c k ⩾ 0    w b ‾ c k ⩾ 0 S^*=arg \underset{S}{min}\underset{w}{max}L_{unary}+L_{AAF} \\ L_{AAF}=\sum _c \sum _k (w_{\overline bck}L_{affinity}^{\overline bck}+w_{bck}L_{affinity}^{bck}) \ \ \ \ \ \ \ \\ s.t. \sum _k w_{bck}=1\ \sum _k w_{\overline bck}=1\ \ and\ \ w_{bck}\geqslant 0\ \ w_{\overline bck}\geqslant 0 S=argSminwmaxLunary+LAAFLAAF=ck(wbckLaffinitybck+wbckLaffinitybck)       s.t.kwbck=1 kwbck=1  and  wbck0  wbck0

  损失函数的关系的一个序列图:

unary loss affinity loss multiscale loss AAF loss 作为一个一元标签损失 最为像素间关系损失,运用 region loss 作为一个一元标签损失 最为像素间关系损失,运用 AAF unary loss affinity loss multiscale loss AAF loss

  1. [Poggio, T.: Early vision: From computational structure to algorithms and parallel hardware.
    Computer Vision, Graphics, and Image Processing 31(2), 139–155 (1985)] ↩︎

  2. [Maire, M., Narihira, T., Yu, S.X.: Affinity cnn: Learning pixel-centric pairwise relations for
    figure/ground embedding. In: CVPR (2016)] ↩︎

  3. Encoder-Decoder with Atrous Separable Convolution for Semantic Image Segmentation ↩︎

  • 6
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值