def train_image_gen(train_list, batch_size=4, image_size=[1024, 384], crop_offset=690): # Arrange all indexes all_batches_index = np.arange(0, len(train_list)) out_images = [] out_masks = [] image_dir = np.array(train_list['image']) label_dir = np.array(train_list['label']) while True: # Random shuffle indexes every epoch np.random.shuffle(all_batches_index) for index in all_batches_index: if os.path.exists(image_dir[index]): ori_image = cv2.imread(image_dir[index]) ori_mask = cv2.imread(label_dir[index], cv2.IMREAD_GRAYSCALE) # Crop the top part of the image # Resize to train size train_img, train_mask = crop_resize_data(ori_image, ori_mask, image_size, crop_offset) # Encode train_mask = encode_labels(train_mask) # verify_labels(train_mask) out_images.append(train_img) out_masks.append(train_mask) if len(out_images) >= batch_size: out_images = np.array(out_images) out_masks = np.array(out_masks) out_images = out_images[:, :, :, ::-1].transpose(0, 3, 1, 2).astype(np.float32) / (255.0 / 2) - 1 out_masks = out_masks.astype(np.int64) yield out_images, out_masks out_images, out_masks = [], [] else: print(image_dir, 'does not exist.')
def val_image_gen(val_list, batch_size=4, image_size=[1024, 384], crop_offset=690): all_batches_index = np.arange(0, len(val_list)) out_images = [] out_masks = [] image_dir = np.array(val_list['image']) label_dir = np.array(val_list['label']) while True: np.random.shuffle(all_batches_index) for index in all_batches_index: if os.path.exists(image_dir[index]): ori_image = cv2.imread(image_dir[index]) ori_mask = cv2.imread(label_dir[index], cv2.IMREAD_GRAYSCALE) val_img, val_mask = crop_val_resize_data( ori_image, ori_mask, image_size, crop_offset) val_mask = encode_labels(val_mask) out_images.append(val_img) out_masks.append(val_mask) if len(out_images) >= batch_size: out_images = np.array(out_images) out_masks = np.array(out_masks) out_images = out_images[:, :, :, ::-1].transpose( 0, 3, 1, 2).astype(np.float32) / (255.0 / 2) - 1 out_masks = out_masks.astype(np.int64) yield out_images, out_masks out_images, out_masks = [], [] else: print(image_dir, 'does not exist.')
def __getitem__(self, idx): ori_image = cv2.imread(self.images[idx]) ori_mask = cv2.imread(self.labels[idx], cv2.IMREAD_GRAYSCALE) train_img, train_mask = crop_resize_data(ori_image, ori_mask) train_mask = encode_labels(train_mask) sample = [train_img.copy(), train_mask.copy()] if self.transform: sample = self.transform(sample) return sample
def __getitem__(self, idx): img = self.data_list[idx] label = self.label_list[idx] img = cv2.imread(img) label = cv2.imread(label,0) img,label = crop_resize_data(img,label,self.crop_size,self.offset ) img = tfs.ToTensor()(img) label = encode_labels(label) olabel = onehot_label(label) return img,olabel,label
def get_lane_image(self, idx): # self.img # self.label_img 语义分割标签 # self.ins_img 嵌入空间,每个类一个平面 ln = self.labels[idx] img_name = self.images[idx] self.img = cv2.imread(img_name, 1) #uint8 self.label_img = cv2.imread(ln, 0) #uint8 # self.label_img = np.array(self.label_img, dtype=np.int32) self.label_img = encode_labels(self.label_img)
def main(label_paths): out_array = AverageMeter() area_dict = {} for i in range(8): area_dict[i] = 0 # num_dict = {} for s, path in enumerate(tqdm(label_paths)): ori_mask = cv2.imread(path, cv2.IMREAD_GRAYSCALE) encode_mask = encode_labels(ori_mask).astype('uint8') get_one_hot = np.eye(8)[encode_mask] get_one_hot = np.sum(np.sum(get_one_hot, 0), 0) out_array.update(get_one_hot.copy()) return out_array.avg/100
def __getitem__(self, idx): # log_file = open("logs/debug.txt", 'a+') # # print("\nimage: {}\nlabel: {}".format(self.images[idx], self.labels[idx])) # log_file.writelines("\nimage: {}\nlabel: {}".format(self.images[idx], self.labels[idx])) # log_file.close() ori_image = cv2.imread(self.images[idx]) ori_mask = cv2.imread(self.labels[idx], cv2.IMREAD_GRAYSCALE) train_img, train_mask = crop_resize_data(ori_image, ori_mask) # Encode train_mask = encode_labels(train_mask) sample = [train_img.copy(), train_mask.copy()] if self.transform: sample = self.transform(sample) return sample
def __getitem__(self, idx): pd.DataFrame(self.images).to_csv( 'C:/Users/Yan/Desktop/项目1/car_lane_detection/logs/image.csv', index=True) print(idx) ori_image = cv2.imread(self.images[idx]) ori_mask = cv2.imread(self.labels[idx], cv2.IMREAD_GRAYSCALE) train_img, train_mask = crop_resize_data(ori_image, ori_mask) # Encode train_mask = encode_labels(train_mask) sample = [train_img.copy(), train_mask.copy()] if self.transform: sample = self.transform(sample) return sample
def __getitem__(self, idx): ori_image = cv2.imread(self.images[idx]) if (ori_image is None): print("idx:{},path:{}".format(idx, self.images[idx])) ori_mask = cv2.imread(self.labels[idx], cv2.IMREAD_GRAYSCALE) if (ori_mask is None): print("idx:{},path:{}".format(idx, self.labels[idx])) train_img, train_mask = crop_resize_data(ori_image, ori_mask) # Encode train_mask = encode_labels(train_mask) sample = [train_img.copy(), train_mask.copy()] if self.transform: sample = self.transform(sample) return sample
def __getitem__(self, idx): image_bytes = self.txn.get(self.images[idx].encode()) image_bytes = np.array(bytearray(image_bytes), dtype=np.uint8) mask_bytes = self.txn.get(self.labels[idx].encode()) mask_bytes = np.array(bytearray(mask_bytes), dtype=np.uint8) train_img = cv2.imdecode(image_bytes, cv2.IMREAD_COLOR) train_mask = cv2.imdecode(mask_bytes, cv2.IMREAD_GRAYSCALE) train_img, train_mask = crop_resize_data(train_img, train_mask) # Encode train_mask = encode_labels(train_mask) sample = [train_img.copy(), train_mask.copy()] if self.transform: sample = self.transform(sample) return sample
def __getitem__(self, idx): # __getitem__函数,单张读取图片 # 输入:图片的idx, 输出:经过裁剪、放缩、数据增强以及对label转换id的train_image,train_mask # 按照地址读入ori_image ori_label ori_image = cv2.imread(self.images[idx]) if (ori_image is None): print("idx:{},path:{}".format(idx, self.images[idx])) ori_mask = cv2.imread(self.labels[idx], cv2.IMREAD_GRAYSCALE) if (ori_mask is None): print("idx:{},path:{}".format(idx, self.labels[idx])) # 对ori_image和ori_mask都进行裁剪和放缩得到理想size的图片,train_img,train_mask train_img, train_mask = crop_resize_data(ori_image, ori_mask) # 对mask进行id 转换--->train_mask train_mask = encode_labels(train_mask) # 复制train_img,train_mask 放入sample列表 sample = [train_img.copy(), train_mask.copy()] # 有数据增强就做增强 if self.transform: sample = self.transform(sample) return sample
def __getitem__(self, idx): # image 数据读入 ori_image = cv2.imread(self.images[idx]) if ori_image is None: print('NoneTpye Object ori_image') time.sleep(60) ori_image = cv2.imread(self.images[idx]) # label 数据读入 ori_mask = cv2.imread(self.labels[idx], cv2.IMREAD_GRAYSCALE) if ori_mask is None: print('NoneTpye Object ori_mask') time.sleep(60) ori_mask = cv2.imread(self.labels[idx], cv2.IMREAD_GRAYSCALE) train_img, train_mask = crop_resize_data(ori_image, ori_mask) # Encode train_mask = encode_labels(train_mask) sample = [train_img.copy(), train_mask.copy()] if self.transform: sample = self.transform(sample) return sample