コード例 #1
0
 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
コード例 #2
0
ファイル: scannet_dataset.py プロジェクト: joosm/pointnet2
    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
コード例 #3
0
    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