Quellcode durchsuchen

Update readme, eval

bkerbl vor 2 Jahren
Ursprung
Commit
2fedfba8c7
3 geänderte Dateien mit 78 neuen und 58 gelöschten Zeilen
  1. 46 40
      README.md
  2. 28 16
      full_eval.py
  3. 4 2
      metrics.py

Datei-Diff unterdrückt, da er zu groß ist
+ 46 - 40
README.md


+ 28 - 16
full_eval.py

@@ -21,43 +21,55 @@ parser = ArgumentParser(description="Full evaluation script parameters")
 parser.add_argument("--skip_training", action="store_true")
 parser.add_argument("--skip_rendering", action="store_true")
 parser.add_argument("--skip_metrics", action="store_true")
+parser.add_argument("--output_path", default="./eval")
 args, _ = parser.parse_known_args()
 
-if not args.skip_training:
+all_scenes = []
+all_scenes.extend(mipnerf360_outdoor_scenes)
+all_scenes.extend(mipnerf360_indoor_scenes)
+all_scenes.extend(tanks_and_temples_scenes)
+all_scenes.extend(deep_blending_scenes)
+
+if not args.skip_training or not args.skip_rendering:
     parser.add_argument('--mipnerf360', "-m360", required=True, type=str)
     parser.add_argument("--tanksandtemples", "-tat", required=True, type=str)
     parser.add_argument("--deepblending", "-db", required=True, type=str)
     args = parser.parse_args()
 
+if not args.skip_training:
     common_args = " --quiet --eval --test_iterations -1"
     for scene in tanks_and_temples_scenes:
         source = args.tanksandtemples + "/" + scene
-        os.system("python train.py -s " + source + " -m ./eval/" + scene + common_args)
+        os.system("python train.py -s " + source + " -m " + args.output_path + "/" + scene + common_args)
     for scene in deep_blending_scenes:
         source = args.deepblending + "/" + scene
-        os.system("python train.py -s " + source + " -m ./eval/" + scene + common_args)
+        os.system("python train.py -s " + source + " -m " + args.output_path + "/" + scene + common_args)
     for scene in mipnerf360_outdoor_scenes:
         source = args.mipnerf360 + "/" + scene
-        os.system("python train.py -s " + source + " -i images_4 -m ./eval/" + scene + common_args)
+        os.system("python train.py -s " + source + " -i images_4 -m " + args.output_path + "/" + scene + common_args)
     for scene in mipnerf360_indoor_scenes:
         source = args.mipnerf360 + "/" + scene
-        os.system("python train.py -s " + source + " -i images_2 -m ./eval/" + scene + common_args)
-
-all_scenes = []
-all_scenes.extend(mipnerf360_outdoor_scenes)
-all_scenes.extend(mipnerf360_indoor_scenes)
-all_scenes.extend(tanks_and_temples_scenes)
-all_scenes.extend(deep_blending_scenes)
+        os.system("python train.py -s " + source + " -i images_2 -m " + args.output_path + "/" + scene + common_args)
 
 if not args.skip_rendering:
-    for scene in all_scenes:
-        os.system("python render.py --quiet --skip_train --eval --iteration 7000 -m ./eval/" + scene)
-    for scene in all_scenes:
-        os.system("python render.py --quiet --skip_train --eval --iteration 30000 -m ./eval/" + scene)
+    all_sources = []
+    for scene in mipnerf360_outdoor_scenes:
+        all_sources.append(args.mipnerf360 + "/" + scene)
+    for scene in mipnerf360_indoor_scenes:
+        all_sources.append(args.mipnerf360 + "/" + scene)
+    for scene in tanks_and_temples_scenes:
+        all_sources.append(args.tanksandtemples + "/" + scene)
+    for scene in deep_blending_scenes:
+        all_sources.append(args.deepblending + "/" + scene)
+
+    common_args = " --quiet --eval --skip_train"
+    for scene, source in zip(all_scenes, all_sources):
+        os.system("python render.py --iteration 7000 -s " + source + " -m " + args.output_path + "/" + scene + common_args)
+        os.system("python render.py --iteration 30000 -s " + source + " -m " + args.output_path + "/" + scene + common_args)
 
 if not args.skip_metrics:
     scenes_string = ""
     for scene in all_scenes:
-        scenes_string += "\"" + "./eval/" + scene + "\" "
+        scenes_string += "\"" + args.output_path + "/" + scene + "\" "
 
     os.system("python metrics.py -m " + scenes_string)

+ 4 - 2
metrics.py

@@ -39,10 +39,11 @@ def evaluate(model_paths):
     per_view_dict = {}
     full_dict_polytopeonly = {}
     per_view_dict_polytopeonly = {}
+    print("")
 
     for scene_dir in model_paths:
         try:
-            print("\nScene:", scene_dir)
+            print("Scene:", scene_dir)
             full_dict[scene_dir] = {}
             per_view_dict[scene_dir] = {}
             full_dict_polytopeonly[scene_dir] = {}
@@ -74,7 +75,8 @@ def evaluate(model_paths):
 
                 print("  SSIM : {:>12.7f}".format(torch.tensor(ssims).mean(), ".5"))
                 print("  PSNR : {:>12.7f}".format(torch.tensor(psnrs).mean(), ".5"))
-                print("  LPIPS: {:>12.7f}".format(torch.tensor(lpipss).mean(), ".5"), "\n")
+                print("  LPIPS: {:>12.7f}".format(torch.tensor(lpipss).mean(), ".5"))
+                print("")
 
                 full_dict[scene_dir][method].update({"SSIM": torch.tensor(ssims).mean().item(),
                                                         "PSNR": torch.tensor(psnrs).mean().item(),