在图像x-y坐标空间,经过点( , ) 的直线可以表示为yi=a*xi+b,在不同的a、b的条件下,直线存在无数条。
同样,若将a、b看成是变量,则可以表示为b=-xi*a+yi,对应a-b空间的一条线。
若此时想要利用a-b空间找到左图同时过两个点的线,可以通过右图相加的点找到对应的a0和b0来确定该条直线。
但是存在一个问题:若直线垂直于x轴,这意味着a值趋向于无穷大。
因此针对该现象,我们引入了极坐标:
其中相交的点便是我们寻找的条件。
二.基于特定理论的方法 :(Clustering聚类方法为主)
2.1 K-Means
步骤如下:
1.确定聚类( cluster ,也称簇)中心的个数 K ,并为它们随机初始化一个各自的聚类质心点。
2.根据每个数据点到质心的距离来进行分类,加入新的可加入的最近的数据点。
3.针对加入的新数据点,重新计算每一聚类中所有向量的平均值,并确定出新的质心。
4.重复2-3步骤,进行一定次数的迭代,直到质心的位置不再发生太大变化。
优缺点:
优点:速度快, 时间复杂度O(n) 。
缺点:如何 一开始就确定聚类个数K ;一开始质心点的选取是随机的,质心点的位置 不可重复且缺乏一致性 。
K-Means效果图
2.2 高斯混合模型(GMM)
其是指多个高斯分布函数的线性组合,用两个参数来描述聚类的形状:均值和标准差。 以二维分布为例,标准差的存在允许聚类的形状,相比如K-Means算法,更加灵活地对点进行分类。在图像上可表示为多类型的椭圆,而不再限制于圆形(K-Means)。
如果数据点 符合某个高斯分布 ,那它就会被归类为那个聚类。
为了找到每个聚类的参数,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)。
基本思想:首先根据己经给出的观测数据, 估计出模型参数的值;然后再依据上一步估计出的参数值 估计缺失数据的值,再根据估计出的 缺失数据加上之前 己经观测到的数据重新再对参数值 进行估计,然后反复 迭代,直至最后 收敛,迭代结束。
缺点:与K-Means相比,GMM每一步迭代的计算量比较大。 基于EM算法,有可能陷入局部极值,需要经过多次迭代。
2.3 Mean-Shift
1975年,Fukunaga和Hostetle提出了一种基于一般核函数 的非参数密度梯度的估计算法,并给出了保证估计值与真实值之间渐近无偏、一致和均匀连续时核函数应满足的条件。
1999年,Comaniciu将均值移动应用于图像分析。
核心思想:找到概率密度梯度为零的采样点,并以此作为特征空间聚类的模式点。
【如上图绿色画圈范围中,红点所在区域密度更大,会使得该聚类点往红点迁移,直至密度不变,也就是梯度为零情况。】
优缺点:
优点:与 K-Means 方法的最大优点是无需指定聚类数目K,聚类中心处于最高密度处,也符合直觉认知。
缺点:如何正确选择窗口尺寸 h,不同的尺寸会引入不同的计算结果。
【如上图中间便是h过大,最右边是h过小的结果。】
2.4 图割
基本思想:
1. 将图像用图的方式表示,顶点表示像素,边表示像素之间的关系。图像分割对应图的割集。
2. 确定图中边的权值,使图像分割目标(能量最小化)对应图的最小割。
3. 用最大流算法求解最小割问题。
为了更好的学习相关内容,我们先针对图论相关知识进行系列学习。
【无向图和有向图】
S-T图
1. 有源节点(s)和终节点(t)
2. 每条边有一个非负的容量Cap(i,j)
3. 对于不存在的边, 其容量为0
【若s和t由线分割则为s-t割,反之为非s-t割】
最小割:割线所经过权值最小
图割在图像分割中的应用:
1. Normalized cut 及其在图像分割中的应用
2. graph cu t 算法求解计算机视觉中的能量极小化问题
2.4.1 Normalized cut(归一化分割)
一般的分类问题:
给定一个点集V,按照一定的相似度量(距离)寻求一种划分,将点集V划分成不相交的若干子集合V1 ,V 2 …V m 。使得每一 子集内部 的 相似度 尽量 高 ,而 子集之间 的 相似度 尽量 低 。
在图论解决分类问题上,我们可以先使用一个无向赋权图来表示。
考虑二分类问题:
将点集V分成不相交的两部分A、B。则两类别之间的相似性我们可以用图割来度量。
【cut取最小】
需要注意的是:仅考虑用割集的权值之和来度量两个集合之间的相关性,会容易出现孤立分割的问题。如下图所示:
这时候就引入了 Normalized cut,定义一个 新的类间相似性度量 。
其中:
【V为全部点】
同理, 新的类内相似性度量:
简单推导可得:Ncut(A,B)=2-Nassoc(A,B)
可见最小化类间相似性和最大化总类内相似性是等价的。
这样就解决了 划分准则 的问题,即: 最优划分对应于最小Ncut
通过求最小 Ncut ,就可以得到最优划分。
不幸的是求一个图的Ncut是一个NP问题。
Normalized cut 在图像分割中应用具体过程:
将一幅图像上所有 像素点 看作点集 V ,每两个 点之间都建立一条边 ,得到 边集E 。为每条边按下面方法赋权。
这样就建立一个 赋权无向图G=(V,E)
按照前述算法,我们就可以完成对该幅图像分割操作。
2.4.2 用graph cut求解能量极小化问题
计算机视觉的很多问题可以看作一个最优标记(labeling)问题,如:
我们构建如下能量函数来得到最优标记准则:
f: P- L 的映射。P是像素点集,L是标记集。
Data项 表示给每个像素点赋予标记(label)的代价
Smooth项 表示每两个相邻的像素分别赋予标记 和 的代价
【Graph cut与能量函数的对应关系】
两标记问题:
对于两标记问题,最小能量对应于图的最小割。图论中已有经典的算法,可以求得一个图的最小割,从而得到极小能量。
多标记问题:
当标记数量大于2时,已经证明该问题是NP-hard问题。故很难求得该问题的全局极小值。
Boykov等构造了两个运用最小割求解该类能量函数的近似极小值的算法:
α-β swap
α expansion
这两个算法运算速度快,且能得到比较好的结果,从而得到了广泛应用,并使得用能量极小化模型和图割来处理计算机视觉中的一些问题成为目前的一个研究热点。
【在下篇我将介绍 基于深度神经网络的图像分割,不足之处希望能谅解】