雙目視覺目標深度的估計和實現

首先,按照雙目立體視覺深度估計的一般步驟,得到左右兩幅圖像中對應特徵點的水平視差。 然後依據三角測量原理估計出空間物體與相機光心深度信息。選用張正友相機標定法、Harris 和 FAST 角點檢測、SIFT/SURF 特徵描述等嵌入式系統設計與實現。

  • 視覺模型

攝像機的基本成像模型通常稱為基本針孔模型,也稱為線性模型,它由三維空間到平面的中心射影變換所描述。如圖 1(a) 所示,令Oc 是投影中心,它與平面π的間距是f。平面π叫做攝像機的像平面,Oc 點稱作相機的光心,f 是相機的焦距。空間中任一點Xc 在平面π上所成的像(投影), m是投影中心 Oc 和該空間點 Xc 間的連線與π平面的交點。主軸或光軸是以Oc 為端點且正交於像平面的射線,相機的主點是主軸與像平面的交點 p。

雙目視覺目標深度的估計和實現

圖 1 表述了圖像物理座標系與圖像像素座標系間的關係。在不考慮鏡頭畸變的情況下,假設光心的像素座標為 (u0,v0),每一個像素在 u 軸與 v 軸方向上的實際物理長度分別記為dx 和 dy,則圖像上任意一個像素的像素座標與其在圖像物理座標系下的座標轉換關係是


雙目視覺目標深度的估計和實現


用矩陣表示是


雙目視覺目標深度的估計和實現


圖 1 也描述了世界座標系與相機坐 標系之間的變換關係,即可以用旋轉矩 陣 R 與平移向量T 來表示。因此,若已知 某空間點在世界座標系下和在相機座標系 下的齊次座標表示分別為(Xw,Yw,Zw,1)T 和(Xc,Yc,Zc,1)T,那麼


雙目視覺目標深度的估計和實現


對於任一空間點 P,其在像平面上的物理座標可以寫作


雙目視覺目標深度的估計和實現


由式 (2)~(4) 可得

雙目視覺目標深度的估計和實現

其中,P被稱作投影矩陣, 是一個3×4矩陣; s 叫做軸間扭轉因子,一般可以忽略不計; ku=f / dx;ku=f / dy。顯然,K完全由ku、 kv、s、u0、v0 決定,且只與相機本身的物理 性能有關,它是內在的和“主觀的”,因 此稱其為相機的內參數矩陣;[R T] 稱為相 機的外參數矩陣,因為它表達了相機相對於世界座標系的擺放姿態。

相機標定與校正

採用線性標定的方法,通過在不同視角下獲得多組平面標定板的圖像,進而建立多個方程,並由最小二乘估計,實現相機參數的標定。將某三維空間點在世界座標系下的座標M=[X Y Z] 所對應的齊次座標寫為M=[X Y Z 1]T,其在圖像素座標系下的座標 m=[u v],對應的齊次表示為 =[u v 1]T,那麼由式 (5) 可得


雙目視覺目標深度的估計和實現


這裡ri 表示旋轉矩陣R 的第i列;A 是相機的內參數矩陣,可以寫成


雙目視覺目標深度的估計和實現


其中,(u0,v0) 是主點的像素座標值;α 和 β 分別表示相機在u軸、 v軸方向上的焦距(單 位為像素);γ 表示u 軸和v 軸的傾斜程度。

單目相機標定的主要目的是估計內參 數矩陣 A 和外參數矩陣 [r1 r2 r3 t]。

特徵檢測與描述

角點常作為圖像中的點特徵,一般是 圖像中區分度明顯且具有代表性的位置。 它可以是兩條邊的交叉點,或是其鄰域內 的灰度變化較為強烈的點等。角點的定義 在不同應用場合可能會不一致。本設計中 主要利用了 SIFT 特徵提取的算法。

  • 方向分配

為了使描述子具有旋轉不變性,需要 首先給每一個興趣點分配基本的參考方向。

Lowe 的做法是首先計算關鍵點鄰域內各像素點的梯度信息,計算公式為

雙目視覺目標深度的估計和實現

然後使用直方圖統計鄰域內各像素梯度的模值和方向信息,直方圖將 0°~360°的方向範圍分成36 個柱,每柱跨度是10°,柱的高度由梯度的模決定,最後直方圖峰值所對應的角度即為該關鍵點的主方向;還可以將直方圖中高度為主峰高度80% 以上的次最大峰所對應的方向作為輔助方向, 以增強算法的穩健性。

  • 關鍵點的特徵描述

首先根據關鍵點的尺度值計算描述子 所需的區域大小,然後將以該關鍵點為原 點的區域座標系旋轉至主方向,如圖2所示。

雙目視覺目標深度的估計和實現

