曹小華 任曉玉
0 引言視覺定位是計算機視覺中的一個重要研究問題,廣泛應用於機器人自主導航、機器人定位、視覺伺服、攝像機校正、目標跟蹤、視覺檢測、物品識別和工業零部件裝配等領域。近年來,計算機視覺飛速發展,湧現出大量的技術與算法,如主動視覺、面向任務的視覺、基於知識的視覺、基於模型的視覺以及多傳感器和集成視覺等方法[1]。根據使用鏡頭數目分類,計算機視覺分為單目視覺定位、雙目視覺定位與多目視覺定位。雙目立體視覺是基於視差原理,由多幅圖像獲取物體三維幾何信息。相比於基於多相機的模型定位方法,單目視覺的優點主要體現在只需單幅圖像技能實現定位,不存在圖像匹配問題,處理速度快,定位精度高。傳統視覺對目標定位,是通過對攝像機的內外參數進行標定來實現的[2]。計算機標定方法可以分為傳統標定方法、自標定方法和基於主動視覺的標定方法[3]。傳統標定方法是現在使用最為普遍的標定方法,利用結構已知、高加工精度的標定塊作為標定物,用攝像機拍攝若干幅標定物的圖片,通過計算2D 圖像點與3D 空間點之間的關係來完成標定,通過對標定物的合理設計得到高精度的結果。該方法的優點是適用各種攝像機模型,定位精度高,缺點是標定過程複雜。自標定方法不需要標定物,僅通過運動攝像機所拍攝的標定圖片中匹配點的關係來進行標定。由於不需要標定物,該方法適用範圍廣、靈活性強,但是圖像匹配中需要求解多元非線性方程導致其魯棒性較差[4]。基於主動視覺的標定方法需要預知攝像機的詳細運動信息,這需要昂貴的設備對攝像機的運動軌跡進行記錄,實驗成本較高[5]。本文針對AGV 所處的平坦路面的單目視覺定位,提出了一種新的簡單可行的算法。該算法不需要對攝像機進行標定,也不需要求解攝像機的內、外參數,通過分析圖像像素平面與現實空間平面的幾何關係,得出像素點與現實點間的映射關係。實驗結果表明 , 文中提出的算法定位精度高 , 實時性好 , 為解決計算機視覺的測量、定位與AGV 視覺導引提供一種新的思路,具有進一步研究的價值。
1 攝像機模型及存在的問題1.1 攝像機模型本文採用理想的針孔攝像機模型[6],忽略實際攝像機中的畸變問題。針孔成像模型又稱為線性攝像機模型,空間中任何一點在圖像中的成像位置可以用針孔成像模型近似表示,即任何一點在圖像中的投影位置p 為光心O 與P 點的連線OP 與圖像平面的交點。分別以其次坐標m=[u,v ,1]T,W=[X,Y,Z ,1]T 來表示像素點p 及空間點P ,根據針孔攝像機成像模型,投影方程為
式中:αx=f/ dX 為u 軸上的尺度因子,或稱為u 軸上的歸一化焦距;αy=f/ dY 為v 軸上的尺度因子,或稱為v 軸上的歸一化焦距;M 為3×3 矩陣,稱為投影矩陣;M1 由αx、αy、u 0、v 0 決定,由於αx、αy、u 0、v 0 只與攝像機內部參數有關,稱這些參數為攝像機內部參數;R、t 分別表示攝像機坐標系與世界坐標系之間旋轉矩陣和平移向量,M2 稱為攝像機外部參數。確定某一攝像機的內外參數,稱為攝像機標定。
1.2 存在的問題在單目視覺方法測量物體位姿時,如果物體上的某些特徵在物體坐標系下的坐標已知,要求出這些特徵在攝像機坐標系下的三維坐標,進而求出攝像機坐標與物體坐標系之間的相對位姿關係。 在這個問題中,一般需要求得攝像機內外參數進行投影計算。如果攝像機固定,攝像機外參數一般固定不變,而攝像機內參數只與攝像機硬體有關,定焦攝像頭的內參數固定不變。如果已知攝像機內外參數,就已知投影矩陣,這時對任意空間點,如已知它的坐標,就可以求出它的圖像點的位置。反過來,如果已知某空間點的圖像點的位置, 即使已知攝像機的內外參數,也不能唯一確定。這是因為,已知圖像點時,由針孔成像模型,任何位於射線上的空間點的圖像點都是點。因此,該空間點是不能唯一確定的。為解決這一問題,單目視覺在特定環境內設置一個人工圖標,圖標的尺寸以及在世界坐標系中的方向、位置等參數都是已知的;而雙目視覺通過不同視角拍攝兩幅或多幅圖像,增加約束條件[7]。本文提出一種新的單目視覺投影定位算法,在該算法中,現實平面中的二維空間點先投影到一個虛擬參考平面上,如圖1 所示,該參考平面與攝像機光軸垂直且與成像平面平行,然後虛擬參考平面上的點通過鏡頭平行透視寫入成像平面,並形成圖像像素點。在第二步平行透視中,參考平面與成像平面只是簡單的縮放關係,保留了透視成像中丟失了的平行屬性與位置屬性。這樣,所述問題就轉化為虛擬參考平面與現實平面之間的映射求解問題。
圖1 攝像機、參考平面、現實平面示意圖
2 圖像像素平面與現實平面的映射關係首先約定攝像機、參考平面、現實平面的坐標系,如圖2~ 圖4 所示。
圖2 像素坐標系
圖3 參考平面坐標系
圖4 現實平面坐標系
2.1 像素平面到參考平面由於攝像機垂直於參考平面 , 所以像素平面到參考平面是等比例縮放的,它們之間只相差一個比例係數。由於參考平面AD 邊與現實平面AD 邊重合,可以通過實際測量得到AD 邊的實際長度。 參考平面與像素平面等比例縮放,由圖像像素長寬比可求得AB' 長度。若W=|AD |,L =|AB' |,圖像像素解析度為m×n ,可得對應像素平面上一點p (u ,v ) 的參考平面坐標為P (Xc ,Yc ),有
2.2 參考平面到現實平面虛擬參考平面與現實平面在模型中是簡單的平面投影關係,只要求解出平面投影的單應性矩陣,就能得到它們之間的映射關係。平面投影定理[8]:對於一個平面投影,一定存在一個非奇異3×3 矩陣H,使得對任何P 2 上的齊次點x ,有h (x )=Hx 。
或簡記為x' =Hx 。其中H 稱為單應性矩陣,這個投影變換有8 個自由度。將參考平面坐標(Xc,Yc),現實平面坐標(Xw,Yw)用齊次坐標表示為(Xc,Yc,1),(Xw,Yw,1)。則參考平面與現實平面間投影關係為
由於現實空間點在同一平面,設h 33=1, 每一組對應點可得:
由四組對應點就可以得到8 個關於H 的元素的線性方程組
用AH=B 來表示上式,則H=A-1B 。檢測到圖像上特徵點的像素坐標值,通過式(2)、式(4)可得該特徵點在現實平面對應點的坐標,由此可以達到單目視覺定位的目標。
3 AGV 定位實驗與結果分析為了驗證本文算法的精度,設計了AGV 定位實驗。採用MV-U300 工業相機,6~12 mm 變焦鏡頭,拍攝室內地面。為了驗證該算法的精度,在地面上放置一張4×4 的黑白棋盤圖。棋盤長寬200 mm,每小格邊長50mm,如圖5 所示。測得相機視野四個頂點坐標分別為A(-235, 0),B(-575,960),C(575,960),D(235,0);由相機參數計算得到的參考平面的四個角點坐標為A' (-235,0),B' (-235,352.5),C' (235,352.5),D' (235,0); 計算投影變換的單應性矩陣,有
圖5 原始圖像(左)與變換圖像(右)
為檢驗本文算法的定位精度,對所採集圖像進行Hough 變換檢測直線,從而獲取圖中所示棋盤圖黑白色塊的9 個交點像素坐標( 自左至右、從上往下排),通過本文算法求得對應的參考平面交點,再通過單應性矩陣求得對應點的現實平面坐標。具體實驗數據見表1。通過現實平面的實際坐標計算黑白色塊的邊長,與真實值50 mm 比較,可以發現橫排誤差在±3% 以內,豎排誤差在±5% 以內;豎排誤差比橫排誤差大,主要是因為圖像豎向放大係數相對變化較大。結果表明,該方法測量精度較高,可以滿足一般的定位系統要求。
4 結論本文提出的算法結合單目視覺導引AGV 小車,省去了傳統視覺定位方法中的攝像機標定環節,採用平面投影的思路解決單目視覺定位,簡化了視覺導引AGV小車導引模塊的硬體配置與定位計算。該算法針對通用攝像機模型針孔相機模型,利用平面投影原理,對平坦路面實現了單目視覺定位。實驗結果表明,該方法簡單可行,對室內AGV 和室外平坦路面AGV 的路徑導航與視覺避障都有一定的實用價值,為解決機器視覺的定位、測量問題提供了一種新思路。