图像分割(传统方法)

本文转自:图像分割 传统方法 整理

图片分割根据灰度、颜色、纹理、和形状等特征将图像进行划分区域,让区域间显差异性,区域内呈相似性。主要分割方法有:

  • 基于阈值的分割
  • 基于边缘的分割
  • 基于区域的分割
  • 基于图论的分割
  • 基于能量泛函的分割

基于阈值的分割方法

阈值法的基本思想是基于图像的灰度特征来计算一个或多个灰度阈值,并将图像中每个像素的灰度值与阈值相比较,最后将像素根据比较结果分到合适的类别中。因此,该类方法最为关键的一步就是按照某个准则函数来求解最佳灰度阈值。

  • 固定阈值分割:

    • 固定某像素值为分割点。
  • 直方图双峰法

    • Prewitt 等人于六十年代中期提出的直方图双峰法(也称 mode 法) 是典型的全局单阈值分割方法。该方法的基本思想是:假设图像中有明显的目标和背景,则其灰度直方图呈双峰分布,当灰度级直方图具有双峰特性时,选取两峰之间的谷对应的灰度级作为阈值。如果背景的灰度值在整个图像中可以合理地看作为恒定,而且所有物体与背景都具有几乎相同的对比度,那么,选择一个正确的、固定的全局阈值会有较好的效果.算法实现:找到第一个峰值和第二个峰值,再找到第一和第二个峰值之间的谷值,谷值就是那个阀值了。
  • 迭代阈值图像分割:

    • 1.统计图像灰度直方图,求出图象的最大灰度值和最小灰度值,分别记为ZMAX和ZMIN,令初始阈值T0=(ZMAX+ZMIN)/2;
    • 2. 根据阈值TK将图象分割为前景和背景,计算小于TO所有灰度的均值ZO,和大于TO的所有灰度的均值ZB。
    • 3. 求出新阈值TK+1=(ZO+ZB)/2;
    • 4. 若TK==TK+1,则所得即为阈值;否则转2,迭代计算。
  • 自适应阈值图像分割: 有时候物体和背景的对比度在图像中不是处处一样的,普通阈值分割难以起作用。这时候可以根据图像的局部特征分别采用不同的阈值进行分割。只要我们将图像分为几个区域,分别选择阈值,或动态地根据一定邻域范围选择每点处的阈值,从而进行图像分割。

    • 大津法 OTSU (最大类间方差法)

      • 日本学者大津在1979年提出的自适应阈值确定方法。 按照图像的灰度特性,将图像分为背景和目标两部分。背景和目标之间的类间方差越大,说明构成图像的2部分的差别越大,当部分目标错分为背景或部分背景错分为目标都会导致2部分差别变小。因此,使类间方差最大的分割意味着错分概率最小。
    • 均值法:

      • 把图像分成m*n块子图,求取每一块子图的灰度均值就是所有像素灰度值之和除以像素点的数量,这个均值就是阈值了。这种方法明显不比大津法好,因为均值法和大津法都是从图像整体来考虑阈值的,但是大津法找了一个类间方差最大值来求出最佳阈值的;这两种方法子图越多应该分割效果会好一点,但效率可能会变慢
  • 最佳阈值:

    • 阈值选择需要根据具体问题来确定,一般通过实验来确定。如对某类图片,可以分析其直方图等。

基于边缘的分割方法

  • 参考: 图像分割之(一)概述

  • 图像中两个不同区域的边界线上连续的像素点的集合,是图像局部特征不连续性的反映,体现了灰度、颜色、纹理等图像特性的突变。通常情况下,基于边缘的分割方法指的是基于灰度值的边缘检测,它是建立在边缘灰度值会呈现出阶跃型或屋顶型变化这一观测基础上的方法。阶跃型边缘两边像素点的灰度值存在着明显的差异,而屋顶型边缘则位于灰度值上升或下降的转折处。正是基于这一特性,可以使用微分算子进行边缘检测,即使用一阶导数的极值与二阶导数的过零点来确定边缘,具体实现时可以使用图像与模板进行卷积来完成。

  • 边缘角点和兴趣点的检测器有:

    • Canny边缘检测器

      • 将图像P模糊化,然后与一堆正交微分滤波器(如Prewitt滤波器)做卷积生成分别包括水平和垂直方向上的导数的图像H和V,对像素(i,j)计算其梯度方向和幅度。若幅度超过临界值就分配一条边缘(此处称为阈值法,但效果不佳)。canny使用非极大抑制的方法对那些不需要响应的进行删除。《计算机视觉:模型、学习和推理》第13章
    • Harris角点检测器

      • 对每个点周围的水平方向垂直方向的据ubu梯度进行考虑。目的在于找到图像中亮度在两个方向上均发生变化的点,而非一个方向(一条边缘)或者零个方向(平坦区域)。Harris角点检测器是基于对图像结构张量的决策。《计算机视觉:模型、学习和推理》第13章
    • SIFT检测器:

      • 尺度不变特征转换,检测是用来识别兴趣点的第二中方法。不同与Harris角点检测器,SIFT将尺度和方向与结果中的兴趣点相关联。为了找到兴趣点,,交替使用多种算子。《计算机视觉:模型、学习和推理》第13章
    • SURF检测器 *

      • SIFT的改进版。

