雙目視覺原理及流程概述

2021-09-09 01:56:29 字數 2701 閱讀 6520

雙目視覺是利用視差原理的一種視覺方法。

如圖所示為空間中一點p在左右相機中的成像點pleft=(xleft,yleft),pright=(xright,yright)。將兩相機固定在同一平面上,則點p在y方向的座標是相同的,即yleft = yright =y。根據三角原理,可得:

視差被定義為相同點在左右相機x方向的偏差,即:disparity=xleft-xright。則點p在左相機座標系下的位置可以表示為:

因此,對於空間中任意一點,若能在嚴格對齊的兩相機中找到其成像點,即可計算出其三維座標。

雙目標定和普通相機的標定一樣,其標定時不僅標定出兩個相機的內參,還要標定出兩個相機之間的關係。因此,在進行雙目標定時,需要使兩個相機對同一標定板進行多次取圖,分別標定出各自的內參和相對於標定板的外參,然後便可計算出兩相機位置間的關係:

其中,r為兩攝像頭間的旋轉矩陣,t為兩攝像頭間的平移矩陣。rr為右攝像頭經過張氏標定得到的相對標定物的旋轉矩陣,tr為右攝像頭通過張氏標定得到的相對標定物的平移向量。rl為左攝像頭經過張氏標定得到的相對相同標定物的旋轉矩陣,tl為左攝像頭經過張氏標定得到的相對相同標定物的平移向量。

上述只是理**式,opencv的sterocalibrate函式在實現時會對多次計算的r、t進行優化,最終得到兩相機間的最優變換。

經過雙目標定後的兩相機在拍攝同一物件後,需要進行雙目校正。雙目校正多利用極線約束,來使同一特徵點位於左右相機兩張影象水平方向的同一條直線上,即「把實際中非共麵行對準的兩幅影象,校正成共麵行對準」。當然,在這個過程中也會進行一些畸變校正。利用極線約束進行雙目校正後可以使特徵點在兩幅影象中都位於極線上,這樣在進行特徵點匹配時僅需要在極線上進行搜尋而不需要在整個二維影象上進行搜尋,大大減少了計算量。

(1)雙目校正前的左右相機影象

(2)雙目校正後的左右相機影象

立體匹配,即將左右相機影象上的對應點匹配起來,由此計算視差。立體匹配有多種演算法:

1、根據最優化的理論方法不同,分為區域性匹配演算法和全域性匹配演算法;

2、根據採用影象表示的基元不同,分為: 

1.區域立體匹配演算法 

給定一幅影象上的一點,選取該點鄰域內的乙個子視窗,在另一幅影象中的乙個區域內,根據某種相似性,尋找與子視窗影象最相似的視窗,得到的匹配視窗中對應的畫素點就為該畫素的匹配點。可獲得稠密視差圖。 

2.基於特徵的立方匹配演算法 

基於幾何特徵資訊(邊緣、線、輪廓、興趣點、角點和幾何基元等)提取影象的幾何特徵點,針對幾何特徵點進行視差估計,利用得到的視差資訊重建三維空間場景。可獲得稀疏視差圖,通過插值可獲得稠密視差圖。 演算法速度快,由於需要插值演算法來計算缺失畫素點的視差值,應用場景受限。

3.基於相位立體匹配演算法 

假設在影象對應點中,其頻率範圍內區域性相位相等,在頻率範圍內進行視差估計。

各種立體匹配演算法的對比如下:

點集配準是用於將兩個點雲集進行匹配,計算其旋轉矩陣r和平移矩陣t及尺度變換(scale),使用兩個點集上的點最大可能的重合,這個變換過程就是點集配準。

點集配準演算法的經典演算法是icp(iterative closet points),icp演算法主要如下(此處直接搬運別人的部落格了

1)icp演算法核心是最小化乙個目標函式:

(這裡的表述與原文略微有些不同,原文是用四元數加上乙個偏移向量來表達旋轉平移變換。)

2)尋找對應點。可是,我們現在並不知道有哪些對應點。因此,我們在有初值的情況下,假設用初始的旋轉平移矩陣對source cloud進行變換,得到的乙個變換後的點雲。然後將這個變換後的點雲與target cloud進行比較,只要兩個點雲中存在距離小於一定閾值(這就是題主所說的icp中的乙個引數),我們就認為這兩個點就是對應點。這也是"最鄰近點"這個說法的**。

3)r、t優化。有了對應點之後,我們就可以用對應點對旋轉r與平移t進行估計。這裡r和t中只有6個自由度,而我們的對應點數量是龐大的(存在多餘觀測值)。因此,我們可以採用最小二乘等方法求解最優的旋轉平移矩陣。乙個數值優化問題,這裡就不詳細講了。

4)迭代。我們優化得到了乙個新的r與t,導致了一些點轉換後的位置發生變化,一些最鄰近點對也相應的發生了變化。因此,我們又回到了步驟2)中的尋找最鄰近點方法。2)3)步驟不停迭代進行,直到滿足一些迭代終止條件,如r、t的變化量小於一定值,或者上述目標函式的變化小於一定值,或者鄰近點對不再變化等。(這裡也是題主所說的icp演算法中的乙個引數)

演算法大致流程就是上面這樣。這裡的優化過程是乙個貪心的策略。首先固定r跟t利用最鄰近演算法找到最優的點對,然後固定最優的點對來優化r和t,依次反覆迭代進行。這兩個步驟都使得目標函式值下降,所以icp演算法總是收斂的,這也就是原文中收斂性的證明過程。這種優化思想與k均值聚類的優化思想非常相似,固定類中心優化每個點的類別,固定每個點的類別優化類中心。

雙目視覺焦距 雙目視覺系統的原理和設計

雙目立體視覺是機器視覺的一種重要形式,它是基於視差原理並由多幅影象獲取物體三維幾何資訊的方法。雙目立體視覺系統一般由雙攝像機從不同角度同時獲得被測物的兩幅數字影象,或由單攝像機在不同時刻從不同角度獲得被測物的兩幅數字影象,並基於視差原理恢復出物體的三維幾何資訊,重建物體三維輪廓及位置。雙目立體視覺原...

雙目視覺簡介

雙目視覺廣泛應用在機械人導航,精密工業測量 物體識別 虛擬實境 場景重建,勘測領域。什麼是雙目視覺?雙目視覺是模擬人類視覺原理,使用計算機被動感知距離的方法。從兩個或者多個點觀察乙個物體,獲取在不同視角下的影象,根據影象之間畫素的匹配關係,通過三角測量原理計算出畫素之間的偏移來獲取物體的三維資訊。得...

雙目視覺 1

雙目視覺廣泛應用在機械人導航,精密工業測量 物體識別 虛擬實境 場景重建,勘測領域。什麼是雙目視覺?雙目視覺是模擬人類視覺原理,使用計算機被動感知距離的方法。從兩個或者多個點觀察乙個物體,獲取在不同視角下的影象,根據影象之間畫素的匹配關係,通過三角測量原理計算出畫素之間的偏移來獲取物體的三維資訊。得...