影像自定义深度学习
本教程将利用自定义深度学习功能实现建筑物轮廓自动提取。
训练数据标注
1. 准备数据
选择了建筑物的影像数据进行标注,数据如下所示,本教程以该数据演示整个流程。
2. 标注数据
影像模型训练支持的标注格式是labelme的json格式,可以使用LiDAR360 8.0提供的矢量编辑功能进行数据标注,也可以直接使用labelme的标注工具。本教程使用LiDAR360 8.0矢量编辑进行数据标注。
2.1 数据加载
首先使用LiDAR360软件打开需要标注的数据,然后按照顺序点击 矢量编辑->编辑器->新建临时矢量 ,将图层名字改为需要标注的类别,这里设置图层名为building。
注意:标注的数据尽量选择尺寸小于4000x4000,如果超过建议切图后再进行标注。
2.2 基于SAM的半自动标注工具
数据标注可以完全手动使用矢量编辑功能对图中的建筑物轮廓进行编辑来生成标注文件,也可以使用基于半自动的标注工具SAM快速对数据进行标注。SAM位于当前界面中的要素提取模块中,点击SAM启动成功后如下图中所示,接着就可以对建筑物进行标注。该工具的具体使用可参考SAM手册进行使用。
2.3 标注结果导出为训练格式
当前影像数据标注完后,点击编辑器->Export LabelMe,将在影像同级文件夹中生成一个同名的json文件,该文件就是标注的结果文件。
3. 建筑物轮廓提取模型训练
3.1 训练数据组织
当所有数据标注完成后,需要按格式组织标注文件和影像文件才能进行训练,其文件格式如下所示。
data/building └───train │ -----image_1.tif │ -----image_1.json
│ -----image_2.tif │ -----image_2.json
│ -----image_3.tif │ -----image_3.json
.......
└───val
│ -----image_1.tif │ -----image_1.json
│ -----image_2.tif │ -----image_2.json
│ -----image_3.tif │ -----image_3.json
.......
训练数据中应当包含train文件夹和val文件夹,train/val文件中都是由多个影像文件和对应的标注文件组成。在本教程中train和val使用了相同的数据进行演示,实际使用中数据不应该一样。train文件是用于训练模型,val文件是用于验证模型性能。train和val需要手动划分,建议两者数量比例为4:1。
3.2 训练影像模型流程
数据准备完成后,在LiDAR360 软件中按照顺序点击 分类->自定义深度学习分类,如图所示。
添加任务:点击+按钮添加训练任务,选择第二个训练影像模型,点击确定。
设置训练数路径与验证数据路径:选择好数据路径后点击下一步。
设置数据预处理:选择数据训练的图像尺寸,设置完成点击下一步
设置模型:选择模型,这里是选择segmentatiotn,点击下一步。
设置类别转换:设置标注的类别building,点击下一步。
设置训练参数:设置完成点击下一步。
设置数据增强:这里不进行增强,点击完成,等待训练结束。
训练完成如下所示。
4 使用影像模型
训练完成后就可以使用训练好的模型来进行建筑物轮廓提取。使用训练好的模型有两种方式,一种在自定义深度学习分类中使用,另一种是自定义分类中增加自定义模型进行使用。下面将分别介绍这两种使用的方式。
4.1 自定义深度学习分类中使用
点击+按钮添加推理任务,选择使用影像模型分类,点击确定
选择测试数据文件夹与刚刚训练好的模型文件名,设置评估参数,点击确定
推理完成后,在影像同级目录下将生成同名的json文件,该结果可以添加到训练集中用于进一步训练模型。
4.2 自定义模型分类
使用影像模型,还可以通过自定义分类方式。
点击 分类->Custom Class Setting 打开自定义模型界面,点击+按钮增加训练的模型。
设置自定义模型名字,选择模型类型为Image,点击确定。
完成自定义模型增加后,Custom Classifications出现了building模块,添加要提取建筑物轮廓的影像,点击building模块设置参数即可实现建筑物轮廓提取。
设置评估参数,点击确定。
等待运行结束后,得到测试图像的建筑物轮廓线。