機器人視覺是一種處理問題的研究手段。經過長時間的發展,機器人視覺在定位,識別,檢測等多個方面發展出來各種方法。其以常見的相機作為工具,以圖像作為處理媒介,獲取環境信息。
1、相機模型
相機是機器人視覺的主要武器,也是機器人視覺和環境進行通信的媒介。相機的數學模型為小孔模型,其核心在於相似三角形的求解。其中有三個值得關注的地方:
1.1 1/f = 1/a + 1/b
焦距等於物距加上像距。此為成像定理,滿足此條件時才能成清晰的像。
1.2 X = x * f/Z
如果連續改變焦距f ,並同時移動相機改變Z,則可以使得物體x在圖像上所占像素數目不變(X)。此為DollyZoom原理。如果某個物體在該物體后方(更大的Z),可利用此原理任意調整兩個物體在相片上的比例。
1.3 焦距越長,則視場越小,可以將遠處的物體拍清晰。同時相片會有更大的景深。
2、消失點
消失點是相片中特有的。此點在相片中不直接存在,在現實中直接不存在。由於射影變換,相片中原本平行的線會有相交的趨勢。如果求的平行直線在圖像中的交點,則該點對應現實中無窮遠出的一點。該點的圖像坐標為[X1 X1 1]。 此點成為消失點。相機光心與消失點的連線指向消失點在攝像機坐標系中的方向。
此外,同一平面上各個方向的消失點,會在圖像中組成一條直線,稱為水平線。該原理可以用於測量站在地上的人的高度。值得注意的是只有相機水平時,horizen的高度才是camera Height.
2.1 位姿估計
如果我們能獲得一幅圖中的2個消失點。且這2個消失點所對應的方向是相互垂直的(網格),那么我們就可以估計出相機相對於此圖像的姿態(靶標位姿估計)。 在獲得相機相對於靶標的旋轉向量后,如果相機內部參數已知,且已知射影變換矩陣,則可計算相機相對於靶標的距離,那么可以估計機器人的位置。 H = K^-1*(H射影矩陣)
2.2 點線對偶
p1×p2 = L12
L12×L23 = p2
3、射影變換
射影變化是空間中平面--->平面的一種變換。對齊次坐標,任意可逆矩陣H均表達了射影變換。簡而言之,可以表達為A = HB ,其中AB是[X Y 1]形式的其次坐標。射影變換的一大作用就是將某一形狀投射成其他形狀。比如,制作相片中的廣告牌,或者比賽轉播中的廣告牌,或者游泳比賽運動員到達后那個biu的一下出現的國旗。射影變換也是增強現實技術的基礎。
射影變換的核心在於H的求取。普通的求解方法見機器視覺教材。
假設平面相片的四個點分別是A(0,0,1),B(0,1,1),C(1,1,1),D(1,0,1)。顯然,這四個點需要投射到四個我們已知像素位坐標的圖像區域中。此外,我們還可以依據像素位置計算兩個有趣的點,V1(x1, y1, z1),V2(x2,y2,z2)。這兩個點都是圖像點。他們對應的實際坐標假設是(0,1,0),(1,0,0)。那么我們就有三個很有趣的實際點了。分別是(1,0,0),(0,1,0),(0,0,1).恰好是一個Identity Matrix。這三個實際坐標經過射影變換會得到像素坐標。像素坐標又是已知的。那么H的第一列就應該對應beta*V2,第二列應該對應alpha*V1。第三列應該對應gama*【A的像素坐標】。alpha beta gama是常數。【射影變化后的坐標應為常數乘以其次坐標】。
如果能解得alpha beta gama,那么我們就獲得了射影變換矩陣。顯然把C點的像素坐標帶入方程,我們則有3個方程,4個未知數(引入了一個lamda)。但是lamda並不影響,除過去后我們只要把alpha/lamda,beta/lamda,gama/lamda當作未知數即可解除射影矩陣。
所以,射影變換矩陣的第一列代表消失點V1,第二列代表消失點V2,第一列與第二列的叉乘,代表水平線方程(點線對偶)。