当前位置: 首页 > news >正文

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 环境!

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

http://www.dtcms.com/a/292298.html

相关文章:

  • almalinux9.6系统-基础环境准备
  • 【大气反演模型CIF第二期】通过 Docker 容器快速部署和运行 CIF 系统
  • 基于eBPF的Kubernetes网络故障自愈系统设计与实现
  • 33、基于JDK17的GC调优策略
  • Hyper-V虚拟化平台GPU分区和GPU半虚拟化技术比较及应用建议
  • Linux文件系统深入理解
  • repmgr+vip实现对业务透明的高可用切换
  • 数据库—修改某字段默认值
  • Oracle RAC+ADG switchover 切换演练流程
  • TDSQL
  • [08006][1033] ORA-01033: ORACLE 正在初始化或关闭--问题修复
  • 达梦数据库表字段增加时报错[-2106]:无效的表或视图名,[-2116]:列[IS_REPEAT]已存在
  • Python趣味算法:折半查找(二分查找)算法终极指南——原理、实现与优化
  • 人工智能——OpenCv基础
  • python如何生成 requirements.txt文件
  • Elasticsearch是什么?
  • 【论文阅读】Fast-BEV: A Fast and Strong Bird’s-Eye View Perception Baseline
  • 【AI学习从零至壹】Transformer
  • AI入门学习-特征工程
  • 钢铁之躯的智慧觉醒:Deepoc具身智能如何重塑工业机械臂的“工艺直觉”
  • 虚幻 5 与 3D 软件的协作:实时渲染,所见所得
  • ClearML库详解:从实验跟踪到模型部署的全流程管理
  • FPGA自学——存储器模型
  • 立式数控深孔钻的工艺及光学检测方法 —— 激光频率梳 3D 轮廓检测
  • C语言---VSCODE的C语言环境搭建
  • 腾讯研究院 | AI 浪潮中的中国品牌优势解码:华为、小米、大疆、科大讯飞等品牌从技术破壁到生态领跑的全维突围
  • 宽带丢包重传高优化
  • 论文笔记 | Beyond Pick-and-Place: Tackling Robotic Stacking of Diverse Shapes
  • 2025.7.25论文阅读
  • 基于AutoJawSegment项目的CBCT图像分割实践指南