• ubuntu16.04下笔记本自带摄像头编译运行PTAM


    ubuntu16.04下笔记本自带摄像头编译运行PTAM

    转载请注明链接:https://i.cnblogs.com/EditPosts.aspx?postid=9014147

    个人邮箱:feifanrensheng1@outlook.com

    北航飞控一体化技术重点实验室


    PTAM是视觉slam的一种开源算法,并做了关于增强现实的应用。代码是完全开源的,可以从github上获取:地址

    作者2008年的文章 Parallel tracking and mapping for Small AR workspaces

    支持多个系统上编译运行,可以在作者的项目主页上获取一些在其他系统上的安装教程,作者主页:http://www.robots.ox.ac.uk/~gk/

    我主要尝试在ubuntu16.04上尝试对ptam进行编译安装。

    具体的安装过程

    一  依赖库的安装


    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 libcvd Gvars3有依赖关系,所以一定要按照顺序安装,还有就是他们的版本问题也可能造成安装不成功,所以,推荐采用以下的版本搭配,我经过验证是可以编译成功的,在https://github.com/slowlythinking/PTAM 中获得(其中也包含PTAM的源码,但是存在问题);

    TooN库一定要先安装

    从git上获取这三个库

    git clone https://github.com/slowlythinking/PTAM.git

    然后把其中的PTAM文件夹删除,里面的文件存在问题,我们要重新编译。

    TooN:

    cd TooN
    
    sudo ./configure && make && sudo make install
    
    cd ../

    libcvd:

    cd libcvd
    
    sudo ./configure --without-ffmpeg --without-v4lbuffer --without-dc1394v1 --without-dc1394v2 
    
    sudo make
    
    sudo make install
    
    cd ../

    Gvars3:

    sudo git clone git://github.com/edrosten/gvars.git
    
    cd gvars
    
    sudo ./configure --disable-widgets
    
    sudo make
    
    sudo make install

    最后,使安装后的libs生效

    cd ../
    sudo ldconfig

    opencv的安装可以根据网上的教程自行安装。

    三 编译PTAM


    进入之前的PTAM目录,从github上获取最新的ptam源码

    git clone https://github.com/Oxford-PTAM/PTAM-GPL.git ptam
    cd ptam
    git checkout feature/Linuxmint15
    cd Src
    make

    编译成功会得到CameraCalibrator, PTAM两个可执行文件,CameraCalibrator用于预先对相机进行校正

    四 运行PTAM


    首先你需要下载一个棋盘格图片,执行相机标定,

    进入到上一步的Src目录,执行./CameraCalibrator,根据提示,使用下图右上角的CapFrame取帧,至少取不同角度的4帧以上,取帧结束以后,按下Optimize,计算相机本质矩阵(焦距等相机参数)。包括焦距f,相机中心cx,cy,还有两个畸变系数。

    ./CameraCalibrator

    标定完成后,输出得到一个camera.cfg文件,然后就可以接着执行 ./PTAM

    CameraCalibrator运行完毕之后运行PTAM,开始运行时由于需要初始化地图,需要用户选取两帧作为初始化的数据输入,具体操作步骤为按下空格键,程序会计算出这一帧的FAST角点显示在图像上,然后做轻微平移,再次按下空格键,初始化完毕。界面右上方有Draw AR off和View Map on,作用分别是把虚拟物品(此处为四只眼睛)显示到平面上和显示软件所建地图信息。以下是运行截图


    更改调用外接摄像头

    当然笔记本默认打开的是你的笔记本自带摄像头 /dev/video0

    我在电脑上加了一个usb外接摄像头,罗技c270, 地址为/dev/video1

    要想打开外接摄像头需要对VideoSource_Linux_V4L.cc文件中的内容进行更改,

    string QuickCamFile = GV3::get<string>("VideoSource.V4LDevice", "/dev/video0");
    更改为
    string QuickCamFile = GV3::get<string>("VideoSource.V4LDevice", "/dev/video1");

    这样,当调用程序时打开的就是你的usb外接摄像头。


    参考教程:

    https://blog.csdn.net/shhu1993/article/details/47783077

    https://blog.csdn.net/jinghouxiang/article/details/46998235

    http://blog.sina.com.cn/s/blog_7b83134b0102wabk.html

    ptam的增强版ptamm下载地址

    http://www.robots.ox.ac.uk/~bob/software/ptamm_download.html

    ptamm需要多加一个库lib3ds

    下载地址:http://www.lib3ds.org

     lib3ds的版本为 :lib3ds-20080909.zip.

    但是编译报错

    明天继续解决

  • 相关阅读:
    C++实现数字媒体三维图像渲染
    C++实现数字媒体三维图像变换
    C++实现数字媒体二维图像变换
    C++实现glut绘制点、直线、多边形、圆
    语音识别之梅尔频谱倒数MFCC(Mel Frequency Cepstrum Coefficient)
    Java中的BigDecimal类精度问题
    spring 手册
    bootstrap 参考文档
    springBoot入门文章
    JNDI
  • 原文地址:https://www.cnblogs.com/feifanrensheng/p/9014147.html
Copyright © 2020-2023  润新知