条件随机向量场CRF

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了条件随机向量场CRF相关的知识,希望对你有一定的参考价值。

参考技术A

  由于CRF具有考虑上下文关系的特性,因此一般的CRF可以用在图像去噪,平滑图像的过程。但是图像分割过程中产生了分类目标边界模糊的问题,为了得到更精确的最终分类结果,通常要进行一些图像后处理。考虑到图像像素之间的强相关性,因此提出了 全连接CRF 来解决这一问题。

  全连接CRFs与稀疏CRFs的最大差别在于:每个像素点都与所有的像素点相连接构成连接边。为了简化计算,献《Efficient Inference in Fully Connected CRFs with Gaussian Edge Potentials》给出了快速推理算法。接着我们就简单讲解具体的求解算法:
首先,假设图像中的每一点都符合吉布斯分布

其中 是观测值, 是能量函数,也是我们优化的目标, 是归一化因子。
  能量函数 由一元势函数和二元势函数构成,如下公式所示:

其中的 一元势函数 用于衡量像素点的类别概率,自卷积神经网络网络的后端输出。 二元势函数 用于描述像素点和像素点之间的关系,鼓励相似像素分配相同的标签,而相差较大的像素分配不同的标签。这个相似的定义与颜色值rgb和实际相对距离xy相关,所以CRF能够使图片尽量在边界处分割。
二元势函数公式如下:

其中 叫做标签兼容项(Label Compatibility),它约束了像素间传导的条件,只有相同标签(label)条件下,能量才可以相互传导。 是特征函数,以特征的形式表示了不同像素之前的“亲密度”,第一项被称作表面核,第二项被称作平滑核,公式如下:

一元势即网络预测得到的结果,进行-np.log(py)等操作

得到 unary potentials有两种常见的方法:
1)由人类或其他过程产生的硬标签。该方法由 from pydensecrf.utils import unary_from_labels 实现
2)由概率分布计算得到,例如深度网络的softmax输出。即我们之前先对图片使用训练好的网络预测得到最终经过softmax函数得到的分类结果,这里需要将这个结果转成一元势
对此,请参阅 from pydensecrf.utils import unary_from_softmax

1) unary_from_labels(labels, n_labels, gt_prob, zero_unsure=True) 函数的使用
简单分类器,该分类器50%确定注释(即从训练好的网络预测img后得到的结果)是正确的。(与推理示例中相同)。

2) unary_from_softmax(sm, scale=None, clip=1e-5) 函数的使用
将softmax类概率转换为一元势(每个节点的NLL),即我们之前先对图片使用训练好的网络预测得到最终经过softmax函数得到的分类结果,这里需要将这个结果转成一元势。

  [1] 如何轻松愉快地理解条件随机场(CRF)?
  [2] 图像语义分割之FCN和CRF
  [3] https://hit-computer.github.io/2017/06/10/CRF/
  [4] DeepLearning-500-questions第九章 图像分割d
  [5] https://zhuanlan.zhihu.com/p/64854535
  [6] pydensecrf的使用

以上是关于条件随机向量场CRF的主要内容,如果未能解决你的问题,请参考以下文章

CRF条件随机场总结

NLP入门使用CRF++实现命名实体识别(NER)

机器学习笔记十一 条件随机场(CRF)

CRF图像切割简单介绍

朴素贝叶斯算法(Naive Bayes)

ML-13-5条件随机场(CRF-Conditional Random Field)