From 9c100b6c4308804c7acba2f192152ca94850dafa Mon Sep 17 00:00:00 2001 From: Si11ium Date: Fri, 2 Aug 2019 10:49:05 +0200 Subject: [PATCH] now offering "normals" in sample dict --- .gitignore | 6 ++- .idea/pointnet2-pytorch.iml | 3 +- dataset/shapenet.py | 61 ++++++++++++++---------------- predict/data/processed/predict.pt | Bin 33593 -> 0 bytes predict/predict.py | 3 +- vis/show_seg_res.py | 2 +- 6 files changed, 39 insertions(+), 36 deletions(-) delete mode 100644 predict/data/processed/predict.pt diff --git a/.gitignore b/.gitignore index 9c25236..feac957 100644 --- a/.gitignore +++ b/.gitignore @@ -127,4 +127,8 @@ dmypy.json /data/ /checkpoint/ /shapenet/ -/vis/ +/vis/data/ +/vis/checkpoint +/predict/data/ +/predict/checkpoint/ + diff --git a/.idea/pointnet2-pytorch.iml b/.idea/pointnet2-pytorch.iml index d1ad953..a9a200c 100644 --- a/.idea/pointnet2-pytorch.iml +++ b/.idea/pointnet2-pytorch.iml @@ -4,7 +4,8 @@ - + + diff --git a/dataset/shapenet.py b/dataset/shapenet.py index 931237c..480c04e 100644 --- a/dataset/shapenet.py +++ b/dataset/shapenet.py @@ -14,9 +14,8 @@ import re def save_names(name_list, path): - with open(path, 'wb'): - pass - + with open(path, 'wb') as f: + f.writelines(name_list) class CustomShapeNet(InMemoryDataset): @@ -119,20 +118,16 @@ class CustomShapeNet(InMemoryDataset): points = torch.tensor(src, dtype=None).squeeze() if not len(points.shape) > 1: continue - # pos = points[:, :3] - # norm = points[:, 3:] y_all = [y_raw] * points.shape[0] y = torch.as_tensor(y_all, dtype=torch.int) - # points = torch.as_tensor(points, dtype=torch.float) - # norm = torch.as_tensor(norm, dtype=torch.float) if self.collate_per_element: - data = Data(y=y, pos=points[:, :3]) + data = Data(y=y, pos=points[:, :3], points=points, norm=points[:, 3:]) else: if not data: data = defaultdict(list) - for key, val in dict(y=y, pos= points[:, :3]).items(): + for key, val in dict(y=y, pos=points[:, :3], points=points, norm=points[:, 3:]).items(): data[key].append(val) - # , points=points, norm=points[:3], ) + data = self._transform_and_filter(data) if self.collate_per_element: datasets[data_folder].append(data) @@ -160,7 +155,7 @@ class ShapeNetPartSegDataset(Dataset): def __getitem__(self, index): data = self.dataset[index] - points, labels = data.pos, data.y + points, labels, _, norm = data.pos, data.y, data.points, data.norm # Resample to fixed number of points try: @@ -168,13 +163,14 @@ class ShapeNetPartSegDataset(Dataset): except ValueError: choice = [] - points, labels = points[choice, :], labels[choice] + points, labels, norm = points[choice, :], labels[choice], norm[choice] labels -= 1 if self.num_classes() in labels else 0 # Map label from [1, C] to [0, C-1] sample = { 'points': points, # torch.Tensor (n, 3) - 'labels': labels # torch.Tensor (n,) + 'labels': labels, # torch.Tensor (n,) + 'normals': norm # torch.Tensor (n,) } return sample @@ -188,11 +184,12 @@ class ShapeNetPartSegDataset(Dataset): class PredictionShapeNet(InMemoryDataset): - def __init__(self, root, transform=None, pre_filter=None, pre_transform=None, headers=True): + def __init__(self, root, transform=None, pre_filter=None, pre_transform=None, headers=True, refresh=False): self.has_headers = headers + self.refresh = refresh super(PredictionShapeNet, self).__init__(root, transform, pre_transform, pre_filter) path = self.processed_paths[0] - self.data, self.slices = torch.load(path) + self.data, self.slices = self._load_dataset() print("Initialized") @property @@ -217,9 +214,18 @@ class PredictionShapeNet(InMemoryDataset): def _load_dataset(self): data, slices = None, None + filepath = os.path.join(self.processed_dir, self.processed_file_names[0]) + if self.refresh: + try: + os.remove(filepath) + print('Processed Location "Refreshed" (We deleted the Files)') + except FileNotFoundError: + print('You meant to refresh the allready processed dataset, but there were none...') + print('continue processing') + pass + while True: try: - filepath = os.path.join(self.root, self.processed_dir, f'{"train" if self.train else "test"}.pt') data, slices = torch.load(filepath) print('Dataset Loaded') break @@ -243,7 +249,7 @@ class PredictionShapeNet(InMemoryDataset): for pointcloud in tqdm(os.scandir(path_to_clouds)): if not os.path.isdir(pointcloud): continue - full_cloud_pattern = '\d+?_pc\.(xyz|dat)' + full_cloud_pattern = '(^\d+?_|^)pc\.(xyz|dat)' pattern = re.compile(full_cloud_pattern) for file in os.scandir(pointcloud.path): if not pattern.match(file.name): @@ -267,7 +273,7 @@ class PredictionShapeNet(InMemoryDataset): y = torch.as_tensor(y_fake_all, dtype=torch.int) # points = torch.as_tensor(points, dtype=torch.float) # norm = torch.as_tensor(norm, dtype=torch.float) - data = Data(y=y, pos=points[:, :3]) + data = Data(y=y, pos=points[:, :3], points=points, norm=points[:, 3:]) # , points=points, norm=points[:3], ) # ToDo: ANy filter to apply? Then do it here. if self.pre_filter is not None and not self.pre_filter(data): @@ -293,29 +299,20 @@ class PredictNetPartSegDataset(Dataset): Resample raw point cloud to fixed number of points. Map raw label from range [1, N] to [0, N-1]. """ - def __init__(self, root_dir, num_classes, transform=None, npoints=2048, headers=True): + def __init__(self, root_dir, num_classes, transform=None, npoints=2048, headers=True, refresh=False): super(PredictNetPartSegDataset, self).__init__() self.npoints = npoints self._num_classes = num_classes - self.dataset = PredictionShapeNet(root=root_dir, transform=transform, headers=headers) + self.dataset = PredictionShapeNet(root=root_dir, transform=transform, headers=headers, refresh=refresh) def __getitem__(self, index): data = self.dataset[index] - points, labels = data.pos, data.y - - # Resample to fixed number of points - try: - choice = np.random.choice(points.shape[0], self.npoints, replace=True) - except ValueError: - choice = [] - - points, labels = points[choice, :], labels[choice] - - labels -= 1 if self.num_classes() in labels else 0 # Map label from [1, C] to [0, C-1] + points, labels, _, norm = data.pos, data.y, data.points, data.norm sample = { 'points': points, # torch.Tensor (n, 3) - 'labels': labels # torch.Tensor (n,) + 'labels': labels, # torch.Tensor (n,) + 'normals': norm # torch.Tensor (n,) } return sample diff --git a/predict/data/processed/predict.pt b/predict/data/processed/predict.pt deleted file mode 100644 index f7386b1f9cb4e06561060c2235857ea2eb372e1f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33593 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 Nff)lc2L9hO@Zb2Lg=GK$ diff --git a/predict/predict.py b/predict/predict.py index 739c23d..a28d5aa 100644 --- a/predict/predict.py +++ b/predict/predict.py @@ -28,7 +28,8 @@ if __name__ == '__main__': root_dir=opt.dataset, num_classes=4, transform=None, - npoints=opt.npoints + npoints=opt.npoints, + refresh=True ) num_classes = test_dataset.num_classes() diff --git a/vis/show_seg_res.py b/vis/show_seg_res.py index 7c75122..72bc5a3 100644 --- a/vis/show_seg_res.py +++ b/vis/show_seg_res.py @@ -134,7 +134,7 @@ if __name__ == '__main__': print(diff_labels) view_points_labels(points, diff_labels) - if False: + if True: print('View pred labels ..') print(pred_labels) view_points_labels(points, pred_labels)