print("Saving ensemble predicted images . . .") save_img(Y=Y_test_ensemble, mask_dir=ens_no_bin_dir_per_image, prefix="test_out_ens_no_bin") save_img(Y=(Y_test_ensemble > 0.5).astype(np.uint8), mask_dir=ens_bin_dir_per_image, prefix="test_out_smo") print("Calculate metrics (ensemble + per subvolume). . .") ens_iou_per_image = jaccard_index_numpy(Y_test, (Y_test_ensemble > 0.5).astype( np.uint8)) ens_ov_iou_per_image = voc_calculation(Y_test, (Y_test_ensemble > 0.5).astype( np.uint8), ens_iou_per_image) print("~~~~ Z-Filtering (per image) ~~~~") zfil_preds_test = calculate_z_filtering(preds_test) print("Saving Z-filtered images . . .") save_img(Y=zfil_preds_test, mask_dir=zfil_dir_per_image, prefix="test_out_zfil") print("Calculate metrics (Z-filtering + per crop) . . .") zfil_iou_per_image = jaccard_index_numpy( Y_test, (zfil_preds_test > 0.5).astype(np.uint8)) zfil_ov_iou_per_image = voc_calculation(Y_test, (zfil_preds_test > 0.5).astype( np.uint8), zfil_iou_per_image) del zfil_preds_test print("~~~~ Ensemble + Z-Filtering (per subvolume) ~~~~") ens_zfil_preds_test = calculate_z_filtering(Y_test_ensemble)
save_img(Y=(Y_test_blending > 0.5).astype(np.uint8), mask_dir=smo_bin_dir_per_image, prefix="test_out_smo") print("Calculate metrics (smooth + per crop) . . .") smo_score_per_image = jaccard_index_numpy( Y_test, (Y_test_blending > 0.5).astype(np.uint8)) smo_ov_iou_per_image = voc_calculation(Y_test, (Y_test_blending > 0.5).astype( np.uint8), smo_score_per_image) smo_det_per_image = DET_calculation(Y_test, (Y_test_blending > 0.5).astype(np.uint8), det_eval_ge_path, det_eval_post_path, det_bin, n_dig, args.job_id) print("~~~~ Z-Filtering (per image) ~~~~") zfil_preds_test = calculate_z_filtering(preds_test) print("Saving Z-filtered images . . .") save_img(Y=zfil_preds_test, mask_dir=zfil_dir_per_image, prefix="test_out_zfil") print("Calculate metrics (Z-filtering + per crop) . . .") zfil_score_per_image = jaccard_index_numpy( Y_test, (zfil_preds_test > 0.5).astype(np.uint8)) zfil_ov_iou_per_image = voc_calculation(Y_test, (zfil_preds_test > 0.5).astype( np.uint8), zfil_score_per_image) zfil_det_per_image = DET_calculation(Y_test, (zfil_preds_test > 0.5).astype(np.uint8), det_eval_ge_path, det_eval_post_path, det_bin, n_dig, args.job_id)
os.makedirs(ens_no_bin_dir_per_image, exist_ok=True) aux = np.expand_dims(orig_preds_test.astype(np.uint8), 1) f = os.path.join(ens_no_bin_dir_per_image, f_name) imsave(f, aux, imagej=True, metadata={'axes': 'ZCYXS'}) print("Calculate metrics (ensemble + per subvolume). . .") j = jaccard_index_numpy(orig_Y_test, (orig_preds_test > 0.5).astype(np.uint8)) v = voc_calculation(orig_Y_test, (orig_preds_test > 0.5).astype(np.uint8), j) print("Image {} ; Foreground IoU: {} ; Overall IoU: {}".format(i, j, v)) iou += j ov_iou += v print("~~~~ Z-Filtering (per image) ~~~~") zfil_preds_test = calculate_z_filtering(orig_preds_test) zfil_preds_test = zfil_preds_test.astype(np.float32) print("Saving Z-filtered images . . .") os.makedirs(zfil_dir_per_image, exist_ok=True) aux = np.expand_dims(zfil_preds_test.astype(np.uint8), 1) f = os.path.join(zfil_dir_per_image, f_name) imsave(f, aux, imagej=True, metadata={'axes': 'ZCYXS'}) print("Calculate metrics (Z-filtering + per crop) . . .") j = jaccard_index_numpy(orig_Y_test, (zfil_preds_test > 0.5).astype(np.uint8)) v = voc_calculation(orig_Y_test, (zfil_preds_test > 0.5).astype(np.uint8), j) print("Image {} ; Foreground IoU: {} ; Overall IoU: {}".format(i, j, v)) iou_z += j
print("Saving smooth predicted images . . .") save_img(Y=Y_test_blending, mask_dir=smo_no_bin_dir_per_image, prefix="test_out_smo_no_bin") save_img(Y=(Y_test_blending > 0.5).astype(np.uint8), mask_dir=smo_bin_dir_per_image, prefix="test_out_smo") print("Calculate metrics (smooth + per crop) . . .") smo_iou_per_image = jaccard_index_numpy(Y_test, (Y_test_blending > 0.5).astype( np.uint8)) smo_ov_iou_per_image = voc_calculation(Y_test, (Y_test_blending > 0.5).astype( np.uint8), smo_iou_per_image) print("~~~~ Z-Filtering (per image) ~~~~") zfil_preds_test = calculate_z_filtering(preds_test) print("Saving Z-filtered images . . .") save_img(Y=zfil_preds_test, mask_dir=zfil_dir_per_image, prefix="test_out_zfil") print("Calculate metrics (Z-filtering + per crop) . . .") zfil_iou_per_image = jaccard_index_numpy( Y_test, (zfil_preds_test > 0.5).astype(np.uint8)) zfil_ov_iou_per_image = voc_calculation(Y_test, (zfil_preds_test > 0.5).astype( np.uint8), zfil_iou_per_image) del zfil_preds_test, preds_test print("~~~~ Blending + Z-Filtering (per image) ~~~~") smo_zfil_preds_test = calculate_z_filtering(Y_test_blending)
save_img(Y=Y_test_ensemble, mask_dir=smo_no_bin_dir_full, prefix="test_out_ens_no_bin") save_img(Y=(Y_test_ensemble > 0.5).astype(np.uint8), mask_dir=smo_bin_dir_full, prefix="test_out_ens") print("Calculate metrics (8-Ensemble + full image) . . .") smo_iou_full = jaccard_index_numpy(Y_test, (Y_test_ensemble > 0.5).astype(np.uint8)) smo_ov_iou_full = voc_calculation(Y_test, (Y_test_ensemble > 0.5).astype(np.uint8), smo_iou_full) print("~~~~ 8-Ensemble + Z-Filtering (full image) ~~~~") zfil_preds_test = calculate_z_filtering(Y_test_ensemble) print("Saving Z-filtered images . . .") save_img(Y=zfil_preds_test, mask_dir=zfil_dir_full, prefix="test_out_zfil") print("Calculate metrics (8-Ensemble + Z-filtering + full image) . . .") zfil_iou_full = jaccard_index_numpy(Y_test, (zfil_preds_test > 0.5).astype(np.uint8)) zfil_ov_iou_full = voc_calculation(Y_test, (zfil_preds_test > 0.5).astype(np.uint8), zfil_iou_full) del zfil_preds_test, Y_test_ensemble ####### OZTEL POST-PROCESSING ####### print("~~~~ Spurious Detection (full image) ~~~~")