Open ZHE-SAPI opened 2 hours ago
def get_data_single_class(self, instance_data_root): image_list = [] mask_list = [] object_fold = self.class_name mask_fold = '' if self.type == 'train' else 'ground_truth'
foldnames = os.listdir(os.path.join(instance_data_root, self.class_name, self.type)) for image_fold in foldnames: filenames = os.listdir(os.path.join(instance_data_root, self.class_name, self.type, image_fold)) for img in filenames: image_list.append(os.path.join(instance_data_root, self.class_name, self.type, image_fold, img)) if image_fold == 'good': mask_list.append(None) else: if 'VisA' in instance_data_root or 'PCBBank' in instance_data_root: mask_name = img.split('.')[0] + ".png" else: mask_name = img.split('.')[0] + "_mask." + img.split('.')[1] mask_list.append(os.path.join(instance_data_root, object_fold, mask_fold, image_fold, mask_name)) return image_list, mask_list
def get_data_mutil_class(self, instance_data_root): image_list = [] mask_list = [] class_name = [] for object_fold in os.listdir(instance_data_root): mask_fold = '' if self.type == 'train' else 'ground_truth' for image_fold in os.listdir(os.path.join(instance_data_root, object_fold, self.type)): for img in os.listdir(os.path.join(instance_data_root, object_fold, self.type, image_fold)): image_list.append(os.path.join(instance_data_root, object_fold, self.type, image_fold, img)) if image_fold == 'good': mask_list.append(None) else: mask_name = img.split('.')[0] + "_mask." + img.split('.')[1] mask_list.append( os.path.join(instance_data_root, object_fold, mask_fold, image_fold, mask_name)) class_name.append(object_fold) return image_list, mask_list, class_name
请问 if image_fold == 'good': mask_list.append(None),这会导致测试的时候仅有异常图像参与了测试,不过 DiffAD 、 DiAD 也对正常测试图像进行了测试,我想知道 我理解的对吗?谢谢!
由于正常图象是没有保存为文件的mask的,所以这里正常图像的mask的路径设置为None,在读取图像的时候,对于为None的路径,我们使用instance_mask = Image.fromarray(np.zeros([*instance_image.size]))直接生成全0的mask,所以我们的方法中测试了正常图像
def get_data_single_class(self, instance_data_root): image_list = [] mask_list = [] object_fold = self.class_name mask_fold = '' if self.type == 'train' else 'ground_truth'
def get_data_mutil_class(self, instance_data_root): image_list = [] mask_list = [] class_name = [] for object_fold in os.listdir(instance_data_root): mask_fold = '' if self.type == 'train' else 'ground_truth' for image_fold in os.listdir(os.path.join(instance_data_root, object_fold, self.type)): for img in os.listdir(os.path.join(instance_data_root, object_fold, self.type, image_fold)): image_list.append(os.path.join(instance_data_root, object_fold, self.type, image_fold, img)) if image_fold == 'good': mask_list.append(None) else: mask_name = img.split('.')[0] + "_mask." + img.split('.')[1] mask_list.append( os.path.join(instance_data_root, object_fold, mask_fold, image_fold, mask_name)) class_name.append(object_fold) return image_list, mask_list, class_name
请问 if image_fold == 'good': mask_list.append(None),这会导致测试的时候仅有异常图像参与了测试,不过 DiffAD 、 DiAD 也对正常测试图像进行了测试,我想知道 我理解的对吗?谢谢!