Semantic Segmentation Dataset
- 由于图像的名字中有:
- 1、中文、空格、数字开头、label
- 2、origin的对应图像名字不同
- 等各种各样的问题,数据探索和数据预处理尤为重要。针对1,可以用下面的代码来避免opencv在读取、保存时可能报错;针对2,尤其是我所不了解的,他人的数据、脏数据,要先搞清楚数据集的结构,将其整理成符合模型训练的结构。
- 可见opencv路径报错
import cv2 as cv
import numpy as np
import os
def get_files(path):
files=os.listdir(path)
return files
def cv_imread(file):
img = cv.imdecode(np.fromfile(file, dtype=np.uint8), -1)
return img
def cv_imwrite(filename, src):
cv.imencode(".jpg", src)[1].tofile(filename)
- 数据集:label RGB 3通道;origin 灰度图,虽然读取后显示的也是三维数组,但三个维度都一样
- label 绿色血管图做二值化 threshold
- origin 灰度图做归一化 /255,在训练的时候做
- 因此对origin只需进行滑动窗口分割预处理,对label需要先做__二值化__(去掉模糊的部分,让特征更明显),再做滑动窗口分割。
- 因为语义分割本质上是分类问题(这里是二分类),即 某一个像素属于哪一类(0 或 255)
def img_process(in_path,out_path,size):
files=get_files(in_path)
for k in range(len(files)):
img=cv_imread