这是专栏《图像分割模型》的第5篇文章。在这里,我们将共同探索解决分割问题的主流网络结构和设计思想。

条件随机场有点复杂,那能不能用神经网络的方式搞定CRF后处理呢?今天我们一起看一看穿上RNN外套的CRF长什么样。

作者 | 孙叔桥

编辑 | 言有三

本期论文《Conditional Random Fields as Recurrent Neural Networks》

1 预备知识

条件随机场(CRF或CRFs)与隐马尔科夫模型有着千丝万缕的联系。为了理解CRF,这里先简单说一下马尔科夫链(MC, Markov Chain)和隐马尔科夫模型。

1.1 马尔科夫链

马尔科夫链是指具有马尔可夫性质且存在于离散指数集合状态空间内的随机过程。那么什么是马尔科夫性质呢?

从定义上来说,当一个随机过程在给定现在状态及过去所有状态的情况下,其未来状态的条件概率分布仅依赖于当前状态;换句话说,在给定现在状态时,其过去状态(即该过程的历史路径)是条件独立的。

这个表述比较抽象,我们举个马尔科夫链的例子理解一下:

比如有一只蚂蚁在下图所示的网格内爬行(网格区域无限大),由于墙壁的存在,它只能向前、后、左、右四个防线之一前进,每次前进一步。假设蚂蚁从位置S开始,那么在给定前n步的选择后,当前蚂蚁的所在位置就是知道的(假设在红色点处);那么下一步依然是四个方向之一,即下一步的状态仅依赖与当前状态,且选择随机。同时,之前走过的每一步之间是条件独立的,即上一步走的方向不会影响这一步的方向。

由于存在的选择只有四个,即选择离散,所以我们称这个过程为马尔科夫链。当选择连续时,称为马尔科夫过程(Markov Process)。

1.2 隐式马尔科夫模型

隐式马尔科夫模型(HMM,Hidden Markov Model)是关于时序的概率模型,描述由一个隐藏的马尔科夫链随机生成的不可观测的状态随机序列,再由各个状态生成一个观测而产生观测序列的过程。隐藏的部分称为状态序列;生成的观测组成的随机序列称为观测序列。

同样,我们举个例子来理解一下隐式马尔科夫模型:

比如我们现在需要进行天气预测,已知天气的状态有两种:天气好(晴天)和天气不好(雨雪雾、阴天等),分别用1和2表示。

很明显,要预测明天天气的话,今天及以前的天气是已知的。因此,我们可以通过历史天气计算出下图中各个状态之间的传递概率。比如,如果今天是晴天,那么明天是晴天的概率为0.6,则状态1到1为0.6(图中的1-α)、状态1到2的概率则为0.4;同理,假设今天天气不好那么明天天气也不好的概率为0.9,则状态2到2概率为0.9(图中的1-β),那么状态2到1的概率为0.1。

1.3 什么是CRF

CRF是一种判别式概率模型,是随机场的一种,结合了最大熵模型和隐式马尔科夫模型的特点;CRF是一种无向图模型,图中的顶点代表随机变量,顶点间的连线代表随机变量间的相依关系。其条件概率分布模型可以表述为P(Y|X),即给定一组随机变量的条件下,随机变量Y的马尔科夫随机场(MRF,Markov Random Field)。

1.4 平均场理论

平均场理论(MFT,Mean Field Theory)是将随机过程模型中一个单体受到的所有影响近似为一个外部场,从而将多体问题分解为多个单体问题,再进行求解的范式和理论。简单来说,就是把环境对物体的作用进行集体处理,然后用平均作用效果代替单个作用效果的加和的方法。

2 图像分割中的CRF

在图像分割问题中,CRF将被标注的像素视为一个MRF中的随机变量,整幅图像就是一个全局观测。那么,标注x的能量函数就可以表示为:

其中,第一项通常为CNN的分割结果,第二项为平滑项(后处理)。此时,最小化能量函数就能得到当前图片下最可能的标注组合。

这个过程可以通过下图所示的方式分解为一系列的CNN层:

把这个过程图形化:

3 网络结构

前面已经说明了,均场CRF问题可以变成一个CNN,简化结构如下图所示:

那么,如果用一个FCN模型完成第一阶段的分割任务,用RNN形式的CRF完成第二阶段的后处理(CRF-RNN),则可以搭建如下形式的端到端分割网络结构模型:

4 实验结果

下图是CRFasRNN在Pascal VOC 2012下的实验结果:

总结

本文我们了解了上下文信息整合的CRF方法,并将其以RNN的形式实现。作为平滑后处理,CRF能够大幅提升分割的效果。尽管空洞卷积和CRF都能够整合上下文信息,但是目标的尺度问题它们却没有着重考虑。那么下回我们就讨论下多尺度的分割任务。

本专栏文章:

第一期:【图像分割模型】从FCN说起

第二期:【图像分割模型】编解码结构SegNet

第三期:【图像分割模型】感受野与分辨率的控制术—空洞卷积

第四期:【图像分割模型】快速道路场景分割—ENet

第五期:【图像分割模型】以RNN形式做CRF后处理—CRFasRNN

