def transform_predictions(probs, dp): i = np.argmax(probs) b = bs[i] if n_samples is not None: b = sample_points(b, n_samples) points = np.matmul(b, ps[i] + dp[i]) return dict(cloud=points, attrs=dict(template_id=example_ids[i]))
def get_cloud_dataset(cat_id, n_samples, n_resamples): from shapenet.core.point_clouds import PointCloudAutoSavingManager from util3d.point_cloud import sample_points manager = PointCloudAutoSavingManager(cat_id, n_samples) if not os.path.isfile(manager.path): manager.save_all() dataset = manager.get_saving_dataset(mode='r') # get_saved_dataset seems to give issues because we don't close properly # dataset = manager.get_saved_dataset() return dataset.map(lambda x: sample_points(np.array(x), n_resamples))
def get_cloud_dataset(cat_ids, example_ids, n_samples=16384, n_resamples=1024): import os from shapenet.core.point_clouds import PointCloudAutoSavingManager from util3d.point_cloud import sample_points from dids.core import BiKeyDataset if isinstance(cat_ids, str): cat_ids = [cat_ids] example_ids = [example_ids] datasets = {} for cat_id, e_ids in zip(cat_ids, example_ids): manager = PointCloudAutoSavingManager(cat_id, n_samples) if not os.path.isfile(manager.path): manager.save_all() datasets[cat_id] = manager.get_saving_dataset( mode='r').subset(e_ids) return BiKeyDataset(datasets).map( lambda x: sample_points(np.array(x, dtype=np.float32), n_resamples))
def map_np(self, example_id): points = np.array(self._dataset[example_id], dtype=np.float32) return sample_points(points, self._n_resamples, axis=0)
def sample_fn(cloud): return sample_points(np.array(cloud), self._n_samples)