DeeplabV3+ 训练自己的遥感数据

1、创建 tfrecord

  模型本身是把一张张 jpg 和 png 格式图片读到一个 Example 里,写入 tfrecord。但我是一个大的 tif 文件,需要把几万像素的图片分割成小块写入到一个 tfrecord 文件里,而 tf 没有对 tif 格式的图片的解码,因此不能直接使用原来的 build_data.py。

  先用 osgeo 里的 gdal 读取 tif 文件,得到大 tif 的 np.array,再设置步长一块块读取,调用 tobytes() 转成二进制字符串,保存到 tfrecord 中,不过需要把图片 shape 都设置好,大小还有维度,这点有待改进。

2、data_generator读数据

  加入自己的数据集,只需模仿它已经创建的数据就好

  解码时用 tf.decode_raw() 解码,不用再根据后缀判断调用哪个。

3、训练 train.py

  参数设置里需要指定自己的数据集 dataset

  由于类别数不同,设置 initialize_last_layer=False,last_layers_contain_logits_only=True

  crop_size缩小为321(由于内存不够,将其改小,但是crop_size至少要大于300,遵循的公式是(crop_size-1)/4为整数)

4、可视化 vis.py

  由于没有每个文件的文件名,需要把 vis.py 里有关文件名的地方做相应的修改

  需要在 get_dataset_colormap.py 中加入自己的数据集

5、存在的问题

  eval.py 不会出现 miou 分数,不知道哪里出问题了,跑原来的数据也没有

参考:https://blog.csdn.net/weixin_38385446/article/details/82781109

猜你喜欢

转载自www.cnblogs.com/tccbj/p/10628938.html