OpenMVG & OpenMVS 安装全流程常见问题与解决方法总结


OpenMVG & OpenMVS 安装全流程常见问题与解决方法总结

前言

OpenMVG 和 OpenMVS 是三维重建领域常用的开源工具链。由于依赖众多、对编译环境要求较高,很多用户在源码或 Docker 安装过程中会遇到各种各样的坑。本文结合实际踩坑经历,系统总结了 OpenMVG 和 OpenMVS 安装过程中的常见报错、原因分析及解决方法,帮助大家高效避坑、顺利搭建环境。
在这里插入图片描述


一、OpenMVG 安装常见问题

1. 依赖包缺失

报错示例:

The following required packages were not found:
 - libjxl

解决方法:

sudo apt-get update
sudo apt-get install libjxl-dev

如遇其它依赖缺失,按提示安装相应 -dev 包。


2. rerun_sdk 下载失败

报错示例:

Each download failed!
Failed to connect to github.com port 443 after ...: Connection timed out

原因分析:

  • 国内网络无法访问 GitHub
  • Docker 构建环境无外网

解决方法:

  1. 在能联网的环境手动下载 rerun_cpp_sdk.zip
  2. 将其放到 CMake 期望的目录(如 /opt/openMVG_Build/_deps/rerun_sdk-subbuild/rerun_sdk-populate-prefix/src/)。
  3. Dockerfile 里用 COPY 指令复制到该目录。

3. Python3 找不到

报错示例:

Could not find a package configuration file provided by "Python3" ...

原因分析:

  • CMake 版本过低(如 Ubuntu 18.04 默认 CMake 3.10)
  • 缺少 python3-devpython3-distutils 等包

解决方法:

  • 安装新版 CMake(推荐 3.18+):
    wget https://github.com/Kitware/CMake/releases/download/v3.22.6/cmake-3.22.6-linux-x86_64.sh
    sudo sh cmake-3.22.6-linux-x86_64.sh --skip-license --prefix=/usr/local
    
  • 安装 Python3 相关开发包:
    sudo apt-get install python3 python3-dev python3-pip python3-distutils python3-venv
    

二、OpenMVS 安装常见问题

1. GCC/CUDA 版本不兼容

报错示例:

error: ‘_Float64x’ was not declared in this scope; did you mean ‘_Float16’?

原因分析:

  • CUDA 12.2 及以下不支持 GCC 12/13
  • 新版 Ubuntu(如 24.04)自带 GCC 13,导致 CUDA 编译失败

解决方法:

  • 安装并切换到 GCC 11 或 10:
    sudo apt-get install gcc-11 g++-11
    export CC=/usr/bin/gcc-11
    export CXX=/usr/bin/g++-11
    
  • 推荐环境:Ubuntu 22.04 + GCC 11 + CUDA 11.8/12.2

2. OpenCV 版本过低

报错示例:

error: ‘IMWRITE_JPEGXL_QUALITY’ is not a member of ‘cv’

原因分析:

  • OpenCV 4.7.0 及以上才支持 JPEG XL 相关宏,apt 安装的通常是 4.5.x/4.6.x

解决方法:

  • 源码编译 OpenCV 4.7.0+,或
  • 降级 OpenMVS 到不依赖该宏的版本(如 v2.0.0 及以前)

3. VCG/VCGLib 未找到

报错示例:

VCG required, but not found: Please specify VCG directory using VCG_ROOT env. variable

解决方法:

  • 克隆 vcglib 仓库,并设置环境变量:
    git clone https://github.com/cnr-isti-vclab/vcglib.git
    export VCG_ROOT=/path/to/vcglib
    

4. Python3 找不到

同 OpenMVG,见上文。


三、Docker 构建相关问题

1. COPY 只能用相对路径

说明:

  • Dockerfile 的 COPY 只能用 build context 下的相对路径,不能用宿主机绝对路径。
  • 推荐在项目根目录下执行:
    docker build -f openMVS/docker/Dockerfile .
    
  • 或用软链/临时复制的方式将源码放到 build context。

2. 构建无缓存

原因:

  • build context 频繁变动
  • .dockerignore 配置不当
  • COPY . /xxx 位置靠前

建议:

  • 优化 Dockerfile 顺序,先装依赖再 COPY 代码
  • .dockerignore 排除无关文件

四、Python 包找不到模块

报错示例:

No module named hloc.pipelines.sfm

解决方法:

  • 进入源码目录,执行开发模式安装:
    pip install -e .
    

五、其它建议

  • 遇到 CMake、GCC、CUDA 相关报错,优先考虑环境兼容性(推荐 Ubuntu 22.04 + GCC 11 + CUDA 11.8/12.2)。
  • 多用官方文档和 issue 搜索,很多问题都有人遇到过。
  • Docker 构建时,尽量让所有源码都在 build context 下,充分利用缓存。

结语

三维重建工具链的安装配置确实容易踩坑,但只要理解各依赖的版本关系和常见报错的本质,问题都能逐步解决。希望本文能帮你少走弯路,顺利搭建 OpenMVG/OpenMVS 环境!

如有新问题,欢迎补充交流!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值