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 都支持
 
make
sudo make install
 
这样opencv, 以及PTAM三个依赖库全部就安装到了 /usr/local include 和 lib文件夹下了
 
 
 

编译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/

posted @ 2018-05-08 22:39  feifanren  阅读(234)  评论(0编辑  收藏  举报