
【超详细】安装了anaconda后,Ubuntu18+COLMAP配置疯狂踩坑踩至魔怔的记录
本博客收集了博主在Ubuntu18系统中编译COLMAP所遇到的困难,提供了解决方法,也收集了目前网上大多数的坑,除此之外,也为Ubuntu18系统下COLMAP的安装提供了一种新的路径。
在学习三维重建的过程中,colmap的学习感觉非常重要,最主要的是为了用到colmap生成的外参数,因此需要对colmap进行配置,在跟着colmap的安装文档进行安装的时候,疯狂踩坑!也是人踩的有点麻,这篇博客就记录加收集一下碰到的问题和解决方法。
先讲解一遍安装流程,有一些和安装文档的方法不一样。这样可以稍微少走一些弯路。
安装CUDA和CUDNN这个网上全是教程,博主就不讲了。
Ubuntu18安装colmap步骤和问题
- 安装COLMAP:
-
- 更改Anaconda名称
- 安装依赖项
- 安装Ceres优化库
- 可能出现的问题
- 拉取编译COLMAP
- 可能遇到的问题
-
- 问题1:cmake报错 Failed to find Ceres - Missing required Ceres dependency:glog.
- 问题2:cmake报错 you must set CMAKE_CUDA_ARCHITECTURES TO e.g.
- 问题3:cmake报错,add_library cannot create imported target "glog::glog",because another target with the same name alread exists.
- 问题4:cmake报错Could not find LZ4
- 问题5:make报错LocalParameterization is not a member of 'ceres'
- 问题6:在make install后,使用colmap gui命令出现错误colmap:error while loading shared libraries:libglog.so.1:cannot open shared object files.
- 问题7:其他问题
- 总结
安装COLMAP:
这里参考的是该博客
更改Anaconda名称
为防止安装colmap时,诸如GLIBC以及QT5等依赖项在编译过程中存在路径冲突,因此将anaconda文件名暂时更改为其他名称,这里我是修改为anaconda31,在安装完colmap后,需要更改回来。
安装依赖项
sudo apt-get install \
git \
cmake \
ninja-build \
build-essential \
libboost-program-options-dev \
libboost-filesystem-dev \
libboost-graph-dev \
libboost-system-dev \
libeigen3-dev \
libflann-dev \
libfreeimage-dev \
libmetis-dev \
libgoogle-glog-dev \
libgtest-dev \
libsqlite3-dev \
libglew-dev \
qtbase5-dev \
libqt5opengl5-dev \
libcgal-dev \
libceres-dev \
libcgal-qt5-dev
安装Ceres优化库
这里要说明一下,在colmap官方安装教程中,没有讲到安装这个优化库,如果不安装这个,直接安装colmap会疯狂报错。建议这里不要切换tag分支,不然会遇到一些不必要的错误,网络上很多在这里都是需要切换分支的。
sudo apt-get install libatlas-base-dev libsuitesparse-dev
git clone https://ceres-solver.googlesource.com/ceres-solver
cd ceres-solver
mkdir build
cd build
cmake .. -DBUILD_TESTING=OFF -DBUILD_EXAMPLES=OFF
make -j16
sudo make install
可能出现的问题
问题1:error: ambiguous overload for ?operator<<? ·······
解决方法: 更换新的glog版本,这是因为下载的glog版本太老导致无法正常安装ceres-solver。
# 首先卸载glog
sudo apt-get install libgoogle-glog-dev
官网下载glog-6.0版本。
#解压
tar -zxvf glog-0.6.0.tar.gz
cd glog-0.6.0
mkdir build
cd build
cmake ..
make -j16
sudo make install
拉取编译COLMAP
这里也是一样,建议不要跟着COLMAP教程中要切换dev,直接拉取就好了,可以避免一些错误。(但编译的时候用make和ninja都可以)注意:COLMAP本地仓库要与Ceres库在同一级目录下!
#与Ceres库在同一目录
git clone https://github.com/colmap/colmap.git
cd colmap
mkdir build
cd build
cmake ..
make -j24
sudo make install
可能遇到的问题
问题1:cmake报错 Failed to find Ceres - Missing required Ceres dependency:glog.
解决方法:这是由于刚才将glog的dev删除了,所以这里找不到依赖了,因此需要重新安装回来。
sudo apt-get install libgoogle-glog-dev
问题2:cmake报错 you must set CMAKE_CUDA_ARCHITECTURES TO e.g.
解决方法:在colmap文件内根据自身显卡修改CMakeLists.txt的内容
H100 | 40X0 | 30X0 | A100 | 20X0 | TITANV/V100 | 10X0/TITAN Xp | 9X0 | K80 |
---|---|---|---|---|---|---|---|---|
90 | 89 | 86 | 80 | 75 | 70 | 61 | 52 | 37 |
博主用的是3070的显卡,所以这里更改为86。
set(CMAKE_CUDA_ARCHITECTURES "86")
问题3:cmake报错,add_library cannot create imported target “glog::glog”,because another target with the same name alread exists.
解决方法:这个有一点麻烦需要在报错的这个文件FindGlog.cmake中找到349行,注释并修改原代码为:
if(NOT TARGET glog::glog)
add_library(glog::glog INTERFACE IMPORTED)
target_include_directories(glog::glog INTERFACE ${GLOG_INCLUDE_DIRS})
target_link_libraries(glog::glog INTERFACE ${GLOG_LIBRARY})
endif()
最后呈现的效果如下图所示。
问题4:cmake报错Could not find LZ4
解决方法:这个是因为缺少依赖,补充安装依赖即可
sudo apt-get install liblz4-dev
问题5:make报错LocalParameterization is not a member of ‘ceres’
解决方法:这个报错就是因为,cere的版本与colmap版本不匹配问题,需要重新装ceres或者重新装colmap,这里我在写步骤时没有切换cere和colmap的版本号,就不会出现这个问题。如果出现了,建议跟着我的流程走(手动狗头)这里博主也是踩了这个坑才知道这个问题。
问题6:在make install后,使用colmap gui命令出现错误colmap:error while loading shared libraries:libglog.so.1:cannot open shared object files.
解决方法:这是系统找不到该动态链接库,这里直接将之前通过源码编译的glog.so拷贝到链接路径即可。
找到前面安装的glog-6.0文件并进入其build文件夹输入以下命令:
sudo cp libglog.so.1 /usr/local/lib
sudo cp libglog.so.1 /usr/lib/x86_64-linux-gnu/
sudo cp libglog.so /usr/lib/x86_64-linux-gnu/
sudo cp libglog.so.1 /usr/lib/x86_64-linux-gnu/
问题7:其他问题
博主这里收集了自己找到的网络上存在的问题,并把链接放在这里,如果在编译过程中还存在其他问题,可以点击看看。
Linux 部署 colmap 遇到的编译bug记录
Ubuntu编译安装colmap遇到的几个问题以及解决
colmap安装教程及问题解决
【三维重建】Ubuntu18.04安装COLMAP
一定要记得在解决完问题后,把anaconda的文件夹名称改回来!!!
总结
最后希望大家能通过这篇博客,完美的装上COLMAP,如果有不对的地方,请各位大佬轻喷,如果有帮助到你,麻烦点个赞在走哇!!!
更多推荐
所有评论(0)