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
微信二維碼:↓