zoukankan      html  css  js  c++  java
  • ArUco一个微型现实增强库的介绍及视觉应用(一)

    ArUco----一个微型现实增强库的介绍及视觉应用(一)

    一、ArUco简介

      ArUco是一个开源的微型的现实增强库,目前好像已经集成在OpenCV3.0以上的版本内了,它除了用于现实增强,还很用于实现一些机器视觉方面的应用,上图中的波士顿动力也曾用此方法用于Atlas的视觉定位,下面是两个重要的网址:

      ArUco下载地址:https://sourceforge.net/projects/aruco/files/(可以下载2.0.19或3.0.0)

      ArUco的Marker生成网址:http://terpconnect.umd.edu/~jwelsh12/enes100/markergen.html(可以定制Marker的size、ID以及Padding)

      ArUco开源库的几个特点如下:

        1.基于C++;

        2.仅依赖于OpenCV(≥2.4.9)和Eigen3(源码中已经包含);

        3.BDS开源。

    二、ArUco安装

      本示例以Linux(Ubuntu14.04)为例进行安装和使用说明。按照上节地址下载完成源码后放在Linux系统自己的某个文件夹下面,然后进行安装,具体步骤为:

      1. cd aruco-2.0.19(进入目录);

      2. mkdir build(建立编译文件夹);

      3.cd build(进入文件夹);

      4.cmake ..

      5.make -j4

      至此编译安装完成,主目录树如下:

    ├── matlab
    ├── src
    │   └── markerlabelers
    ├── tests
    ├── utils
    ├── utils_calibration
    ├── utils_gl
    └── utils_markermap
    

      src----源码;

      utils----使用示例;

      utils_calibration----相机校准程序;

      utils_markermap----Marker Map使用示例;

      utils_gl----本库及OpenGL的使用;

           utils----单独视觉标志检测示例;

    三、ArUco使用

      该库主要的类主要有:

      aruco::Marker----视觉标志类; 
      aruco::MarkerDetector----视觉标志检测类;
      aruco::MarkerPoseTracker----视觉标志姿态预估类;
      aruco::MarkerMap-----视觉标志地图类; 
      aruco::MarkerMapPoseTracker----视觉标志地图姿态预估类;
      aruco::CvDrawingUtils----绘图类;

    四、利用ArUco对相机进行校准

      

    视觉校准标准标志地图

      在文件夹/aruco-2.0.19/utils_calibration内,可以看到:aruco_calibration_board_a4.pdf,打印出来就可以用于相机的校准了,具体步骤如下:

    进入刚才编译完成的文件夹:/aruco-2.0.19/build/utils_calibration,该相机校准支持图片方式、录像方式和实时模式(本文以后者为例),在此文件夹下,输入命令:

    /aruco-2.0.19/build/utils_calibration$ ./aruco_calibration live out_camera_calibration.yml -size "0.04"

    几个参数解释如下:

    live ----实时模式;

    out_camera_calibration.yml ----校准参数输出文件名称;

    -size "0.04"----校准标志的尺寸(单位:m)

    正常会出现如下信息:
    0.04 500 8e-05
    Press 'a'' to add current view to the pool of images used for calibration
    Press 'c' to perform calibration
    Press 's' to start/stop capture

    此时按照指示输入字母s开始图像捕捉,每次找到合适的视角后就点击a,直到所有的视角都完成后输入c开始相机校准,最后效果如下图所示:

      至此,我们对这个开源库有了基本的了解,下一篇将举一个具体的使用的代码供参考。

     <-- 本篇完 -->

    欢迎留言、私信、邮箱、微信等任何形式的技术交流。

    作者信息:

    名称:Shawn

    邮箱:zhanggx0102@163.com

    微信二维码:↓

              

  • 相关阅读:
    步步为营 SharePoint 开发学习笔记系列总结
    Type 关键字解读
    C# 利用反射方便取得DbDataReader里的值
    WCF 开发学习笔记
    用状态模式实现状态机工作流
    步步为营UML建模系列总结
    策略模式实现支持多种类数据库的DBHelp
    步步为营 .NET 设计模式学习笔记系列总结
    BPEL 语言介绍和应用
    步步为营 .NET 代码重构学习笔记系列总结
  • 原文地址:https://www.cnblogs.com/shawn0102/p/7911735.html
Copyright © 2011-2022 走看看