ubuntu14.04+opencv2.4.x 的PTAM配置
PTAM 是visualSLAM的一种算法,不同于SLAM的实现,它将摄像机跟踪和地图构建分离,仅使用初始地图构建及借用bundle的实现来实现每增添一个新的场景,便实时计算摄像机的位置。这一算法,为AR领域带来的革新,使AR真正进入虚拟与真实交互的新篇章。
接下来,我将结合自己的实践,为大家介绍如何在Linux下安装PTAM。
Opencv版的PTAM源码可见:
https://github.com/BeLioN-github/PTAM
PTAM源码下载下来后,可以再根目录下看到PTAM的源码文件,确认有VideoSource_Linux_Opencv.cc,, Makefile文件里有VideoSource_Linux_Opencv.O等文件。
在根目录下,我们还可以看到有一个 3rdparty.old的文件夹,这个文件夹里有TooN, libcvd,gvars3等PTAM的依赖库。
然而,这些库都太老了,以至于笔者怎么配置都配不好。
只好,从git上讲这三个依赖库分别下载下来(git上的源码还是很新的),分别进行编译。
下面,具体介绍安装过程:
1 安装 build工具
sudo apt-get update
sudo apt-get install build-essential cmake pkg-config
2 更新C++库
sudo apt-get install libboost-dev libboost-doc
3 安装线性代数的低级库
sudo apt-get install liblapack-dev libblas-dev
4 图像IO 和 摄像机驱动
sudo apt-get install libjpeg-dev libpng-dev libtiff-dev libdc1394-22-dev libv4l-dev
5 视频IO, 编解码和 视频显示库
sudo apt-get install libavcodec-dev libavformat-dev libavutil-dev libpostproc-dev libswscale-dev libavdevice-dev libsdl-dev
sudo apt-get install libgtk2.0-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev
6 OpenGL
sudo apt-get install mesa-common-dev libgl1-mesa-dev libglu1-mesa-dev freeglut3-de
之后,安装PTAM的依赖库
TooN库一定要先安装
创建一个目录:
sudo mkdir PTAM-work
cd PTAM-work
TooN:
sudo git clone git://github.com/edrosten/TooN.git
cd TooN
sudo ./configure && make && sudo make install
cd ../
libcvd:
sudo git clone git://github.com/edrosten/libcvd.git
cd libcvd
sudo ./configure --without-ffmpeg --without-v4lbuffer --without-dc1394v1 --without-dc1394v2
make
sudo make install
cd ../
Gvars3:
sudo git clone git://github.com/edrosten/gvars.git
cd gvars
sudo ./configure --disable-widgets
make
sudo make install
cd ../
最后 是的安装后的libs生效
sudo ldconfig
Opencv的安装
sudo mkdir Opencv
cd Opencv
sudo apt-get update
1 下载跟新build环境
sudo
apt-get
install
build-essential libgtk2.0-dev libjpeg-dev libtiff4-dev libjasper-dev libopenexr-dev cmake python-dev python-numpy python-tk libtbb-dev libeigen3-dev yasm libfaac-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev libx264-dev libqt4-dev libqt4-opengl-dev sphinx-common texlive-latex-extra libv4l-dev libdc1394-22-dev libavcodec-dev libavformat-dev libswscale-dev default-jdk ant libvtk5-qt4-dev
2 获取opencv源码
sudo wget http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/2.4.9/opencv-2.4.9.zip unzip opencv-2.4.9.zip cd opencv-2.4.9
3 配置安装
sudo mkdir build
cd build
cmake -D WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D BUILD_EXAMPLES=ON -D WITH_QT=ON -D WITH_OPENGL=ON -D WITH_VTK=ON ..
确认 ffmpeg v4l 都支持
编译PTAM
进入PTAM-work目录
将之前提到的, git 上下载的PTAM-opencv源码放在这个下面
进入到根目录下
cp Build/Linux/* .
这一步是将Linux下的文件copy到根目录下,一起编译
最后确认Tracker.cc是否有 #include<unistd.h>, 如果没有加上
最后 直接make即可
效果图:
左一, 是运行CamraCalibrator程序,标定摄像机的样例图。 右边两个是运行PTAM程序的效果t
参考:
http://www.samontab.com/web/2014/06/installing-opencv-2-4-9-in-ubuntu-14-04-lts/
http://hustcalm.me/blog/2013/09/27/ptam-compilation-on-linux-howto/