极化SAR数据超像素分割和密度峰值聚类

一、超像素分割

  在计算机视觉领域,图像分割(Segmentation)指的是将数字图像细分为多个图像子区域(像素的集合)(也被称作超像素)的过程。超像素由一系列位置相邻且颜色、亮度、纹理等特征相似的像素点组成的小区域。这些小区域大多保留了进一步进行图像分割的有效信息,且一般不会破坏图像中物体的边界信息。
  图像分割的结果是图像上子区域的集合(这些子区域的全体覆盖了整个图像),或是从图像中提取的轮廓线的集合(例如边缘检测)。一个子区域中的每个像素在某种特性的度量下或是由计算得出的特性都是相似的,例如颜色、亮度、纹理。邻接区域在某种特性的度量下有很大的不同。
  于我而言,主要学习simple linear iterative clustering (SLIC),简单的迭代聚类算法。这个算法和kmeans算法十分相似。对于给定样本,执行步骤如下:

kmeans分类:

  1、给定聚类簇数k,初始化聚类中心。
  2、计算样本和各聚类中心距离对样本进行分类。并记录分类完成后的各个类簇的数据的均值。
  3、比较各个聚类新的均值和重新分类之前的均值,并将聚类的均值更新,重复迭代。直到新旧聚类均值差值小于某个阈值停止迭代。

超像素分类:

  1、给定超像素尺寸pixelsize,初始化超像素中心,初始化超像素中心,将m×n个超像素中心大致均匀设置在原图上。例如对于M×N的影像数据,超像素总个数为:m×n;m为超像素中心行数:m=floor(M÷pixelsize);n为超像素中心列数:n=floor(N÷pixelsize);(示意草图:紫色点为超像素中心,当然实际上肯定要密集的多在这里插入图片描述(目前我认为一定要向下取整,向上取整的话会是计算变得复杂,容易出错)
  2、移动超像素中心到邻域3×3梯度最小的位置,可以有效避免超像素中心出于噪声点或者边界位置。
  3、遍历每个超像素中心,在超像素中心邻域2pixelsize×2pixelsize的范围内进行扫描,判断邻域内各个数据点相对超像素中心的距离,全部扫描完毕后,对于每一个数据点,将其相对周围超像素中心的距离进行比较,然后将数据点归到最近的超像素中心。
  4、计算划归到各个超像素中心的数据点的均值,比较前后均值之差,小于某个阈值就停止迭代。
  在我看来,超像素分割的意义在于归化相似的数据,减小数据量,提高程序的效率,使得某些算法得以实现。就比如:

二、基于密度峰值的快速聚类算法(CFSFDP)

  CFSFDP算法进行聚类时一般分为以下步骤。

一、确定类中心

  CFSFDP算法进行聚类时首先需要确定类的中心点,其假设簇的聚类中心的局部密度高于其周围数据点的局部密度,并且聚类中心与那些局部密度更高的数据点之间的距离较大。对于一个给定的数据集,CFSFDP算法需要为每个数据点计算两个量化值:数据点的局部密度ρi和它与局部密度比其高的数据点之间的距离δi。数据点xi的局部密度ρi有两种计算方式:基于截断核的计算方式和基于高斯核的计算方式。使用截断核计算局部密度pl的公式为:

ρi=:∑χ(δij-dc)

其中, χ ( x ) = { 1 , x < = 0 0 , x > 0 χ(x)=\left\{ \begin{array}{c} 1,x<=0 \\ 0 , x>0\end{array}\right. χ(x)={1,x<=00,x>0,δij为数据点之间的距离,dc为截断距离即距离阈值。使用该计算方式得到的数据点的局部密度ρi通常等于该数据点周围与之距离小于dc的数据点的个数。因此,可以得出这样的结论:与数据点xi的距离小于dc的点越多,得到的局部密度ρi就越大。使用高斯核计算局部密度ρi的公式为:
ρi=:∑e-ij/dc)2

其中,δij为数据点之间的距离,j为i的值域,dc为截断距离即距离阈值。使用该计算方式得到的局部密度ρi仍然满足与数据点xi的距离小于dc的点越多,局部密度ρi就越大的结论。使用截断核计算局部密度和使用高斯核计算局部密度这两种计算方式的区别在于使用截断核计算得到的结果为离散值,而使用高斯核计算得到的结果为连续值。因此,相对而言,使用高斯核计算得到的数据点具有相同的局部密度的概率比使用截断核计算得到的数据点具有相同的局部密度的概率要小,使用高斯核计算局部密度ρi更方便比较数据点局部密度之间的大小关系。(在数据计算起来很复杂时可以考虑第一种方法更为简单)。数据点之间的距离δi。是通过计算数据点zi与比该数据点局部密度高的其他数据点的距离得到的,数据点之间的距离院可以根据公式
δ i = { m i n ( δ i j ) , 存在 ρ j > ρ i m a x ( δ i j ) , 任意 ρ j < = ρ i δi=\left\{ \begin{array}{c} min(δij),存在ρj>ρi\\ max(δij) , 任意ρj<=ρi\end{array}\right. δi={min(δij),存在ρj>ρimax(δij),任意ρj<=ρi
计算得到。一般而言,数据点之间的距离δi为数据点i与比该数据点局部密度ρi更高的其他数据点的所有距离中的最小值,但对于局部密度ρi最高的点,数据点之间的距离δi为其他数据点与之距离的最大值。

个人理解

  在影像自动聚类过程中,我们希望达到的目标是图像自动分割成不同的类。判断最后分类结果的好坏程度的两个标准:(1)对于划分到同一个类的数据,我们希望这个类内足够多的数据和他相似度够好(2)对于分到不同类的数据,我们希望不同类之间数据的区分度够大

  两个指标作为选取类中心的标准:局部密度ρi表征距离δi,局部密度用来衡量类内是否有足够多的数据点和他相似,表征距离δi用来衡量两个类之间是否有足够的区分度。作为类中心,他的局部密度一定足够大,表征距离一定也足够大。

  取聚类中心的方法可以人工选取,我采用的方法很简单,输入想要分类的个数k,从局部密度最大的里面排序选取10k个数据点,再从这10k个数据点里取k个表征距离最大的数据点作为聚类中心。以此来作为聚类中心

结果:

使用matlab进行gui设计,实现交互等操作。

测试截图:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

分类个数和超像素大小会影响最终的分类结果

二、将剩余数据分类

  将剩余的数据分到局部密度比其高且距离最近的聚类里。只需一次,无需迭代。

三、总结

  CFSFDP聚类算法在执行过程中最耗时的莫过于将各点相对于全部数据的距离计算出来来求局部密度的步骤,而超像素分类恰好解决了这一问题,在保证合理的情况下,适当增加超像素的尺寸可以有效减少CFSFDP的运算时间,就在计算各数据点相对各点距离一处就可缩短时间为1/pixelsize4也就是说,当pixelsize取三可以缩减时间为大概1/81收益相当可观

评论 23
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

.癮.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值