【技术综述】闲聊图像分割这件事儿

言有三

毕业于中国科学院,计算机视觉方向从业者,有三工作室等创始人

作者 | 言有三(微信号:Longlongtogo)

编辑 | 言有三

最近遇到很多人问我图像分割技术发展怎么样了,落地了吗?有三只想说,岂止落地了,都贴在地上摩擦了。老规矩,分几块说起。

01

闲聊往事

想当年,大学的时候。同学们进进出出图书馆,手里揣着的都是什么微积分,明朝那些事儿之类的书。而我几年下来,全是adobe photoshop,adobe premiere,adobe after effects,adobe flash,总之就是adobe全家桶。别人在网吧打游戏,我经常鼓捣七八个小时的绘声绘影,premiere,nero等等。

要不是因为穷,就去武大修动漫双学位了,日语二级都考好了,这会儿可能奔我的玄机科技去了,哪里还在这里码代码。

扯的貌似有点远,只想说和音视频早已经建立了割不断的联系。现在还鼓捣了一个摄影公众号《有三工作室》,有兴趣大家可以支持下,美女自然是少不了你们的,配套的小程序也做起来了。

回归正题。当年学Adobe,最喜欢玩的就是抠图,磁性套索一度让我不可自拔,那对我而言就是图像分割技术的启蒙了。

到后来从传统方法搞到cnn,一直未曾脱离关系。

这一次,咱不谈高深的技术,而是谈历史,谈故事,说的轻松一点,尽量短一些,毕竟长文读着累,留几手,下次说。

02

没有深度学习的那些年

图像处理算法都是从传统方法开始的,我们就简单理解为非深度学习的方法吧。

图像分割是什么?如果下学术定义,就是把图像分割成想要的语义上相同的若干子区域,看上面的自动驾驶的分割任务,路是路,车是车,树是树。

这些子区域,组成图像的完备子集,相互之间不重叠。图像分割可以被看作是一个逐像素的图像分类问题

没有深度学习的那些年,也发展出了非常多的图像分割技术,下面挑重点长话短说。

2.1 边缘与阈值法

简单的边缘检测也曾被用于图像分割,但是因为要做复杂后处理以及后面和其他方法有重叠,这里就不再说了,而是从阈值法开始说。

阈值法的基本思想是基于图像的灰度特征来计算一个或多个灰度阈值,并将图像中每个像素的灰度值与阈值相比较。

其中,最广泛使用也最具有代表性质就是OTSU【1】方法,它是用于灰度图像分割的方法,核心思想就是使类间方差最大

这样的方法,非常简单,要求被分割的物体颜色纹理比较紧凑,类内方差小,只适合一些文本图像的处理,比如车牌,比如指纹。

如果感兴趣,有很多的综述的,大家可以去关注。虽然简单,读研时也用它水了一篇文章和专利。

2.2 区域增长,分裂

阈值法的一个硬伤是太粗暴简单,哪怕是自适应的局部阈值法,一样难逃无法分割类内方差较大的目标的宿命。它完全没有利用好像素的空间信息,导致分割结果极其容易受噪声干扰,经常出现断裂的边缘,需要后处理。

所以,区域生长法出现了,它通过一些种子点,再加上相似性准则来不断扩充区域直到达到类别的边界,这时候分割结果是连续的了。

区域分裂则是反过程,不再详述。区域增长法的佼佼者,就是分水岭算法【2】。

分水岭算法是一种基于拓扑理论的数学形态学的分割方法,将图像中每一点像素的灰度值表示该点的海拔高度,每一个局部极小值称为集水盆,而集水盆的边界则是分水岭。分水岭算法有很多种实现算法,常用浸水模拟法。

分水岭算法对于弱边缘有不错的响应,因此常被用于材料图像的分割,以及产生超像素用于提高其他方法的分割效率。咱在硕士期间也与师姐鼓捣过半导体材料的分割,还不错。

说到这里,超像素也是很重要的一种方法,某种程度上也能被归为图像分割的方法。SLIC,Meanshift等都是非常经典的方法,去文【3】中做更详细解读吧。笔者在很多的实际项目中都使用过,配合下面要讲的方法一起使用,绝配。

2.3 图割

