当前位置:网站首页>deeplab implements its own remote sensing geological segmentation dataset
deeplab implements its own remote sensing geological segmentation dataset
2022-07-31 11:16:00 【I am a little rice】
1. 数据集下载
下载链接
提取码:2022
Samples are stored in the datasets folderimage和label,You can view their channel and other information,Convenient to work with your own datasets.
2. 数据集预处理
参考另一篇文章:图像预处理
- 数据集image
- 是24位深度
- 3通道RGB图像
- 数据集label
- 是8位深度
- The value of the label is0,1,2,…(有nclass valuen-1)
If your dataset labels take the value 255,需要转化为0,1,2,等(视自己情况而定)
例如:
Background [0,0,0]--------------0
Person [192,128,128]--------------1
Bike [0,128,0]----------------------2
Car [128,128,128]----------------- 3
Drone [128,0,0]--------------------4
Boat [0,0,128]--------------------- 5
Animal [192,0,128]---------------- 6
Obstacle [192,0,0]------------------7
Construction [192,128,0]-----------8
Vegetation [0,64,0]-----------------9
Road [128,128,0]-------------------10
Sky [0,128,128]---------------------11
如果显存不够,Images can be cropped as 256大小,对应代码如下:
The cropped image is saved in image和label中
import os
import numpy as np
import cv2
images_path = './JPEGImages/'
labels_path = './SegmentationClass/'
image_files = os.listdir(images_path)
for s in image_files:
image_path = images_path + s
label_path = labels_path + s[:-4]+'.png'
image = cv2.imread(image_path)
label = cv2.imread(label_path)
#print(image.shape)
index = 0
for i in range(4):
for j in range(4):
#print(i*256, ((i+1)*256-1), j*256, ((j+1)*256-1))
new_image = image[i*256 : ((i+1)*256), j*256 : ((j+1)*256), :]
new_label = label[i*256 : ((i+1)*256), j*256 : ((j+1)*256), :]
cv2.imwrite('./image/'+ 'b_' + s[:-4] +'_'+ str(index) + '.png', new_image)
new_label = cv2.cvtColor(new_label, cv2.COLOR_BGR2GRAY)
cv2.imwrite('./label/'+ 'b_' + s[:-4] +'_'+ str(index) + '.png', new_label)
index+=1
print(s)
3. 模型下载
4. 检查数据
- 数据准备完成之后,首先运行
voc_annotation.py
文件,生成数据列表,运行命令:python voc_annotation.py
,Usually no error is reported here,If an error is reported, you can check as follows:Check if the label is
8位深度
,如果不是,运行下面的代码:import os import cv2 file_names = os.listdir('./SegmentationClass/') for s in file_names: image_path = os.path.join('./SegmentationClass/', s) image = cv2.imread(image_path) image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) cv2.imwrite('./SegmentationClass/' + s , image)
Check if there are other values in the label,比如说
类别为3
,Then the value in the tag can only be0,1,2
,如果出现其他值,就可能会报错;Even if there is no error here,There may also be problems during training,So if there is this problem,一定要记得修改.If this value is not particularly large,可以直接设为0;如果特别多,Then you need to check which step is causing the problem,If you can't find it, suggest changing the dataset.
5. 训练模型
- 修改train.py代码
图像的尺寸(重要)
图像类别(重要)
batch_sizeand other parameters as the case may be - 运行
python train.py
来训练
6. 模型评估
- 修改deeplab.py内容,are the trained models.类别数(Including background).图像尺寸
- 修改get_miou.py内容
- 运行
python get_miou.py
命令
7. 模型预测
- 修改deeplab.py内容,are the trained models.类别数(Including background).图像尺寸
- 修改predict.py内容.name_classesIndicates the corresponding name for each category
- 运行
python predict.py
命令
边栏推荐
猜你喜欢
随机推荐
《JUC并发编程 - 高级篇》06 - 共享模型之不可变(不可变类的设计 | 不可变类的使用 | 享元模式)
Acwing-考研机试题
strings包详细文档+示例
lotus-local-net 2k v1.17.0-rc4
redis-企业级使用
unity-shader-2
musl Reference Manual
Find a Go job in 7 days, Conditional statements to learn in Gopher, loop statements, Part 3
A Method for Ensuring Data Consistency of Multi-Party Subsystems
5 open source Rust web development frameworks, which one do you choose?
mysql automatically adds creation time and update time
Threading(in thread main)
After class, watching the documentation and walking back to the lab, I picked up the forgotten SQL operators again
Windows安装mysql详细步骤(通俗易懂,简单上手)
7 天找个 Go 工作,Gopher 要学的条件语句,循环语句 ,第3篇
sql力扣刷题八
文件包含漏洞
Insertion and deletion of doubly linked list
CoCube群机器人预览→资讯剧透←
Three ways of single sign-on