修改三维模式参数

This commit is contained in:
weixin_46229132 2025-02-09 21:21:58 +08:00
parent 954e87121f
commit 34f19c430b
3 changed files with 9 additions and 10 deletions

View File

@ -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预处理工具')

View File

@ -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):

View File

@ -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