#!/bin/bash # 初始化 Conda 环境路径 CONDA_BASE=$(conda info --base) source "$CONDA_BASE/etc/profile.d/conda.sh" # 确保主路径在 PYTHONPATH 中,防止 eval 脚本找不到模块 export PYTHONPATH=$PYTHONPATH:/root/autodl-tmp/SplatAtlas # 定义任务队列:(环境绝对路径 脚本相对路径) declare -a tasks=( # --- 分支 1.1:降维表征与面元化 --- # --- 分支 1.4:显式网格提取与拓扑绑定 --- # "/root/autodl-tmp/envs/cadgs scripts/run_bgtriangle_benchmark.py" # --- 分支 1.5:复杂光照与材质的几何解耦 --- # "/root/autodl-tmp/envs/3dgrut scripts/run_3dgut_benchmark.py" # "/root/autodl-tmp/envs/gaussian_shader scripts/run_gaussianshader.py" # --- 分支 1.6:无界场景的空间映射与拓扑收缩 --- # "/root/autodl-tmp/envs/hogs scripts/run_hogs_benchmark.py" # "/root/autodl-tmp/envs/r3dg scripts/run_r3dg_benchmark.py" # --- 分支 1.7:结构化骨架与混合几何表征 --- # "/root/autodl-tmp/envs/scaffold_gs scripts/run_scaffoldgs_benchmark.py" # --- 分支 1.8:高频特征与微观拓扑逼近 --- "/root/autodl-tmp/envs/ges scripts/run_ges_benchmark.py" # "/root/autodl-tmp/envs/texture_gs scripts/run_texturegs_benchmark.py" "/root/autodl-tmp/envs/textured_gs scripts/run_texturedgs_benchmark.py" # "/root/autodl-tmp/envs/2dgs scripts/run_2dgs_benchmark.py" "/root/autodl-tmp/envs/gaussian_surfels scripts/run_surfel_benchmark.py" "/root/autodl-tmp/envs/pgsr scripts/run_pgsr_benchmark.py" # --- 分支 1.2:表面法线与几何正则化 --- "/root/autodl-tmp/env scripts/run_sugar_benchmark.py" "/root/autodl-tmp/envs/erank_gs scripts/run_erankgs_benchmark.py" # --- 分支 1.3:隐式场与 SDF 融合 --- "/root/autodl-tmp/envs/gof scripts/run_gof_benchmark.py" "/root/autodl-tmp/envs/gspull scripts/run_gspull_benchmark.py" # "/root/autodl-tmp/envs/cadgs scripts/run_qgs_benchmark.py" ) echo "🚀 SplatAtlas: Starting Robust Geometry Pipeline..." for task in "${tasks[@]}"; do read -r env_path script_path <<< "$task" echo "----------------------------------------------------------------" echo "🔄 Method: $(basename "$script_path")" # 1. 激活环境 conda activate "$env_path" if [ $? -eq 0 ]; then # 2. 关键修复:环境自动体检,确保 lpips 和 imageio 存在 echo "🛠️ Checking requirements in $env_path..." pip install lpips imageio -q # 3. 关键修复:强制使用当前环境的绝对路径 Python,防止 eval 泄露到 base 环境 echo "✅ Environment ready. Executing..." "$CONDA_PREFIX/bin/python" "/root/autodl-tmp/SplatAtlas/$script_path" if [ $? -eq 0 ]; then echo "✨ Finished: $(basename "$script_path")" else echo "❌ Error: $(basename "$script_path") failed." fi else echo "❌ Failed to activate: $env_path" fi conda deactivate done echo "================================================================" echo "🏁 Geometry Pipeline completed."