基于区域的分割方法

按照图像的相似性准则划分为不同区域块。主要有种子区域生长法、区域分裂合并法、分水岭法等。

  • 种子区域生长法

    • 根据统一物体区域的像素相似性来聚集像素点达到区域生长的方法。其中由一组表示不同区域的种子像素开始,逐步合并种子周围相似的像素从而扩大区域。直到无法合并像素点或小领域为止。其中区域内的相似性的度量可用平均灰度值、纹理、颜色等等信息。关键在于选择初始种子像素及生长准则。最早的区域生长图像分割方法是由Levine等人提出。
  • 区域分裂合并法

    • 区域分裂合并法(Gonzalez,2002),确定分裂合并的准则,然后将图像任意分成若干互不相交的区域,按准则对这些区域进行分裂合并。它可用于灰度图像分割及纹理图像分割。
  • 分水岭法

    • 分水岭法(Meyer,1990)是一种基于拓扑理论的数学形态学的分割方法,其基本思想是把图像看作是测地学上的拓扑地貌,图像中每一点像素的灰度值表示该点的海拔高度,每一个局部极小值及其影响区域称为集水盆,而集水盆的边界则形成分水岭。该算法的实现可以模拟成洪水淹没的过程,图像的最低点首先被淹没,然后水逐渐淹没整个山谷。当水位到达一定高度的时候将会溢出,这时在水溢出的地方修建堤坝,重复这个过程直到整个图像上的点全部被淹没,这时所建立的一系列堤坝就成为分开各个盆地的分水岭。分水岭算法对微弱的边缘有着良好的响应,但图像中的噪声会使分水岭算法产生过分割的现象

基于图论的分割方法

此类方法把图像分割问题与图的最小割(min cut)问题相关联。首先将图像映射为带权无向图G=,图中每个节点N∈V对应于图像中的每个像素,每条边∈E连接着一对相邻的像素,边的权值表示了相邻像素之间在灰度、颜色或纹理方面的非负相似度。而对图像的一个分割s就是对图的一个剪切,被分割的每个区域C∈S对应着图中的一个子图。而分割的最优原则就是使划分后的子图在内部保持相似度最大,而子图之间的相似度保持最小。基于图论的分割方法的本质就是移除特定的边,将图划分为若干子图从而实现分割。目前所了解到的基于图论的方法有GraphCut,GrabCut和Random Walk等。

  • GraphCut 图割

    • 参考:

      • 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.
      • 图像分割之(二)Graph Cut(图割)
    • 非常有用和流行的能量优化算法,在计算机视觉领域普遍应用于前背景分割(Image segmentation)、立体视觉(stereo vision)、抠图(Image matting)等。

    • 将一幅图像分为目标和背景两个不相交的部分,那就相当于完成了图像分割。

    • 此类方法把图像分割问题与图的最小割(min cut)问题相关联。最小割把图的顶点划分为两个不相交的子集S和T。这两个子集就对应于图像的前景像素集和背景像素集。可以通过最小化图割来最小化能量函数得到。能量函数由区域项(regional term)和边界项(boundary term)构成。

    • 整个流程的限制是:

      • 算法基于灰度图;
      • 需要人工标注至少一个前景点和一个背景点;
      • 结果为硬分割结果,未考虑边缘介于0~1之间的透明度。
  • GrabCut 分割和抠图

    • 参考:

    • 是Graphcut图隔的改进版,是迭代的GraphCut。改进包括:

      • 将基于灰度分布的模型替换为高斯混合模型(Gaussian Mixture Model,GMM)以支持彩色图片;
      • 将能一次性得到结果的算法改成了『强大的』迭代流程;将用户的交互简化到只需要框选前景物体即可。
    • 与Graph Cut不同处:

      • Graph Cut的目标和背景的模型是灰度直方图,Grab Cut取代为RGB三通道的混合高斯模型GMM;
      • Graph Cut的能量最小化(分割)是一次达到的,而Grab Cut取代为一个不断进行分割估计和模型参数学习的交互迭代过程;
      • Graph Cut需要用户指定目标和背景的一些种子点,但是Grab Cut只需要提供背景区域的像素集就可以了。也就是说你只需要框选目标,那么在方框外的像素全部当成背景,这时候就可以对GMM进行建模和完成良好的分割了。即Grab Cut允许不完全的标注(incomplete labelling)。
    • 彩色像素值的稀疏问题比灰度图要严重得多(256 vs 17M),所以,继续使用histogram是不现实的,需要信息压缩得更好一点的模型,作者在这里参考前人,对前景和背景各建了K=5的高斯混合模型。

    • GrabCut是按颜色分布和边缘对比度来分割图片的,对一些常见的与此原则相悖的图片,效果确实不好。比如前景人物的帽子、鞋、墨镜,通常颜色跟前景主体有较大区别;再如前景中的孔,有可能由于颜色区分和边缘的对比度不足,导致边缘的惩罚占上风,而没有扣出来背景。所以,GrabCut还是保留了人工修正的操作,定义了两种标记:绝对是背景和可能是前景。对分割错误人工修正后,分割还是可以比较准确的。对自然场景图片的分割,比Bayes matte等方法得到的边缘明显看起来舒服得多。

