├── README.md ├── data.py ├── data └── road │ ├── test │ ├── 1 │ ├── 0.tif │ ├── 1.tif │ ├── 10.tif │ ├── 11.tif │ ├── 12.tif │ ├── 13.tif │ ├── 14.tif │ ├── 15.tif │ ├── 16.tif │ ├── 17.tif │ ├── 18.tif │ ├── 19.tif │ ├── 2.tif │ ├── 20.tif │ ├── 21.tif │ ├── 22.tif │ ├── 23.tif │ ├── 24.tif │ ├── 25.tif │ ├── 26.tif │ ├── 27.tif │ ├── 28.tif │ ├── 29.tif │ ├── 3.tif │ ├── 4.tif │ ├── 5.tif │ ├── 6.tif │ ├── 7.tif │ ├── 8.tif │ └── 9.tif │ └── train │ ├── image │ ├── 0.tif │ ├── 1.tif │ ├── 10.tif │ ├── 11.tif │ ├── 12.tif │ ├── 13.tif │ ├── 14.tif │ ├── 15.tif │ ├── 16.tif │ ├── 17.tif │ ├── 18.tif │ ├── 19.tif │ ├── 2.tif │ ├── 20.tif │ ├── 21.tif │ ├── 22.tif │ ├── 23.tif │ ├── 24.tif │ ├── 25.tif │ ├── 26.tif │ ├── 27.tif │ ├── 28.tif │ ├── 29.tif │ ├── 3.tif │ ├── 30.tif │ ├── 31.tif │ ├── 32.tif │ ├── 33.tif │ ├── 34.tif │ ├── 35.tif │ ├── 36.tif │ ├── 37.tif │ ├── 38.tif │ ├── 39.tif │ ├── 4.tif │ ├── 40.tif │ ├── 41.tif │ ├── 42.tif │ ├── 43.tif │ ├── 44.tif │ ├── 45.tif │ ├── 46.tif │ ├── 47.tif │ ├── 48.tif │ ├── 49.tif │ ├── 5.tif │ ├── 50.tif │ ├── 51.tif │ ├── 52.tif │ ├── 53.tif │ ├── 54.tif │ ├── 55.tif │ ├── 56.tif │ ├── 57.tif │ ├── 58.tif │ ├── 59.tif │ ├── 6.tif │ ├── 60.tif │ ├── 61.tif │ ├── 62.tif │ ├── 63.tif │ ├── 64.tif │ ├── 65.tif │ ├── 66.tif │ ├── 67.tif │ ├── 68.tif │ ├── 69.tif │ ├── 7.tif │ ├── 70.tif │ ├── 71.tif │ ├── 72.tif │ ├── 73.tif │ ├── 74.tif │ ├── 75.tif │ ├── 76.tif │ ├── 77.tif │ ├── 78.tif │ ├── 79.tif │ ├── 8.tif │ ├── 80.tif │ ├── 81.tif │ ├── 82.tif │ ├── 83.tif │ ├── 84.tif │ ├── 85.tif │ ├── 86.tif │ ├── 87.tif │ ├── 88.tif │ ├── 89.tif │ ├── 9.tif │ ├── 90.tif │ ├── 91.tif │ ├── 92.tif │ ├── 93.tif │ ├── 94.tif │ ├── 95.tif │ ├── 96.tif │ └── 97.tif │ └── label │ ├── 0.tif │ ├── 1.tif │ ├── 10.tif │ ├── 11.tif │ ├── 12.tif │ ├── 13.tif │ ├── 14.tif │ ├── 15.tif │ ├── 16.tif │ ├── 17.tif │ ├── 18.tif │ ├── 19.tif │ ├── 2.tif │ ├── 20.tif │ ├── 21.tif │ ├── 22.tif │ ├── 23.tif │ ├── 24.tif │ ├── 25.tif │ ├── 26.tif │ ├── 27.tif │ ├── 28.tif │ ├── 29.tif │ ├── 3.tif │ ├── 30.tif │ ├── 31.tif │ ├── 32.tif │ ├── 33.tif │ ├── 34.tif │ ├── 35.tif │ ├── 36.tif │ ├── 37.tif │ ├── 38.tif │ ├── 39.tif │ ├── 4.tif │ ├── 40.tif │ ├── 41.tif │ ├── 42.tif │ ├── 43.tif │ ├── 44.tif │ ├── 45.tif │ ├── 46.tif │ ├── 47.tif │ ├── 48.tif │ ├── 49.tif │ ├── 5.tif │ ├── 50.tif │ ├── 51.tif │ ├── 52.tif │ ├── 53.tif │ ├── 54.tif │ ├── 55.tif │ ├── 56.tif │ ├── 57.tif │ ├── 58.tif │ ├── 59.tif │ ├── 6.tif │ ├── 60.tif │ ├── 61.tif │ ├── 62.tif │ ├── 63.tif │ ├── 64.tif │ ├── 65.tif │ ├── 66.tif │ ├── 67.tif │ ├── 68.tif │ ├── 69.tif │ ├── 7.tif │ ├── 70.tif │ ├── 71.tif │ ├── 72.tif │ ├── 73.tif │ ├── 74.tif │ ├── 75.tif │ ├── 76.tif │ ├── 77.tif │ ├── 78.tif │ ├── 79.tif │ ├── 8.tif │ ├── 80.tif │ ├── 81.tif │ ├── 82.tif │ ├── 83.tif │ ├── 84.tif │ ├── 85.tif │ ├── 86.tif │ ├── 87.tif │ ├── 88.tif │ ├── 89.tif │ ├── 9.tif │ ├── 90.tif │ ├── 91.tif │ ├── 92.tif │ ├── 93.tif │ ├── 94.tif │ ├── 95.tif │ ├── 96.tif │ └── 97.tif ├── data_Pretreatment.py ├── image ├── Seq05VD_f03510.png ├── Seq05VD_f03510_predict.png ├── loss&acc.png ├── mask.png ├── test.png └── test_predict.png ├── label_visualization.py ├── model_v1.py ├── model_v2.py ├── test.py └── train.py /README.md: -------------------------------------------------------------------------------- 1 | ### unet 2 | Keras implementation of unet. 3 | ### Data 4 | You can download: 5 | 6 | Kitti dataset from here:http://www.cvlibs.net/download.php?file=data_road.zip 7 | 8 | CamVid dataset from here:https://github.com/preddy5/segnet/tree/master/CamVid 9 | 10 | ### How to use 11 | ## Requirement 12 | - OpenCV 13 | - Python 3.6 14 | - Tensorflow-gpu-1.8.0 15 | - Keras-2.2.4 16 | ## train and test 17 | Before you start training, you must make sure your dataset have the right format 18 | 19 | If you just two classes to classify, you should set flag_multi_class equal to False and num_class=2 20 | 21 | if you have many classes to classify, you should set flag_multi_class equal to True and num_class=number of your classes 22 | 23 | Then you should set image type , image_color_mode and label_color_mode. 24 | 25 | change the data path and run the train.py to train you own model and test.py to predict the test images 26 | 27 | 28 | ### Results 29 | The binary classify model is trained for 30 epochs(300 step per epoch) in Kitti dataset. 30 | After 30 epochs, calculated accuracy is about 0.989, the loss is about 0.02 31 | Loss function for the training is basically just a binary crossentropy. 32 | ![image/test.png](image/test.png) 33 | ![image/test_predict.png](image/test_predict.png) 34 | 35 | 36 | 37 | The multi classify model is trained for 30 epochs(300 step per epoch) in Camvid dataset. 38 | After 30 epochs, calculated valid accuracy is about 0.768, the loss is about 1.43 39 | Loss function for the training is categorical_crossentropy. 40 | ![image/camvid.png](image/Seq05VD_f03510.png) 41 | ![image/camvid_predict.png](image/Seq05VD_f03510_predict.png) 42 | 43 | and the loss and accuracy curve in there: 44 | ![image/acc&loss.png](image/loss&acc.png) 45 | 46 | 47 | Then you also can use label_visualization.py to visual your resut like this: 48 | ![image/mask.png](image/mask.png) 49 | 50 | ## About 51 | Unet is More commonly used in medical areas. 52 | 53 | ## Reference 54 | https://github.com/zhixuhao/unet 55 | 56 | 57 | -------------------------------------------------------------------------------- /data.py: -------------------------------------------------------------------------------- 1 | from __future__ import print_function 2 | from keras.preprocessing.image import ImageDataGenerator, img_to_array, load_img 3 | import numpy as np 4 | import os 5 | import skimage.io as io 6 | import skimage.transform as trans 7 | import cv2 8 | import warnings 9 | 10 | warnings.filterwarnings("ignore") 11 | 12 | BackGround = [255, 255, 255] 13 | road = [0, 0, 0] 14 | # COLOR_DICT = np.array([BackGround, road]) 15 | one = [128, 128, 128] 16 | two = [128, 0, 0] 17 | three = [192, 192, 128] 18 | four = [255, 69, 0] 19 | five = [128, 64, 128] 20 | six = [60, 40, 222] 21 | seven = [128, 128, 0] 22 | eight = [192, 128, 128] 23 | nine = [64, 64, 128] 24 | ten = [64, 0, 128] 25 | eleven = [64, 64, 0] 26 | twelve = [0, 128, 192] 27 | COLOR_DICT = np.array([one, two,three,four,five,six,seven,eight,nine,ten,eleven,twelve]) 28 | 29 | 30 | class data_preprocess: 31 | def __init__(self, train_path=None, image_folder=None, label_folder=None, 32 | valid_path=None,valid_image_folder =None,valid_label_folder = None, 33 | test_path=None, save_path=None, 34 | img_rows=512, img_cols=512, 35 | flag_multi_class=False, 36 | num_classes = 2): 37 | self.img_rows = img_rows 38 | self.img_cols = img_cols 39 | self.train_path = train_path 40 | self.image_folder = image_folder 41 | self.label_folder = label_folder 42 | self.valid_path = valid_path 43 | self.valid_image_folder = valid_image_folder 44 | self.valid_label_folder = valid_label_folder 45 | self.test_path = test_path 46 | self.save_path = save_path 47 | self.data_gen_args = dict(rotation_range=0.2, 48 | width_shift_range=0.05, 49 | height_shift_range=0.05, 50 | shear_range=0.05, 51 | zoom_range=0.05, 52 | vertical_flip=True, 53 | horizontal_flip=True, 54 | fill_mode='nearest') 55 | self.image_color_mode = "rgb" 56 | self.label_color_mode = "rgb" 57 | 58 | self.flag_multi_class = flag_multi_class 59 | self.num_class = num_classes 60 | self.target_size = (512, 512) 61 | self.img_type = 'png' 62 | 63 | def adjustData(self, img, label): 64 | if (self.flag_multi_class): 65 | img = img / 255. 66 | label = label[:, :, :, 0] if (len(label.shape) == 4) else label[:, :, 0] 67 | new_label = np.zeros(label.shape + (self.num_class,)) 68 | for i in range(self.num_class): 69 | new_label[label == i, i] = 1 70 | label = new_label 71 | elif (np.max(img) > 1): 72 | img = img / 255. 73 | label = label / 255. 74 | label[label > 0.5] = 1 75 | label[label <= 0.5] = 0 76 | return (img, label) 77 | 78 | def trainGenerator(self, batch_size, image_save_prefix="image", label_save_prefix="label", 79 | save_to_dir=None, seed=7): 80 | ''' 81 | can generate image and label at the same time 82 | use the same seed for image_datagen and label_datagen to ensure the transformation for image and label is the same 83 | if you want to visualize the results of generator, set save_to_dir = "your path" 84 | ''' 85 | image_datagen = ImageDataGenerator(**self.data_gen_args) 86 | label_datagen = ImageDataGenerator(**self.data_gen_args) 87 | image_generator = image_datagen.flow_from_directory( 88 | self.train_path, 89 | classes=[self.image_folder], 90 | class_mode=None, 91 | color_mode=self.image_color_mode, 92 | target_size=self.target_size, 93 | batch_size=batch_size, 94 | save_to_dir=save_to_dir, 95 | save_prefix=image_save_prefix, 96 | seed=seed) 97 | label_generator = label_datagen.flow_from_directory( 98 | self.train_path, 99 | classes=[self.label_folder], 100 | class_mode=None, 101 | color_mode=self.label_color_mode, 102 | target_size=self.target_size, 103 | batch_size=batch_size, 104 | save_to_dir=save_to_dir, 105 | save_prefix=label_save_prefix, 106 | seed=seed) 107 | train_generator = zip(image_generator, label_generator) 108 | for (img, label) in train_generator: 109 | img, label = self.adjustData(img, label) 110 | yield (img, label) 111 | 112 | def testGenerator(self): 113 | filenames = os.listdir(self.test_path) 114 | for filename in filenames: 115 | img = io.imread(os.path.join(self.test_path, filename), as_gray=False) 116 | img = img / 255. 117 | img = trans.resize(img, self.target_size, mode='constant') 118 | img = np.reshape(img, img.shape + (1,)) if (not self.flag_multi_class) else img 119 | img = np.reshape(img, (1,) + img.shape) 120 | yield img 121 | 122 | def validLoad(self, batch_size,seed=7): 123 | image_datagen = ImageDataGenerator(**self.data_gen_args) 124 | label_datagen = ImageDataGenerator(**self.data_gen_args) 125 | image_generator = image_datagen.flow_from_directory( 126 | self.valid_path, 127 | classes=[self.valid_image_folder], 128 | class_mode=None, 129 | color_mode=self.image_color_mode, 130 | target_size=self.target_size, 131 | batch_size=batch_size, 132 | seed=seed) 133 | label_generator = label_datagen.flow_from_directory( 134 | self.valid_path, 135 | classes=[self.valid_label_folder], 136 | class_mode=None, 137 | color_mode=self.label_color_mode, 138 | target_size=self.target_size, 139 | batch_size=batch_size, 140 | seed=seed) 141 | train_generator = zip(image_generator, label_generator) 142 | for (img, label) in train_generator: 143 | img, label = self.adjustData(img, label) 144 | yield (img, label) 145 | # return imgs,labels 146 | 147 | def saveResult(self, npyfile, size, name,threshold=127): 148 | for i, item in enumerate(npyfile): 149 | img = item 150 | img_std = np.zeros((img.shape[0], img.shape[1], 3), dtype=np.uint8) 151 | if self.flag_multi_class: 152 | for row in range(len(img)): 153 | for col in range(len(img[row])): 154 | num = np.argmax(img[row][col]) 155 | img_std[row][col] = COLOR_DICT[num] 156 | else: 157 | for k in range(len(img)): 158 | for j in range(len(img[k])): 159 | num = img[k][j] 160 | if num < (threshold/255.0): 161 | img_std[k][j] = road 162 | else: 163 | img_std[k][j] = BackGround 164 | img_std = cv2.resize(img_std, size, interpolation=cv2.INTER_CUBIC) 165 | cv2.imwrite(os.path.join(self.save_path, ("%s_predict." + self.img_type) % (name)), img_std) 166 | -------------------------------------------------------------------------------- /data/road/test/0.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/test/0.tif -------------------------------------------------------------------------------- /data/road/test/1: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /data/road/test/1.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/test/1.tif -------------------------------------------------------------------------------- /data/road/test/10.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/test/10.tif -------------------------------------------------------------------------------- /data/road/test/11.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/test/11.tif -------------------------------------------------------------------------------- /data/road/test/12.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/test/12.tif -------------------------------------------------------------------------------- /data/road/test/13.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/test/13.tif -------------------------------------------------------------------------------- /data/road/test/14.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/test/14.tif -------------------------------------------------------------------------------- /data/road/test/15.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/test/15.tif -------------------------------------------------------------------------------- /data/road/test/16.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/test/16.tif -------------------------------------------------------------------------------- /data/road/test/17.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/test/17.tif -------------------------------------------------------------------------------- /data/road/test/18.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/test/18.tif -------------------------------------------------------------------------------- /data/road/test/19.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/test/19.tif -------------------------------------------------------------------------------- /data/road/test/2.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/test/2.tif -------------------------------------------------------------------------------- /data/road/test/20.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/test/20.tif -------------------------------------------------------------------------------- /data/road/test/21.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/test/21.tif -------------------------------------------------------------------------------- /data/road/test/22.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/test/22.tif -------------------------------------------------------------------------------- /data/road/test/23.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/test/23.tif -------------------------------------------------------------------------------- /data/road/test/24.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/test/24.tif -------------------------------------------------------------------------------- /data/road/test/25.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/test/25.tif -------------------------------------------------------------------------------- /data/road/test/26.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/test/26.tif -------------------------------------------------------------------------------- /data/road/test/27.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/test/27.tif -------------------------------------------------------------------------------- /data/road/test/28.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/test/28.tif -------------------------------------------------------------------------------- /data/road/test/29.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/test/29.tif -------------------------------------------------------------------------------- /data/road/test/3.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/test/3.tif -------------------------------------------------------------------------------- /data/road/test/4.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/test/4.tif -------------------------------------------------------------------------------- /data/road/test/5.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/test/5.tif -------------------------------------------------------------------------------- /data/road/test/6.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/test/6.tif -------------------------------------------------------------------------------- /data/road/test/7.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/test/7.tif -------------------------------------------------------------------------------- /data/road/test/8.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/test/8.tif -------------------------------------------------------------------------------- /data/road/test/9.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/test/9.tif -------------------------------------------------------------------------------- /data/road/train/image/0.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/image/0.tif -------------------------------------------------------------------------------- /data/road/train/image/1.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/image/1.tif -------------------------------------------------------------------------------- /data/road/train/image/10.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/image/10.tif -------------------------------------------------------------------------------- /data/road/train/image/11.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/image/11.tif -------------------------------------------------------------------------------- /data/road/train/image/12.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/image/12.tif -------------------------------------------------------------------------------- /data/road/train/image/13.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/image/13.tif -------------------------------------------------------------------------------- /data/road/train/image/14.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/image/14.tif -------------------------------------------------------------------------------- /data/road/train/image/15.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/image/15.tif -------------------------------------------------------------------------------- /data/road/train/image/16.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/image/16.tif -------------------------------------------------------------------------------- /data/road/train/image/17.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/image/17.tif -------------------------------------------------------------------------------- /data/road/train/image/18.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/image/18.tif -------------------------------------------------------------------------------- /data/road/train/image/19.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/image/19.tif -------------------------------------------------------------------------------- /data/road/train/image/2.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/image/2.tif -------------------------------------------------------------------------------- /data/road/train/image/20.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/image/20.tif -------------------------------------------------------------------------------- /data/road/train/image/21.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/image/21.tif -------------------------------------------------------------------------------- /data/road/train/image/22.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/image/22.tif -------------------------------------------------------------------------------- /data/road/train/image/23.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/image/23.tif -------------------------------------------------------------------------------- /data/road/train/image/24.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/image/24.tif -------------------------------------------------------------------------------- /data/road/train/image/25.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/image/25.tif -------------------------------------------------------------------------------- /data/road/train/image/26.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/image/26.tif -------------------------------------------------------------------------------- /data/road/train/image/27.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/image/27.tif -------------------------------------------------------------------------------- /data/road/train/image/28.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/image/28.tif -------------------------------------------------------------------------------- /data/road/train/image/29.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/image/29.tif -------------------------------------------------------------------------------- /data/road/train/image/3.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/image/3.tif -------------------------------------------------------------------------------- /data/road/train/image/30.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/image/30.tif -------------------------------------------------------------------------------- /data/road/train/image/31.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/image/31.tif -------------------------------------------------------------------------------- /data/road/train/image/32.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/image/32.tif -------------------------------------------------------------------------------- /data/road/train/image/33.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/image/33.tif -------------------------------------------------------------------------------- /data/road/train/image/34.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/image/34.tif -------------------------------------------------------------------------------- /data/road/train/image/35.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/image/35.tif -------------------------------------------------------------------------------- /data/road/train/image/36.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/image/36.tif -------------------------------------------------------------------------------- /data/road/train/image/37.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/image/37.tif -------------------------------------------------------------------------------- /data/road/train/image/38.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/image/38.tif -------------------------------------------------------------------------------- /data/road/train/image/39.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/image/39.tif -------------------------------------------------------------------------------- /data/road/train/image/4.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/image/4.tif -------------------------------------------------------------------------------- /data/road/train/image/40.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/image/40.tif -------------------------------------------------------------------------------- /data/road/train/image/41.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/image/41.tif -------------------------------------------------------------------------------- /data/road/train/image/42.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/image/42.tif -------------------------------------------------------------------------------- /data/road/train/image/43.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/image/43.tif -------------------------------------------------------------------------------- /data/road/train/image/44.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/image/44.tif -------------------------------------------------------------------------------- /data/road/train/image/45.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/image/45.tif -------------------------------------------------------------------------------- /data/road/train/image/46.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/image/46.tif -------------------------------------------------------------------------------- /data/road/train/image/47.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/image/47.tif -------------------------------------------------------------------------------- /data/road/train/image/48.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/image/48.tif -------------------------------------------------------------------------------- /data/road/train/image/49.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/image/49.tif -------------------------------------------------------------------------------- /data/road/train/image/5.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/image/5.tif -------------------------------------------------------------------------------- /data/road/train/image/50.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/image/50.tif -------------------------------------------------------------------------------- /data/road/train/image/51.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/image/51.tif -------------------------------------------------------------------------------- /data/road/train/image/52.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/image/52.tif -------------------------------------------------------------------------------- /data/road/train/image/53.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/image/53.tif -------------------------------------------------------------------------------- /data/road/train/image/54.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/image/54.tif -------------------------------------------------------------------------------- /data/road/train/image/55.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/image/55.tif -------------------------------------------------------------------------------- /data/road/train/image/56.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/image/56.tif -------------------------------------------------------------------------------- /data/road/train/image/57.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/image/57.tif -------------------------------------------------------------------------------- /data/road/train/image/58.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/image/58.tif -------------------------------------------------------------------------------- /data/road/train/image/59.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/image/59.tif -------------------------------------------------------------------------------- /data/road/train/image/6.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/image/6.tif -------------------------------------------------------------------------------- /data/road/train/image/60.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/image/60.tif -------------------------------------------------------------------------------- /data/road/train/image/61.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/image/61.tif -------------------------------------------------------------------------------- /data/road/train/image/62.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/image/62.tif -------------------------------------------------------------------------------- /data/road/train/image/63.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/image/63.tif -------------------------------------------------------------------------------- /data/road/train/image/64.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/image/64.tif -------------------------------------------------------------------------------- /data/road/train/image/65.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/image/65.tif -------------------------------------------------------------------------------- /data/road/train/image/66.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/image/66.tif -------------------------------------------------------------------------------- /data/road/train/image/67.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/image/67.tif -------------------------------------------------------------------------------- /data/road/train/image/68.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/image/68.tif -------------------------------------------------------------------------------- /data/road/train/image/69.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/image/69.tif -------------------------------------------------------------------------------- /data/road/train/image/7.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/image/7.tif -------------------------------------------------------------------------------- /data/road/train/image/70.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/image/70.tif -------------------------------------------------------------------------------- /data/road/train/image/71.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/image/71.tif -------------------------------------------------------------------------------- /data/road/train/image/72.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/image/72.tif -------------------------------------------------------------------------------- /data/road/train/image/73.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/image/73.tif -------------------------------------------------------------------------------- /data/road/train/image/74.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/image/74.tif -------------------------------------------------------------------------------- /data/road/train/image/75.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/image/75.tif -------------------------------------------------------------------------------- /data/road/train/image/76.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/image/76.tif -------------------------------------------------------------------------------- /data/road/train/image/77.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/image/77.tif -------------------------------------------------------------------------------- /data/road/train/image/78.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/image/78.tif -------------------------------------------------------------------------------- /data/road/train/image/79.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/image/79.tif -------------------------------------------------------------------------------- /data/road/train/image/8.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/image/8.tif -------------------------------------------------------------------------------- /data/road/train/image/80.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/image/80.tif -------------------------------------------------------------------------------- /data/road/train/image/81.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/image/81.tif -------------------------------------------------------------------------------- /data/road/train/image/82.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/image/82.tif -------------------------------------------------------------------------------- /data/road/train/image/83.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/image/83.tif -------------------------------------------------------------------------------- /data/road/train/image/84.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/image/84.tif -------------------------------------------------------------------------------- /data/road/train/image/85.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/image/85.tif -------------------------------------------------------------------------------- /data/road/train/image/86.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/image/86.tif -------------------------------------------------------------------------------- /data/road/train/image/87.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/image/87.tif -------------------------------------------------------------------------------- /data/road/train/image/88.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/image/88.tif -------------------------------------------------------------------------------- /data/road/train/image/89.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/image/89.tif -------------------------------------------------------------------------------- /data/road/train/image/9.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/image/9.tif -------------------------------------------------------------------------------- /data/road/train/image/90.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/image/90.tif -------------------------------------------------------------------------------- /data/road/train/image/91.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/image/91.tif -------------------------------------------------------------------------------- /data/road/train/image/92.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/image/92.tif -------------------------------------------------------------------------------- /data/road/train/image/93.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/image/93.tif -------------------------------------------------------------------------------- /data/road/train/image/94.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/image/94.tif -------------------------------------------------------------------------------- /data/road/train/image/95.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/image/95.tif -------------------------------------------------------------------------------- /data/road/train/image/96.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/image/96.tif -------------------------------------------------------------------------------- /data/road/train/image/97.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/image/97.tif -------------------------------------------------------------------------------- /data/road/train/label/0.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/label/0.tif -------------------------------------------------------------------------------- /data/road/train/label/1.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/label/1.tif -------------------------------------------------------------------------------- /data/road/train/label/10.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/label/10.tif -------------------------------------------------------------------------------- /data/road/train/label/11.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/label/11.tif -------------------------------------------------------------------------------- /data/road/train/label/12.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/label/12.tif -------------------------------------------------------------------------------- /data/road/train/label/13.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/label/13.tif -------------------------------------------------------------------------------- /data/road/train/label/14.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/label/14.tif -------------------------------------------------------------------------------- /data/road/train/label/15.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/label/15.tif -------------------------------------------------------------------------------- /data/road/train/label/16.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/label/16.tif -------------------------------------------------------------------------------- /data/road/train/label/17.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/label/17.tif -------------------------------------------------------------------------------- /data/road/train/label/18.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/label/18.tif -------------------------------------------------------------------------------- /data/road/train/label/19.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/label/19.tif -------------------------------------------------------------------------------- /data/road/train/label/2.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/label/2.tif -------------------------------------------------------------------------------- /data/road/train/label/20.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/label/20.tif -------------------------------------------------------------------------------- /data/road/train/label/21.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/label/21.tif -------------------------------------------------------------------------------- /data/road/train/label/22.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/label/22.tif -------------------------------------------------------------------------------- /data/road/train/label/23.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/label/23.tif -------------------------------------------------------------------------------- /data/road/train/label/24.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/label/24.tif -------------------------------------------------------------------------------- /data/road/train/label/25.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/label/25.tif -------------------------------------------------------------------------------- /data/road/train/label/26.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/label/26.tif -------------------------------------------------------------------------------- /data/road/train/label/27.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/label/27.tif -------------------------------------------------------------------------------- /data/road/train/label/28.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/label/28.tif -------------------------------------------------------------------------------- /data/road/train/label/29.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/label/29.tif -------------------------------------------------------------------------------- /data/road/train/label/3.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/label/3.tif -------------------------------------------------------------------------------- /data/road/train/label/30.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/label/30.tif -------------------------------------------------------------------------------- /data/road/train/label/31.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/label/31.tif -------------------------------------------------------------------------------- /data/road/train/label/32.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/label/32.tif -------------------------------------------------------------------------------- /data/road/train/label/33.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/label/33.tif -------------------------------------------------------------------------------- /data/road/train/label/34.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/label/34.tif -------------------------------------------------------------------------------- /data/road/train/label/35.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/label/35.tif -------------------------------------------------------------------------------- /data/road/train/label/36.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/label/36.tif -------------------------------------------------------------------------------- /data/road/train/label/37.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/label/37.tif -------------------------------------------------------------------------------- /data/road/train/label/38.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/label/38.tif -------------------------------------------------------------------------------- /data/road/train/label/39.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/label/39.tif -------------------------------------------------------------------------------- /data/road/train/label/4.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/label/4.tif -------------------------------------------------------------------------------- /data/road/train/label/40.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/label/40.tif -------------------------------------------------------------------------------- /data/road/train/label/41.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/label/41.tif -------------------------------------------------------------------------------- /data/road/train/label/42.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/label/42.tif -------------------------------------------------------------------------------- /data/road/train/label/43.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/label/43.tif -------------------------------------------------------------------------------- /data/road/train/label/44.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/label/44.tif -------------------------------------------------------------------------------- /data/road/train/label/45.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/label/45.tif -------------------------------------------------------------------------------- /data/road/train/label/46.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/label/46.tif -------------------------------------------------------------------------------- /data/road/train/label/47.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/label/47.tif -------------------------------------------------------------------------------- /data/road/train/label/48.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/label/48.tif -------------------------------------------------------------------------------- /data/road/train/label/49.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/label/49.tif -------------------------------------------------------------------------------- /data/road/train/label/5.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/label/5.tif -------------------------------------------------------------------------------- /data/road/train/label/50.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/label/50.tif -------------------------------------------------------------------------------- /data/road/train/label/51.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/label/51.tif -------------------------------------------------------------------------------- /data/road/train/label/52.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/label/52.tif -------------------------------------------------------------------------------- /data/road/train/label/53.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/label/53.tif -------------------------------------------------------------------------------- /data/road/train/label/54.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/label/54.tif -------------------------------------------------------------------------------- /data/road/train/label/55.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/label/55.tif -------------------------------------------------------------------------------- /data/road/train/label/56.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/label/56.tif -------------------------------------------------------------------------------- /data/road/train/label/57.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/label/57.tif -------------------------------------------------------------------------------- /data/road/train/label/58.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/label/58.tif -------------------------------------------------------------------------------- /data/road/train/label/59.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/label/59.tif -------------------------------------------------------------------------------- /data/road/train/label/6.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/label/6.tif -------------------------------------------------------------------------------- /data/road/train/label/60.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/label/60.tif -------------------------------------------------------------------------------- /data/road/train/label/61.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/label/61.tif -------------------------------------------------------------------------------- /data/road/train/label/62.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/label/62.tif -------------------------------------------------------------------------------- /data/road/train/label/63.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/label/63.tif -------------------------------------------------------------------------------- /data/road/train/label/64.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/label/64.tif -------------------------------------------------------------------------------- /data/road/train/label/65.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/label/65.tif -------------------------------------------------------------------------------- /data/road/train/label/66.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/label/66.tif -------------------------------------------------------------------------------- /data/road/train/label/67.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/label/67.tif -------------------------------------------------------------------------------- /data/road/train/label/68.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/label/68.tif -------------------------------------------------------------------------------- /data/road/train/label/69.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/label/69.tif -------------------------------------------------------------------------------- /data/road/train/label/7.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/label/7.tif -------------------------------------------------------------------------------- /data/road/train/label/70.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/label/70.tif -------------------------------------------------------------------------------- /data/road/train/label/71.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/label/71.tif -------------------------------------------------------------------------------- /data/road/train/label/72.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/label/72.tif -------------------------------------------------------------------------------- /data/road/train/label/73.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/label/73.tif -------------------------------------------------------------------------------- /data/road/train/label/74.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/label/74.tif -------------------------------------------------------------------------------- /data/road/train/label/75.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/label/75.tif -------------------------------------------------------------------------------- /data/road/train/label/76.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/label/76.tif -------------------------------------------------------------------------------- /data/road/train/label/77.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/label/77.tif -------------------------------------------------------------------------------- /data/road/train/label/78.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/label/78.tif -------------------------------------------------------------------------------- /data/road/train/label/79.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/label/79.tif -------------------------------------------------------------------------------- /data/road/train/label/8.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/label/8.tif -------------------------------------------------------------------------------- /data/road/train/label/80.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/label/80.tif -------------------------------------------------------------------------------- /data/road/train/label/81.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/label/81.tif -------------------------------------------------------------------------------- /data/road/train/label/82.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/label/82.tif -------------------------------------------------------------------------------- /data/road/train/label/83.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/label/83.tif -------------------------------------------------------------------------------- /data/road/train/label/84.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/label/84.tif -------------------------------------------------------------------------------- /data/road/train/label/85.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/label/85.tif -------------------------------------------------------------------------------- /data/road/train/label/86.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/label/86.tif -------------------------------------------------------------------------------- /data/road/train/label/87.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/label/87.tif -------------------------------------------------------------------------------- /data/road/train/label/88.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/label/88.tif -------------------------------------------------------------------------------- /data/road/train/label/89.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/label/89.tif -------------------------------------------------------------------------------- /data/road/train/label/9.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/label/9.tif -------------------------------------------------------------------------------- /data/road/train/label/90.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/label/90.tif -------------------------------------------------------------------------------- /data/road/train/label/91.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/label/91.tif -------------------------------------------------------------------------------- /data/road/train/label/92.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/label/92.tif -------------------------------------------------------------------------------- /data/road/train/label/93.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/label/93.tif -------------------------------------------------------------------------------- /data/road/train/label/94.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/label/94.tif -------------------------------------------------------------------------------- /data/road/train/label/95.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/label/95.tif -------------------------------------------------------------------------------- /data/road/train/label/96.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/label/96.tif -------------------------------------------------------------------------------- /data/road/train/label/97.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/data/road/train/label/97.tif -------------------------------------------------------------------------------- /data_Pretreatment.py: -------------------------------------------------------------------------------- 1 | #encoding:utf-8 2 | import os 3 | import cv2 4 | 5 | ''' 6 | before your train or predict you should transfrom your images to standard format 7 | ''' 8 | 9 | def image_normalized(dir_path,save_dir): 10 | ''' 11 | tif£¬size:512*512£¬gray 12 | :param dir_path: path to your images directory 13 | :param save_dir: path to your images after normalized 14 | :return: 15 | ''' 16 | for file_name in os.listdir(dir_path): 17 | if os.path.splitext(file_name)[1].replace('.', '') == "tif": 18 | jpg_name = os.path.join(dir_path, file_name) 19 | save_path = os.path.join(save_dir,file_name) 20 | img = cv2.imread(jpg_name, cv2.COLOR_RGB2GRAY) 21 | img_standard = cv2.resize(img, (512, 512), interpolation=cv2.INTER_CUBIC) 22 | img_standard = cv2.cvtColor(img_standard, cv2.COLOR_BGR2GRAY) 23 | cv2.imwrite(save_path, img_standard) 24 | 25 | if __name__ == '__main__': 26 | image_normalized('./data/image','./data/image_new') 27 | -------------------------------------------------------------------------------- /image/Seq05VD_f03510.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/image/Seq05VD_f03510.png -------------------------------------------------------------------------------- /image/Seq05VD_f03510_predict.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/image/Seq05VD_f03510_predict.png -------------------------------------------------------------------------------- /image/loss&acc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/image/loss&acc.png -------------------------------------------------------------------------------- /image/mask.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/image/mask.png -------------------------------------------------------------------------------- /image/test.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/image/test.png -------------------------------------------------------------------------------- /image/test_predict.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyang0329/unet/01c13c6e628e1dc7de9b05b4a520146f194b6064/image/test_predict.png -------------------------------------------------------------------------------- /label_visualization.py: -------------------------------------------------------------------------------- 1 | import matplotlib.pyplot as plt 2 | import numpy as np 3 | import cv2 4 | import os 5 | 6 | def create_pascal_label_colormap(): 7 | colormap = np.zeros((256, 3), dtype=int) 8 | ind = np.arange(256, dtype=int) 9 | 10 | for shift in reversed(range(8)): 11 | for channel in range(3): 12 | colormap[:, channel] |= ((ind >> channel) & 1) << shift 13 | ind >>= 3 14 | 15 | return colormap 16 | 17 | 18 | def label_to_color_image(label): 19 | if label.ndim != 2: 20 | raise ValueError('Expect 2-D input label') 21 | colormap = create_pascal_label_colormap() 22 | if np.max(label) > len(colormap): 23 | raise ValueError('label value too large.') 24 | 25 | return colormap[label] 26 | 27 | 28 | def vis_segmentation2(image, seg_map): 29 | """ 30 | 输入图片和分割 mask 的统一可视化. 31 | """ 32 | seg_image = label_to_color_image(seg_map).astype(np.uint8) 33 | plt.figure() 34 | plt.imshow(seg_image) 35 | plt.imshow(image,alpha=0.5) 36 | plt.axis('off') 37 | plt.show() 38 | 39 | 40 | test_path = "CamVid\\test" 41 | predict_path = "CamVid\\predict" 42 | for filename in os.listdir(test_path): 43 | imgfile = os.path.join(test_path,filename) 44 | pngfile = os.path.join(predict_path,filename.split('.')[0]+"_predict.png") 45 | img = cv2.imread(imgfile, 1) 46 | img = img[:,:,::-1] 47 | seg_map = cv2.imread(pngfile, 0) 48 | vis_segmentation2(img, seg_map) 49 | -------------------------------------------------------------------------------- /model_v1.py: -------------------------------------------------------------------------------- 1 | from keras.models import * 2 | from keras.layers import * 3 | from keras.optimizers import * 4 | 5 | IMG_SIZE = 512 6 | 7 | def unet(pretrained_weights=None, input_size=(IMG_SIZE, IMG_SIZE, 1)): 8 | inputs = Input(input_size) 9 | conv0 = Conv2D(32, 3, activation='relu', padding='same', kernel_initializer='he_normal')(inputs) 10 | conv0 = Conv2D(32, 3, activation='relu', padding='same', kernel_initializer='he_normal')(conv0) 11 | pool0 = MaxPooling2D(pool_size=(2, 2))(conv0) 12 | 13 | conv1 = Conv2D(64, 3, activation='relu', padding='same', kernel_initializer='he_normal')(pool0) 14 | conv1 = Conv2D(64, 3, activation='relu', padding='same', kernel_initializer='he_normal')(conv1) 15 | pool1 = MaxPooling2D(pool_size=(2, 2))(conv1) 16 | conv2 = Conv2D(128, 3, activation='relu', padding='same', kernel_initializer='he_normal')(pool1) 17 | conv2 = Conv2D(128, 3, activation='relu', padding='same', kernel_initializer='he_normal')(conv2) 18 | pool2 = MaxPooling2D(pool_size=(2, 2))(conv2) 19 | conv3 = Conv2D(256, 3, activation='relu', padding='same', kernel_initializer='he_normal')(pool2) 20 | conv3 = Conv2D(256, 3, activation='relu', padding='same', kernel_initializer='he_normal')(conv3) 21 | pool3 = MaxPooling2D(pool_size=(2, 2))(conv3) 22 | conv4 = Conv2D(512, 3, activation='relu', padding='same', kernel_initializer='he_normal')(pool3) 23 | conv4 = Conv2D(512, 3, activation='relu', padding='same', kernel_initializer='he_normal')(conv4) 24 | drop4 = Dropout(0.5)(conv4) 25 | pool4 = MaxPooling2D(pool_size=(2, 2))(drop4) 26 | 27 | conv5 = Conv2D(1024, 3, activation='relu', padding='same', kernel_initializer='he_normal')(pool4) 28 | conv5 = Conv2D(1024, 3, activation='relu', padding='same', kernel_initializer='he_normal')(conv5) 29 | drop5 = Dropout(0.5)(conv5) 30 | 31 | up6 = Conv2D(512, 2, activation='relu', padding='same', kernel_initializer='he_normal')( 32 | UpSampling2D(size=(2, 2))(drop5)) 33 | 34 | merge6 = concatenate([drop4, up6], axis=3) 35 | conv6 = Conv2D(512, 3, activation='relu', padding='same', kernel_initializer='he_normal')(merge6) 36 | conv6 = Conv2D(512, 3, activation='relu', padding='same', kernel_initializer='he_normal')(conv6) 37 | 38 | up7 = Conv2D(256, 2, activation='relu', padding='same', kernel_initializer='he_normal')( 39 | UpSampling2D(size=(2, 2))(conv6)) 40 | merge7 = concatenate([conv3, up7], axis=3) 41 | conv7 = Conv2D(256, 3, activation='relu', padding='same', kernel_initializer='he_normal')(merge7) 42 | conv7 = Conv2D(256, 3, activation='relu', padding='same', kernel_initializer='he_normal')(conv7) 43 | 44 | up8 = Conv2D(128, 2, activation='relu', padding='same', kernel_initializer='he_normal')( 45 | UpSampling2D(size=(2, 2))(conv7)) 46 | merge8 = concatenate([conv2, up8], axis=3) 47 | conv8 = Conv2D(128, 3, activation='relu', padding='same', kernel_initializer='he_normal')(merge8) 48 | conv8 = Conv2D(128, 3, activation='relu', padding='same', kernel_initializer='he_normal')(conv8) 49 | 50 | up9 = Conv2D(64, 2, activation='relu', padding='same', kernel_initializer='he_normal')( 51 | UpSampling2D(size=(2, 2))(conv8)) 52 | merge9 = concatenate([conv1, up9], axis=3) 53 | conv9 = Conv2D(64, 3, activation='relu', padding='same', kernel_initializer='he_normal')(merge9) 54 | conv9 = Conv2D(64, 3, activation='relu', padding='same', kernel_initializer='he_normal')(conv9) 55 | conv9 = Conv2D(2, 3, activation='relu', padding='same', kernel_initializer='he_normal')(conv9) 56 | 57 | up10 = Conv2D(32, 2, activation='relu', padding='same', kernel_initializer='he_normal')( 58 | UpSampling2D(size=(2, 2))(conv9)) 59 | merge10 = concatenate([conv0, up10], axis=3) 60 | conv10 = Conv2D(32, 3, activation='relu', padding='same', kernel_initializer='he_normal')(merge10) 61 | conv10 = Conv2D(32, 3, activation='relu', padding='same', kernel_initializer='he_normal')(conv10) 62 | conv10 = Conv2D(2, 3, activation='relu', padding='same', kernel_initializer='he_normal')(conv10) 63 | conv11 = Conv2D(1, 1, activation='sigmoid')(conv10) 64 | model = Model(input=inputs, output=conv11) 65 | model.compile(optimizer=Adam(lr=1e-4), loss="binary_crossentropy", metrics=['accuracy']) 66 | model.summary() 67 | if (pretrained_weights): 68 | model.load_weights(pretrained_weights) 69 | 70 | return model 71 | -------------------------------------------------------------------------------- /model_v2.py: -------------------------------------------------------------------------------- 1 | from keras.models import * 2 | from keras.layers import * 3 | from keras.optimizers import * 4 | 5 | IMG_SIZE = 512 6 | 7 | def unet(pretrained_weights=None, input_size=(IMG_SIZE, IMG_SIZE, 3),num_class=2): 8 | inputs = Input(input_size) 9 | conv1 = Conv2D(64, 3, activation='relu', padding='same', kernel_initializer='he_normal')(inputs) 10 | conv1 = Conv2D(64, 3, activation='relu', padding='same', kernel_initializer='he_normal')(conv1) 11 | pool1 = MaxPooling2D(pool_size=(2, 2))(conv1) 12 | conv2 = Conv2D(128, 3, activation='relu', padding='same', kernel_initializer='he_normal')(pool1) 13 | conv2 = Conv2D(128, 3, activation='relu', padding='same', kernel_initializer='he_normal')(conv2) 14 | pool2 = MaxPooling2D(pool_size=(2, 2))(conv2) 15 | conv3 = Conv2D(256, 3, activation='relu', padding='same', kernel_initializer='he_normal')(pool2) 16 | conv3 = Conv2D(256, 3, activation='relu', padding='same', kernel_initializer='he_normal')(conv3) 17 | pool3 = MaxPooling2D(pool_size=(2, 2))(conv3) 18 | conv4 = Conv2D(512, 3, activation='relu', padding='same', kernel_initializer='he_normal')(pool3) 19 | conv4 = Conv2D(512, 3, activation='relu', padding='same', kernel_initializer='he_normal')(conv4) 20 | drop4 = Dropout(0.5)(conv4) 21 | pool4 = MaxPooling2D(pool_size=(2, 2))(drop4) 22 | 23 | conv5 = Conv2D(1024, 3, activation='relu', padding='same', kernel_initializer='he_normal')(pool4) 24 | conv5 = Conv2D(1024, 3, activation='relu', padding='same', kernel_initializer='he_normal')(conv5) 25 | drop5 = Dropout(0.5)(conv5) 26 | 27 | up6 = Conv2D(512, 2, activation='relu', padding='same', kernel_initializer='he_normal')( 28 | UpSampling2D(size=(2, 2))(drop5)) 29 | 30 | merge6 = concatenate([drop4, up6], axis=3) 31 | conv6 = Conv2D(512, 3, activation='relu', padding='same', kernel_initializer='he_normal')(merge6) 32 | conv6 = Conv2D(512, 3, activation='relu', padding='same', kernel_initializer='he_normal')(conv6) 33 | 34 | up7 = Conv2D(256, 2, activation='relu', padding='same', kernel_initializer='he_normal')( 35 | UpSampling2D(size=(2, 2))(conv6)) 36 | merge7 = concatenate([conv3, up7], axis=3) 37 | conv7 = Conv2D(256, 3, activation='relu', padding='same', kernel_initializer='he_normal')(merge7) 38 | conv7 = Conv2D(256, 3, activation='relu', padding='same', kernel_initializer='he_normal')(conv7) 39 | 40 | up8 = Conv2D(128, 2, activation='relu', padding='same', kernel_initializer='he_normal')( 41 | UpSampling2D(size=(2, 2))(conv7)) 42 | merge8 = concatenate([conv2, up8], axis=3) 43 | conv8 = Conv2D(128, 3, activation='relu', padding='same', kernel_initializer='he_normal')(merge8) 44 | conv8 = Conv2D(128, 3, activation='relu', padding='same', kernel_initializer='he_normal')(conv8) 45 | 46 | up9 = Conv2D(64, 2, activation='relu', padding='same', kernel_initializer='he_normal')( 47 | UpSampling2D(size=(2, 2))(conv8)) 48 | merge9 = concatenate([conv1, up9], axis=3) 49 | conv9 = Conv2D(64, 3, activation='relu', padding='same', kernel_initializer='he_normal')(merge9) 50 | conv9 = Conv2D(64, 3, activation='relu', padding='same', kernel_initializer='he_normal')(conv9) 51 | conv9 = Conv2D(num_class, 3, activation='relu', padding='same', kernel_initializer='he_normal')(conv9) 52 | if num_class == 2: 53 | conv10 = Conv2D(1, 1, activation='sigmoid')(conv9) 54 | loss_function = 'binary_crossentropy' 55 | else: 56 | conv10 = Conv2D(num_class, 1, activation='softmax')(conv9) 57 | loss_function = 'categorical_crossentropy' 58 | model = Model(input=inputs, output=conv10) 59 | 60 | model.compile(optimizer=Adam(lr=1e-4), loss=loss_function, metrics=["accuracy"]) 61 | model.summary() 62 | 63 | if (pretrained_weights): 64 | model.load_weights(pretrained_weights) 65 | return model -------------------------------------------------------------------------------- /test.py: -------------------------------------------------------------------------------- 1 | from model_v2 import * 2 | from data import * 3 | import numpy as np 4 | import cv2 5 | import os 6 | import warnings 7 | 8 | warnings.filterwarnings("ignore") 9 | os.environ["CUDA_VISIBLE_DEVICES"] = "0" 10 | 11 | def image_normalized(file_path): 12 | ''' 13 | tif,size:512*512,gray 14 | :param dir_path: path to your images directory 15 | :return: 16 | ''' 17 | img = cv2.imread(file_path) 18 | img_shape = img.shape 19 | image_size = (img_shape[1],img_shape[0]) 20 | img_standard = cv2.resize(img, (512, 512), interpolation=cv2.INTER_CUBIC) 21 | img_new = img_standard 22 | img_new = np.asarray([img_new / 255.]) 23 | return img_new,image_size 24 | 25 | 26 | if __name__ == '__main__': 27 | 28 | #path to images which aring wating for predicting 29 | test_path = "CamVid\\test" 30 | 31 | # save the predict images 32 | save_path = "CamVid\\predict" 33 | 34 | dp = data_preprocess(test_path=test_path,save_path=save_path,flag_multi_class=True,num_classes=12) 35 | 36 | #load model 37 | model = load_model('./model/CamVid_model_v1.hdf5') 38 | 39 | for name in os.listdir(test_path): 40 | image_path = os.path.join(test_path,name) 41 | x,img_size = image_normalized(image_path) 42 | results = model.predict(x) 43 | dp.saveResult([results[0]],img_size,name.split('.')[0]) 44 | -------------------------------------------------------------------------------- /train.py: -------------------------------------------------------------------------------- 1 | #encoding:utf-8 2 | from model_v2 import * 3 | from data import * 4 | import os 5 | import keras 6 | from keras.callbacks import TensorBoard 7 | import tensorflow as tf 8 | import keras.backend.tensorflow_backend as K 9 | import matplotlib.pyplot as plt 10 | 11 | config = tf.ConfigProto() 12 | config.gpu_options.allow_growth=True 13 | sess = tf.Session(config=config) 14 | K.set_session(sess) 15 | os.environ["CUDA_VISIBLE_DEVICES"] = "0" 16 | 17 | 18 | 19 | if __name__ == '__main__': 20 | 21 | #path to images which are prepared to train a model 22 | train_path = "CamVid" 23 | image_folder = "train" 24 | label_folder = "trainannot" 25 | valid_path = "CamVid" 26 | valid_image_folder ="val" 27 | valid_label_folder = "valannot" 28 | log_filepath = './log' 29 | flag_multi_class = True 30 | num_classes = 12 31 | dp = data_preprocess(train_path=train_path,image_folder=image_folder,label_folder=label_folder, 32 | valid_path=valid_path,valid_image_folder=valid_image_folder,valid_label_folder=valid_label_folder, 33 | flag_multi_class=flag_multi_class, 34 | num_classes=num_classes) 35 | 36 | # train your own model 37 | train_data = dp.trainGenerator(batch_size=2) 38 | valid_data = dp.validLoad(batch_size=2) 39 | test_data = dp.testGenerator() 40 | model = unet(num_class=num_classes) 41 | 42 | tb_cb = TensorBoard(log_dir=log_filepath) 43 | model_checkpoint = keras.callbacks.ModelCheckpoint('./model/CamVid_model_v1.hdf5', monitor='val_loss',verbose=1,save_best_only=True) 44 | history = model.fit_generator(train_data, 45 | steps_per_epoch=200,epochs=30, 46 | validation_steps=10, 47 | validation_data=valid_data, 48 | callbacks=[model_checkpoint,tb_cb]) 49 | 50 | # draw the loss and accuracy curve 51 | plt.figure(12, figsize=(6, 6), dpi=60) 52 | plt.subplot(211) 53 | plt.plot(history.history['loss'], label='train') 54 | plt.plot(history.history['val_loss'], label='val') 55 | plt.title('loss') 56 | plt.legend() 57 | 58 | plt.subplot(212) 59 | plt.plot(history.history['acc'], label='train') 60 | plt.plot(history.history['val_acc'], label='val') 61 | plt.title('acc') 62 | plt.legend() 63 | 64 | plt.show() 65 | --------------------------------------------------------------------------------