【PIE-Engine Studio学习笔记06】图像分类——监督分类

一、图像分类含义

图像分类是将图像中每个像元根据其在不同波段的光谱亮度、空间结构特征或者其他信息,按照某种规则或算法划分为不同的类别。
基于光谱特征的遥感影像分类方法主要包括:

此章节重点讲解监督分类

二、监督分类含义

监督分类(supervised) , 又称训练分类法, 即用被确认类别的样本像元去识别其他未知类别像元的过程。已被确认类别的样本像元是指那些位于训练区的像元。在这种分类中,分析者在图像上对每一种类别选取一定数量的训练区,计算机计算每种训练样区的统计或其他信息,每个像元和训练样本作比较,按照不同规则将其划分到和其最相似的样本类。
简单的说,首先需要从遥感影像上选取具有代表性的训练区作为样本,并进行训练;再依据一定的判别函数与判别准则,对待分像元进行类别判定。

监督分类可分两个基本步骤:

  1. 选择训练样本和提取统计信息;
  2. 选择合适的分类算法,也可以说是分类器:
  • 平行算法
  • 最小距离法
  • 最大似然法

三、PIE-Engine Studio 实现监督分类

3.1 PIE-Engine Studio 多种监督分类算法:

PIE-Engine Studio 支持一下多种监督分类算法:

  • AdaBoost分类分类器
  • 决策树分类分类器。
  • K最近邻分类分类器。
  • 正态贝叶斯分类分类器。
  • 随机森林分类分类器。
  • svm(支持向量机)监督分类分类器。

3.2 PIE-Engine Studio 多种监督分类算法实现:

1、矢量范围加载显示


var geometry = pie.FeatureCollection("NGCC/CHINA_CITY_BOUNDARY")
    .filter(pie.Filter.eq("name", "邯郸市"))
    .first()
    .geometry();

Map.centerObject(geometry, 6);
Map.addLayer(geometry, { color: 'FF0000', fillColor: '00000000', width: 1 }, "邯郸");

【PIE-Engine Studio学习笔记06】图像分类——监督分类

2、影像裁剪、加载显示


var img = pie.ImageCollection("S2/L2A")
        .filterBounds(geometry)
        .filterDate("2020-05-01", "2020-10-01")
        .filter(pie.Filter.lte("cloudyPixelPercentage", 0.5))
        .select(["B2", "B3", "B4"])
        .max()
        .clip(geometry);;

Map.addLayer(img, { min: 0, max: 3000, bands: ["B4", "B3", "B2"] }, "img", true);
print(img)

【PIE-Engine Studio学习笔记06】图像分类——监督分类

3、分类样本文件制作

分类的代码编号如下:

1-水体
2-山地
3-农田
4-城镇

这一步比较麻烦,没有找到比较好的方式进行样本制作, 如果大家有比较好的方式可以私信我哈,在此先行谢过!我是利用ArcMap制作的样本点矢量。

【PIE-Engine Studio学习笔记06】图像分类——监督分类

注意两点:
1、样本数量多一点,每个Class十个以上吧,我这里样本选的有点少。
2、单点,PIE-Engine Studio 监督分类只支持单点格式(point)的数据,目前还不支持多点(Multipoint)的数据。所以利用ArcMap中的【Feature To Point】进行了转换。

【PIE-Engine Studio学习笔记06】图像分类——监督分类
转换后的单点格式:
【PIE-Engine Studio学习笔记06】图像分类——监督分类

最终的上传的矢量文件结果如下所示,上传过程见:【PIE-Engine Studio学习笔记04】上传本地数据和导出云端数据

【PIE-Engine Studio学习笔记06】图像分类——监督分类
加载显示:
var featureCollection = pie.FeatureCollection('user/Lee103/CSDN/roi_FeatureToPoint');
print("roi:", featureCollection)
Map.addLayer(featureCollection, { color: 'FF0000', fillColor: '00000000', width: 2 }, "roi");

【PIE-Engine Studio学习笔记06】图像分类——监督分类

4、训练分类


var training = img.sampleRegions(featureCollection, ["Class"], 10);
print("training:", training)

var options = {

    "svmType": 100,

    "kernelType": 0,

    "gamma": 1,

    "coef0": 0,

    "degree": 0,

    "trainAuto": 0,

    "type": 3,

    "minDistance": 0.1,

    "maxIter": 100
};

var classifer = pie.Classifier.svm(options).train(training, "Class", ["B4", "B3", "B2"]);
var resultImage = img.classify(classifer, "classify_handa");

print("resultImage:", resultImage)

5、渲染显示

var visParam = {
    opacity: 1,
    uniqueValue: '1,2,3,4',
    palette: 'EAF2F5,000032,1F3600,FAFFC8'
};

Map.addLayer(resultImage, visParam, 'handan_class');

6、制作图例

var data = {
    title: "分类结果",
    colors: ['EAF2F5', '000032', '1F3600', 'FAFFC8'],
    labels: ["1-山地", "2-水体", "3-农田", "4-城镇"],
    step: 1
};
var style = {
    right: "100px",
    bottom: "10px",
    height: "70px",
    width: "300px"
};
var legend = ui.Legend(data, style);
Map.addUI(legend);

分类结果

【PIE-Engine Studio学习笔记06】图像分类——监督分类

总结

本节主要学习了基于PIE-Engine Studio 进行监督分类。欢迎大家批评指正,探讨交流!!!

参考:
《遥感应用分析原理与方法》赵英时

Original: https://blog.csdn.net/qq_32390983/article/details/124035230
Author: GeoLearning
Title: 【PIE-Engine Studio学习笔记06】图像分类——监督分类

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/661979/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球