以graphcut【4】为代表的图割方法,是传统图像分割里面鲁棒性最好的方法,它是一种概率无向图模型(Probabilistic undirected graphical model),又被称Markov random field马尔可夫随机场。

Graphcut的基本思路,就是建立一张图,看下面这张图,其中以图像像素或者超像素作为图像顶点,然后优化的目标就是要找到一个切割,使得各个子图不相连从而实现分割,前提是移除边的和权重最小。

后来图割方法从MRF发展到CRF,也就是条件随机场。它通常包含两个优化目标,一个是区域的相似度,被称为区域能量项,即piecewise能量。一个是被切断边的相似度,被称为边缘能量项,即pairwise能量。它追求区域能量项的最大化以及边缘能量的最小化,也就是区域内部越相似越好,区域间相似度越低越好。

图割方法很通用,对于纹理比较复杂的图像分割效果也不错。缺点是时间复杂度和空间复杂度较高,所以通常使用超像素进行加速计算,上面的分水岭算法就可以拿来用用。

graphcut的迭代版本,也就是grabcut【5】更好用,它的基本思路是;使用混合高斯模型(Gaussian Mixture Model,GMM)替代了graphcut基于灰度的模型,初始的混合高斯模型的构建,通过用户交互来指定,只需要指定确定性的背景像素区域即可,通常是画一个框。

多年以后再看下面这张图,效果依然是惊艳的,边缘很不错。不像上面的几个方法,图割方法仍然被广泛使用,deeplab系列的前几篇文章就用到了全连接的crf,它与mrf的区别可以参考这篇文章【Discriminative fields for modeling spatial dependencies in natural images】。

图割方法很好用,是每个想做图像分割的同学必须掌握的,我从硕士论文,从第一个实习项目一直用到了现在。

2.4 轮廓模型

轮廓模型大部分人可能不知道,它的基本思想是使用连续曲线来表达目标轮廓,并定义一个能量泛函,其自变量为曲线,将分割过程转变为求解能量泛函的最小值的过程。数值实现可通过求解函数对应的欧拉(Euler-Lagrange)方程来实现。包括以snake模型为代表的参数活动轮廓模型和以水平集方法为代表的几何活动轮廓模型。

当能量达到最小时的,曲线位置就处于正确的目标轮廓。

该类分割方法具有几个显著的特点:(1)由于能量泛函是在连续状态下实现,所以最终得到的图像轮廓可以达到较高的精度;(2)通过约束目标轮廓为光滑,同时融入其它关于目标形状的先验信息,算法可以具有较强的鲁棒性;(3)使用光滑的闭合曲线表示物体的轮廓,可获取完整的轮廓,从而避免传统图像分割方法中的预/后处理过程。

不过,缺点也很明显,比较敏感,容易陷入局部极值。

下面是我的硕士论文【6】中采用水平集方法分割出的肿瘤,就是白色那一块。这个方法的数学味有点浓,考虑到咱们是闲聊,就不摆公式了,毕竟后面还有很多事。

传统方法远不止于此,但是我们应该接着说深度学习的方法了。

03

有了深度学习后

大家认可的第一篇采用深度学习方法来做图像分割的是FCN【7】。分类任务到了最后,图像被表征成了一个一维的向量,而分割任务则需要恢复一张与原图大小相等的图,所以全连接自然是不行了。

不可免俗也放这张图,说的是在从最小分辨率的featuremap上采样的过程中,融合了卷积过程中同一分辨率大小的特征图。这种将网络浅层和深层信息融合的思想是分割网络的必备了,关于网络的结构,其实我们看segnet【8】会更有感觉,对称,优美,更符合我的审美。

有了FCN之后,各路方法大显神通。不同的上采样方法,带孔卷积等增加感受野的方法,图片与特征的多尺度信息融合,增加crf等后处理方法

万变不离其宗,最终分割结果的好坏往往取决于网络的表征能力,问题的简化,以及好的标注数据。刷比赛的那些技巧,我也不丰富就不多说了。

更多的细节,先按下不表,下一期专门讲,如果等不及,看文【9】,上个图先简单的爽上一爽。

04

分割不仅仅是分类问题

我们前面说的,都还是将分割当成一个分类问题来解读的,就是每个像素要被归为明确的类别。

