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
微信二维码:↓