def convert(self, sequence): """convert ICVL sequence""" config = sequence.config name = '{}/{}_{}.h5'.format(self.cacheDir, self.datasetName, sequence.name) if os.path.isfile(name): print '{} exist, please check if h5 is right!'.format(name) return Dataset = ICVLDataset([sequence]) dpt, gt3D = Dataset.imgStackDepthOnly(sequence.name) depth = [] gtorig = [] gtcrop = [] T = [] gt3Dorig = [] gt3Dcrop = [] com = [] fileName = [] for i in xrange(len(sequence.data)): data = sequence.data[i] depth.append(data.dpt) gtorig.append(data.gtorig) gtcrop.append(data.gtcrop) T.append(data.T) gt3Dorig.append(data.gt3Dorig) gt3Dcrop.append(data.gt3Dcrop) com.append(data.com) fileName.append( int(data.fileName[(data.fileName.find('image_') + 6):(data.fileName.find('.png'))])) dataset = h5py.File(name, 'w') dataset['com'] = np.asarray(com) dataset['inds'] = np.asarray(fileName) dataset['config'] = config['cube'] dataset['depth'] = np.asarray(dpt) dataset['joint'] = np.asarray(gt3D) dataset['gt3Dorig'] = np.asarray(gt3Dorig) dataset.close()
def convert(self, sequence, size_before=None): """convert sequence data""" config = sequence.config if self.name == 'NYU': Dataset = NYUDataset([sequence]) elif self.name == 'ICVL': Dataset = ICVLDataset([sequence]) dpt, gt3D = Dataset.imgStackDepthOnly(sequence.name) dataset = {} com = [] fileName = [] dpt3D = [] size = len(sequence.data) print('size of {} {} dataset is {}'.format(self.name, sequence.name, size)) for i in xrange(len(sequence.data)): data = sequence.data[i] com.append(data.com) dpt3D.append(data.dpt3D) if self.name == 'NYU': fileName.append(int(data.fileName[-11:-4])) elif self.name == 'ICVL' and size_before is not None: fileName.append(int(data.fileName[(data.fileName.find('image_') + 6): \ (data.fileName.find('.png'))]) + size_before) else: fileName.append(int(data.fileName[(data.fileName.find('image_') + 6): \ (data.fileName.find('.png'))])) dataset['depth'] = np.asarray(dpt) dataset['dpt3D'] = np.asarray(dpt3D) dataset['com'] = np.asarray(com) dataset['inds'] = np.asarray(fileName) dataset['config'] = np.asarray(config['cube']).reshape( 1, self.dim).repeat(size, axis=0) dataset['joint'] = np.asarray(gt3D) return dataset
print("create data") aug_modes = ['com', 'rot', 'none'] # 'sc', di = ICVLImporter('../data/ICVL/') Seq1_1 = di.loadSequence('train', ['0'], shuffle=True, rng=rng, docom=False) Seq1_1 = Seq1_1._replace(name='train_gt') Seq1_2 = di.loadSequence('train', ['0'], shuffle=True, rng=rng, docom=True) Seq1_2 = Seq1_2._replace(name='train_com') trainSeqs = [Seq1_1, Seq1_2] Seq2 = di.loadSequence('test_seq_1', docom=True) testSeqs = [Seq2] # create training data trainDataSet = ICVLDataset(trainSeqs) nSamp = numpy.sum([len(s.data) for s in trainSeqs]) d1, g1 = trainDataSet.imgStackDepthOnly(trainSeqs[0].name) train_data = numpy.ones((nSamp, d1.shape[1], d1.shape[2], d1.shape[3]), dtype='float32') train_gt3D = numpy.ones((nSamp, g1.shape[1], g1.shape[2]), dtype='float32') train_data_com = numpy.ones((nSamp, 3), dtype='float32') train_data_M = numpy.ones((nSamp, 3, 3), dtype='float32') train_data_cube = numpy.ones((nSamp, 3), dtype='float32') del d1, g1 gc.collect() gc.collect() gc.collect() oldIdx = 0 for seq in trainSeqs: d, g = trainDataSet.imgStackDepthOnly(seq.name) train_data[oldIdx:oldIdx+d.shape[0]] = d