然而分割的终极目标不只这一个,比如为了做背景替换的抠图这件事。

二分类的问题,前背景能完美融合才怪,经不起仔细观察。所以,我们需要带透明度通道的分割,或者先分割出来再利用泊松融合等技术进行边缘融合

这就是一个image matting问题。image matting问题可以用一个简单的数学表达式表达,I = aF + (1-a)B,其中F是前景,B是背景,a是透明度,一张图可以看作是在透明度图像的控制下,前景和背景的线性融合。

只是,解这个问题有点病态,对于三通道的RGB图像,只有3个方程,却需要解出6个变量。所以像closed matting等方法都要做局部区域颜色不变的约束才能求出解析解。

image matting问题也从传统方法发展到了深度学习, www.alphamatting.com这里有主流方法的比较,尽管一看。

之所以大家重新想起来这档事,是因为adobe前几年搞的end to end的方案deep image matting【10】重新吊起了大家的胃口。

在这个基础上,抠脑袋做个表情包【11】也未必不可能,只是实际效果仍然欠缺。

技术当然不会止步于此,关注这个领域的朋友自然又会看到siggraph2018有人【12】出来搞事情,原来是MIT和Adobe,也是,没有Adobe谁有这能力。

我们只看文中的几个关键词,谱分割(spectral segmentation),Laplacian矩阵,soft transitions与layers,SLIC等。谱分割与laplacian矩阵是graphcut的归一化版本Normalized Cut的核心,而soft transitions与layers是photoshop最核心的思想,SLIC则是用于减少计算量的超像素方法。

再加上深度学习,彻底的牛逼图像分割方法大融合了。

终于,传统方法又和深度学习走到了一起。咱们闲聊也该结束了,下次再说技术细节。

参考文献

【1】Otsu N. A Threshold Selection Method from Gray-Level Histograms[J]. IEEE Trans.syst.man. & Cybern, 2007, 9(1):62-66.

【2】L. Vincent and P. Soille, “Watersheds in digital spaces: an efficient algorithm based on immersion simulations,” IEEE Trans. Patt. Anal. Mach. Intell., vol. 13, pp. 583-598, 1991.

【3】Stutz D, Hermans A, Leibe B. Superpixels: an evaluation of the state-of-the-art[J]. Computer Vision and Image Understanding, 2018, 166: 1-27.

【4】Boykov Y Y, Jolly M P. Interactive Graph Cuts for Optimal Boundary & Region Segmentation of Objects in N-D Images[C]// IEEE International Conference on Computer Vision. IEEE Computer Society, 2001:105.

【5】Rother C, Kolmogorov V, Blake A. "GrabCut": interactive foreground extraction using iterated graph cuts[C]// ACM SIGGRAPH. ACM, 2004:309-314.

【6】龙鹏. MRI医学图像增强与分割新方法[D]. 中国科学院大学, 2015.

【7】Shelhamer E, Long J, Darrell T. Fully Convolutional Networks for Semantic Segmentation[J]. IEEE Transactions on Pattern Analysis & Machine Intelligence, 2014, 39(4):1-1.

【8】Kendall A, Badrinarayanan V, Cipolla R. Bayesian segnet: Model uncertainty in deep convolutional encoder-decoder architectures for scene understanding[J]. arXiv preprint arXiv:1511.02680, 2015.

【9】Garcia-Garcia A, Orts-Escolano S, Oprea S, et al. A review on deep learning techniques applied to semantic segmentation[J]. arXiv preprint arXiv:1704.06857, 2017.

【10】Xu N, Price B L, Cohen S, et al. Deep Image Matting[C]//CVPR. 2017, 2: 4.

【11】Zhu B, Chen Y, Wang J, et al. Fast Deep Matting for Portrait Animation on Mobile Phone[C]//Proceedings of the 2017 ACM on Multimedia Conference. ACM, 2017: 297-305.

【12】OH T A E H, MATUSIK W. Semantic Soft Segmentation[J]. 2018.

(0)

