影像分析应用实例

本案例为基于二元分类的建筑分类,即使用机器学习功能,自动提取某区域影像数据中的建筑物矢量面。应用案例主要介绍在没有模型的情况下,配置好相关的Python环境之后,如何进行数据准备、模型训练,根据模型对影像进行二元分类。

1.准备样本数据

对待进行二元分类的源影像数据中的部分区域数据,进行标签绘制,作为样本数据生成训练数据。主要操作步骤及参数说明如下:

  • 打开影像文件:以文件型数据源的方式打开 resources_ml\example_data\training\binary_cls_train_data\raw 中的 image.tif 数据,将该影像数据在地图窗口中打开。
  • 准备样本影像数据:新建文件型数据源:Sample.udbx,裁剪两块房屋颜色丰富的影像,保存在Label数据源中,结果数据命名为 Sampleimage_1和SampleImage_2,裁剪完后;将两个影像数据导出为 TIFF 数据;并将 SampleImage_1.tiff 和 SampleImage_2.tiff 拖拽到当前工作空间以文件型数据源方式打开,并分别添加到地图窗口。
  • 准备样本标签数据:新建 SampleLabel_1 he SampleLabel_2 面数据集,分别添加到SampleImage_1和SampleImage_2影像数据地图窗口;将 SampleLabel_1 和 SampleImage_2 图层设置为可编辑状态,通过对象操作-> 对象绘制 -> 面 ->多边形,对影像数据中的房屋进行矢量化,矢量化结果如下图:

2.生成训练数据

基于第一步的标签数据和影像数据,分别对两份数据生成训练数据,并存放在同一路径。主要步骤及参数如下:

第一份训练数据

  • 功能入口:工具箱 -> 机器学习 -> 影像分析 -> 训练数据生成。
  • 源数据:影像数据设置为 SampleImage_1,标签数据设置为 SampleLabe_l。
  • 图像大小:行数、列数均为 512;
  • 训练数据用途:选择二元分类
  • 输出路径:设置模型的输出路径为E:\AI\Data\TrainingData;
  • 数据名称:设置为:building_training_data。
  • 执行成功后,即可得到影像数据和标签数据按指定大小划分的图像,以及数据的配置文件 building_training_data.sda,如下图:

第二份训练数据

  • 再次打开工具箱中的训练数据生成工具。
  • 源数据:影像数据设置为 SampleImage_2,标签数据设置为 SampleLabe_2。
  • 图像大小:行数、列数均为 512,与第一份训练数据大小相同;
  • 训练数据用途:选择二元分类
  • 输出路径:模型输出路径与第一份训练数据相同,设置为:“E:\AI\Data\TrainingData”;
  • 数据名称:与第一份训练数据相同,设置为:building_training_data。
  • 执行成功后,第二份训练数据会追加保存至同一个路径,结果如下图:

3.模型训练

使用第二步生成的训练数据进行模型训练,主要步骤及参数说明如下:

  • 训练数据路径:选择上一步骤生成的训练数据结果的保存路径:E:\AI\Data\Training\building_training_data;
  • 训练配置文件:选择训练数据结果中的配置文件:resources_ml\trainer_config\binary_cls_train_config.sdt;
  • 训练模型用途:二元分类;
  • 训练次数:10;
  • 训练日志路径:E:\AI\Data\TrainingModel\log;
  • 模型储存路径:E:\AI\Data\TrainingModel\Model;
  • 模型名:building_model。
  • 其他参数使用默认参数,执行时间约 10-70 分钟(GPU 执行时间),执行成功后,得到building_model模型文件。

4.模型应用:提取影像中的建筑物

使用模型训练得到的模型及二元分类工具,对源影像数据进行大面积的房屋面提取,自动提取影像中的建筑物信息,主要步骤及参数说明如下:

  • 源数据:将源数据设置为 image。
  • 模型文件:选择模型训练生成的结果模型,即“E:\AI\Data\TrainingModel\Model\Building_model\Building_model.sdm”文件。
  • 切片重叠值:设置为 60。
  • 其它参数默认,点击执行即可对影像进行二元分类,提取影像中的房屋信息,得到下图(右)所示的栅格数据。(GPU时间约15分钟)

相关内容

机器学习环境配置

生成训练数据

模型训练

目标检测

二元分类

地物分类

场景分类

对象提取