Ubuntu20.04安装colmap从零开始全过程记录(包括CUDA/CUDNN/ceres/anaconda)

xm_1139164554 2024-06-28 10:07:06 阅读 61

 网上教程太繁杂了,安装起来又有好多坑,新安装的系统啥啥没有,查了几个教程没一个全的,或者是自己又遇到了新的没提及的问题

于是我综合几个教程和自己所遇到的问题,记录自己ubuntu安装colmap的整个过程

二编:装完回来了,开始安装是2023.11.23,中间断断续续地推进,对我这种任何问题都能打败的人,一个问题能卡一两个月,到2024.2.21熬了个大夜终于结束了,含泪撒花

太不容易了(哭

遇到的问题太太太太多了!九九八十一难不过如此

整个流程参考:

教程1:

讲Ubuntu20.04安装CUDNN、Ceres和Colmap_ubuntu20.04 安装ceres cuda_Nismilesucc的博客-CSDN博客

教程2:

Ubuntu20.04安装Colmap_ubuntu20安装colmap-CSDN博客

目录

 

1.安装CUDA & CUDNN


 

1.安装CUDA & CUDNN

 参考教程3:

Ubuntu 20.04安装CUDA & CUDNN 手把手带你撸_ubuntu cuda_哈希Map的博客-CSDN博客

1.1安装驱动

因为我是按照教程3来安装驱动的,然后出现了一点问题,又去找了教程4顺利解决。所以

建议先按照教程4的顺序,先完成本文的1.1.2和1.1.3再来安1.1,教程4中也给出了其他方法安装驱动可以参考,教程3中这一部分是使用的教程4里的PPA源安装,安装完驱动后可以从教程4跳回到教程3啦

参考教程4:

ubuntu18.04安装nvidia驱动,3种方式图文详解+卸载教程_ubuntu18.04安装nvidia显卡驱动-CSDN博客

 

1.1.1 PPA源安装(先关闭secure boot和禁用nouveau驱动再来这一步)

#查看显卡信息

lspci | grep -i nvidia

nvidia-smi

#添加源

sudo add-apt-repository ppa:graphics-drivers/ppa

sudo apt update

#检查可安装驱动

ubuntu-drivers devices

#自动安装系统推荐驱动

sudo ubuntu-drivers autoinstall

在终端窗口逐行输入以上代码

教程中讲没有报错就是安装好了,但是我等待进度完成后出现以下界面

ba3414d4374a42369e9d0d0e03eb9b3d.png

翻译了一下是secure boot的问题,有教程说按照提示点确定设密码即可,但不知道为啥我点那个确定没有反应,点哪都没反应,于是我关闭了终端,杀死了这个程序

查阅安装驱动的教程后发现了另一个专门安装驱动的教程,发现教程3中使用的是第二种ppa源安装

参考教程4:

ubuntu18.04安装nvidia驱动,3种方式图文详解+卸载教程_ubuntu18.04安装nvidia显卡驱动-CSDN博客在在

然后按照教程4

1.1.2关闭secure boot

我的电脑是戴尔系列的,重启连续点击F2,进入BIOS界面(找secure boot的时候看了几个教程和我电脑的界面都不太一样,最后在右上角放大镜图标搜索界面输入secure才找到,可能每个电脑配置不一样或者教程都太过久远了吧)

在boot configuration里找到secure boot选项关闭,然后点左下角的apply,ok,右下角exit,然后电脑会自动重启

e92bf69767fa4678ac828bd134c393e1.jpeg

1.1.3禁用nouveau驱动

在终端中输入

sudo gedit /etc/modprobe.d/blacklist_nouveau.conf

输入开机密码后会弹出文本框,在文本框里输入

blacklist nouveau

options nouveau modeset=0

如下图所示

d0e922a4cbed443eb5ffeb9f21563542.png

 点击保存,然后重启电脑

验证,输入

lsmod | grep nouveau

没有输出结果即验证成功

7aed499a3bf34f34a8d5dce768edfd98.png

1.1.4验证显卡信息

好的我又出错了,输入nvidia-smi查看显卡信息

报错

NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.

又去查教程。。。。

参考教程5:

NVIDIA驱动出错:NVIDIA-SMI has failed because it couldn‘t communicate with the NVIDIA driver. Make sure t_nvidia-smi has failed because it couldn't communic-CSDN博客

按照教程5的方法在终端中输入

cd /usr/src

ls

sudo apt-get install dkms

出现以下界面,可能是我杀死程序导致没安装完,输入提示的指令后继续安装,最后显示

DKMS: uninstall completed.表示DKMS安装完成了

(所以如果按照教程4的顺序来应该会很顺利地完成安装驱动部分吧,可能吧)

5b53c2deb5e741a5b63544dc95375772.png

输入nvidia-smi还是报错,继续按照教程5的方法重新下载gcc也突然中止,突然我灵机一动想起教程3中讲安装完要重启才能显示,于是乎立即重启再输入nvidia-smi查看显卡信息,果然成功了已经!

883876ff16fc4cdeb470abc2293d299e.png

1.2安装CUDA

这里就跳回教程3继续下一步骤了

1.2.1降低g++版本

在终端中依行输入以下指令

sudo apt-get install gcc-7 g++-7

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 9

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 1

sudo update-alternatives --display gcc

sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-7 9

sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-9 1

sudo update-alternatives --display g++

完成后是如下界面

cb4d803e2424435c86a6b492ea3a1555.png

1.2.2从官网下载对应的CUDA

这里教程3里找对应版本的CUDA方法我没看懂,又去找对应的CUDA版本选择

参考教程6:

CUDA和显卡驱动以及pytorch版本的对应关系_cuda和pytorch版本对应-CSDN博客

输入

nvidia-smi -a

查自己的显卡类型

2be9c7a8fe6b447b8f41e0b492473618.png

Ubuntu - 查看系统信息_ubuntu 查看系统信息-CSDN博客

查看自己的操作系统

dc888bfcf18e4d91a370b7d8461d1580.png

最后选择了11.8版本的CUDA(版本选择我也没搞清楚,这里是求助了一下师姐,师姐推荐安装11.8版本的就直接选择了这个)

进入官网

CUDA Toolkit Archive | NVIDIA Developer

选择11.8的版本的链接点进去

如图选择

093f7aef2b834941b245cfea80b3f6fb.png

如图选择

aeec455531474e9fbd18d97cd6c0e632.png

将下方的指令复制到终端命令窗口

8744f6c9bef44bb381dde32785b2a171.png

等待完成

bac95ea948bb47839d8e69aab6b1bf8e.png

按照教程3的步骤一步一步继续

输入第二行指令

sudo sh cuda_11.8.0_520.61.05_linux.run

在弹出的安装界面中选“continue”,输入accept,取消Driver勾选,选中install

1.2.3环境配置

到配置环境变量步骤,因为教程3的指令识别不了,又找了另一个教程

参考教程7:

ubuntu配置cuda环境_ubuntu cuda 环境变量-CSDN博客

输入

sudo gedit ~/.bashrc

8eb8b94b4652498598246c5258ba9d74.png

在弹出窗口的文档末尾添加

# CUDA Soft Link

export PATH=/usr/local/cuda-11.8/bin${PATH:+:${PATH}}

export LD_LIBRARY_PATH=/usr/local/cuda-11.8/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

刷新环境变量

source ~/.bashrc

输入指令nvcc -V 

nvcc -V

显示以下界面 

07b467665a314675a6203d8f1f0c9735.png

至此cuda安装成功!

1.3安装cuDNN

因为找了几个教程都是下载的tgz格式的安装包,有一些指令都不可行,所以又找了个教程,cudnn的安装步骤参考教程8:

ubuntu20.04之--CUDA和CUDNN的安装_ubuntu20.04安装cuda和cudnn-CSDN博客

在官网下载,官网地址如下

CUDA Deep Neural Network (cuDNN) | NVIDIA Developer

d6d99525af33479e8a77d9d26ad2a928.png

选择第二个linux x86_64(Tar)版本点击即下载

下载完成后得到名为cudnn-linux-x86_64-8.9.7.29_cuda11-archive.tar.xz的压缩包

1bc5f364cac1416bb1010d02e629db4f.png

在终端输入以下命令解压,tar -xvf 后是文件名

tar -xvf cudnn-linux-x86_64-8.9.7.29_cuda11-archive.tar.xz

注意注意!!!!解压命令包括下面的复制命令都要在下载文件所在位置打开终端(鼠标右键,在终端打开),否则会查询不到文件信息,这里卡了我好久orz

78e8f5ac5fb34e4899b7b57f5ce348a5.png

89381ca03c90429999a53b3b9e076cbc.png

解压完成

输入以下指令进行复制,一共五行命令,注意文件名和地址,文件名是解压后的文件名cudnn-linux-x86_64-8.9.7.29_cuda11-archive.tar.xz且地址前缀为上面安装cuda的时候添加的环境变量地址/usr/local/cuda-11.8,原教程的地址为/usr/local/cuda,这里需要改一下(以自己的环境地址为主)

sudo cp cudnn-linux-x86_64-8.9.7.29_cuda11-archive/include/cudnn.h /usr/local/cuda-11.8/include

sudo cp cudnn-linux-x86_64-8.9.7.29_cuda11-archive/lib/libcudnn* /usr/local/cuda-11.8/lib64/

sudo chmod a+r /usr/local/cuda-11.8/include/cudnn.h

sudo chmod a+r /usr/local/cuda-11.8/lib64/libcudnn*

sudo cp cudnn-linux-x86_64-8.9.7.29_cuda11-archive/include/cudnn_version.h /usr/local/cuda-11.8/include/

修改了好几次,应该是可以了(下图中有好几条指令是错误或重复的/尝试了好多次才得出上五行正确的指令)

052df60bcdbc4b9f82a25d01eb2be472.png

输入验证指令

cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2

得到以下界面,说明安装成功啦!

5890cddb0efd46a38946a8492b454db7.png

至此,cuDNN的安装也完成啦!

2.安装依赖

参考教程:

Ubuntu20.04安装CUDNN、Ceres和Colmap_(base) zion@omen:~$ sudo dpkg -l | grep cudnn rc c-CSDN博客

终端命令中输入以下指令

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

报错。。。

063a6ce0fd70461ba83189fcbb7fcd46.png

参考解决教程

有一些软件包无法被安装。如果您用的是 unstable 发行版,这也许是因为系统无法达到您要求的状态造成的。E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。_有一些软件包无法被安装。如果您用的是 unstable 发行版,这也许是 因为系统无法达-CSDN博客然后重复输入上述依赖,依旧是以上错误//

硬着头皮往下走

3安装Ceres Solver

参考教程

Ubuntu20.04安装Ceres和g2o库_ubuntu20.04安装g2o-CSDN博客

3.1安装依赖

输入指令

sudo apt-get install liblapack-dev libsuitesparse-dev libcxsparse3 libgflags-dev libgoogle-glog-dev libgtest-dev

5ebbc6970f4241ddb89587da24ed32c5.png

3.2下载源码

进入链接

GitCode - 开发者的代码家园

点击下载zip,下载完成并解压后,进入ceres-solve目录

7796ac0cfef445789285824ebd51826a.png

3.3进行编译

输入以下指令

mkdir build

cd build

cmake .. # 预编译

make -j20 # 编译 可用 nproc 查看cpu核心数

sudo make install

输入到cmake的时候显示

1caa7f2bcdf84bb2a78239ff50927ad3.png

好,,又重新找教程,寻到了官方教程:Installation — Ceres Solver

输入以下指令

# CMake

sudo apt-get install cmake

# google-glog + gflags

sudo apt-get install libgoogle-glog-dev libgflags-dev

# Use ATLAS for BLAS & LAPACK

sudo apt-get install libatlas-base-dev

# Eigen3

sudo apt-get install libeigen3-dev

# SuiteSparse (optional)

sudo apt-get install libsuitesparse-dev

一条一条地输入指令,出现以下界面

fcf74ee2ba654be293eb75940395c628.png

返回刚才的终端窗口,再次输入cmake ..

成功!

15556bd16e744d8f98a8c32e75f26fbb.png

继续输入上述的指令,该输入make -j8了

mkdir build

cd build

cmake .. # 预编译

make -j8 # 编译 可用 nproc 查看cpu核心数

sudo make install

cpu核心数我查到的我的是8,所以

007f46ff0d5b4cee9cbfeed4b25c8b44.png

电脑崩了//

出现以下报错

3df5bde2906d4165af24e12a4e70779e.png

找教程。。。Ceres与colmap安装_colmap no kernel image is available for execution -CSDN博客

将cmakelist.txt文件的 set(CMAKE_CUDA_ARCHITECTURES "50;60;70;80")删去80

79bfe12d9f584bbf9d6087aeb1e17826.png

还是不行!!!

继续找解决教程Building ceres-solver fail with eigen3 "error: no type named ‘Literal’ in ‘struct Eigen::NumTraits"_ceres error: no type named ‘literal’-CSDN博客

试试//还是不行/要疯掉

回到安裝步驟

下列软件包有未满足的依赖关系: libqt5svg5-dev : 依赖: libqt5svg5 (= 5.12.8-0ubuntu1) 但是它将不会被安装_qt5-svg5-deve-CSDN博客

輸入

sudo apt-get install aptitude

sudo aptitude install libqt5dbus5 libqt5network5 libqt5core5a libqt5widgets5 libqt5gui5 libqt5svg5-dev

c0c6fb35cb264811bab8c8ab0dd903c1.png

參考

https://www.cnblogs.com/gooutlook/p/17682885.html

輸入

sudo aptitude -f install qtbase5-dev

哭了

再次被困難打敗

补充:安装anaconda

2024.2.20我胡汉三又回来了!!!

教程:

Ubuntu20.04 安装 Anaconda步骤_ubuntu20.04安装anaconda-CSDN博客

 Ubuntu18.04安装Anaconda(最新最全亲测图文并茂)_ubuntu18如何安装anaconda arm-CSDN博客

 下载Anconda安装包

官网链接:

Anaconda | Unleash AI innovation and value

aba265c19e6645a7b2dc7b2b53e19054.png

命令

bash Anaconda3-2023.09-0-Linux-x86_64.sh

一直按回车,输入yes

b05cd0c71bca4803a5b769fc13dd5d01.png

确定安装位置,按enter

e64f2bb708b14b718ce77131c6101294.png

继续yes

b76aab3235624225ba19d85e76edc40b.png

成功

739079e800db4085a6bbf0620ed19cb0.png

 

检验

查看版本号

conda -V

da4a78a5ec2f4597b4fd9d1aa28c4f2b.png

打开

anaconda-navigator

输入

sudo gedit ~/.bashrc

添加

export PATH="/home/pc/anaconda3/bin:$PATH"

39132b739f4c4047a91a139f70a65505.png

完成

2.重新安装依赖

 

下载了anaconda

教程:E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。_无法修正错误,因为您要求某些-CSDN博客

教程:

ubuntu下装软件,有一些软件包无法被安装。如果您用的是 unstable 发行版,这也许是 因为系统无法达到您要求的状态造成的。_ubuntu的unstable发行版-CSDN博客

ee6307e886c440b69bc4a438318924bc.png

sudo apt-get install aptitude

挨个安装

sudo aptitude install libqt5opengl5

038395f3f938495e93b221946cac4989.png

 sudo aptitude install libpam-systemd

6ba9e5036c2e408e8092b67f0c806fa8.png

sudo aptitude install libqt5concurrent5

7af277553d354f0c8588a57baba41cd9.png

sudo aptitude install libqt5core5a

3baf21c034fc47538292c60f21e10d7a.png

sudo aptitude install libqt5dbus5

225341cda7e448ca815ef150779902af.png

sudo aptitude install libqt5gui5

e0600f672640456c867205c89acc7ce4.png

sudo aptitude install libqt5network5

a5906de79a984d65a4359d3957132663.png

sudo aptitude install libqt5printsupport5

413bff9f73e14dc6bf7b0a717c3852ba.png

sudo aptitude install libqt5sql5

d0a31d3c05f34844944edef2abe5dd61.png

sudo aptitude install libqt5test5

7c5735cf8cf6480497fb7c91357950f0.png

sudo aptitude install libqt5widgets5

1c3fabbad0624624baf0b8f53aec0120.png

sudo aptitude install libqt5xml5

9dba6185f3f347569ddf2cdc8ee5f0bf.png

sudo aptitude install qtbase5-dev-tools

b71dcb9dbfd64499a2b85010b43ca74f.png

结束

3.重新安装Ceres Solver

mkdir build

cd build

cmake .. # 预编译

make -j8 # 编译 可用 nproc 查看cpu核心数

sudo make install

6a8832946c5741809edcabc2903a4e03.png

02ae6ea7a6ce47d695d03e20549fb382.png

终于成功了!!!

我喜极而泣

4.修改anaconda名字

命令

cd ~

ls

mv anaconda3 axx

ls

c91cea5b890140f899380f6f3ff3d50d.png

5.下载colmap

5.1下载源码

git clone https://github.com/colmap/colmap.git

出现错误

fd57437a6a7849cbb2663a61ecd1037c.png

...

git config --global http.postBuffer 524288000

f208c85ab0bf48398285552bcca44677.png

git config --global http.version HTTP/1.1

77f783e507cd43348249ade7cef54427.png

$ git config --global http.lowSpeedLimit 0

$ git config --global http.lowSpeedTime 999999

$ git config --global http.postBuffer 1048576000

2a62987570ec460bac7d7e551aca66d4.png

还是不行,,,,

 

解决了,,,换了个网,嗖嗖地就下好了

e9418f4764734ab3803adb6d91d73500.png

5.2安装colmap

cd col-map

mkdir build

cd build

cmake ..

make -j

sudo make install

报错啦————

去官网查依赖

官网:Installation — COLMAP 3.9-dev documentation

把官网的依赖再安一遍

ecad594e3d374390975372240042b818.png

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

 

63974e50e2624643888c43c8cf00ff3b.png

还是不行

96b27e8d877947369c7fca29de179aee.png

又找了个依赖

sudo apt-get install \

git \

cmake \

build-essential \

libboost-program-options-dev \

libboost-filesystem-dev \

libboost-graph-dev \

libboost-regex-dev \

libboost-system-dev \

libboost-test-dev \

libeigen3-dev \

libsuitesparse-dev \

libfreeimage-dev \

libgoogle-glog-dev \

libgflags-dev \

libglew-dev \

qtbase5-dev \

libqt5opengl5-dev \

libcgal-dev \

libcgal-qt5-dev

f11a0793a6f14dedb9ae6d7bf57f7f32.png

再次进行cmake

还是不行/

9c4de0eb17e84a3ea541ef7e63ce14da.png

降低ceres版本

花了毛毛去咸鱼上找了个解决问题的,ceres版本和eigen版本不兼容

我的ceres版本是2.2.0,eigen版本是3.3.7,要把ceres降低到1.14.0版本的

教程

ceres报错:Eigen3版本和ceres版本冲突问题 - 知乎

安装包:http://distfiles.macports.org/ceres-solver/

3515da3afa8f4e6f88523703fbe3a501.png

安装成功

c363d502aa7c410abaf7eabd769ae3bc.png

99129d434b174cad893de4d320d7116e.png

5.2重新安装colmap

cmake ..

db0efa3df0164016949d8e7afa692fb6.png

make -j

 

6c7ee564a13245bb84b7f77019c51499.png

sudo make install

bb8fe91d6dff4a56a1ca6f3f57aabaad.png

6.检验colmap

colmap -h

colmap gui

d6f821720a494d4b8af50bf5d409e339.png

成功了!!!!!!太不容易了!!!!!!!!!!!!!

dfa917984292456c8db61fad147a074e.png

7.改回anaconda名字

cd ~

ls

mv axx anaconda3

ls

6b480eac22f548eab675938698106791.png

至此

完结撒花!!!!!!!!!!!!!!!!!!!!!

 



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。