【超详细】安装了anaconda后,Ubuntu18+COLMAP配置疯狂踩坑踩至魔怔的记录

在学习三维重建的过程中,colmap的学习感觉非常重要,最主要的是为了用到colmap生成的外参数,因此需要对colmap进行配置,在跟着colmap的安装文档进行安装的时候,疯狂踩坑!也是人踩的有点麻,这篇博客就记录加收集一下碰到的问题和解决方法。
先讲解一遍安装流程,有一些和安装文档的方法不一样。这样可以稍微少走一些弯路。
安装CUDA和CUDNN这个网上全是教程,博主就不讲了。

安装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的内容

H10040X030X0A10020X0TITANV/V10010X0/TITAN Xp9X0K80
908986807570615237

博主用的是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,如果有不对的地方,请各位大佬轻喷,如果有帮助到你,麻烦点个赞在走哇!!!

评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值