用于像素聚类的高斯混合模型
Gaussian Mixture Models for pixel clustering
我有一小组航拍图像,其中图像中可见的不同地形已由人类专家标记。例如,一幅图像可能包含植被、河流、落基山脉、农田等。每幅图像可能有一个或多个这些标记区域。使用这个带标签的小数据集,我想为每种已知地形类型拟合一个高斯混合模型。完成后,我将为图像中可能遇到的每种 N 种地形设置 N 个 GMM。
现在,给定一张新图像,我想通过将像素分配给最可能的 GMM 来确定每个像素属于哪个地形。
这是正确的思路吗?如果是,我该如何使用 GMM
对图像进行聚类
直觉上,你的思路是正确的。如果您已经拥有使这变得容易得多的标签。
例如,让我们选择一个非常著名的 non-parametric 算法,例如已知最近的邻居 https://en.wikipedia.org/wiki/K-nearest_neighbors_algorithm
在此算法中,您将采用新的 "pixels",然后它会找到与您当前正在评估的最接近的 k-pixels;其中 closest 由某个距离函数(通常是欧几里得)确定。从那里,您可以将这个新像素分配给最常出现的分类标签。
我不确定您是否正在寻找特定的算法推荐,但 KNN 将是开始测试此类练习的非常好的算法。我看到你被标记为 sklearn
,scikit learn 有一个 very good KNN implementation 我建议你继续阅读。
如果使用带标签的训练数据,则不是聚类!
不过,您可以轻松使用GMM聚类的标注功能。
为此,计算先验概率、均值和协方差矩阵,并将它们求逆。然后使用来自训练数据的多元高斯分布,根据最大概率密度(由先验概率加权)对新图像的每个像素进行分类。
我有一小组航拍图像,其中图像中可见的不同地形已由人类专家标记。例如,一幅图像可能包含植被、河流、落基山脉、农田等。每幅图像可能有一个或多个这些标记区域。使用这个带标签的小数据集,我想为每种已知地形类型拟合一个高斯混合模型。完成后,我将为图像中可能遇到的每种 N 种地形设置 N 个 GMM。
现在,给定一张新图像,我想通过将像素分配给最可能的 GMM 来确定每个像素属于哪个地形。 这是正确的思路吗?如果是,我该如何使用 GMM
对图像进行聚类直觉上,你的思路是正确的。如果您已经拥有使这变得容易得多的标签。
例如,让我们选择一个非常著名的 non-parametric 算法,例如已知最近的邻居 https://en.wikipedia.org/wiki/K-nearest_neighbors_algorithm
在此算法中,您将采用新的 "pixels",然后它会找到与您当前正在评估的最接近的 k-pixels;其中 closest 由某个距离函数(通常是欧几里得)确定。从那里,您可以将这个新像素分配给最常出现的分类标签。
我不确定您是否正在寻找特定的算法推荐,但 KNN 将是开始测试此类练习的非常好的算法。我看到你被标记为 sklearn
,scikit learn 有一个 very good KNN implementation 我建议你继续阅读。
如果使用带标签的训练数据,则不是聚类!
不过,您可以轻松使用GMM聚类的标注功能。
为此,计算先验概率、均值和协方差矩阵,并将它们求逆。然后使用来自训练数据的多元高斯分布,根据最大概率密度(由先验概率加权)对新图像的每个像素进行分类。