图像语义分割(15)-ConvCRFs:用于语义分割的卷积条件随机场

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/kevin_zhao_zl/article/details/89202309

欢迎扫描二维码关注微信公众号 深度学习与数学   [获取免费的大数据、AI等相关的学习资源、经典和最新的深度学习相关的论文研读,算法和其他互联网技能的学习,概率论、线性代数等高等数学知识的回顾]
在这里插入图片描述

论文地址 :ConvCRFs for senmantic segmentation
工程地址:github 链接

1. 简介

  基于深度神经网络的方法在图像语义分割任务上表现良好,其能够有效地进行特征抽取,并且仅用较小的感受野就能得到较好的预测结果,但是缺乏对于全局语义信息和像素点间联系信息的利用能力,也有研究有效地结合了卷积神经网络和建模能力较强的CRF以进行分割,效果也不错。
  条件随机场(Conditional Random Fields, CRFs)因为具有对图像结构的建模能力可以作为一种有效的语义分割后处理方式,但是其缺点显著:一是训练和推断速度十分感人,二是其内部参数难以学习。该论文假设现有的全连接条件随机场框架具有条件独立性,从而提出以卷积的方式重新构建CRF,使其参数能够利用反向传播算法进行优化,并且能够在GPU上高效实现以进行训练和推断过程的加速。

2. 全连接条件随机场

  给定具有 n n 个像素的输入图像 I I 和具有 k k 个类别的图像分割任务, I I 的分割可以建模为一个随机场X = X 1 , . . . , X n ={X_1,...,X_n} ,其中,每个参数 X i X_i 从{1,…,k}中取值,利用 a r g m a x X P ( X I ) argmax_XP(X|I) 得到输入图像 I I 的一个分割 X X P ( X I ) P(X|I) 被建模为CRF并且符合Gibbs分布,如下所示:
(1) P ( X = x ^ I ^ = I ) = 1 Z ( I ) e x p ( E ( ^ I ) ) P(X= \hat x|\hat I=I)=\frac{1}{Z(I)}exp(-E(\hat|I))\tag{1}

  其中能量函数 E ( x ^ I ) E(\hat x|I) 定义为:
(2) E ( x ^ I ) = i N ψ ( x ^ i I ) + i ! = j N ψ p ( x ^ i , x ^ j I ) E(\hat x|I)=\sum_{i \leq N}\psi(\hat x_i|I)+\sum_{i!=j \leq N}\psi_p(\hat x_i,\hat x_j|I)\tag{2}

  函数 ψ u ( x i I ) \psi_u(x_i|I) 称为一元变量,本身可以被视为图像的分割图,任一分割方法都可以用于这个一元变量的预测,实际上当下的语义分割方法都是使用CNNs来对其进行计算的。
  函数 ψ p ( x ^ i , x ^ j I ) \psi_p(\hat x_i,\hat x_j|I) 是二元变量,代表像素 i , j i,j 的联合分布,使得模型可以利用像素点间的联系,比如颜色相近的点倾向于属于同一类,在FullCRF中 ψ p \psi_p 被定义为高斯核权重的和:
(3) ψ p ( x ^ i , x ^ j I ) : = μ ( x i , x j ) m = 1 M ω ( m ) k G ( m ) ( f i I , f j I ) \psi_p(\hat x_i,\hat x_j|I):= \mu(x_i,x_j)\sum^M_{m=1}\omega^{(m)}k_G^{(m)(f^I_i,f^I_j)}\tag{3}

  其中 ω ( m ) \omega ^{(m)} 是可学习的参数,特征向量 f i I f_i^I 可以任意选取,可能和输入图像有关。函数 μ ( x i , x j ) \mu(x_i,x_j) 是相容性转化,可以理解为极性,仅和标签 x i , x j x_i,x_j有关 ,和图像无关。
  最常用的相容性函数是是Potts模型 μ ( x i , x j ) = x i ! = x j \mu(x_i,x_j)=|x_i != x_j| 。这个模型将相似的特征赋予相同的标签,从而使得模型学习像素点间预测标签关系的结构信息。
  FullCRFs利用两个带有手工设计特征的高斯核,核 k α k_\alpha 使用 I j I i I_j和I_i 的颜色值作为特征,负责平滑的核则与位置坐标 p i p j p_i和p_j ,完整地:
(4) k ( f i I , f j I ) : = ω ( 1 ) e x p ( p i p j 2 2 θ α 2 I i I j 2 2 θ β 2 ) + ω ( 2 ) e x p ( p i p j 2 2 θ γ 2 ) k(f_i^I,f_j^I):=\omega^{(1)}exp\left(-\frac{|p_i-p_j|^2}{2\theta_\alpha^2}-\frac{|I_i-I_j|^2}{2\theta_\beta^2}\right)+\omega^{(2)}exp\left(-\frac{|p_i-p_j|^2}{2\theta_\gamma^2}\right)\tag{4}

  其中 ω ( 1 ) , ω ( 2 ) , θ α , θ β , θ γ \omega^{(1)},\omega^{(2)}, \theta_{\alpha},\theta_{\beta},\theta_{\gamma} 是模型可学习的参数,多数分割模型中的CRF都利用了相同的二元变量,CRFs难以利用手工设计的特征进行优化就来源于此。

