一、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   至此编译安装完成,主目录树如下:  
1
2
3
4
5
6
7
8
├── 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开始相机校准,最后效果如下图所示:     至此,我们对这个开源库有了基本的了解,下一篇将举一个具体的使用的代码供参考。   <-- 本篇完 -->