DBSCAN(Density-Based Spatial Clustering of Applications with Noise)是一种常用的密度聚类算法,它可以将数据集中的数据点划分成若干个密度相连的簇,并且能够识别出异常点。
DBSCAN算法基于以下两个核心概念:
核心对象:如果一个数据点周围半径为ε内的数据点数不少于MinPts,则该数据点称为核心对象。
密度直达:如果数据点p和q都是核心对象,并且q在p的ε邻域内,则称p和q是密度直达的。
基于以上概念,DBSCAN算法的基本流程如下:
随机选取一个未被访问的数据点p,并标记为已访问。
检查p的ε邻域内是否有至少MinPts个数据点,如果有,则将这些点都标记为已访问,并形成一个新的簇。
如果p不是核心对象,则将p标记为噪声点。
重复执行1-3,直到所有数据点都被访问过为止。
最终得到若干个簇,以及一些被标记为噪声点的数据点。
DBSCAN算法的优点在于它可以发现任意形状的簇,并且能够自动排除噪声点的影响。但是,在处理高维数据和不均匀密度数据时,DBSCAN算法可能会出现一些问题。
在机器学习和数据挖掘领域,高维数据通常指的是具有大量特征的数据,即数据点的特征维度非常高。例如,在图像和语音识别领域中,一张图片或一段音频可能会被表示成数百或数千维的向量。
而不均匀密度数据则指的是数据点在空间中的分布不均匀,即某些区域的数据点密度非常高,而其他区域则密度很低。在这种情况下,传统的基于距离的聚类算法可能会将密度低的区域误认为是噪声点,或将密度不均匀的簇划分为多个簇。
堆叠弱纹理物体的点云数据通常属于不均匀密度数据。因为这种数据中不同区域的点密度会有很大差异,例如在物体表面和角落的区域点密度往往会比较高,而在物体的中心位置点密度则可能比较低。在这种情况下,传统的聚类算法可能会将密度较低的区域误认为是噪声点,或将密度不均匀的簇划分为多个簇。因此,针对这种数据,需要使用适当的聚类算法或优化技术,以提高聚类效果。
如HDBSCAN、OPTICS、DBSCAN*算法。此外,还有一些基于图论的聚类算法,如谱聚类和基于最小生成树的聚类算法等,也可以用来优化不均匀密度的点云数据的聚类效果。这些算法可以通过建立数据点之间的相似度图或距离矩阵,利用图论算法进行聚类。
密度聚类算法主要是:基于超像素和密度聚类的图像分割算法DBSCAN(Density-Based Spatial Clustering of Applications with Noise)。该算法可以识别任意形状的结构,且不需要设定分割数目可以自适应的确定分割数目,达到分类效果。
Eps:通过对比全局超像素颜色信息来决定自适应的值
对于超像素k 与邻接超像素进行比较使用不同的Eps(k)值,可以极大的保证超像素总是向着密度最大的方向靠拢,当两个超像素之间的差值超过Eps(k),则扩散结束,直至所有超像素均被遍历,得到分类结果,如图3.10所示。
数据集中的A类需要较小的值,而B类数据集则需要较大的Eps值,通过全局对比,计算出它们的不同的Eps值,这样保证了数据集A和数据集B的正确分割,也保证了噪声点C,D的排除,解决了DBSCAN的参数敏感问题。
当所有的超像素点遍历完成,对每一类聚类都会有聚类数目,这里并不存在最小的聚类数目,对于超像素来说每一个超像素都有可能是孤立的聚类中心,因此minPts的值也可以自适应的确定,并且minPts参数对本文算法的影响较小。
所有像素遍历后,会把超像素划分为两类,包括具有实际意义的超像素聚类和被划为噪声点的聚类,但被划为噪声点的聚类有可能是多主体分割的一部分,却被视为孤立点,不应该被单独分离出来,因此应进行孤立点检测,并更新聚类内容和聚类数目。
孤立点的控制
算法中超像素的自适应Eps值会把噪声点排除到聚类之外,或者聚类中心的超像素与邻接超像素有较大差异,并没有邻接超像素一起组成聚类,单独化为一类,这些孤立点主要有以下几个形成原因:它们与数据的其它部分不一致;由于度量过程中产生的错误或执行错误导致孤立点产生;也可能是固有数据变异性的结果。
但这一噪声点同样是图像聚类的‘部分,为了解决这个问题,本文将孤立点的合并放到了超像素聚类之后,利用聚类数目判断孤立点,并进行融合。