语义分割数据集制作
前言
以制作大棚数据集为例。
本文使用的是遥感图像,用arcgis10.8.1处理。
遥感图像和普通图像的区别:
普通图像:不含地理信息(RGB三通道或者灰色单通道图像),可用labelme、anylabeling等进行处理。
遥感图像:包含地理信息以及光谱波段的栅格数据,后缀一般为.tif,可用arcgis处理。
一、利用AI Earth进行全要素提取
-
AI Earth 是什么?
AI Earth 是一个基地理信息系统(GIS)平台, 可以处理和分析大量的地理数据。 -
用AI Earth 做什么?
利用AI earth中进行全要素提取,也就是提取影像中所有的地物,包括房屋建筑、道路、温室大棚等等。 -
其他
也可以利用AI Earth 进行单类要素提取。比如:只要大棚,就可以利用单类要素提取功能提取大棚。(但在此例中,发现AI Earth 单类要素提取不如先AI Earth 全要素提取,再arcgis单要素提取精度高) -
步骤
1、进入官网https://engine-aiearth.aliyun.com/#/;
支付宝扫码登录个人账号。
2、选择“全要素提取”工具
3、准备解译
解译界面如下:
4、上传数据
5、解译
导入当前项目,选择要解译的影像,输入结果名称。
6、解译完成,下载zip文件(如果网速较慢、tif文件较大,可能时间比较长)
二、arcgis进行单类要素提取
- zip文件解压,有一个图标灰白色,后缀为shp的文件,这就是需要的矢量文件,将该文件拖入arcgis中。
- 选中文件,右键,打开属性表,可以看到各种地物,需要的是温室大棚。
- 进行单类要素提取
- 步骤
1、选中shp文件——选择——按属性选择
2、双击catatory,点击=输入’温室大棚’
或者直接输入"category" =‘温室大棚’
这里的单引号一定是英文半角格式
输入完成后可以点击验证,看输入是否有效。
点击确定后,可以看到以及选出了所有温室大棚,接下来进行导出。
3、在图层上点击右键,选择“数据\导出数据”,将数据导出,在导出数据对话框内选择所选要素,如下图所示。
可选择自己想要的输出路径
此时会弹出“是否将要素导入图层”,选择“是”,就可以看到提取出来的大棚了。
三、矢量转栅格
- 此时的.shp是矢量文件,要转为栅格.tif
- 步骤:
1、ArcToolbox——转换工具——转为栅格——要素转栅格
输入:刚才的矢量文件
输出:可选择路径,输出文件命名后缀要改为.tif
value field选择矢量中表示类别的字段
建议路径文件夹全部用英文
因为部分版本的输出路径不支持中文
此时还没有完成,不要点确定
- 环境——处理范围选择与影像相同范围——捕捉栅格也选择影像(为了栅格对齐)。
- 栅格分析——像元大小 选择与影像相同,然后确定。
2、接下来进行栅格裁剪
(1)spatial analyst tools——提取分析——按掩膜提取
按要求选择输入输出,对 环境 进行配置(如上)
运行后得到栅格【此时无背景值】
(2)数据管理工具——栅格——栅格处理——裁剪
按提示完成输入输出
配置环境(如上)
Nodata 设置-1
【得到有背景值的栅格标签】
【但此时的背景是矩形的】
(3)再进行一次用掩膜提取(目的是去掉背景)
spatial analyst tools——提取分析——按掩膜提取
按要求选择输入输出,对 环境 进行配置(如上)
- 经过以上操作,得到了可以用于制作标签的tif文件
参考资料:https://blog.csdn.net/qq_43584444/article/details/126632032
四、python代码进行影像和标签裁剪
原始图像JiTaiTown.tif放入image文件夹,制作好的栅格文件放入label文件夹【输入】
再新建两个文件夹,放裁剪之后的image和label图像【也就是输出】
打开python代码
①改文件夹路径,包括输入和输出路径
②检查image和label裁剪的长、宽、步长【保持一致】
size_w=512, size_h=512, step=256
运行代码,可以得到裁剪后的影像和标签【影像和标签的数量是一样的】
五、python代码进行影像分类
通常将数据集划分为三个部分:训练集、验证集、测试集
因此,可以提前新建三个文件夹:train,test,val
也可以直接在python代码中新建
将图像和标签文件划分,训练集和验证集:90% 测试集:10%
对训练集进行再次划分,以生成最终的训练集和验证集:训练集:85% 验证集:占 15%
运行代码,可以看到裁剪的影像和标签随机分布在三个文件夹中。
至此,数据集制作完成。