<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          自動(dòng)駕駛汽車的偽激光雷達(dá)-雙目立體視覺

          共 7357字,需瀏覽 15分鐘

           ·

          2021-07-04 01:22

          本文來源:點(diǎn)云PCL


          導(dǎo)讀 /


          雙目立體視覺(Binocular Stereo Vision)是機(jī)器視覺的一種重要形式,它是基于視差原理并利用成像設(shè)備從不同的位置獲取被測物體的兩幅圖像,通過計(jì)算圖像對(duì)應(yīng)點(diǎn)間的位置偏差,來獲取物體三維幾何信息的方法。


          偽激光雷達(dá)-雙目立體相機(jī)


          深度學(xué)習(xí)和計(jì)算機(jī)視覺在自動(dòng)駕駛系統(tǒng)中已經(jīng)非常流行且被廣泛應(yīng)用。計(jì)算機(jī)視覺領(lǐng)域在過去的十年里得到了迅猛的發(fā)展,特別是在障礙物檢測方面。障礙物檢測算法,如YOLO或RetinaNet提供了二維邊界框,用邊界框給出了障礙物在圖像中的位置。

          目前,大多數(shù)的目標(biāo)檢測算法都是基于單目RGB攝像機(jī)的,不能返回每個(gè)障礙物的距離。為了能夠返回每個(gè)障礙物的距離,工程師們將相機(jī)與激光雷達(dá)(LiDAR,光探測和測距)傳感器進(jìn)行融合,后者使用激光來返回深度信息。將計(jì)算機(jī)視覺信息和激光雷達(dá)輸出進(jìn)行傳感器的融合。這種方法的問題是使用激光雷達(dá),就會(huì)導(dǎo)致價(jià)格昂貴。所以經(jīng)常有人使用的一個(gè)雙目攝像頭進(jìn)行替代,并使用幾何信息來定義每個(gè)障礙物的距離,故可以將雙目相機(jī)獲取的數(shù)據(jù)稱之為偽激光雷達(dá)

          單目與雙目的比較


          雙目視覺利用幾何學(xué)來構(gòu)建深度圖,并將其與目標(biāo)檢測相結(jié)合以獲得三維距離。那么如何利用立體視覺實(shí)現(xiàn)距離估計(jì)?以下是雙目障礙物檢測的5步偽代碼:
          1. 標(biāo)定 2 個(gè)攝像頭(內(nèi)外參的標(biāo)定)

          2. 創(chuàng)建極線約束

          3. 先構(gòu)建視差圖,然后構(gòu)建深度圖

          4. 然后將深度圖與障礙物檢測算法相結(jié)合

          5. 估計(jì)邊界框內(nèi)像素的深度。


          相機(jī)內(nèi)外參標(biāo)定

          每個(gè)攝像機(jī)都需要標(biāo)定。相機(jī)的標(biāo)定是指將三維世界中的[X,Y,Z]坐標(biāo)的三維點(diǎn)轉(zhuǎn)換為具有[X,Y]坐標(biāo)的二維像素。這里簡單的介紹一下針孔相機(jī)模型。顧名思義就是用一個(gè)針孔讓少量光線穿過相機(jī),從而得到清晰的圖像。


          針孔相機(jī)模型可以設(shè)置焦距,使得圖像更加的清晰。為了相機(jī)標(biāo)定,我們需要通過攝像機(jī)坐標(biāo)系計(jì)算世界坐標(biāo)點(diǎn)到像素坐標(biāo)的變換關(guān)系。

           相機(jī)標(biāo)定過程

          • 從世界坐標(biāo)系到相機(jī)坐標(biāo)的轉(zhuǎn)換稱為外參標(biāo)定,外部參數(shù)稱為R(旋轉(zhuǎn)矩陣)和T(平移矩陣)。
          • 從攝像機(jī)坐標(biāo)到像素坐標(biāo)的轉(zhuǎn)換稱為內(nèi)參標(biāo)定,它獲取的是相機(jī)的內(nèi)部參數(shù),如焦距、光心等…
          • 內(nèi)參我們常稱之為K的矩陣。


          內(nèi)參標(biāo)定,通常使用棋盤和自動(dòng)算法獲得,如下圖我們?cè)诓杉瘶?biāo)定板時(shí),將告訴算法棋盤上的一個(gè)點(diǎn)(例如世界坐標(biāo)系點(diǎn) 0, 0 , 0)對(duì)應(yīng)于圖像中的一個(gè)像素為(545,343)。


          為此,相機(jī)標(biāo)定必須用攝像機(jī)拍攝棋盤格的圖像,在得到一些圖像和對(duì)應(yīng)的點(diǎn)之后,標(biāo)定算法將通過最小化平方誤差來確定攝像機(jī)的標(biāo)定矩陣。得到標(biāo)定參數(shù)后為了得到校正后的圖像,需要進(jìn)行畸變校正。畸變可以是徑向的,也可以是切向的?;冃U兄谙龍D像失真。

          圖像的畸變校正

          以下是攝像機(jī)標(biāo)定返回的矩陣形式


          f是焦距-(u?,v?) 是光學(xué)中心:這些是固有參數(shù)。

          我認(rèn)為每一個(gè)計(jì)算機(jī)視覺工程師都應(yīng)該必須知道并掌握相機(jī)的標(biāo)定,這是最基本且重要的要求。

          在相機(jī)標(biāo)定的過程中涉及到一些齊次坐標(biāo)轉(zhuǎn)換的問題,這里簡單的介紹一下有兩個(gè)公式可以得到從世界坐標(biāo)系到像素坐標(biāo)系的關(guān)系:

          (1)世界坐標(biāo)系到相機(jī)坐標(biāo)系的轉(zhuǎn)換(外參標(biāo)定公式)


          (2)相機(jī)坐標(biāo)系到圖像坐標(biāo)系的轉(zhuǎn)換(內(nèi)參標(biāo)定公式)


          所以從三維空間坐標(biāo)系到圖像坐標(biāo)系下的關(guān)系可以總結(jié)為


          但是我們知道這個(gè)公式是齊次坐標(biāo)才可以這么寫,也就是需要將O_world從[X Y Z]修改為[X Y Z 1],加這個(gè)“1”后稱為齊次坐標(biāo)。


          雙目視覺的對(duì)極幾何

          我們知道雙目立體視覺是基于兩幅圖像來尋找深度的,人類的眼睛就像兩個(gè)相機(jī),因?yàn)閮芍谎劬牟煌慕嵌扔^察圖像,所以他們可以計(jì)算兩個(gè)視角之間的差異,并建立距離估計(jì)。下圖是一個(gè)雙目立體相機(jī)的例子

          那么我們?nèi)绾胃鶕?jù)雙目立體相機(jī)如何估計(jì)深度?想象一下你有兩個(gè)攝像頭,一個(gè)左攝像頭和一個(gè)右攝像頭。這兩個(gè)攝像頭在同一Y軸和Z軸上對(duì)齊。那么唯一的區(qū)別是它們的X值。


          根據(jù)上圖我們的目標(biāo)是估計(jì)O點(diǎn)(代表圖像中的任何像素)的Z值,即距離。X是對(duì)齊軸,Y是高度值,Z是深度值,兩個(gè)藍(lán)色的平面圖對(duì)應(yīng)于每個(gè)攝像頭的圖像。假設(shè)我們從從俯視的角度來考慮這個(gè)問題。


          已知:

          (1)xL對(duì)應(yīng)于左側(cè)相機(jī)圖像中的點(diǎn)。xR是與左側(cè)圖像中該點(diǎn)的對(duì)應(yīng)位置。
          (2)b是基線,是兩個(gè)攝像頭之間的距離。

          針對(duì)左相機(jī),如下圖,我們可以得到一個(gè)公式:Z = X*f / xL.


          針對(duì)右相機(jī),如下圖,我們可以得到另一個(gè)公式:Z = (X — b)*f/xR.


          此時(shí)根據(jù)兩個(gè)公式我們可以計(jì)算出正確的視差d=xL-xR和一個(gè)物體的正確XYZ位置。

          視差和深度圖

          什么是視差?視差是指同一個(gè)三維點(diǎn)在兩個(gè)不同的攝像機(jī)角度獲得的圖像中位置的差異。視差圖是指一對(duì)立體圖像之間明顯的像素差異或運(yùn)動(dòng)。要體驗(yàn)這一點(diǎn),試著閉上你的一只眼睛,然后快速地閉上它,同時(shí)打開另一只眼睛。離你很近的物體看起來會(huì)跳一段很長的距離,而離你較遠(yuǎn)的物體移動(dòng)很少,這種運(yùn)動(dòng)就是視差。


          由于立體視覺,我們可以估計(jì)任何物體的深度,假設(shè)我們得到了正確的矩陣參數(shù),則可以計(jì)算深度圖或視差圖:

            視差圖

          為了計(jì)算視差,我們必須從左邊的圖像中找到每個(gè)像素,并將其與右邊圖像中的每個(gè)像素進(jìn)行匹配。這就是所謂的雙目相機(jī)的立體匹配的問題。為了解決像素匹配的問題,引入對(duì)極幾何約束,只需在對(duì)極線上搜索它,就不需要二維搜索,對(duì)應(yīng)點(diǎn)一定是位于這條線上,搜索范圍縮小到一維。


          之所以能夠引入對(duì)極約束,這是因?yàn)閮蓚€(gè)相機(jī)是沿同一軸對(duì)齊的。以下是極線搜索的工作原理:
          1. 取左圖中這一行上的每個(gè)像素

          2. 在同一極線上比較左圖像像素和右圖像中的每個(gè)像素

          3. 選擇 cost 最低的像素

          4. 計(jì)算視差 d



          構(gòu)建偽激光雷達(dá)效果

          現(xiàn)在,是時(shí)候把這些應(yīng)用到一個(gè)真實(shí)的場景中,看看我們?nèi)绾问褂秒p目立體視覺來估計(jì)物體的深度。假設(shè)我們有以下兩張實(shí)際場景下的圖片,并且我們我們已經(jīng)獲取了雙目相機(jī)的外參矩陣。


          此時(shí)我們計(jì)算視差圖的步驟。將投影矩陣分解為攝像機(jī)內(nèi)參矩陣??, 以及外參??, ??. 使用我們?cè)谇懊娼榻B的兩個(gè)步驟估計(jì)深度,將得到左右圖像的視差圖。


          從視差再到到深度圖的計(jì)算,由于我們有兩個(gè)視差圖,它基本上告訴我們兩個(gè)圖像之間像素的偏移。對(duì)于每臺(tái)相機(jī),我們都有一個(gè)投影矩陣P_left 和 P_right

          為了估計(jì)深度,我們需要利用投影矩陣P來估計(jì)K,R和t。


          一個(gè)名為cv2.decomposeProjectMatrix()的OpenCV函數(shù)可以這樣做,將從P得到K、R和t;

          現(xiàn)在是時(shí)候生成深度圖了。深度圖將使用另一幅圖像和視差圖來告訴我們?cè)搱D像中每個(gè)像素的距離。

          過程如下:
          1. 獲取焦距?? 從?? 矩陣

          2. 計(jì)算基線?? 使用平移向量中的相應(yīng)值??


          使用之前的公式和計(jì)算的視差圖d計(jì)算圖像的深度圖:


          我們對(duì)每個(gè)像素進(jìn)行計(jì)算,得到如下


          估計(jì)障礙物的深度

          現(xiàn)在我們有一個(gè)每個(gè)攝像頭的深度圖!假設(shè)我們將其與障礙物檢測算法(如YOLO)相結(jié)合。對(duì)于每個(gè)障礙物,該算法將返回一個(gè)包含4個(gè)數(shù)字的邊界框:[x1;y1;x2;y2]。這些數(shù)字表示框的左上點(diǎn)和右下點(diǎn)的坐標(biāo)。假設(shè)我們?cè)谧筮叺膱D像上運(yùn)行這個(gè)算法,并且使用左邊的深度圖。

          如下圖在這個(gè)邊界框中,我們可以取最近的點(diǎn)。知道這一點(diǎn)后,可以通過深度圖知道了圖像中每個(gè)點(diǎn)的距離,而且邊界框中的第一個(gè)點(diǎn)也就是相機(jī)到障礙物的距離。

          雙目測距實(shí)例

          所以利用立體視覺,我們不僅知道圖像中的障礙物,還知道障礙物與我們的距離!這個(gè)障礙物離我們28.927米遠(yuǎn)!

          與使用激光雷達(dá)相比,它保持相對(duì)便宜的價(jià)格,并且仍然提供出色的性能。我們稱之為“偽激光雷達(dá)”,因?yàn)樗梢匀〈す饫走_(dá)的功能:探測障礙物,分類,以及三維視覺定位等領(lǐng)域。
             

          —版權(quán)聲明—

          來源:點(diǎn)云PCL

          僅用于學(xué)術(shù)分享,版權(quán)屬于原作者。

          若有侵權(quán),請(qǐng)聯(lián)系微信號(hào):yiyang-sy 刪除或修改!


          —THE END—
          瀏覽 100
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  欧美丰满熟妇XXX | 日本二区 在线观看 | 国产系列第一页在线观看 | 色77777| 中文字幕综合 |