由于很多时候,我们在研究过程中往往需要根据实际情况使用自己的影像数据来提取目标物,如果没有合适的公开数据集的话,为了满足实际需要,我们就需要制作符合自己要求的数据集。 今天我们就根据实际情况来详细讲解如何利用arcgis,来制作属于自己的数据集。
制作目标shp文件
-
首先我们在arcgis中添加我们的影像文件。 -
然后创建一个shp文件。注意坐标系与我们的影像文件保持一致。在创建过程中注意选择面矢量。 -
创建完成后,我们在目录表右键新创建的shp文件,打开属性表。 -
此时的属性表中没有多余的属性。我们点击右上角的选项,选择add field,添加属性。属性名称为"class_id",类型默认为短整型。 -
然后我们打开编辑功能,对shp进行编辑。 -
这里我们沿着建筑边缘,勾画一栋建筑。 -
打开属性表我们发现,刚刚勾画的图斑的class_id值为0,为了使勾画的图斑与背景区分,这里我们将其赋值为1,代表建筑。 -
接着我们再画三栋建筑,当我们同一属性画了很多时,可以进行批量赋值。我们可以选中我们需要批量赋值的图斑,在class_id处然后右键,选择字段计算器,点开后在下方写入1即可,此时选中图斑已经全部赋值为1 -
如果单分类的任务要求,可以将所有图斑全部赋值为0,如果是多分类的任务,可以继续勾画其它地物,这里我们以林地作为演示,并将其赋值为2。 -
确保影像区域全部勾画完成后,对数据进行保存,并结束编辑。
此时目标shp文件已经制作完成,下面开始制作label。
制作label文件
-
首先我们通过搜索工具,找到creat fishnet工具(不同版本arcgis,该工具所在位置可能不同,建议使用搜索工具直接定位) -
打开工具,按下图要求进行选择填写,然后就会生成与影像范围保持一致的面矢量。 -
我们用上面的方法,在属性表中添加class_id属性,并使用默认值0代表背景。 -
然后我们选择update工具,在输入要素中选择我们的背景矢量(fishnet),更新要素中选择我们的目标矢量(lab),输出路径选择我们自己的路径,后缀加上.shp。然后将两个矢量进行叠加。生成的矢量就将两个矢量更新到了一起,并且范围与影像保持一致。 -
选择feature to raster 工具,按下面要求选择填写,然后就可以得到背景为0,建筑为1,林地为2的label影像。
数据集制作
此时可以参考之前我们分分享的马萨诸塞州道路数据集预处理[]的代码进行数据集制作,也可以在arcgis中进行制作。
-
在arcgis中选择split raster工具 -
分别对影像数据与label数据进行裁剪 -
裁剪完成后会得到image与label一一对应的数据集(除了后缀为.tif的文件,其余文件皆可以删除) -
选择一个label数据加载到arcgis中,确认是我们标注的图斑,且与影像保持对应。
总结
至此,利用arcgis制作遥感影像语义分割数据集的全套流程就结束啦。感兴趣的可以试一试。后续我们也会介绍利用python实现数据集的批量化制作预处理,以及使用arcgis内置的Export Training Data For DeepLearning工具制作更多类型的数据集。感兴趣的点点「关注」。
往期精彩
本文由 mdnice 多平台发布