colmap在WLS2中编译
colmap是开源的三维重建的框架,本文介绍在windows10系统的子系统ubuntu配准、编译colmap。
环境:64位,WIN10(有无GPU均可),WSL2
第一步:安装WSL2
wsl是Windows10的Linux子系统,wsl2相比wls有完整的linux内核、托管VM、完全的系统调用兼容性、支持GPU。(本人在wsl配置、编译过,没有成功,各种错误)。
安装wls2必备条件:
windows10,19041或者更高
启用"Linux的Windows子系统"
启用"虚拟机平台"
启用"Linux的Windows子系统"和启用“虚拟机平台”:控制面板->程序->程序与功能->启用或关闭windows功能
开启wsl2子系统的办法:
以管理员身份打开PowerShell并运行:
wsl --set-default-version 2
安装linux子系统:
打开Microsoft Store,并选择你偏好的 Linux 分发版,本文选择的是ubuntu
第二步:可视化ubuntu子系统
下载、安装vcxsrv软件:
VcXsrv是微软Windows的开源显示服务器,可以运行安装了WSL(Linux子系统)的Linux GUI程序。
VCXSRV
sourceforge.net
安装完成后,运行XLaunch,选择one large window(各自喜好,默认选择也行):
选择下一页:
继续下一页:
选中Disable access control->下一页->完成。
ubuntu配置:
1.更新sources.list
sudo apt-get update
apt-get upgrade
2.安装 xfce4 包
在安装过程中,可以选择默认的显示管理器,可以选择显示Unity登录界面的lightdm显示管理器;本文选择默认的显示管理器
sudo apt-get install xfce4
3.安装完成后,输入相关配置(下面代码),即可进入可视化:
export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2}'):0
startxfce4
第三步:安装colmap编译必备的包
Colmap Installation from Source install dependencies
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 \
libgoogle-glog-dev \
libgflags-dev \
libglew-dev \
qtbase5-dev \
libqt5opengl5-dev \
libcgal-dev
CGAL Qt5 installation
sudo apt-get install libcgal-qt5-dev
ceres,安装编译ceres2.0.0
Ceres Solver
(1).安装编译ceres必备的包,有些包已经安装过了,就不用重复安装了。
CMake
sudo apt-get install cmake
google-glog + gflags
sudo apt-get install libgoogle-glog-dev libgflags-dev
BLAS & LAPACK
sudo apt-get install libatlas-base-dev
Eigen3
sudo apt-get install libeigen3-dev
SuiteSparse and CXSparse (optional)
sudo apt-get install libsuitesparse-dev
(2).安装ceres
cd ceres-solver
mkdir ceres-bin
cd ceres-bin
cmake ..
make -j3 #后面的数字是线程数,根据自己电脑的环境配置
make install
安装colmap
colmap
github.com
cd colmap
mkdir build
cd build
cmake ..
make -j8 #数字是线程数
sudo make install
第四步,运行colmap
如果一切顺利,那就值得恭喜!本人编译的时候经历过数不清的错误,常见的错误见下一小节!
运行colmap
colmap -h
colmap gui
常见的错误
c++: fatal error:
c++: fatal error: Killed signal terminated program cc1plus · Issue #2775 · mlpack/mlpack
解决c++: internal compiler error: 已杀死 (program cc1plus)
创建临时分区:
sudo dd if=/dev/zero of=/swapfile bs=64M count=32
#count的大小就是增加的swap空间的大小,64M是块大小,所以空间大小是bs*count=2048MB
sudo mkswap /swapfile
chmod 0600 /swapfile
sudo swapon /swapfile
释放空间命令:
swapoff -a