1. 程式人生 > >AprilTag視覺定位系統

AprilTag視覺定位系統

https://blog.csdn.net/yjy728/article/details/78524814

AprilTag是一個視覺基準庫,在AR,機器人,相機校準領域廣泛使用。通過特定的標誌(與二維碼相似,但是降低了複雜度以滿足實時性要求),可以快速地檢測標誌,並計算相對位置。

示例圖片

官網:https://april.eecs.umich.edu/software/apriltag.html

列出瞭如下三篇文章
1. AprilTag: A robust and flexible visual fiducial system(2011)
2. AprilCal: Assisted and repeatable camera calibration(2013)
3. AprilTag 2: Efficient and robust fiducial detection(2016)

對於如下示例圖片,檢測步驟分為以下幾步:
這裡寫圖片描述

1 檢測線段
計算每個畫素的梯度方向和大小,通過聚類將梯度大小方向相似的聚集到一起,
聚類的方法與Felzenszwalb基於圖的影象分割方法類似,首先建立一個圖,每個節點代表一個畫素。如果相鄰兩個節點梯度方向差和邊的權重相等,那麼就增加這條邊。然後講這些邊挑選出來,對邊的權重進行遞增處理:對於每條邊,我們測試畫素點屬於的連通分支是否應該加入合併。(個人感覺比較像LSD直線檢測)
這部分最為耗時,超過總執行時間的一般。通過一個σ=0.8

的濾波器二次取樣,能夠在儘量保證影象資訊不損失的情況下加快檢測。

2 檢測正方形
找到直線段後,下一步就是檢測正方形。整個任務轉化為一個遞迴的、深度為4的深度優先搜尋。第一層時,依次把每條線短作為起始線段。第二層至第四層,去找和這個起始線段終點(預設每條線短都是逆時針方向)足夠近的線段。通過調整閾值來增加最閉合區域和分割誤差的魯棒性。
使用一個二維查詢表來加速尋找距離某個點最近的線段。通過這種優化方式、以及之前拒絕逆時針旋轉方向的方形、或者使用某條線段超過1次,方形檢測部分僅佔總執行時間的一小部分。

3 單應性及外估計(Homography and extrinsics estimation)
利用Direct Linear Transform(DLT)演算法計算單應性矩陣。3×3
的單應性矩陣(由DLT計算得到)可以寫成3×4的相機投影矩陣P(預設已知)與4×3的截斷外部引數矩陣的乘積。