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 OpenGLsudo 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-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/
ARVR技術交流羣:129340649
歡迎加入!