[docs]classSequentialMetrics:models_2d=[]# TODOmodels_3d=[#'attention_unet','medformer','resunet','swin_unetr','unet++','unetr','vnet','segformer']models_3d=['segformer','unet','vnet',]dimensions=3file_name='metricsNew.json'root_path='./resultsNew/'gt_img_path="../../Datasets/BTCV_/imagesTs/"gt_lbl_path="../../Datasets/BTCV_/labelsTs/"name_dataset='BTCV'all_metrics=MetricResult.metricsall_classes=['__BKG__','Spleen','Right Kidney','Left Kideny','Gallbladder','Esophagus','Liver','Stomach','Aorta','IVC','Portal and Splenic Veins','Pancreas','Right adrenal gland','Left adrenal gland']def__load_from_file(self,path):"""Function to load the data from a file. Args: path (str): Path to the file. """path=os.path.normpath(os.path.join(os.path.dirname(__file__),path))returnpathdef__call__(self):metrics=RemovirtMetrics(self.all_classes)save_metrics=SaveMetricsJson()forname_modelinself.models_3d:network_path=self.__load_from_file(os.path.join(self.root_path,name_model))network_path+=f"_{self.dimensions}d"ifos.path.exists(network_path):forpred_filenameinglob.glob(os.path.join(network_path,'*.nii.gz')):base_name_pred=os.path.basename(pred_filename)name_pred_without_extension=os.path.splitext(base_name_pred)[0]gt_name=name_pred_without_extension.split("_Pred")[0]# Result: img0061lbl_name_with_extension=gt_name.replace("img","label")+".nii.gz"# Result: label0061.nii.gzimg_name_with_extension=gt_name+".nii.gz"results=metrics([self.gt_img_path+img_name_with_extension,self.gt_lbl_path+lbl_name_with_extension],"."+self.root_path+name_model+f"_{self.dimensions}d/"+base_name_pred)print("Saving {} metrics of {}".format(name_model,gt_name))forname_metricinself.all_metrics:save_metrics(self.file_name,name_pred_without_extension.split(".nii")[0],gt_name,self.dimensions,self.name_dataset,name_model,name_metric,self.all_classes,results.results)