基于能量泛函的分割方法

该类方法主要指的是活动轮廓模型(active contour model)以及在其基础上发展出来的算法,其基本思想是使用连续曲线来表达目标边缘,并定义一个能量泛函使得其自变量包括边缘曲线,因此分割过程就转变为求解能量泛函的最小值的过程,一般可通过求解函数对应的欧拉(Euler.Lagrange)方程来实现,能量达到最小时的曲线位置就是目标的轮廓所在。

活动轮廓模型逐渐形成了不同的分类方式,较常见的是根据曲线演化方式的不同,将活动轮廓模型分为基于边界、基于区域和混合型活动轮廓模型。按照模型中曲线表达形式的不同,活动轮廓模型可以分为两大类:参数活动轮廓模型(parametric active contour model)和几何活动轮廓模型(geometric active contour model)。

  • 参数活动轮廓模型(parametric active contour model):

    • 参数活动轮廓模型基于Lagrange框架,直接以曲线的参数化形式来表达曲线,最具代表性的是由Kasset a1(1987)所提出的Snake模型。该类模型在早期的生物图像分割领域得到了成功的应用,但其存在着分割结果受初始轮廓的设置影响较大以及难以处理曲线拓扑结构变化等缺点,此外其能量泛函只依赖于曲线参数的选择,与物体的几何形状无关,这也限制了其进一步的应用。

    • Snake模型

      • 参考:

      • 在处理如边缘检测、角点识别、动态跟踪以及立体匹配等任务上非常成功。

      • SNAKE模型就是一条可变形的参数曲线及相应的能量函数,以最小化能量目标函数为目标,控制参数曲线变形,具有最小能量的闭合曲线就是目标轮廓。模型的形变受到同时作用在模型上的许多不同的力所控制,每一种力所产生一部分能量,这部分能量表示为活动轮廓模型的能量函数的一个独立的能量项。

      • 基本Snakes模型的能量函数由三项组成,弹性能量和弯曲能量合称内部能量(内部力),用于控制轮廓线的弹性形变,起到保持轮廓连续性和平滑性的作用。而第三项代表外部能量,也被称为图像能量,表示变形曲线与图像局部特征吻合的情况。内部能量仅仅跟snake的形状有关,而跟图像数据无关。而外部能量仅仅跟图像数据有关。在某一点的α和β的值决定曲线可以在这一点伸展和弯曲的程度。最终对图像的分割转化为求解能量函数Etotal(v)极小化(最小化轮廓的能量)。在能量函数极小化过程中,弹性能量迅速把轮廓线压缩成一个光滑的圆,弯曲能量驱使轮廓线成为光滑曲线或直线,而图像力则使轮廓线向图像的高梯度位置靠拢。基本Snakes模型就是在这3个力的联合作用下工作的。

      • snake相对于经典的特征提取方法有以下优点:

        • 通过正确设置和项前系数,可交互方式控制snake;
        • 容易操控,因为图像力是以直观的方式表现;
        • 在寻找最小能量状态的时候它们是自主的和自适应的;
        • 可以通过在图像能量函数中加入高斯平滑而对图像尺度敏感;
        • 可以用于跟踪时间或者空间维度上的动态目标。
      • snake的缺点:

        • 初始位置不同使得结果不同;
        • 经常陷入局部最小状态,这也许可以通过使用模拟退火技术来克服,代价就是计算时间增加;
        • 在最小化整个轮廓路径上的能量过程中经常忽略微小特征;
        • 精度由能量最小化技术中使用的收敛标准控制;更高的精度要求更严格的收敛标准,因此需要更长的计算时间。
    • ASM(Active Shape Model)

      • 参考:

      • ASM(主动形状模型)是建立在PDM(点分布模型)的基础上,通过训练图像样本获取训练图像样本的特征点分布的统计信息,并且获取特征点允许存在的变化方向,实现在目标图像上寻找对应的特征点的位置。训练样本需要手动的标记所有的特征点的位置,记录特征点的坐标,并且计算每一个特征点对应的局部灰度模型作为局部特征点调整用的特征向量。在将训练好的模型放在目标图像上,寻找每一个特征点的下一个位置的时候,采用局部灰度模型寻找在当前特征点指定方向上局部灰度模型马氏距离最小的特征点作为当前特征点即将移动到的位置,称为suggested point, 找到所有的suggested points就可以获得一个搜索的suggested shape, 然后将当前的模型通过调整参数使得当前的模型最可能相似的调整到suggest shape,重复迭代直到实现收敛。

    • AAM(Active Appearance Models)

      • 参考:

      • ASM是基于统计形状模型的基础上进行的,而AAM则是在ASM的基础上,进一步对纹理(将人脸图像变形到平均形状而得到的形状无关图像)进行统计建模,并将形状和纹理两个统计模型进一步融合为表观模型。

      • AAM模型相对于ASM模型的改进为:

        • 使用两个统计模型融合 取代 ASM的灰度模型。
        • 主要对特征点的特征描述子进行了改进,增加了描述子的复杂度和鲁棒性
    • CLM(Constrained local model)有约束的局部模型

      • 参考:

      • CLM是有约束的局部模型,ASM也属于CLM的一种。CLM通过初始化平均脸的位置,然后让每个平均脸上的特征点在其邻域位置上进行搜索匹配来完成人脸点检测。整个过程分两个阶段:模型构建阶段和点拟合阶段。模型构建阶段又可以细分两个不同模型的构建:

        • 形状模型构建: 对人脸模型形状进行建模,说白了就是一个ASM的点分布函数(PDM),它描述了形状变化遵循的准则.
        • Patch模型构建: 对每个特征点周围邻域进行建模,也就说建立一个特征点匹配准则,怎么判断特征点是最佳匹配.
  • 几何活动轮廓模型(geometric active contour model):

    • 参考:

      • ·S.Osher,J.A.Sethian,Fronts propagating with curvature dependent speed:algorithms basedon Hamilton-Jacobi formulations.Journal of Computational Physics,1988,79:12—49
      • 图像分割___图像分割方法综述
    • 几何活动轮廓模型的曲线运动过程是基于曲线的几何度量参数而非曲线的表达参数,因此可以较好地处理拓扑结构的变化,并可以解决参数活动轮廓模型难以解决的问题。而水平集(Level Set)方法(Osher,1988)的引入,则极大地推动了几何活动轮廓模型的发展,因此几何活动轮廓模型一般也可被称为水平集方法。

    • 几何活动轮廓模型(Geometric Active Contours Model)是以曲线演化理论和水平集方法为理论基础,继参数活动轮廓模型后形变模型的又一发展,是图像分割和边界提取的重要工具之一。相对于参数活动轮廓模型,几何活动轮廓模型具有很多优点,如可以处理曲线的拓扑变化、对初始位置不敏感、具有稳定的数值解等.

    • 几何活动轮廓模型又可分为基于边界的活动轮廓模型、基于区域的活动轮廓模型。基于边界的活动轮廓模型主要依赖图像的边缘信息控制曲线的运动速度。在图像边缘强度较弱或是远离边缘的地方,轮廓曲线运动速度较大,而在图像边缘强度较强的地方,轮廓曲线运动速度较小甚至停止,使得最终的轮廓曲线运动到边缘位置.

----------------------------- 我是有底线 ~..~ ------------------------------