用于像素聚类的高斯混合模型
Posted
技术标签:
【中文标题】用于像素聚类的高斯混合模型【英文标题】:Gaussian Mixture Models for pixel clustering 【发布时间】:2019-10-14 02:56:11 【问题描述】:我有一小组航拍图像,其中图像中可见的不同地形已由人类专家标记。例如,一幅图像可能包含植被、河流、落基山脉、农田等。每幅图像可能有一个或多个这些标记区域。使用这个小的标记数据集,我想为每种已知的地形类型拟合一个高斯混合模型。完成后,对于我可能在图像中遇到的每 N 种地形,我将拥有 N 个 GMM。
现在,给定一张新图像,我想通过将像素分配给最可能的 GMM 来确定每个像素属于哪个地形。 这是正确的思路吗?如果是,我该如何使用 GMM 对图像进行聚类
【问题讨论】:
【参考方案1】:如果你使用带标签的训练数据,它不是聚类!
不过,您可以轻松使用 GMM 聚类的标注功能。
为此,计算先验概率、均值和协方差矩阵,并将它们反转。然后使用来自训练数据的多元高斯,按照最大概率密度(由先验概率加权)对新图像的每个像素进行分类。
【讨论】:
您可以从标记数据创建集群。事实上,这通常是聚类的重点。创建标签 集群可以用来创建标签,是的。但是,如果您已经拥有专家标签,那么寻找劣质标签的意义何在? “给定一张新图像……” - HuckleberryFinn 清楚地要求根据训练标签对新图像中的像素进行分类。 有一个叫做“标签分配”的问题。当您运行任何无监督聚类算法来执行逐像素聚类时,您最终会得到 N 个聚类,每个聚类都被随机分配一些从 0 到 N-1 的标签。 GT 可用于通过检查给定集群的一些统计信息与已知集群的统计信息来将真实标签分配给集群区域。 很可能不存在好一对一映射。如果你有标签,你最好更有效地使用它们,而不是寻找最不坏的此类映射......【参考方案2】:直觉上,你的思维过程是正确的。如果您已经有了使这更容易的标签。
例如,让我们选择一个非常知名的非参数算法,例如 Known Nearest Neighbors https://en.wikipedia.org/wiki/K-nearest_neighbors_algorithm
在此算法中,您将获取新的“像素”,然后找到与您当前正在评估的最接近的 k 像素;其中最接近的是由某个距离函数(通常是欧几里得)确定的。然后,您可以将这个新像素分配给最常出现的分类标签。
我不确定您是否正在寻找特定的算法推荐,但 KNN 将是开始测试此类练习的一个非常好的算法。我看到你标记了sklearn
,scikit learn 有一个very good KNN implementation,我建议你继续阅读。
【讨论】:
以上是关于用于像素聚类的高斯混合模型的主要内容,如果未能解决你的问题,请参考以下文章
Gaussian Mixture Model (GMM)高斯混合模型聚类