ArUco与AprilTag简介
無(wú)論是aruco還是apriltag二維碼標(biāo)定板檢測(cè)的思路是提取一塊四邊形的區(qū)域,這個(gè)區(qū)域具有比周圍亮度更低的特點(diǎn)。這個(gè)思路的主要優(yōu)點(diǎn)是盡可能多的檢測(cè)出所有可能的二維碼,但是根據(jù)采集數(shù)據(jù)的環(huán)境極有可能出現(xiàn)異常線段,然后再根據(jù)二維碼的編碼值可以對(duì)野值進(jìn)行剔除實(shí)現(xiàn)識(shí)別與定位。
ArUco
ArUco是一個(gè)開(kāi)源的小型的AR虛擬現(xiàn)實(shí)增強(qiáng)庫(kù),已經(jīng)集成在OpenCV3.0以上的版本,它除了用于現(xiàn)實(shí)增強(qiáng),還很用于實(shí)現(xiàn)一些機(jī)器視覺(jué)方面的應(yīng)用。
?ArUco下載地址:https://sourceforge.net/projects/aruco/files/
?ArUco開(kāi)源庫(kù)的幾個(gè)特點(diǎn)如下:?
1.基于C++;?
2.僅依賴于OpenCV(≥2.4.9)和Eigen3;?
3.BDS開(kāi)源。??
一個(gè)ArUco標(biāo)記外圍都有一組黑色邊框,同時(shí)內(nèi)部有著確定該標(biāo)記ID的二維矩陣組合而成。黑色的邊框能加速標(biāo)記在圖像中的檢測(cè)速度,內(nèi)部的二維編碼能唯一識(shí)別該標(biāo)記,同時(shí)進(jìn)行錯(cuò)誤檢測(cè)和錯(cuò)誤修復(fù)。標(biāo)記的大小確定了內(nèi)部矩陣的大小,例如4x4大小的標(biāo)記有16個(gè)bit
aruco標(biāo)志在環(huán)境中通常存在旋轉(zhuǎn),然而,檢測(cè)的過(guò)程需要確定旋轉(zhuǎn)的初始方向,因此,每一個(gè)角點(diǎn)在二維編碼的過(guò)程中就會(huì)被唯一確定。
標(biāo)記字典是一組被用來(lái)進(jìn)行特殊應(yīng)用的標(biāo)記,它大大簡(jiǎn)化了每個(gè)marker二維碼列表。字典的主要屬性就是字典的大小和標(biāo)志的大小:
字典大小:合成字典的marker的數(shù)量 (50 100 250 1000)
標(biāo)志大小:marker的大小(bits 16 25 49 ...)
aruco模塊中包含了一些已經(jīng)預(yù)先定義好不同大小和數(shù)量的字典集
Aruco標(biāo)記物生成
在檢測(cè)之前,往往我們需要打印一些marker放到我們的環(huán)境中。Marker圖案我們能通過(guò)drawMarker函數(shù)產(chǎn)生:
Aruco標(biāo)記物檢測(cè)
在包含ArUco標(biāo)志的圖片中,檢測(cè)過(guò)程通常能返回被檢測(cè)到的marker序列。每一個(gè)檢測(cè)的Marker結(jié)果包括:
marker四個(gè)角點(diǎn)在圖片中的位置
marker的id
Marker檢測(cè)過(guò)程主要有兩個(gè)步驟:
檢測(cè)Marker的候選區(qū)域。
通過(guò)分析二維碼確定marker
在opencv的ArUco模塊中,主要通過(guò)detectMarkers()函數(shù)來(lái)完成,這個(gè)函數(shù)是整個(gè)模塊中最重要的函數(shù)了,因?yàn)楹罄m(xù)的函數(shù)處理幾乎都依賴于該函數(shù)的檢測(cè)結(jié)果。
位姿估計(jì)
當(dāng)獲取得到Marker的識(shí)別結(jié)果之后,就是確定相機(jī)姿態(tài)了。為了確定相機(jī)姿態(tài),首先得知道相機(jī)的標(biāo)定參數(shù),內(nèi)參和畸變。在估計(jì)每個(gè)ArUco標(biāo)記的時(shí)候,我們能單獨(dú)估計(jì)每個(gè)marker。如果你希望能從一系列的marker中估計(jì)一個(gè)pose,此時(shí)就需要ArUco Boards.
相機(jī)相對(duì)于marker的姿態(tài)是一個(gè)3d的旋轉(zhuǎn),從marker坐標(biāo)系到camera坐標(biāo)系。這個(gè)通過(guò)一個(gè)旋轉(zhuǎn)和一個(gè)平移向量和描述。
標(biāo)記坐標(biāo)系統(tǒng)是假設(shè)z軸是朝外的,x是朝右邊,y朝前進(jìn)方向。標(biāo)志角點(diǎn)在左上角點(diǎn)。
該庫(kù)主要的類主要有:?
aruco::Marker----視覺(jué)標(biāo)志類;?
aruco::MarkerDetector----視覺(jué)標(biāo)志檢測(cè)類;?
aruco::MarkerPoseTracker----視覺(jué)標(biāo)志姿態(tài)預(yù)估類;
aruco::MarkerMap-----視覺(jué)標(biāo)志地圖類;
aruco::MarkerMapPoseTracker----視覺(jué)標(biāo)志地圖姿態(tài)預(yù)估類;?
aruco::CvDrawingUtils----繪圖類;
注意:
aruco中的字典比如DICT_4X4_50是什么意思?
每個(gè)字典式表示位數(shù)和包含的標(biāo)記數(shù) 標(biāo)準(zhǔn)的標(biāo)記5×5位,0最小距離,4*4位表示marker標(biāo)記要被劃分的位數(shù),邊界為1比特位,所以4×4的marker識(shí)別時(shí)候會(huì)被分割為6×6的格子,最后面的數(shù)字表示字典里包含marker的個(gè)數(shù),比如50個(gè)。
AprilTag
AprilTag是一個(gè)視覺(jué)基準(zhǔn)系統(tǒng),可用于各種任務(wù),包括增強(qiáng)現(xiàn)實(shí)、機(jī)器人和攝像機(jī)校準(zhǔn)。AprilTag檢測(cè)可以計(jì)算標(biāo)定板相對(duì)于相機(jī)的精確三維位置、方向和id。AprilTag庫(kù)是用C實(shí)現(xiàn)的,沒(méi)有外部依賴關(guān)系。該庫(kù)可以很容易地包含在其他應(yīng)用程序中,也可以移植到嵌入式設(shè)備上。即使在手機(jī)級(jí)處理器上也可以實(shí)現(xiàn)實(shí)時(shí)性能。
AprilTag的地址:
https://github.com/AprilRobotics/apriltag
?AprilTag開(kāi)源庫(kù)的幾個(gè)特點(diǎn)如下:?
1.基于C;?
2.不依賴其他第三方庫(kù);?
3.BDS開(kāi)源。?
AprilTags在概念上類似于QR碼,因?yàn)樗鼈兪且环N二維條形碼。然而,它們被設(shè)計(jì)成編碼更小的數(shù)據(jù)有效載荷(4到12位之間),允許它們更可靠地被檢測(cè)到,并且可以從更長(zhǎng)的范圍內(nèi)被檢測(cè)到。此外,他們是為高定位精度設(shè)計(jì)的,用戶可以計(jì)算精確的AprilTag相對(duì)于相機(jī)三維位置。
所以一般AprilTag用于機(jī)器人領(lǐng)域比較多。
AprilTag的種類
AprilTag的種類叫家族(family),有下面的幾種:
TAG16H5 → 0 to 29
TAG25H7 → 0 to 241
TAG25H9 → 0 to 34
TAG36H10 → 0 to 2319
TAG36H11 → 0 to 586
ARTOOLKIT → 0 to 511
也就是說(shuō)TAG16H5的家族(family)有30個(gè),每一個(gè)都有對(duì)應(yīng)的id,從0~29。
相關(guān)的論文
AprilTag: A robust and flexible visual fiducial system, ICRA 2011;?
AprilTag 2: Efficient and robust fiducial detection, IROS 2016;?
One useful application of AprilTags is camera calibration (AprilCal: Assisted and repeatable camera calibration, IROS 2013).
兩者優(yōu)劣比較
Aruco(在OpenCV中實(shí)現(xiàn))
優(yōu)點(diǎn)
易于設(shè)置(使用現(xiàn)成的aruco標(biāo)記生成器、opencv和ros實(shí)現(xiàn)等)
更少的錯(cuò)誤檢測(cè)(使用默認(rèn)參數(shù))
缺點(diǎn)
較新版本的aruco是GPL許可的,因此opencv在aruco還是BSD的時(shí)候仍然停留在舊的實(shí)現(xiàn)上。
更容易在中長(zhǎng)距離旋轉(zhuǎn)模糊
更多適配參數(shù)
計(jì)算量更大
AprilTag(在AprilTag? ros中實(shí)現(xiàn))
優(yōu)點(diǎn)
更少的適配參數(shù)
即使在遠(yuǎn)距離也能很好地工作
美國(guó)宇航局使用
更靈活的標(biāo)記設(shè)計(jì)(例如,標(biāo)記可以不一定是正方形)
計(jì)算量較少
缺點(diǎn)
不太直接地進(jìn)行配置和設(shè)置(沒(méi)有opencv實(shí)現(xiàn)AFAIK,只有ros實(shí)現(xiàn),獲得標(biāo)記的步驟稍微多一些)
更多錯(cuò)誤檢測(cè)(使用默認(rèn)參數(shù))
接下來(lái)本公眾號(hào)將從opencv的中aruco模塊中給的教程從理論到實(shí)踐進(jìn)行講解。敬請(qǐng)期待ing...
資源
三維點(diǎn)云論文及相關(guān)應(yīng)用分享
【點(diǎn)云論文速讀】基于激光雷達(dá)的里程計(jì)及3D點(diǎn)云地圖中的定位方法
3D目標(biāo)檢測(cè):MV3D-Net
三維點(diǎn)云分割綜述(上)
3D-MiniNet: 從點(diǎn)云中學(xué)習(xí)2D表示以實(shí)現(xiàn)快速有效的3D LIDAR語(yǔ)義分割(2020)
win下使用QT添加VTK插件實(shí)現(xiàn)點(diǎn)云可視化GUI
JSNet:3D點(diǎn)云的聯(lián)合實(shí)例和語(yǔ)義分割
大場(chǎng)景三維點(diǎn)云的語(yǔ)義分割綜述
PCL中outofcore模塊---基于核外八叉樹(shù)的大規(guī)模點(diǎn)云的顯示
基于局部凹凸性進(jìn)行目標(biāo)分割
基于三維卷積神經(jīng)網(wǎng)絡(luò)的點(diǎn)云標(biāo)記
點(diǎn)云的超體素(SuperVoxel)
基于超點(diǎn)圖的大規(guī)模點(diǎn)云分割
更多文章可查看:點(diǎn)云學(xué)習(xí)歷史文章大匯總
SLAM及AR相關(guān)分享
【開(kāi)源方案共享】ORB-SLAM3開(kāi)源啦!
【論文速讀】AVP-SLAM:自動(dòng)泊車系統(tǒng)中的語(yǔ)義SLAM
【點(diǎn)云論文速讀】StructSLAM:結(jié)構(gòu)化線特征SLAM
SLAM和AR綜述
常用的3D深度相機(jī)
AR設(shè)備單目視覺(jué)慣導(dǎo)SLAM算法綜述與評(píng)價(jià)
SLAM綜述(4)激光與視覺(jué)融合SLAM
Kimera實(shí)時(shí)重建的語(yǔ)義SLAM系統(tǒng)
SLAM綜述(3)-視覺(jué)與慣導(dǎo),視覺(jué)與深度學(xué)習(xí)SLAM
易擴(kuò)展的SLAM框架-OpenVSLAM
高翔:非結(jié)構(gòu)化道路激光SLAM中的挑戰(zhàn)
SLAM綜述之Lidar SLAM
基于魚(yú)眼相機(jī)的SLAM方法介紹
往期線上分享錄播匯總
第一期B站錄播之三維模型檢索技術(shù)
第二期B站錄播之深度學(xué)習(xí)在3D場(chǎng)景中的應(yīng)用
第三期B站錄播之CMake進(jìn)階學(xué)習(xí)
第四期B站錄播之點(diǎn)云物體及六自由度姿態(tài)估計(jì)
第五期B站錄播之點(diǎn)云深度學(xué)習(xí)語(yǔ)義分割拓展
第六期B站錄播之Pointnetlk解讀
[線上分享錄播]點(diǎn)云配準(zhǔn)概述及其在激光SLAM中的應(yīng)用
[線上分享錄播]cloudcompare插件開(kāi)發(fā)
[線上分享錄播]基于點(diǎn)云數(shù)據(jù)的?Mesh重建與處理
[線上分享錄播]機(jī)器人力反饋遙操作技術(shù)及機(jī)器人視覺(jué)分享
[線上分享錄播]地面點(diǎn)云配準(zhǔn)與機(jī)載點(diǎn)云航帶平差
如果你對(duì)本文感興趣,請(qǐng)點(diǎn)擊“原文閱讀”獲取知識(shí)星球二維碼,務(wù)必按照“姓名+學(xué)校/公司+研究方向”備注加入免費(fèi)知識(shí)星球,免費(fèi)下載pdf文檔,和更多熱愛(ài)分享的小伙伴一起交流吧!
以上內(nèi)容如有錯(cuò)誤請(qǐng)留言評(píng)論,歡迎指正交流。如有侵權(quán),請(qǐng)聯(lián)系刪除
掃描二維碼
? ? ? ? ? ? ? ? ? ?關(guān)注我們
讓我們一起分享一起學(xué)習(xí)吧!期待有想法,樂(lè)于分享的小伙伴加入免費(fèi)星球注入愛(ài)分享的新鮮活力。分享的主題包含但不限于三維視覺(jué),點(diǎn)云,高精地圖,自動(dòng)駕駛,以及機(jī)器人等相關(guān)的領(lǐng)域。
分享及合作:群主微信“920177957”(需要按要求備注) 聯(lián)系郵箱:dianyunpcl@163.com,歡迎企業(yè)來(lái)聯(lián)系公眾號(hào)展開(kāi)合作。
點(diǎn)一下“在看”你會(huì)更好看耶
總結(jié)
以上是生活随笔為你收集整理的ArUco与AprilTag简介的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 基于先验时间一致性车道线的IPM相机外参
- 下一篇: F-LOAM:基于激光雷达的快速里程计和