2.1 平均场推断

  FullCRFs中的推断是通过平均场算法实现的,算法中除了信息传递的所有步骤都是高度并行的所以可以很好的在GPUs上使用通用的深度学习库实现,平均场[《模式识别与机器学习.pdf》第十章:近似推断中有讲解]算法具体如下:
在这里插入图片描述
  Krähenbühl and Koltun原始的论文中提出使用permutohedral lattice approximation,但是这种近似推断需要复杂的数据结构,而且这种近似推断的有效梯度计算研究尚未完整,这也是为什么FullCRF使用手工设计特征的原因。

3. 卷积条件随机场

  ConvCRFs在FullCRFs中引入了条件独立性假设,论文假设两个像素点 i , j i,j 的标签的分布条件独立,如果两个像素点的曼哈顿距离 d ( i , j ) > k d(i,j)>k ,则称 k k 为滤波器尺寸。
  这个假设是very strong的,它意味着当两个点的距离超过 k k ,则二元变量的值为0,这使得二元变量的计算量大大降低,而且令ConvCRFs的理论基础有了健壮且有意义的假设。

3.1 ConvCRFs中的高效消息传递

  该论文主要贡献在于证明了ConvCRFs中的消息传递是非常高效的,这避免了permutohedral lattice approximation的使用,也就使得高效的GPU计算和完整的特征学习成为可能。基于这个目标论文重新构建了带有高斯核的卷积操作中的消息传递步骤,观察到其实现与卷积神经网络中的卷积操作的实现类似。
  给定输入 P P ,其形状为 [ b s , c , h , w ] [b_s,c,h,w] ,分别代表了batch size,分类的数量,输入的高和宽,对于由特征向量 f 1 , . . . , f d f_1,...,f_d 定义的高斯核 g g ,对于每一个形状 [ b s , h , w ] [b_s,h,w] ,它的核矩阵通过如下公式定义:
(5) k g [ b , d x , d y , x , y ] : = e x p ( i = 1 d f i d [ b , x , y ] f i ( d ) [ b , x d x , y d y ] 2 2 θ i 2 ) k_g[b,dx,dy,x,y]:=exp\left(-\sum^d_{i=1}\frac{|f_i^{d}[b,x,y]-f_i^(d)[b,x-dx,y-dy]|^2}{2\theta_i^2}\right)\tag{5}

扫描二维码关注公众号,回复: 6217753 查看本文章

  其中 θ i \theta_i 是可学习的参数,对于高斯核集合 g 1 , . . . , g s g_1,...,g_s ,论文定义了一个融合的核K,即 K : = i = 1 s ω i g i K:=\sum_{i=1}^s\omega_i \cdot g_i ,所有的 s s 个核的消息传递输出结果 Q Q 定义为:
(6) Q [ b , c , x , y ] = d x , d y k K [ b , d x , d y , x , y ] P [ b , c , x + d x , y + d y ] Q[b,c,x,y]=\sum_{dx,dy\leq k}K[b,dx,dy,x,y] \cdot P[b,c,x+dx,y+dy]\tag{6}

  消息传递与普通的2d-conv类似,不同在于,滤波器的值取决于位置坐标 x , y x,y ,这与局部连接层相似。而且论文提出的滤波器在通道维度是一个常数,可以通过通道维度来查看整个操作。
  综上,仅仅使用卷积操作是可以实现ConvCRFs的,只是需要在显存中进行几次数据的重新组织,90%的GPU计算时间都花在了数据重新组织上,所以论文只实现了一个较简单的版本,来获得十次CRF迭代的结果。
  实现中的第一步是获取形状为 [ b s , c , k , k , h , w ] [bs,c,k,k,h,w] 的数据覆盖输入 P P ,这一过程与2d-conv中的im2col类似。2d-conv通过在空间维度应用批量矩阵乘法,而ConvCRFs用通道维度的批量点乘操作来代替这一操作。

3.2 其他的实现细节

  为了可比较,论文使用了与FullCRFs相同的设计组件,特别的,使用了softmax正规化,Potts模型和手工社集的高斯特征。同样,将高斯模糊应用在承兑的核中,这也导致了有效的滤波器尺寸增加了四倍。
  附加实验中还验证了ConvCRFs学习高斯特征的的可行性,论文将输入特征 p i p_i 替换为带有可学习变量的平滑核,这些变量与手工设计高斯核进行相同的初始化,并作为训练的一部分,论文还实现了一个使用点卷积的版本。

4. 试验评估

数据集 PASCAL VOC 2012
Unary 训练ResNet101来计算一元变量,在ResNet顶部增加一个简单的FCN进行特征抽取和像素点标签预测,主干网络采用ImageNet预训练模型,然后在Pascal VOC数据集上训练。
  其他训练参数细节-略
CRF CRF的平均场推断进行五次并且在训练时回滚。

4.1 ConvsCRF用于合成数据

在这里插入图片描述

4.2 ConvCRFs的解耦训练

在这里插入图片描述在这里插入图片描述

4.3 ConvCRFs进行端到端的学习

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/kevin_zhao_zl/article/details/89202309