66
77from micro_sam .evaluation import inference
88from micro_sam .evaluation .evaluation import run_evaluation
9- from util import get_paths , get_experiment_folder , get_model , get_pred_and_gt_paths
9+ from util import get_paths , get_model , get_pred_and_gt_paths
1010
1111
1212def run_interactive_prompting (exp_folder , predictor , start_with_box_prompt ):
@@ -26,16 +26,9 @@ def run_interactive_prompting(exp_folder, predictor, start_with_box_prompt):
2626 return prediction_root
2727
2828
29- def evaluate_interactive_prompting (prediction_root , start_with_box_prompt , name ):
29+ def evaluate_interactive_prompting (prediction_root , start_with_box_prompt , exp_folder ):
3030 assert os .path .exists (prediction_root ), prediction_root
3131
32- csv_save_dir = f"./iterative_prompting_results/{ name } "
33- os .makedirs (csv_save_dir , exist_ok = True )
34- csv_path = os .path .join (csv_save_dir , "start_with_box.csv" if start_with_box_prompt else "start_with_point.csv" )
35- if os .path .exists (csv_path ):
36- print ("The evaluated results for the expected setting already exist here:" , csv_path )
37- return
38-
3932 prediction_folders = sorted (glob (os .path .join (prediction_root , "iteration*" )))
4033 list_of_results = []
4134 for pred_folder in prediction_folders :
@@ -46,10 +39,9 @@ def evaluate_interactive_prompting(prediction_root, start_with_box_prompt, name)
4639 print (res )
4740
4841 df = pd .concat (list_of_results , ignore_index = True )
49- df .to_csv (csv_path )
5042
51- # Also save the results in the experiment folder.
52- result_folder = os .path .join (get_experiment_folder ( name ) , "results" )
43+ # Save the results in the experiment folder.
44+ result_folder = os .path .join (exp_folder , "results" )
5345 os .makedirs (result_folder , exist_ok = True )
5446 csv_path = os .path .join (
5547 result_folder ,
@@ -60,25 +52,21 @@ def evaluate_interactive_prompting(prediction_root, start_with_box_prompt, name)
6052
6153def main ():
6254 parser = argparse .ArgumentParser ()
63-
64- parser .add_argument ("-n" , "--name" , required = True )
6555 parser .add_argument (
66- "-m" , "--model" , type = str , # options: "vit_h", "vit_h_generalist", "vit_h_specialist"
67- help = "Provide the model type to initialize the predictor"
56+ "-m" , "--model" , type = str , required = True , help = "Provide the model type to initialize the predictor"
6857 )
69- parser .add_argument ("-c" , "--checkpoint" , type = str , default = None )
58+ parser .add_argument ("-c" , "--checkpoint" , type = str , required = True )
59+ parser .add_argument ("-e" , "--experiment_folder" , type = str , required = True )
7060 parser .add_argument ("--box" , action = "store_true" , help = "If passed, starts with first prompt as box" )
7161 args = parser .parse_args ()
7262
73- name = args .name
7463 start_with_box_prompt = args .box # overwrite to start first iters' prompt with box instead of single point
7564
7665 # get the predictor to perform inference
77- predictor = get_model (name , model_type = args .model , ckpt = args .checkpoint )
66+ predictor = get_model (model_type = args .model , ckpt = args .checkpoint )
7867
79- exp_folder = get_experiment_folder (name )
80- prediction_root = run_interactive_prompting (exp_folder , predictor , start_with_box_prompt )
81- evaluate_interactive_prompting (prediction_root , start_with_box_prompt , name )
68+ prediction_root = run_interactive_prompting (args .experiment_folder , predictor , start_with_box_prompt )
69+ evaluate_interactive_prompting (prediction_root , start_with_box_prompt )
8270
8371
8472if __name__ == "__main__" :
0 commit comments