Ejemplo n.º 1
0
      "#  Metrics (per image, merging subvolumes)  #\n"
      "#############################################\n")

# Merge the volumes to the original 3D images
iou = 0
ov_iou = 0
index = 0
for i in tqdm(range(len(orig_test_shape))):
    original_3d_shape = orig_test_shape[i][:3] + (n_classes, )
    crop_3d_shape = crop_test_shapes[i]
    f_name = filenames[1][i]

    orig_preds_test, orig_Y_test = merge_3D_data_with_overlap(
        preds_test[index:index + crop_3d_shape[0]],
        original_3d_shape,
        data_mask=Y_test[index:index + crop_3d_shape[0]],
        overlap=overlap,
        padding=padding,
        verbose=False)
    orig_preds_test = orig_preds_test.astype(np.float32)
    orig_Y_test = orig_Y_test.astype(np.float32)

    print("Saving predicted images . . .")
    os.makedirs(result_bin_dir_per_image, exist_ok=True)
    aux = np.expand_dims((orig_preds_test > 0.5).astype(np.uint8), 1)
    f = os.path.join(result_bin_dir_per_image, f_name)
    imsave(f, aux, imagej=True, metadata={'axes': 'ZCYXS'})
    os.makedirs(result_no_bin_dir_per_image, exist_ok=True)
    aux = np.expand_dims(orig_preds_test.astype(np.uint8), 1)
    f = os.path.join(result_no_bin_dir_per_image, f_name)
    imsave(f, aux, imagej=True, metadata={'axes': 'ZCYXS'})
loss_per_crop = score_per_crop[0]
iou_per_crop = score_per_crop[1]

print("Making the predictions on test data . . .")
preds_test = model.predict(test_generator, verbose=1)

if n_classes > 1:
    preds_test = np.expand_dims(np.argmax(preds_test, -1), -1)

print("#############################################\n"
      "#  Metrics (per image, merging subvolumes)  #\n"
      "#############################################\n")

# Merge the volumes and convert them into 2D data
preds_test, Y_test = merge_3D_data_with_overlap(preds_test,
                                                orig_test_shape,
                                                data_mask=Y_test,
                                                overlap=overlap)

print("Saving predicted images . . .")
save_img(Y=(preds_test > 0.5).astype(np.uint8),
         mask_dir=result_bin_dir_per_image,
         prefix="test_out_bin")
save_img(Y=preds_test,
         mask_dir=result_no_bin_dir_per_image,
         prefix="test_out_no_bin")

print("Calculate metrics (per image) . . .")
iou_per_image = jaccard_index_numpy(Y_test,
                                    (preds_test > 0.5).astype(np.uint8))
ov_iou_per_image = voc_calculation(Y_test, (preds_test > 0.5).astype(np.uint8),
                                   iou_per_image)
Ejemplo n.º 3
0
print("#############################################\n"
      "#  Metrics (per image, merging subvolumes)  #\n"
      "#############################################\n")

# Merge the volumes to the original 3D images
iou = 0
ov_iou = 0
index = 0
for i in tqdm(range(len(orig_test_shape))):
    original_3d_shape = orig_test_shape[i][:3] + (n_classes, )
    crop_3d_shape = crop_test_shapes[i]
    f_name = filenames[1][i]

    orig_preds_test, orig_Y_test = merge_3D_data_with_overlap(
        preds_test[index:index + crop_3d_shape[0]],
        original_3d_shape,
        data_mask=Y_test[index:index + crop_3d_shape[0]],
        overlap=overlap,
        verbose=False)
    orig_preds_test = orig_preds_test.astype(np.float32)
    orig_Y_test = orig_Y_test.astype(np.float32)

    print("Saving predicted images . . .")
    os.makedirs(result_bin_dir_per_image, exist_ok=True)
    aux = np.expand_dims((orig_preds_test > 0.5).astype(np.uint8), 1)
    f = os.path.join(result_bin_dir_per_image, f_name)
    imsave(f, aux, imagej=True, metadata={'axes': 'ZCYXS'})
    os.makedirs(result_no_bin_dir_per_image, exist_ok=True)
    aux = np.expand_dims(orig_preds_test.astype(np.uint8), 1)
    f = os.path.join(result_no_bin_dir_per_image, f_name)
    imsave(f, aux, imagej=True, metadata={'axes': 'ZCYXS'})