感谢各位看官的耐心阅读,不足之处希望多多指教。后续内容将会不定期奉上,欢迎大家关注有三公众号 有三AI

【图像分割模型】以RNN形式做CRF后处理—CRFasRNN相关推荐

  1. 【深度学习】深入浅出CRF as RNN(以RNN形式做CRF后处理)

    [深度学习]深入浅出CRF as RNN(以RNN形式做CRF后处理) 文章目录 1 概述 2 目标 3 思路 4 简述 5 论文原文5.1 Introduction5.2 相关工作5.3 关键步骤 ...

  2. 【图像分割模型】用BRNN做分割—ReSeg

    这是专栏<图像分割模型>的第9篇文章.在这里,我们将共同探索解决分割问题的主流网络结构和设计思想. 尽管许多人都知道RNN在处理上下文上多优于CNN,但如何将RNN用于分割任务还是值得讨论 ...

  3. 【图像分割模型】全景分割是什么?

    这是专栏<图像分割模型>的第12篇文章.在这里,我们将共同探索解决分割问题的主流网络结构和设计思想. 本文是专栏的最后一篇文章,见识过了分割任务中的大量模型,也了解了语义分割与实例分割,这 ...

  4. 【图像分割模型】实例分割模型—DeepMask

    这是专栏<图像分割模型>的第11篇文章.在这里,我们将共同探索解决分割问题的主流网络结构和设计思想. 本文介绍了用于实例分割任务的模型结构--DeepMask. 作者 | 孙叔桥 编辑 | ...

  5. 【图像分割模型】BRNN下的RGB-D分割—LSTM-CF

    这是专栏<图像分割模型>的第10篇文章.在这里,我们将共同探索解决分割问题的主流网络结构和设计思想. 深度信息的引入往往会给分割带来更好的结果.之前提到的ENet除了直接变成ReSeg分割 ...

  6. 【图像分割模型】多分辨率特征融合—RefineNet

    这是专栏<图像分割模型>的第8篇文章.在这里,我们将共同探索解决分割问题的主流网络结构和设计思想. RefineNet,教你在实现特征融合与残差恒等映射的同时,怎么找回降下来的空间分辨率. ...

  7. 【图像分割模型】全局特征与局部特征的交响曲—ParseNet

    这是专栏<图像分割模型>的第7篇文章.在这里,我们将共同探索解决分割问题的主流网络结构和设计思想. 尽管多尺度融合.空洞卷积都可以增加网络的感受野,但理论感受野与实际感受野仍然存在差异.那 ...

  8. 【图像分割模型】多感受野的金字塔结构—PSPNet

    这是专栏<图像分割模型>的第6篇文章.在这里,我们将共同探索解决分割问题的主流网络结构和设计思想. 在分割问题中,上下文信息与多尺度融合对于提高分割精度是十分有效的,今天我们就来谈谈用于实 ...

  9. 线性插值改变图像尺寸_【图像分割模型】实例分割模型—DeepMask

    这是专栏<图像分割模型>的第11篇文章.在这里,我们将共同探索解决分割问题的主流网络结构和设计思想. 本文介绍了用于实例分割任务的模型结构--DeepMask. 作者 | 孙叔桥 编辑 | ...

最新文章

  1. HP-UX Root密码被锁定的非关机情况下解决方案
  2. UITableView使用指南
  3. BW对于SAP SD模块有哪些作用
  4. 【企业管理】正确评价价值-概述
  5. 牛客 - 牛牛与牛妹的约会(贪心)
  6. 关于绑定了GridView控件后怎么截取字符串和CSS样式来控制表头不换行
  7. 机器人绳索英雄下载苹果手机_警察机器人绳索英雄游戏下载-警察机器人绳索英雄苹果版v1.0-FC游戏网...
  8. tomcat下多个app 不同的图标_iOS平台设计规范(五)图标与图片
  9. FPGA实现“打字机”(VGA UART)
  10. .NET 文件相关的所有操作
  11. 计算机作曲常用软件,计算机作曲——软件与音源的选择
  12. (附源码)spring boot西安市中小学生护眼平台开发 毕业设计 080855
  13. JDBC与MySQL练习
  14. maya! board_老司机都在用的30款maya常用插件
  15. Java中内存问题之OOM 和SOF
  16. 【Hive】Hive练习题(一)
  17. LabVIEW应用程序在Windows版本之间的字体变化
  18. 应对高并发的几个常见方法
  19. 浙大计算机学院郭庆,团队介绍
  20. 异型窗体制作(两种方法)

热门文章

  1. 2021-10-11 寻找二叉树结点的前驱或后继结点(用到parent指针)
  2. Android踩坑日记:android7.0动态相机权限
  3. 【深入Java虚拟机JVM 03】Java内存模型
  4. centos7 ifconfig命令找不到_centos7+mysql+gunicorn+flask项目部署
  5. ext-4.2之grid的高级应用:增删改查!
  6. POJ-2942:吃糖果
  7. Java 中 Comparable 接口的意义和用法.
  8. python 函数的调用的时候参数的传递_python定义函数时的参数调用函数时的传参...
  9. 剑指Offer #04 重建二叉树(递归)
  10. 利用 Linux 查找重复文件