From 34f19c430b902c2897e0413c95a0063a88c1ce96 Mon Sep 17 00:00:00 2001 From: weixin_46229132 Date: Sun, 9 Feb 2025 21:21:58 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=B8=89=E7=BB=B4=E6=A8=A1?= =?UTF-8?q?=E5=BC=8F=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.py | 2 +- odm_preprocess.py | 4 ++-- utils/odm_monitor.py | 13 ++++++------- 3 files changed, 9 insertions(+), 10 deletions(-) diff --git a/main.py b/main.py index 526a90f..a51cd62 100644 --- a/main.py +++ b/main.py @@ -1,6 +1,6 @@ import argparse from datetime import timedelta -from odm_preprocess_fast import PreprocessConfig, ImagePreprocessor +from odm_preprocess import PreprocessConfig, ImagePreprocessor def parse_args(): parser = argparse.ArgumentParser(description='ODM预处理工具') diff --git a/odm_preprocess.py b/odm_preprocess.py index 7556849..69ce291 100644 --- a/odm_preprocess.py +++ b/odm_preprocess.py @@ -278,11 +278,11 @@ class ImagePreprocessor: if self.config.mode == "快拼模式": self.merge_tif(successful_grid_points, self.config.produce_dem) elif self.config.mode == "三维模式": - self.merge_ply(successful_grid_points) + # self.merge_ply(successful_grid_points) self.merge_obj(successful_grid_points, translations) else: self.merge_tif(successful_grid_points, self.config.produce_dem) - self.merge_ply(successful_grid_points) + # self.merge_ply(successful_grid_points) self.merge_obj(successful_grid_points, translations) def process(self): diff --git a/utils/odm_monitor.py b/utils/odm_monitor.py index 5cb6d28..32a62f8 100644 --- a/utils/odm_monitor.py +++ b/utils/odm_monitor.py @@ -125,16 +125,14 @@ class ODMProcessMonitor: def run_odm_with_monitor(self, grid_dir: str, grid_id: tuple, produce_dem: bool = False) -> Tuple[bool, str]: """运行ODM命令""" - # if produce_dem and self.mode == "快拼模式": - # self.logger.error("快拼模式下无法生成DEM,请调整生产参数") - # return False, "快拼模式下无法生成DEM,请调整生产参数" - self.logger.info(f"开始处理网格 ({grid_id[0]},{grid_id[1]})") success = False error_msg = "" max_retries = 3 current_try = 0 - use_lowest_quality = True # 初始使用lowest quality + + # 根据模式设置是否使用lowest quality + use_lowest_quality = self.mode == "快拼模式" while current_try < max_retries: current_try += 1 @@ -151,6 +149,7 @@ class ODMProcessMonitor: f"--project-path /datasets project " f"--max-concurrency 15 " f"--force-gps " + f"--use-hybrid-bundle-adjustment " ) # 根据是否使用lowest quality添加参数 @@ -223,7 +222,7 @@ class ODMProcessMonitor: raise NotOverlapError except NotOverlapError: - if use_lowest_quality: + if use_lowest_quality and self.mode == "快拼模式": self.logger.warning( "检测到not overlap错误,移除lowest quality参数后重试") use_lowest_quality = False @@ -231,7 +230,7 @@ class ODMProcessMonitor: continue else: self.logger.error( - "即使移除lowest quality参数后仍然出现错误") + "出现错误,需要人工检查数据集") error_msg = "图像重叠度不足,需要人工检查数据集的采样间隔情况" break