@@ -191,6 +191,7 @@ def evaluate_nnunet(result_dir='/share/data_rechenknecht03_2/students/kaftan/Fis
191
191
test_hd = torch .zeros_like (test_assd )
192
192
test_hd95 = torch .zeros_like (test_assd )
193
193
test_missing_percent = torch .zeros_like (test_assd )
194
+ all_times = []
194
195
for fold in range (n_folds ):
195
196
fold_dir = os .path .join (result_dir , f'fold_{ fold } ' )
196
197
files = sorted (glob (os .path .join (fold_dir , 'validation_raw_postprocessed' , '*.nii.gz' )))
@@ -219,7 +220,8 @@ def evaluate_nnunet(result_dir='/share/data_rechenknecht03_2/students/kaftan/Fis
219
220
labelmap_predict , _ = lobes_to_fissures (labelmap_predict , mask = ds .get_lung_mask (img_index ))
220
221
221
222
if mode == 'surface' :
222
- _ , predicted_meshes = poisson_reconstruction (labelmap_predict , ds .get_lung_mask (img_index ))
223
+ _ , predicted_meshes , times = poisson_reconstruction (labelmap_predict , ds .get_lung_mask (img_index ), return_times = True )
224
+ all_times .append (torch .tensor (times ))
223
225
# TODO: compare Poisson to Marching Cubes mesh generation
224
226
for i , m in enumerate (predicted_meshes ):
225
227
# save reconstructed mesh
@@ -241,6 +243,8 @@ def evaluate_nnunet(result_dir='/share/data_rechenknecht03_2/students/kaftan/Fis
241
243
# img.CopyInformation(fissures_predict)
242
244
# sitk.WriteImage(img, f'./results/nnunet_pred_skeletonized_{case}_{sequence}.nii.gz')
243
245
246
+ print (f'Current mean time per fissure: { torch .stack (all_times ).sum (1 ).mean ():4f} s +- { torch .stack (all_times ).sum (1 ).std ():4f} s' )
247
+
244
248
# compute surface distances
245
249
mean_assd , std_assd , mean_sdsd , std_sdsd , mean_hd , std_hd , mean_hd95 , std_hd95 , percent_missing = compute_mesh_metrics (
246
250
all_predictions , all_targ_meshes , ids = ids , show = show , spacings = spacings , plot_folder = plot_dir )
@@ -281,12 +285,13 @@ def evaluate_nnunet(result_dir='/share/data_rechenknecht03_2/students/kaftan/Fis
281
285
n_fissures = 3
282
286
283
287
data_dir = '../TotalSegmentator/ThoraxCrop'
284
- evaluate_voxel2mesh (data_dir , show = False )
285
288
286
- # nnu_task = "Task503_FissuresTotalSeg"
287
- # nnu_trainer = "nnUNetTrainerV2_200ep"
288
- # nnu_result_dir = f'/share/data_rechenknecht03_2/students/kaftan/FissureSegmentation/nnUNet_baseline/nnu_results/nnUNet/3d_fullres/{nnu_task}/{nnu_trainer}__nnUNetPlansv2.1'
289
- # evaluate_nnunet(nnu_result_dir, my_data_dir=data_dir, mode='surface', show=False)
289
+ # evaluate_voxel2mesh(data_dir, show=False)
290
+
291
+ nnu_task = "Task503_FissuresTotalSeg"
292
+ nnu_trainer = "nnUNetTrainerV2_200ep"
293
+ nnu_result_dir = f'/share/data_rechenknecht03_2/students/kaftan/FissureSegmentation/nnUNet_baseline/nnu_results/nnUNet/3d_fullres/{ nnu_task } /{ nnu_trainer } __nnUNetPlansv2.1'
294
+ evaluate_nnunet (nnu_result_dir , my_data_dir = data_dir , mode = 'surface' , show = False )
290
295
# evaluate_nnunet(nnu_result_dir, my_data_dir=data_dir, mode='voxels', show=False)
291
296
292
297
# lobes_nnunet = '/share/data_rechenknecht03_2/students/kaftan/FissureSegmentation/nnUNet_baseline/nnu_results/nnUNet/3d_fullres/Task502_LobesCOPDEMPIRE/nnUNetTrainerV2_200ep__nnUNetPlansv2.1'
0 commit comments