"# 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)
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'})