COLMAP linux(docker)配置过程踩坑
建议使用官方提供的docker安装方法来配置Colmap,会容易很多,相对踩的坑也比较少。
- 官方docker镜像地址:https://hub.docker.com/r/colmap/colmap
比较顺利的情况下的流程:
- 拉取镜像
docker pull colmap/colmap:latest
- 进入容器
docker run --gpus all -w /working -v $1:/working -it colmap/colmap:latest
- 输入’colmap’,输出命令指引即成功。
如果不成功可能出现的问题有:
- 缺少libQt5Core.so.5动态库错误: colmap: error while loading shared libraries: libQt5Core.so.5: cannot open shared object file: No such file or directory 。
解决:该问题很异常,可以从过执行以下命令解决:strip --remove-section=.note.ABI-tag /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
,可参考Link - CUDA运行出错: forward compatibility was attempted on non supported HW 。
解决:这个主要是因为pull最新的colmap docker镜像,使用的CUDA版本过高,过于宿主机NVIDIA驱动支持的最高版本(即nvidia-smi显示的CUDA版本)导致无法调用CUDA。解决方法就是降低CUDA版本,可参考Link。- 可以从docker hub中找低版本CUDA的colmap镜像,但可能找不到,因此可能需要自己从Dockerfile中build。
- 参考https://github.com/colmap/colmap/blob/main/docker中的Dockerfile,将其中的NVIDIA_CUDA_VERSION改为更低的版本,但需要注意该CUDA版本的Ubuntu镜像可以找到,可以去 nvidia/cuda docker hub中查找。
- 最后build即可:
sudo docker build -t="colmap:lateset" .