コード例 #1
0
ファイル: validation_splits.py プロジェクト: ericsolo/python
def make_luna_validation_split():
    luna_path = pathfinder.LUNA_DATA_PATH
    file_list = sorted(glob.glob(luna_path + "/*.mhd"))
    random.seed(317070)
    all_pids = [utils_lung.extract_pid_filename(f) for f in file_list]
    validation_pids = random.sample(all_pids, int(VALIDATION_SET_SIZE * len(file_list)))
    train_pids = list(set(all_pids) - set(validation_pids))
    d = {}
    d['valid'] = validation_pids
    d['train'] = train_pids
    utils.save_pkl(d, pathfinder.LUNA_VALIDATION_SPLIT_PATH)
コード例 #2
0
def make_luna_validation_split():
    luna_path = pathfinder.LUNA_DATA_PATH
    file_list = sorted(glob.glob(luna_path + "/*.mhd"))
    random.seed(317070)
    all_pids = [utils_lung.extract_pid_filename(f) for f in file_list]
    validation_pids = random.sample(all_pids, int(VALIDATION_SET_SIZE * len(file_list)))
    train_pids = list(set(all_pids) - set(validation_pids))
    d = {}
    d['valid'] = validation_pids
    d['train'] = train_pids
    utils.save_pkl(d, pathfinder.LUNA_VALIDATION_SPLIT_PATH)
コード例 #3
0
                                                luna_origin=None)

rng = patch_class_config.rng

# candidates after segmentations path
predictions_dir = utils.get_dir_path('model-predictions', pathfinder.METADATA_PATH)
segmentation_outputs_path = predictions_dir + '/%s' % seg_config_name
id2candidates_path = utils_lung.get_candidates_paths(segmentation_outputs_path)

# filter our those, who are already generated
predictions_dir = utils.get_dir_path('model-predictions', pathfinder.METADATA_PATH)
outputs_path = predictions_dir + '/dsb_c3_s2_p8a1_ls_elias'  # TODO write it here correctly
exclude_pids = []
if os.path.isdir(outputs_path):
    exclude_pids = os.listdir(outputs_path)
    exclude_pids = [utils_lung.extract_pid_filename(p) for p in exclude_pids]
    for pid in exclude_pids:
        id2candidates_path.pop(pid, None)

data_iterator = data_iterators.CandidatesDSBDataGenerator(data_path=pathfinder.DATA_PATH,
                                                          transform_params=p_transform,
                                                          data_prep_fun=data_prep_function,
                                                          id2candidates_path=id2candidates_path)


def build_model():
    metadata_dir = utils.get_dir_path('models', pathfinder.METADATA_PATH)
    metadata_path = utils.find_model_metadata(metadata_dir, patch_class_config.__name__.split('.')[-1])
    metadata = utils.load_pkl(metadata_path)

    print 'Build model'
コード例 #4
0
config_name = sys.argv[1]
set_configuration('configs_seg_scan', config_name)

predictions_dir = utils.get_dir_path('model-predictions', pathfinder.METADATA_PATH)
outputs_path = predictions_dir + '/%s' % config_name

blob_files = sorted(glob.glob(outputs_path + '/*.pkl'))
# print(blob_files)

pid2annotations = utils_lung.read_luna_annotations(pathfinder.LUNA_LABELS_PATH)

tp = 0
n_pos = 0
n_blobs = 0
for p in blob_files:
    pid = utils_lung.extract_pid_filename(p, '.pkl')
    blobs = utils.load_pkl(p)
    n_blobs += len(blobs)
    print(pid)
    print('n_blobs', len(blobs))
    print('tp / n pos ', int(np.sum(blobs[:, -1])), len(pid2annotations[pid]))
    if int(np.sum(blobs[:, -1])) < len(pid2annotations[pid]):
        print('-------- HERE!!!!!! ------------')
    tp += np.sum(blobs[:, -1])
    print('=====================================')

print('n patients', len(blob_files))
print('TP', tp)
print('n blobs', n_blobs)
print(n_pos)
rng = patch_class_config.rng

# candidates after segmentations path
predictions_dir = utils.get_dir_path('model-predictions',
                                     pathfinder.METADATA_PATH)
segmentation_outputs_path = predictions_dir + '/%s' % seg_config_name
id2candidates_path = utils_lung.get_candidates_paths(segmentation_outputs_path)

# filter our those, who are already generated
predictions_dir = utils.get_dir_path('model-predictions',
                                     pathfinder.METADATA_PATH)
outputs_path = predictions_dir + '/dsb_c3_s2_p8a1_ls_elias'  # TODO write it here correctly
exclude_pids = []
if os.path.isdir(outputs_path):
    exclude_pids = os.listdir(outputs_path)
    exclude_pids = [utils_lung.extract_pid_filename(p) for p in exclude_pids]
    for pid in exclude_pids:
        id2candidates_path.pop(pid, None)

data_iterator = data_iterators.CandidatesDSBDataGenerator(
    data_path=pathfinder.DATA_PATH,
    transform_params=p_transform,
    data_prep_fun=data_prep_function,
    id2candidates_path=id2candidates_path)


def build_model():
    metadata_dir = utils.get_dir_path('models', pathfinder.METADATA_PATH)
    metadata_path = utils.find_model_metadata(
        metadata_dir,
        patch_class_config.__name__.split('.')[-1])
コード例 #6
0
# predictions path
predictions_dir = utils.get_dir_path('model-predictions', pathfinder.METADATA_PATH)
outputs_path = predictions_dir + '/%s' % config_name
outputs_img_path = predictions_dir + '/%s_img' % config_name
utils.auto_make_dir(outputs_img_path)

blob_files = sorted(glob.glob(outputs_path + '/*.pkl'))

p_transform = {'patch_size': (64, 64, 64),
               'mm_patch_size': (64, 64, 64),
               'pixel_spacing': (1., 1., 1.)
               }

for p in blob_files:
    pid = utils_lung.extract_pid_filename(p, '.pkl')
    blobs = utils.load_pkl(p)
    blobs = np.asarray(sorted(blobs, key=lambda x: x[-1], reverse=True))

    img, pixel_spacing = utils_lung.read_dicom_scan(pathfinder.DATA_PATH + '/' + pid)
    print pid
    for blob in blobs[:10]:
        patch_center = blob[:3]
        p1 = blob[-1]
        print p1
        x, _ = data_transforms.transform_patch3d(data=img,
                                                 luna_annotations=None,
                                                 patch_center=patch_center,
                                                 p_transform=p_transform,
                                                 pixel_spacing=pixel_spacing,
                                                 luna_origin=None,