一、引言
图像是人类互相交流信息的方式之一,而图像跟个是一种重要的图像处理技术。 图像中人们往往只对一部分感兴趣,这就是视觉的目标。为了辨识目标,分析目标,必须把目标从图像中提取出来。图像分割就是把图像分割成具有某些特征的区域并标记出目标的技术。
图像分割算法不计其数,大致可以分成并行边界分割技术、串行边界分割技术、并行区域分割技术、串行区域分割技术和其他结合特定理论工具的分割技术。传统的边缘检测手段包括基于梯度的Sobel、 Prewitt 和 Robbert 算子, Log 算子,Canny 算子, Hough 变换等,都属于并行边界分割技术。 其他图像分割还有很多种方法和种类,很少有具有普适性的方法,针对特殊图像必须具体问题具体分析,开辟新的方法。
二、K-means算法原理
聚类算法可以理解为无监督的分类方法,即样本集预先不知所属类别或标签,需要根据样本之间的距离或相似程度自动进行分类。聚类算法包括分割方法:Kmeans,分层次方法:ROCK、Chemeleon,基于密度的方法:DBSCAN,基于网格的方法:STING、WaveCluster 等。K-means(K均值)算法是基于数据划分的无监督聚类算法,是最经典的机器学习算法之一。
K-means 的 K,指的是将 n 个样本对象划分的簇的个数。划分这些簇的标准是数据点间的相似性准则。 K-means 算法使用的相似性准则是误差平方和(sumof the squared error, SSE)最小化准则。所谓误差平方和最小化,就是该算法能够使聚类域中所有数据点到聚类中心的距离平方最小。设有样本集合 , K-means 聚类算法的目标是将数据集划分为 K 类后,使 K 个子集满足类内的误差平方和最小:
其中是第i个簇, 是第 i 个簇的平均,即
求解目标函数 是一个 NP-hard 问题,无法保证得到一个稳定的全局最优解。在Stuart Lloyd 所提出的经典 K-means 聚类算法中,采取迭代优化策略,有效地求解目标函数的局部最优解。算法的四个步骤[1]为:
(1)初始化聚类中心,可选取样本集的前 K 个样本或者随机选取 K 个样本;
(2)分配各样本 到相近的聚类集合,样本分配依据为:
式中,
(3)根据步骤 2 的分配结果,更新聚类中心:
(4)若迭代达到最大迭代步数或者前后两次迭代的差小于设定阈值ε,即,则算法结束;否则重复步骤2。
K-means 算法的步骤2和步骤3分别对样本几何进行重新分配和更新计算聚类中心,通过迭代计算过程优化目标函数 ,实现类内误差平方和最小。在样本分配阶段,需要计算 kn 次误差平方和,计算的时间复杂度为 O(knd);在更新聚类中心阶段,计算时间复杂度为 O(nd)。如果迭代次数为t,则算法的时间复杂度为O(kdnt),因此K-means针对样本个数n具有线性的计算复杂度,是一种高效率的聚类算法。
其中:
三、基于K-means的图像分割验证
对基于K-means的图像分割进行了验证,可以看到K-means对图像的不同区域进行标记和人为分割的还是有一定的相似之处,对图像大部分的区域判定和划分是正确的。对面积较大的区域的边缘,K-means方法检测效果较好,可以作为其他边缘检测方法的辅助手段。
四、参考文献
[1] Bradley P S, Fayyad U M. Refining initial points for k-means clustering. Proceedings of the Fifteenth International Conference on Machine Learning. San Francisco, CA:Morgan Kaufmann Publisher. 1998: 91-99
五、Matlab代码获取
上述Matlab代码获取地址:
https://download.csdn.net/download/m0_70745318/88014883
博主简介:研究方向涉及智能图像处理、深度学习、卷积神经网络等领域,先后发表过多篇SCI论文,在科研方面经验丰富。任何与算法、程序、科研方面的问题,均可私信交流讨论。