def __getitem__(self, index): point_set_ini = self.scene_points_list[index] semantic_seg_ini = self.semantic_labels_list[index].astype(np.int32) sample_weight_ini = self.labelweights[semantic_seg_ini] point_sets = list() semantic_segs = list() sample_weights = list() for i in range(8): smpidx = scene_util.virtual_scan(point_set_ini, mode=i) if len(smpidx) < 300: continue point_set = point_set_ini[smpidx, :] semantic_seg = semantic_seg_ini[smpidx] sample_weight = sample_weight_ini[smpidx] choice = np.random.choice(len(semantic_seg), self.npoints, replace=True) point_set = point_set[choice, :] # Nx3 semantic_seg = semantic_seg[choice] # N sample_weight = sample_weight[choice] # N point_sets.append(np.expand_dims(point_set, 0)) # 1xNx3 semantic_segs.append(np.expand_dims(semantic_seg, 0)) # 1xN sample_weights.append(np.expand_dims(sample_weight, 0)) # 1xN point_sets = np.concatenate(tuple(point_sets), axis=0) semantic_segs = np.concatenate(tuple(semantic_segs), axis=0) sample_weights = np.concatenate(tuple(sample_weights), axis=0) return point_sets, semantic_segs, sample_weights
def __getitem__(self, index): point_set_ini = self.scene_points_list[index] semantic_seg_ini = self.semantic_labels_list[index].astype(np.int32) sample_weight_ini = self.labelweights[semantic_seg_ini] point_sets = list() semantic_segs = list() sample_weights = list() for i in xrange(8): smpidx = scene_util.virtual_scan(point_set_ini,mode=i) if len(smpidx)<300: continue point_set = point_set_ini[smpidx,:] semantic_seg = semantic_seg_ini[smpidx] sample_weight = sample_weight_ini[smpidx] choice = np.random.choice(len(semantic_seg), self.npoints, replace=True) point_set = point_set[choice,:] # Nx3 semantic_seg = semantic_seg[choice] # N sample_weight = sample_weight[choice] # N point_sets.append(np.expand_dims(point_set,0)) # 1xNx3 semantic_segs.append(np.expand_dims(semantic_seg,0)) # 1xN sample_weights.append(np.expand_dims(sample_weight,0)) # 1xN point_sets = np.concatenate(tuple(point_sets),axis=0) semantic_segs = np.concatenate(tuple(semantic_segs),axis=0) sample_weights = np.concatenate(tuple(sample_weights),axis=0) return point_sets, semantic_segs, sample_weights
def __create_smpidx(self): virtual_smpidx = list() for point_set in self.scene_points_list: smpidx = list() for i in xrange(8): var = scene_util.virtual_scan(point_set, mode=i) smpidx.append(np.expand_dims(var, 0)) # 1xpoints virtual_smpidx.append(smpidx) # datax8xpoints assert len(virtual_smpidx) == len(self.scene_points_list) assert len(virtual_smpidx[0]) == 8 with open(self.smpidx_filename, 'wb') as fp: pickle.dump(virtual_smpidx, fp) return virtual_smpidx