def __init__(self, workspace='../', data_type='val'): self.workspace = workspace self.csvpath = './' + data_type + '_csv/annotations.csv' self.data_path = '../nodule_cubes/' + data_type + '_data/' self.savepath = self.data_path + 'image/' if data_type == 'val': self.data = _3D_data(valpath=self.data_path) self.labels, self.valdata, self.origins, self.new_spacings, self.old_spacings = self.data.get_val( ) elif data_type == 'test' or data_type == 'new_test': self.data = _3D_data(testpath=self.data_path) self.labels, self.valdata, self.origins, self.new_spacings, self.old_spacings = self.data.get_test( ) elif data_type == 'train': self.data = _3D_data(trainpath=self.data_path) self.labels, self.valdata, self.origins, self.new_spacings, self.old_spacings = self.data.get_train( ) else: print 'ERROR!' self.csv_data = pd.read_csv(self.csvpath) names = self.csv_data['seriesuid'] names = list(names) self.index = [self.get_data_posotion(name) for name in names]
def __init__(self, weights_path, dropout=False, data_type='val', data_path=None, csv=False): self.weights_path = weights_path self.dropout = dropout self.position = [] self.data_type = data_type self.csv = csv if data_path is None: self.data_path = '../nodule_cubes/' + data_type + '_data/' else: self.data_path = data_path if data_type == 'val': self.data = _3D_data(valpath=self.data_path) self.labels, self.valdata, self.origins, self.new_spacings, self.old_spacings = self.data.get_val( ) elif data_type == 'test' or data_type == 'new_test': self.data = _3D_data(testpath=self.data_path) self.labels, self.valdata, self.origins, self.new_spacings, self.old_spacings = self.data.get_test( ) else: print 'ERROR!' if csv: self.csv_data = pd.read_csv(self.data_path + 'csv/annotations.csv') names = self.csv_data['seriesuid'] names = list(names) self.index = [self.get_data_posotion(name) for name in names] else: self.index = range(len(self.valdata))
def get_data_posotion(labels, key): for i in range(len(labels)): if key == labels[i]: return i return None if __name__ == '__main__': model = _3D_CNN_2(weights_path=weights_path, dropout=True, feature=True) data_path = '../nodule_cubes/' + data_type + '_data/' if data_type == 'val': data = _3D_data(valpath=data_path) labels, valdata, origins, new_spacings, old_spacings = data.get_val() elif data_type == 'test' or data_type == 'new_test': data = _3D_data(testpath=data_path) labels, valdata, origins, new_spacings, old_spacings = data.get_test() elif data_type == 'train': data = _3D_data(trainpath=data_path) labels, valdata, origins, new_spacings, old_spacings = data.get_train() else: print 'ERROR!' csv_data = pd.read_csv(csv_path) names = csv_data['seriesuid'] names = list(names) index = [get_data_posotion(labels, name) for name in names]
data = data[0] new_datas.append([ data[16 - size[0]:16 + size[0], 16 - size[1]:16 + size[1], 16 - size[2]:16 + size[2]] ]) return np.array(new_datas) def deal_datas(datas): datas = np.array(datas, dtype='float32').transpose((0, 2, 3, 4, 1)) datas = (datas + 1000) / 1400 return datas if __name__ == '__main__': data = _3D_data(path='../nodule_cubes/') K.clear_session() weights_path = './weights/weights3.h5' model = _3D_CNN_2(dropout=True) model.setting(optimizer=SGD(lr=0.017, momentum=0.001, decay=1e-7, nesterov=False), loss=["binary_crossentropy"], metrics=['accuracy']) (x_val32, y_val) = data.get_valset() x_val16 = (deal_datas(get_data2(x_val32, [16, 16, 16]))) x_val32 = (deal_datas(x_val32)) y_val = np.array(y_val, dtype='float32')
tmp['coordX'] = center[2] tmp['coordY'] = center[1] tmp['coordZ'] = center[0] tmp['seriesuid'] = val_labels[k] tmp['probability'] = y_vals[k, 0] position.append(tmp) position_num += 1 else: negetive_num += 1 print '[%d / %d]' % (position_num, negetive_num) return position if __name__ == '__main__': data = _3D_data(valpath='../nodule_cubes/val_data/') labels, valdata, origins, new_spacings, old_spacings = data.get_val() model = _3D_CNN_1(weights_path=weights_path) index = range(len(valdata)) # random.shuffle(index) # index = index[0:20] position = prec(index, [32, 32, 32], labels, origins, new_spacings, stride=[32, 32, 32]) position = prec(index, [14, 14, 14], labels,