计算机视觉——图像分割(上篇)

【本学期选修国科大高伟老师的计算机视觉课程,本人方向也是cv,因此想通过博客方式记录课程中比较重要的点,巩固并且进行一些扩展学习】

【本章节内容针对图像分割进行讲解】

接下来我们将主要针对以下内容进行介绍:

早期的图像分割方法

基于特定理论的方法 :Mean Shift 、Normalized Cut、Graph Cut

基于深度神经网络的图像分割 :FCN、SegNet、R-CNN

一.早期图像分割方法:

1. 阈值法*
2. 区域生长法
3. 分裂合并法
4. 基于边缘的分割方法*
5. 等等
这边重点介绍加粗变红部分。

1.1 阈值法

基本原理: 通过设定不同的 特征阈值 ,把图像像素点分为若干类。常用的特征包括:灰度、彩色特征、由原始灰度或彩色值变换得到的特征。
                                                      g(x,y)=\left\{\begin{matrix} 1, &f(x,y)\geqslant T \\ 0,& f(x,y)<T \end{matrix}\right.
计算机视觉——图像分割(上篇)_第1张图片

 上图T值便是我们设置的阈值。

 但是如果遇到灰度级集中的情况,简单的设置阈值往往达不到很好的效果。如下图左边灰度级过于集中;或者右边应为光圈问题,在后期提取情况造成了很大的偏差。

计算机视觉——图像分割(上篇)_第2张图片

针对此,我们引入了

1.2 局部阈值法:

基本原理:将图像分块,分别用全局阈值方法分割,最后再综合。

 计算机视觉——图像分割(上篇)_第3张图片

1.3 基于边缘的分割方法:

基本步骤:
1 )检测边缘
2 )根据边缘将图像分割成不同的区域
比如我们需要完成以下任务:在只有0-1灰度级的图中,我们想要捕捉-45度的线。
解决方案:引入一个 算子,表示-45度的斜线,在通过 阈值来保存我们所需要的线。
计算机视觉——图像分割(上篇)_第4张图片

Hough方法
图像中检测直线的一种方法,该方法也可以检测其他参数化的物体,比如圆或者椭圆等。
该技术在 1959 年最早由 Paul Hough 提出。
在图像x-y坐标空间,经过点( , ) 的直线可以表示为yi=a*xi+b,在不同的a、b的条件下,直线存在无数条。
同样,若将a、b看成是变量,则可以表示为b=-xi*a+yi,对应a-b空间的一条线。
计算机视觉——图像分割(上篇)_第5张图片

 若此时想要利用a-b空间找到左图同时过两个点的线,可以通过右图相加的点找到对应的a0和b0来确定该条直线。

但是存在一个问题:若直线垂直于x轴,这意味着a值趋向于无穷大。

因此针对该现象,我们引入了极坐标:\rho =xcos\theta +ysin\theta

其中相交的点便是我们寻找的条件。

计算机视觉——图像分割(上篇)_第6张图片

 二.基于特定理论的方法 :(Clustering聚类方法为主)

2.1 K-Means

步骤如下:

1.确定聚类( cluster ,也称簇)中心的个数 K ,并为它们随机初始化一个各自的聚类质心点。
2.根据每个数据点到质心的距离来进行分类,加入新的可加入的最近的数据点。
3.针对加入的新数据点,重新计算每一聚类中所有向量的平均值,并确定出新的质心。
4.重复2-3步骤,进行一定次数的迭代,直到质心的位置不再发生太大变化。

优缺点:

优点:速度快, 时间复杂度O(n)
缺点:如何 一开始就确定聚类个数K ;一开始质心点的选取是随机的,质心点的位置 不可重复且缺乏一致性
计算机视觉——图像分割(上篇)_第7张图片

                                                                    K-Means效果图

2.2 高斯混合模型(GMM)

其是指多个高斯分布函数的线性组合用两个参数来描述聚类的形状:均值标准差。 以二维分布为例,标准差的存在允许聚类的形状,相比如K-Means算法,更加灵活地对点进行分类。在图像上可表示为多类型的椭圆,而不再限制于圆形(K-Means)。

如果数据点 符合某个高斯分布 ,那它就会被归类为那个聚类。
计算机视觉——图像分割(上篇)_第8张图片

为了找到每个聚类的参数,EM算法【Wu X, Kumar V, Quinlan J R, et al. Top 10 algorithms in data mining[J]. Knowledge and information systems, 2008, 14(1): 1-37.在这里极为重要 !

EM 算法是一种迭代优化策略,由于它的计算方法中每一次迭代都分两步,其中一个为期望步
E 步),另一个为极大步( M 步),所以算法被称为EM 算法( Expectation-Maximization
Algorithm)。
基本思想:首先根据己经给出的观测数据, 估计出模型参数的值;然后再依据上一步估计出的参数值 估计缺失数据的值,再根据估计出的 缺失数据加上之前 己经观测到的数据重新再对参数值 进行估计,然后反复 迭代,直至最后 收敛,迭代结束。

计算机视觉——图像分割(上篇)_第9张图片

 计算机视觉——图像分割(上篇)_第10张图片

缺点:K-Means相比,GMM每一步迭代的计算量比较大。 基于EM算法,有可能陷入局部极值,需要经过多次迭代。

2.3 Mean-Shift

