diff --git a/SuperBuild/cmake/External-OpenMVS.cmake b/SuperBuild/cmake/External-OpenMVS.cmake index 1d683314..97fd0ca4 100644 --- a/SuperBuild/cmake/External-OpenMVS.cmake +++ b/SuperBuild/cmake/External-OpenMVS.cmake @@ -52,7 +52,7 @@ ExternalProject_Add(${_proj_name} #--Download step-------------- DOWNLOAD_DIR ${SB_DOWNLOAD_DIR} GIT_REPOSITORY https://github.com/OpenDroneMap/openMVS - GIT_TAG 285 + GIT_TAG 287 #--Update/Patch step---------- UPDATE_COMMAND "" #--Configure step------------- diff --git a/SuperBuild/cmake/External-OpenSfM.cmake b/SuperBuild/cmake/External-OpenSfM.cmake index 817aa3db..88fb4d44 100644 --- a/SuperBuild/cmake/External-OpenSfM.cmake +++ b/SuperBuild/cmake/External-OpenSfM.cmake @@ -19,7 +19,7 @@ ExternalProject_Add(${_proj_name} #--Download step-------------- DOWNLOAD_DIR ${SB_DOWNLOAD_DIR} GIT_REPOSITORY https://github.com/OpenDroneMap/OpenSfM/ - GIT_TAG 286 + GIT_TAG 287 #--Update/Patch step---------- UPDATE_COMMAND git submodule update --init --recursive #--Configure step------------- diff --git a/VERSION b/VERSION index e43686ac..bcd0f91f 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -2.8.6 +2.8.7 diff --git a/stages/openmvs.py b/stages/openmvs.py index c6008bed..aa9bfa5c 100644 --- a/stages/openmvs.py +++ b/stages/openmvs.py @@ -81,9 +81,15 @@ class ODMOpenMVSStage(types.ODM_Stage): if args.pc_tile: config.append("--fusion-mode 1") + + extra_config = [] if not args.pc_geometric: - config.append("--geometric-iters 0") + extra_config.append("--geometric-iters 0") + + masks = len(os.listdir(os.path.join(tree.opensfm, "undistorted", "masks"))) > 0 + if masks: + extra_config.append("--ignore-mask-label 0") sharp = args.pc_geometric with open(densify_ini_file, 'w+') as f: @@ -92,7 +98,7 @@ class ODMOpenMVSStage(types.ODM_Stage): def run_densify(): system.run('"%s" "%s" %s' % (context.omvs_densify_path, openmvs_scene_file, - ' '.join(config + gpu_config))) + ' '.join(config + gpu_config + extra_config))) try: run_densify() @@ -157,11 +163,8 @@ class ODMOpenMVSStage(types.ODM_Stage): '-v 0', ] - if not args.pc_geometric: - config.append("--geometric-iters 0") - try: - system.run('"%s" "%s" %s' % (context.omvs_densify_path, sf, ' '.join(config + gpu_config))) + system.run('"%s" "%s" %s' % (context.omvs_densify_path, sf, ' '.join(config + gpu_config + extra_config))) # Filter if args.pc_filter > 0: @@ -199,7 +202,7 @@ class ODMOpenMVSStage(types.ODM_Stage): '-i "%s"' % scene_dense, "-v 0" ] - system.run('"%s" %s' % (context.omvs_densify_path, ' '.join(config + gpu_config))) + system.run('"%s" %s' % (context.omvs_densify_path, ' '.join(config + gpu_config + extra_config))) else: raise system.ExitException("Cannot find scene_dense.mvs, dense reconstruction probably failed. Exiting...") else: @@ -208,8 +211,6 @@ class ODMOpenMVSStage(types.ODM_Stage): log.ODM_INFO("Skipped filtering, %s --> %s" % (scene_dense_ply, tree.openmvs_model)) os.rename(scene_dense_ply, tree.openmvs_model) - # TODO: add support for image masks - self.update_progress(95) if args.optimize_disk_space: