colmap安装问题汇总

问题目录
问题0、没有root权限怎么安装colmap?
问题1、ERROR: SiftGPU not fully supported/Could not connect to any X display
问题2、Cannot specify include directories for imported target "freeimage::FreeImage".
问题3、could not find ZL4
问题4、Unable to locate package nvidia-cuda-toolkit-gcc
问题5、需要设置CMAKE_CUDA_ARCHITECTURES
问题6、colmap安装 libfreeimage.so: undefined reference to TIFFFieldName@LIBTIFF_4.0

本文解决在Linux下安装COLMAP时候遇到的如下问题:没有root权限怎么安装colmap?ERROR: SiftGPU not fully supported/Could not connect to any X display。Cannot specify include directories for imported target “freeimage::FreeImage”。could not find ZL4。Unable to locate package nvidia-cuda-toolkit-gcc。需要设置CMAKE_CUDA_ARCHITECTURES。

问题0、没有root权限怎么安装colmap?

问题:如果你在实验室里面,发现自己没有权限,无法安装colmap的依赖包。

解决方案:跑到实验室管理账号的大师兄(管理员)面前嚎啕大哭!诉求:1、师兄帮我装colmap。2、跪到地上求师兄给个临时的root权限,不给就赖着不走,抱着他的腿使劲哭。3、把需要root命令的地方发给大师兄、管理员,让他用sudo权限执行这几条命令。4、最后,记得客客气气的夸师兄,并请师兄吃好吃的。

问题1、ERROR: SiftGPU not fully supported/Could not connect to any X display

问题:今天是2023年10月7日,COLMAP已经支持GPU计算一些步骤,当设备包含显卡的时候,通过sudo apt install colmap不能正常使用,导致出现SiftGPU不支持、或者需要显示器的支持。

原因:是sudo apt install colmap导致的,这种预编译的包与自己的设备显卡不适配。

解决方案:卸载apt install的colmap,自己编译一遍。卸载:sudo apt remove colmap,自己安装参见colmap tutorial以及我下文的踩坑记录。

参考:

问题2、Cannot specify include directories for imported target “freeimage::FreeImage”.

git clone https://github.com/colmap/colmap.git
cd colmap
git checkout dev
mkdir build
cd build
cmake .. -GNinja
ninja
sudo ninja install

问题:在Linux上安装colmap的时候,运行到cmake .. -GNinja这一句的时候,出现:Cannot specify include directories for imported target “freeimage::FreeImage”。但是,实际上freeimage已经安装好了。(如果没有安装,就sudo apt-get install libfreeimage3 libfreeimage-dev

定位:在git clone下得colmap/cmake/FindFreeImage.cmake文件中,第96-98行:

	target_include_directories(
        freeimage::FreeImage INTERFACE ${FREEIMAGE_INCLUDE_DIRS})
    target_link_libraries(
        freeimage::FreeImage INTERFACE ${FREEIMAGE_LIBRARIES})

可能原因:cmake版本在3.11之前,target_include_directories命令有一些问题,需要升级cmake版本。通过cmake -version命令查看当前版本。

升级cmake:不要使用apt update cmake的方法,会导致异常。建议在自己的目录下安装新的cmake包,作为优先的cmake路径。

# 下载cmake源码包
wget https://github.com/Kitware/CMake/releases/download/v3.21.4/cmake-3.21.4-linux-x86_64.tar.gz
# 解压
tar -xzvf cmake-3.21.4-linux-x86_64.tar.gz

将下载的cmake-3.21.4文件夹下的/bin加入PATH中,并且放到以前的PATH之前。Linux搜索cmake可执行文件的时候会沿着PATH的路径挨个寻找,如果先遇到cmake-3.21.3/bin路径下的cmake,就会直接使用cmake-3.21,相当于升级了cmake。

cd cmake-3.21.4-linux-x86_64/bin # 得到cmake-3.21的路径
pwd # 查看当前路径,我的路径是/data/zwn21/software/cmake/cmake-3.21.4-linux-x86_64/bin
export PATH=/data/zwn21/software/cmake/cmake-3.21.4-linux-x86_64/bin:$PATH
# 临时的方法,如果有必要就把这句话放到.bashrc文件中。
# where cmake的输出,看到自己的cmake目录排在前面,证明使用了新版本cmake
/data/zwn21/software/cmake/cmake-3.21.4-linux-x86_64/bin/cmake
/usr/bin/cmake

# cmake -version的输出,确实是新版本了。
cmake version 3.21.4

CMake suite maintained and supported by Kitware (kitware.com/cmake).

本问题的参考:

问题3、could not find ZL4

问题:

CMake Error at cmake/FindLZ4.cmake:91 (message):
  Could not find LZ4
Call Stack (most recent call first):
  cmake/FindDependencies.cmake:18 (find_package)
  CMakeLists.txt:86 (include)

原因:可能还没有安装zl4,也可能是没在路径中,找不到这个库。

解决方案:装上它,sudo apt -y install liblz4-dev

参考:

问题4、Unable to locate package nvidia-cuda-toolkit-gcc

问题:在按照colmap教程安装cuda依赖的过程中,出现Unable to locate package nvidia-cuda-toolkit-gcc的问题。

# 命令
sudo apt-get install -y \
    nvidia-cuda-toolkit \
    nvidia-cuda-toolkit-gcc
# 输出
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package nvidia-cuda-toolkit-gcc

解决方案:未必是自己没安装好,只是自己的路径不够完整。

export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH

参考:

问题5、需要设置CMAKE_CUDA_ARCHITECTURES

问题:在cmake .. -GNinja的过程中,需要

CMake Error at cmake/FindDependencies.cmake:125 (message):
  You must set CMAKE_CUDA_ARCHITECTURES to e.g.  'native', 'all-major', '70',
  etc.  More information at
  https://cmake.org/cmake/help/latest/prop_tgt/CUDA_ARCHITECTURES.html
Call Stack (most recent call first):
  CMakeLists.txt:86 (include)

解决方案:查看自己显卡的版本号,并按照版本号添加CMAKE_CUDA_ARCHITECTURES的数值。
版本号参见该链接:You must set CMAKE_CUDA_ARCHITECTURES to e.g. ‘native’, ‘all-major’, ‘70’

我是20系的显卡,最后执行命令:
cmake .. -GNinja -DCMAKE_CUDA_ARCHITECTURES='75'
参考:

我没有别的问题了,最后记得请师兄和帮忙的朋友吃好吃的。

问题6、colmap安装 libfreeimage.so: undefined reference to TIFFFieldName@LIBTIFF_4.0

原issue链接 https://github.com/colmap/colmap/issues/188

colmap make的时候出现一大片类似的报错

libfreeimage.so: undefined reference to `TIFFFieldName@LIBTIFF_4.0'

这个其实大概率是因为安装了anaconda,所以环境变量PATH里anaconda的搜索在/usr/lib/x86_64-linux-gnu之前,因此导致使用的是anaconda的QT5(图片来自github)

ss

解决方法是在colmap根目录的CMakeLists.txt里添加

SET(CMAKE_PREFIX_PATH "/usr/lib/x86_64-linux-gnu/cmake")

另一种解决办法是修改当前terminal的PATH变量

首先

echo $PATH

将返回值中不包含anaconda的部分复制出来,然后export就行,比如我的返回值是

/home/kunbpc/Installed/Anaconda3/bin:/home/kunbpc/Installed/Anaconda3/condabin:/usr/local/cuda/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

那么我export的命令就是 

export PATH=/usr/local/cuda/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

然后重新做就OK

  • 15
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 要在Linux上安装COLMAP,您可以按照以下步骤进行操作: 1. 首先,您需要下载COLMAP的源代码。您可以从官方网站(https://colmap.github.io/)下载最新版本的源代码。 2. 解压缩下载的源代码文件,并进入解压缩后的目录。 3. 接下来,您需要安装一些依赖项。您可以使用以下命令安装这些依赖项: sudo apt-get install cmake 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 4. 在安装完所有依赖项后,您可以使用以下命令编译和安装COLMAP: mkdir build cd build cmake .. make sudo make install 5. 安装完成后,您可以使用以下命令运行COLMAPcolmap 希望这可以帮助您安装COLMAP。 ### 回答2: Colmap是一个非常强大的计算机视觉软件,它可以识别照片中的物体并将它们以三维形式呈现出来。要在Linux系统上安装Colmap,请按照以下步骤: 1. 为了安装Colmap,你需要先安装一些必要的依赖项。打开终端并输入以下命令:sudo apt-get update sudo apt-get install git cmake build-essential libboost-dev libboost-program-options-dev libboost-serialization-dev libboost-filesystem-dev libqt5opengl5-dev libpng-dev libjpeg-dev libtiff-dev libglu1-mesa-dev libglew-dev libglfw3-dev libxi-dev libxrandr-dev libx11-dev libatlas-base-dev libeigen3-dev 2. 下载Colmap源代码。你可以使用以下命令将源代码克隆到你的系统中:git clone https://github.com/colmap/colmap.git 3. 进入源代码文件夹,输入以下命令进行编译:cd colmap mkdir build cd build cmake .. make -j4 # 使用4个线程进行编译 sudo make install 4. 安装完成后,输入“colmap”命令来启动Colmap程序。 以上就是在Linux系统上安装Colmap的步骤。需要注意的是,在安装过程中可能会遇到各种各样的问题,如缺少依赖项、编译错误等等。如果你无法解决这些问题,可以在Colmap的官方网站上查找相关文档或提交问题报告。 ### 回答3: Colmap是一种开源的三维重建软件,它在计算机视觉和图像处理领域应用广泛,并且在Linux系统上支持良好。本文将介绍如何在Linux上安装Colmap。 1.准备环境 在安装Colmap之前,需要保证Linux系统中已经安装好以下软件: - cmake - eigen - gflags - glew - glog - opencv - protobuf - zlib 如果没有安装,可以使用以下命令进行安装: sudo apt-get install cmake libeigen3-dev libgflags-dev libglew-dev libgoogle-glog-dev libopencv-dev protobuf-compiler zlib1g-dev 2.下载Colmap源代码 可以从Colmap的官方网站或者Github仓库中下载源代码。此处假设将源代码下载到/user/local/src目录下。 cd /usr/local/src git clone https://github.com/colmap/colmap.git 3.编译和安装Colmap 进入Colmap源代码目录,并创建一个build目录,然后执行cmake和make命令编译和安装Colmap。 cd colmap mkdir build cd build cmake .. make sudo make install 4.测试Colmap安装成功 在Linux终端执行以下命令,如果输出Colmap的版本号,则说明Colmap已经安装成功。 colmap -h 总之,在Linux上安装Colmap需要先准备好环境,然后从官网或者Github仓库下载源代码,最后使用cmake和make进行编译和安装。简单易懂,并且很方便实现。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FL1623863129

你的打赏是我写文章最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值