相关推荐

  • 图像分割

    什么是图像分割? (1)图像分割的主要目标是将图像划分为与其中含有真实世界的物体或区域有强相关性的组成部分 (2)分割方法可以归类如下:阈值化.基于边缘.基于区域 (3)每个区域可以用其封闭的边界来表 ...

  • CVPR2020:Deep Snake 用于实时实例分割

    重磅干货,第一时间送达 源码:https://github.com/zju3dv/snake/ 本文的贡献 1) 提出了一种基于学习的用于实时实例分割的蛇算法,介绍了用于轮廓学习的圆形卷积. 2) 提 ...

  • 基于图形剪切的图像分割

    重磅干货,第一时间送达 图像分割技术是计算机视觉领域的一个重要研究方向,也是图像语义理解的重要组成部分.图像分割是指将图像分割为具有相似属性的几个区域的过程.从数学的角度来看,图像分割是将图像分割成不 ...

  • 【学术论文】区域生长和水平集相融合的肺部CT图像分割

    摘要: 为将肺实质区域从含有背景.噪声的胸腔区域里分割出来,首先,应用传统的区域生长法初步定位肺部边界轮廓:其次,去除肺部边界噪声,采用自适应曲率阈值法修复肺部边界:最后,应用水平集法中的DRLSE模 ...

  • 【AI有识境】如何掌握好图像分割算法?值得你看的技术综述

    大家好,这是专栏<AI有识境>的第二篇文章,讲述如何掌握好图像分割算法. 进入到有识境界,可以大胆地说自己是一个非常合格的深度学习算法工程师了,能够敏锐地把握自己研究的领域,跟踪前沿和能落 ...

  • 【技术综述】基于弱监督深度学习的图像分割方法综述

    本文是基于弱监督的深度学习的图像分割方法的综述,阐述了弱监督方法的原理以及相对于全监督方法的优势. 作者 | 孙叔桥 编辑 | 言有三 1 基础概念 生活中,我们和周围的事物都是有"标签&q ...

  • 红外弱小目标检测技术综述

    0 引言 自然界中,物体温度高于绝对零度时,都会持续向外界辐射红外波段能量[1-2].物体具有越高的温度,则其向外辐射的红外能量就越大[1,3].红外探测技术就是以红外目标监测系统为载体,利用被检测目 ...

  • 搞懂 Vision Transformer 原理和代码,看这篇技术综述就够了(一)

    快速获得AI干货 回复:OpenCV,下载OpenCV资料及练习代码 回复:MVG,下载计算机视觉中的多视图几何,英文原版及中译本 回复:ML,下载机器学习书籍及实战资料 回复:PCL,下载点云库PC ...

  • 聊聊开学第一周的3件事儿

    上周春季开学了,聊聊第一周的学习情况吧. 01 寒假作业完成情况 春季开学要交四本作业:2本小超市+2本秋寒大礼包. 来看看各个班的作业上交情况,有不少差别. 下面是交作业的人数和优秀作业的人数,优秀 ...

  • 今日立夏|万物至此皆长大!做这4件事儿,陪孩子从“春生”到“夏长”

    这几天,天气越来越暖和,持续升温,很有夏天的感觉~我们在温暖和煦的春光里迎来了二十四节气中的--立夏. 立夏 是农历二十四节气中的第7个节气,也是夏季的第一个节气,在每年5月5日或6日.表示孟夏时节的 ...

  • 太极起势 ,六件事儿,可别小瞧了!

    极起势 ,六件事儿,可别小瞧了! 健身减肥助手关注今天08:10 起势之前有六件事儿:一.正身:二.收心:三:写意:四.凝神:五.调气:六.守丹.一.正身正身先自下而上.脚放松收至踝,踝放松收到膝,膝 ...

  • 进可暴力提性能,退可无损做压缩:结构重参数化技术综述

    作者丨科技猛兽 编辑丨极市平台 极市导读 结构重参数化技术是一种很巧妙的让模型同时具备"简单"的架构和"优秀"的参数的方法.本文介绍了两篇来自清华大学丁贵广老师 ...

  • 多节点传感器协同探测技术综述与展望*

    0 引 言 战场环境复杂多变,面临快速移动.信号辐射管控.伪装或欺骗的敌方装备,使用单一传感器进行探测,难以有效快速地搜索.识别及定位目标,"看不清,辨不明,跟不上"的现象普遍存在 ...