前言
在当今的计算机视觉领域,三维重建技术正变得日益重要。OpenMVG(Open Multiple View Geometry)作为一个开源的多视图几何库,为研究者和开发者提供了一个强大的工具,用于处理和理解从多个图像中提取的三维信息。本博客旨在提供一个实用的指南,详细介绍如何在 Ubuntu 系统上安装 OpenMVG。我们将从实操的角度出发,不仅涵盖安装步骤,还包括解决安装过程中可能遇到的常见问题。无论您是深度学习的专家还是计算机视觉的初学者,这篇博客都将为您提供必要的指导和技巧,帮助您顺利完成 OpenMVG 的安装和配置。
主要安装方法
在 Ubuntu 系统下安装 OpenMVG 主要涉及获取源代码、安装依赖库和编译安装。以下是一个基本的最新的OpenMVG安装指南:
我们假定gcc, g++, cmake等基本的工具已经安装完成。
- 安装依赖项
首先,您需要安装一些必要的依赖库。打开终端并运行以下命令:
sudo apt-get update
sudo apt-get upgrade
# sudo apt-get install -y libpng-dev libjpeg-dev libtiff-dev libglu1-mesa-dev
# sudo apt-get install libgoogle-glog-dev libgflags-dev libatlas-base-dev libeigen3-dev libsuitesparse-dev
注意:
- 这一步按照实际情况处理,在编译的时候如果有问题,要根据报错信息进行安装。
- upgrade非常必要,因为eigen库与系统的数学库有关,而eigen库的版本匹配对于这个项目的编译非常重要。
- eigen库版本的问题非常突出,在这里安装不适用,后面会进行详细的说明。
- 克隆 OpenMVG 仓库
接下来,从 GitHub 克隆 OpenMVG 的源代码:
git clone --recursive https://github.com/openMVG/openMVG.git
这将下载 OpenMVG 的源代码及其子模块。
注意:
- 一定要用–recursive,可以完整的下载所需要的第三方模块,否则需要自己手动下载 。
- 在src/dependencies里面,有三个第三方模块cereal, glfw, osi_clp,要确保这三个模块存在。
- 编译 OpenMVG
然后,您需要编译 OpenMVG。首先,创建一个构建目录并进入该目录:
cd openMVG
mkdir build
cd build
接下来,使用 CMake 配置项目并编译,注意CMakeLists.txt是在src目录下:
cmake -DCMAKE_BUILD_TYPE=RELEASE . ../src
make
将配置并编译 OpenMVG。请注意,可能需要根据系统配置调整这些命令。
在 CMake 配置时,可以尝试手动指定 Eigen 库的路径。首先要找出 Eigen 头文件安装的路径。它通常位于 /usr/include/eigen3 或 /usr/local/include/eigen3。例如:
cmake -DEIGEN_INCLUDE_DIR="/path/to/eigen" . ../src/
- 可选:安装 OpenMVG
如果希望将 OpenMVG 安装到系统中,可以使用以下命令:
sudo make install
这一步是可选的,也可以直接在构建目录中使用 OpenMVG。
常见问题及解决方法
其它安装依赖库的问题,这一步在cmake的时候如果遇到了根据实际报错解决。这里重要介绍eigen,Qt5和Qt5Svg的安装问题。
eigen问题
eigen的问题特别重要。因此版本的不对很可能导致编译失败。
一般eigen有三种安装方法
- GitLab 仓库下载最新的源代码,
git clone https://gitlab.com/libeigen/eigen.git
,然后源码安装,方法非常传统,这里不再详述具体过程。 - 用ubuntu的apt安装命令
sudo apt install libeigen3-dev
- 从eigen官方网站下载安装。解压后用传统的cmake安装方式进行安装。
重点强调,在OpenMVG的安装中,第三种方式最为有效,第一和第二种很容易造成eigen版本的不匹配现象。我用的是最新的3.4.0版本。
Qt5的问题
在OpenMVG的编译过程中报错信息表明 CMake 在尝试构建 OpenMVG 时找不到 Qt5 的相关组件,特别是 Qt5Widgets。Qt5 是一个广泛使用的跨平台应用程序和用户界面框架,OpenMVG 中的某些示例或工具可能依赖于 Qt5。
要解决这个问题,需要在系统上安装 Qt5,特别是 Qt5 的 Widgets 组件。以下是在 Ubuntu 上安装 Qt5 的步骤:
- 安装 Qt5:
sudo apt-get update
sudo apt-get install qtbase5-dev
这个命令将安装 Qt5 的基础开发包,其中包括 Qt5Widgets。
- 安装其他 Qt5 组件(可选):
如果 OpenMVG 需要其他 Qt5 组件,可以安装完整的 Qt5 开发包:
sudo apt-get install qt5-default
- 配置CMake
安装 Qt5 后,可能需要重新配置 CMake,以便它能够找到 Qt5 的组件。通常安装 Qt5 后,CMake 应该能够自动找到所需的组件。如果 CMake 仍然找不到 Qt5,可以手动设置 Qt5_DIR 变量:
- 找出 Qt5 的安装路径:
Qt5 的 CMake 配置文件通常位于 Qt5 的安装目录下,在/usr/lib下可以直接用find命令查找。 - 在 CMake 中设置 Qt5 路径:
在运行 CMake 配置时,可以添加 -DQt5_DIR=/path/to/Qt5/lib/cmake/Qt5,其中 /path/to/Qt5 是 Qt5 安装的路径。
例如,我的设备上Qt5的安装路径为/usr/lib/x86_64-linux-gnu/cmake/Qt5
:
cmake -DQt5_DIR=/usr/lib/x86_64-linux-gnu/cmake/Qt5 ..
完成这些步骤后,应该能够重新运行 CMake 并构建 OpenMVG,而不会遇到关于 Qt5 的警告。
- 注意事项
- 确保安装的 Qt5 版本与 OpenMVG 兼容。
- 如果不需要 OpenMVG 中的基于 Qt5 的功能,您也可以在 CMake 配置中禁用这些功能,这样就不需要安装 Qt5 了。
Qt5Svg的问题
在OpenMVG的安装过程中,报错显示它找到了 Qt5 的配置文件,但是没有找到 Qt5 的 “Svg” 组件。这通常意味着 Qt5 的 Svg 组件没有被正确安装或配置。
要解决这个问题,需要安装 Qt5 的 Svg 组件。以下是在基于 Debian 的系统(如 Ubuntu)上安装 Qt5 Svg 组件的步骤:
- 安装 Qt5 Svg 组件
在终端中运行以下命令来安装 Qt5 Svg 组件:
sudo apt-get update
sudo apt-get install libqt5svg5-dev
这将安装 Qt5 的 Svg 开发包,包括必要的 CMake 配置文件。
-
重新运行 CMake
安装完 Qt5 Svg 组件后,您需要重新运行 CMake 来配置您的项目。这将使 CMake 能够找到并正确配置 Qt5 的所有组件,包括 Svg。 -
验证安装
安装完成后,您可以通过检查 /usr/lib/x86_64-linux-gnu/cmake/Qt5Svg/ 目录来验证 Qt5 Svg 组件是否已正确安装。该目录应该包含Qt5SvgConfig.cmake文件。
总结
通过本篇博客,我们详细探讨了在 Ubuntu 系统上安装 OpenMVG 的全过程,包括基本的安装步骤以及解决常见问题的策略。从安装必要的依赖库到配置和编译 OpenMVG,我们尽力提供了清晰、简洁的指导。此外,我们还讨论了如何应对安装过程中可能遇到的一些技术挑战,如依赖项问题和编译错误。