Ubuntu20.04安装CUDNN、Ceres和Colmap

前言

本篇记录在自己服务器上安装Colmap过程。

系统:Ubuntu 20.04
显卡:Nvidia Geforce RTX 3080Ti

参考链接:Ubuntu20.04安装Colmap ,Ubuntu20.04安装colmap-知乎简明过程

colmap主页

1. 安装CUDA和CUDNN

首先检查是否有这两个东西 nvcc -Vls | grep cudnn
Ubuntu20.04安装CUDNN、Ceres和Colmap_第1张图片
说明只有CUDA没有CUDNN

参考链接:判断CUDA和CUDNN是否安装成功并正常使用

接下来就是安装CUDNN

参考链接:Ubuntu 20.04安装CUDA & CUDNN

先查看一下CUDA的安装路径 /usr/local/cuda-11.3/ ,因为之后安装CUDNN就是要把头文件拷贝到 includelib64
Ubuntu20.04安装CUDNN、Ceres和Colmap_第2张图片
去Nvidia官网下载对应版本的CUDNN:
Ubuntu20.04安装CUDNN、Ceres和Colmap_第3张图片
下载好后 sudo dpkg -i cudnn-local-repo-ubuntu2004-8.4.0.27_1.0-1_amd64.deb 安装即可

使用 cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2 或者 ls | grep cudnn 验证安装是否成功
Ubuntu20.04安装CUDNN、Ceres和Colmap_第4张图片
或者可以使用python输出版本信息:

import torch
from torch.backends import  cudnn
print(torch.backends.cudnn.version())

Ubuntu20.04安装CUDNN、Ceres和Colmap_第5张图片


Tar包安装法

Nvidia官网安装指南

# 下载对应tar包
# 解压缩
tar -xvf cudnn-linux-x86_64-8.x.x.x_cudaX.Y-archive.tar.xz
# copy
sudo cp cudnn-*-archive/include/cudnn*.h /usr/local/cuda-11.3/include
sudo cp -P cudnn-*-archive/lib/libcudnn* /usr/local/cuda-11.3/lib64
sudo chmod a+r /usr/local/cuda-11.3/include/cudnn*.h /usr/local/cuda-11.3/lib64/libcudnn*

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

2. 安装依赖

【知乎链里给的依赖…】

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

官方教程里的依赖: 【按这个来吧… 不然cmake会有报错的】

sudo apt-get install \
    git \
    cmake \
    build-essential \
    libboost-program-options-dev \
    libboost-filesystem-dev \
    libboost-graph-dev \
    libboost-system-dev \
    libboost-test-dev \
    libeigen3-dev \
    libsuitesparse-dev \
    libfreeimage-dev \
    libmetis-dev \
    libgoogle-glog-dev \
    libgflags-dev \
    libglew-dev \
    qtbase5-dev \
    libqt5opengl5-dev \
    libcgal-dev

Ubuntu20.04安装CUDNN、Ceres和Colmap_第6张图片

3. 安装Ceres Solver

这一步所需依赖都包含在上面了

下载源码:Ceres Solver,官方安装教程

git clone https://github.com/ceres-solver/ceres-solver.git

进入到该文件夹,进行编译

mkdir build
cd build
cmake .. # 预编译
make -j20  # 编译 可用 nproc 查看cpu核心数,我的cpu核心数是 20   -j40 / -j16?->(CPU Core 8)
sudo make install # 安装   如果不想安到计算机里也可以不执行这个命令

参考链接:Ubuntu安装Ceres Solver

关于以下问题,暂时没有考虑:

注意,直接编译出来的是静态库.a 如果需要编译动态分享库需要修改CMakeLists.txt中option(BUILD_SHARED_LIBS “Build Ceres as a shared library.” ON)

参考链接:Ubuntu20.04安装Ceres和g2o库
Ubuntu20.04安装CUDNN、Ceres和Colmap_第7张图片
Ubuntu20.04安装CUDNN、Ceres和Colmap_第8张图片
Ubuntu20.04安装CUDNN、Ceres和Colmap_第9张图片

4. 暂时性修改 Anaconda 名称

至于为什么要进行这一步,可能涉及到使用 anaconda的Qt问题… 具体的也不是很了解,可以看看 这个问题

cd ~
ls
mv anaconda3 axx
ls

Ubuntu20.04安装CUDNN、Ceres和Colmap_第10张图片

5. 下载Colmap

下载源码: Colmap主页 ,官方教程

git clone https://github.com/colmap/colmap.git
cd colmap
mkdir build
cd build
cmake ..
make -j
sudo make install
运行Colmap

验证是否安装成功:

colmap -h
colmap gui

cmake .. 的时候出现报错… Oh…
在这里插入图片描述
噗… 于是我们 重新进入到官方教程中查看它要求的依赖进行安装… 应该是少了什么依赖没装…
Ubuntu20.04安装CUDNN、Ceres和Colmap_第11张图片


cmake .. 完成
Ubuntu20.04安装CUDNN、Ceres和Colmap_第12张图片
make -j 完成
Ubuntu20.04安装CUDNN、Ceres和Colmap_第13张图片
sudo make install 完成
Ubuntu20.04安装CUDNN、Ceres和Colmap_第14张图片
Colmap 安装完成
Ubuntu20.04安装CUDNN、Ceres和Colmap_第15张图片

6. 记得把anaconda3的名字改回去

cd ~
ls
mv axx anaconda3
ls

你可能感兴趣的:(colmap)