1975年,Fukunaga和Hostetle提出了一种基于一般核函数 的非参数密度梯度的估计算法,并给出了保证估计值与真实值之间渐近无偏、一致和均匀连续时核函数应满足的条件。
1999年,Comaniciu将均值移动应用于图像分析。
核心思想:找到概率密度梯度为零的采样点,并以此作为特征空间聚类的模式点。

 计算机视觉——图像分割(上篇)_第11张图片

【如上图绿色画圈范围中,红点所在区域密度更大,会使得该聚类点往红点迁移,直至密度不变,也就是梯度为零情况。】 

优缺点:

优点:与 K-Means 方法的最大优点是无需指定聚类数目K,聚类中心处于最高密度处,也符合直觉认知。
缺点:如何正确选择窗口尺寸 h,不同的尺寸会引入不同的计算结果。

计算机视觉——图像分割(上篇)_第12张图片
【如上图中间便是h过大,最右边是h过小的结果。】 
计算机视觉——图像分割(上篇)_第13张图片

 2.4 图割

基本思想:
1. 将图像用图的方式表示,顶点表示像素,边表示像素之间的关系。图像分割对应图的割集。
2. 确定图中边的权值,使图像分割目标(能量最小化)对应图的最小割。
3. 用最大流算法求解最小割问题。
为了更好的学习相关内容,我们先针对图论相关知识进行系列学习。
计算机视觉——图像分割(上篇)_第14张图片

                                    【无向图和有向图】

S-T图

1. 有源节点(s)和终节点(t)
2. 每条边有一个非负的容量Cap(i,j)
3. 对于不存在的边, 其容量为0
计算机视觉——图像分割(上篇)_第15张图片

 【若s和t由线分割则为s-t割,反之为非s-t割】

最小割:割线所经过权值最小

Cap([S,T])=\sum_{(i,j)\epsilon E,i\epsilon S,j\epsilon T}^{} Cap(i,j)

图割在图像分割中的应用:
1. Normalized cut 及其在图像分割中的应用
2. graph cu t 算法求解计算机视觉中的能量极小化问题

2.4.1 Normalized cut(归一化分割)

一般的分类问题:
给定一个点集V,按照一定的相似度量(距离)寻求一种划分,将点集V划分成不相交的若干子集合V1 ,V 2 …V m 。使得每一 子集内部 相似度 尽量 ,而 子集之间 相似度 尽量
图论解决分类问题上,我们可以先使用一个无向赋权图来表示。
                                         
                                          计算机视觉——图像分割(上篇)_第16张图片
考虑二分类问题:
将点集V分成不相交的两部分A、B。则两类别之间的相似性我们可以用图割来度量。
 
                                              cut(A,B)=\sum_{u\epsilon A,v\epsilon B}^{}w(u,v)
                                                           【cut取最小】

                            计算机视觉——图像分割(上篇)_第17张图片 

需要注意的是:仅考虑用割集的权值之和来度量两个集合之间的相关性,会容易出现孤立分割的问题。如下图所示:

   

           
计算机视觉——图像分割(上篇)_第18张图片
这时候就引入了 Normalized cut,定义一个 新的类间相似性度量
                            Ncut(A,B)=\frac{cut(A,B)}{assoc(A,V)}+\frac{cut(A,B)}{assoc(B,V)}
其中:
assoc(A,V)=\sum_{u\epsilon A,t\epsilon V}^{}w(u,t)
【V为全部点】
同理, 新的类内相似性度量:

                           Nassoc(A,B)=\frac{assoc(A,A)}{assoc(A,V)}+\frac{assoc(B,B)}{assoc(B,V)}

简单推导可得:Ncut(A,B)=2-Nassoc(A,B)

可见最小化类间相似性和最大化总类内相似性是等价的。
这样就解决了 划分准则 的问题,即: 最优划分对应于最小Ncut
通过求最小 Ncut ,就可以得到最优划分。

不幸的是求一个图的Ncut是一个NP问题。 

计算机视觉——图像分割(上篇)_第19张图片

Normalized cut 在图像分割中应用具体过程:
将一幅图像上所有 像素点 看作点集 V ,每两个 点之间都建立一条边 ,得到 边集E 。为每条边按下面方法赋权。 计算机视觉——图像分割(上篇)_第20张图片
这样就建立一个 赋权无向图G=(V,E)
按照前述算法,我们就可以完成对该幅图像分割操作。

 2.4.2 用graph cut求解能量极小化问题

 计算机视觉的很多问题可以看作一个最优标记(labeling)问题,如:

 计算机视觉——图像分割(上篇)_第21张图片

 我们构建如下能量函数来得到最优标记准则:

f: P- L 的映射。P是像素点集,L是标记集。
Data项 表示给每个像素点赋予标记(label)的代价
Smooth项 表示每两个相邻的像素分别赋予标记 的代价
计算机视觉——图像分割(上篇)_第22张图片

                                           【Graph cut与能量函数的对应关系

两标记问题:
对于两标记问题,最小能量对应于图的最小割。图论中已有经典的算法,可以求得一个图的最小割,从而得到极小能量。
多标记问题:
当标记数量大于2时,已经证明该问题是NP-hard问题。故很难求得该问题的全局极小值。
Boykov等构造了两个运用最小割求解该类能量函数的近似极小值的算法:
α-β swap
α expansion
这两个算法运算速度快,且能得到比较好的结果,从而得到了广泛应用,并使得用能量极小化模型和图割来处理计算机视觉中的一些问题成为目前的一个研究热点。
【在下篇我将介绍 基于深度神经网络的图像分割,不足之处希望能谅解

你可能感兴趣的:(计算机视觉,计算机视觉,人工智能)