Lowe 建議將關鍵點附近的區域再細分成 4×4 個子區域,然後再分別統計每一子區域在8 個方向的梯度信息,如圖 3 所示。 由於進行了旋轉,所以子區域(方格)的中心座標將由整型變成非整型,可以通過線性插值,由每一像素和與之鄰近的周圍 4個種子點(旋轉後的區域方格的中心點)的距離確定各像素對這 4個種子點的貢獻因子。 在統計方向時,因為只有8個離散的方向,為了平滑,把計算得到的梯度方向作用到鄰近的兩個方向上。最終還要結合高斯濾波器在對應位置的濾波係數,確定各像素對附近的 4 個種子點和 2 個方向上的作用權重。這樣在遍歷累加完整個大區域中的所有像素作用權重之後,最終就可以統計出各子區域在 8 個方向上的梯度分佈。

雙目視覺目標深度的估計和實現

  • 立體匹配與深度信息的估計

如下采用基於特徵點的匹配,屬於稀疏型匹配。其中的相似性度量選擇的是匹配間距的度量,即最鄰近的兩個特徵向量將被視為是匹配的。設計中,直接使用了OpenCV 中的FLANN 庫,該庫實現了機器學習中可用於尋找高維數據特徵最近鄰的一些算法。在找到特徵點的稀疏匹配之後,就可以對特徵點的深度信息進行估計。

一個無畸變、對準、已標定的理想標準雙目立體成像系統如圖4 所示。其中, Ol、Or 分別是左右相機的光心;b 為基線長度;f 為攝像機焦距;世界座標系為O-XYZ, Y軸方向為垂直紙面向內,座標原點到兩光心的距離相等。

雙目視覺目標深度的估計和實現

假設空間中的某點 P(X,Y,Z),在左右兩 成像平面上的座標(各自的相機座標系下) 分別是pl=(xl, yl) 和 pr=(xr, yr),根據相似三角形的關係可得


雙目視覺目標深度的估計和實現


將式 (8) 中的前兩個等式相減消去可以得到


雙目視覺目標深度的估計和實現


定義 d=xl-xr 為水平視差,則有


雙目視覺目標深度的估計和實現


以此得到空間點距離相機的深度估計。

  • NanoPi 雙目視覺系統及驗證結果
  • 系統設計

系統的硬件連接如圖5 (a) 所示,其中 雙目攝像機與NanoPi 直接通過有線連接,以完成雙目視覺任務中的第一步,即數字圖像的採集。對視覺圖像的運算處理是在遠端的 NanoPi 上進行的,它具4 核1.2 GHz 的 CPU、512 MB 的 DDR3 RAM 且內置了UbuntuCore 系統。考慮到 NanoPi 沒有桌面系統,所以首先選擇通過SSH 協議讓本地PC與NanoPi建立遠程連接。建立連接之後,再利用 X Windows 協議使NanoPi 產生的圖形結果顯示在本地主機上。圖5 (b) 是系統的簡化流程框圖。

雙目視覺目標深度的估計和實現


  • 驗證結果與分析

實驗中所用的相機是分辨率為640×480 的視頻聊天攝像頭,兩個單獨的相機直接 經膠帶固定後用作雙目攝像機。在計算出匹配點對應的視差後,通過三角測量原理, 即可估計得到匹配點處距攝像機的大致深 度值。圖 6 所示即是估得的結果。

雙目視覺目標深度的估計和實現

表 1 所示為分別在兩種不同光照條件 下各進行了四組重複性的實驗結果。

雙目視覺目標深度的估計和實現

因為攝像頭本身的厚度未知,所以這 裡通過只比較平面間的間距,而不去直接 比較各平面到相機光心的深度距離,來儘可能地消除該影響。由表1 中統計的實驗 數據,經簡單計算可得平面間的深度,如 表 2、表 3 和圖 7、圖 8 所示。

雙目視覺目標深度的估計和實現

可見,在不同的光照環境下所估計得到 的各平面平均間距與實際的測量值之間的誤差均在以10 mm內,且結果的方差(標準差) 也較小,這表明本設計的估計精度是可以滿足一定要求的。此外,可以看到在自然光照 環境下測量結果的標準差更小,說明在自然光照的環境下所產生的噪聲更加穩定。

實現的程序中涉及了三個可調閾值參 數,分別作用於去除匹配點匹配距離過大 的點對、三個平面與相機成像平面不共面 的容忍度,以及屬於不同平面的視差最小 間隔。其中,前兩個閾值主要是為了在三 個平面中(看成是共面的)篩選出好的匹 配點對,它依據的是所有匹配點對間的匹 配距離和重投影誤差;第三個閾值參數是 為了辨別出三個不同的平面。由於每次實 驗都很難確保每本書與相機間的相對位置 始終不變,所以可能需要不斷地調節上述 三個閾值參數,以找到滿意的估計結果。


分享到:


相關文章: