丁香五月天婷婷久久婷婷色综合91|国产传媒自偷自拍|久久影院亚洲精品|国产欧美VA天堂国产美女自慰视屏|免费黄色av网站|婷婷丁香五月激情四射|日韩AV一区二区中文字幕在线观看|亚洲欧美日本性爱|日日噜噜噜夜夜噜噜噜|中文Av日韩一区二区

您正在使用IE低版瀏覽器,為了您的雷峰網(wǎng)賬號(hào)安全和更好的產(chǎn)品體驗(yàn),強(qiáng)烈建議使用更快更安全的瀏覽器
此為臨時(shí)鏈接,僅用于文章預(yù)覽,將在時(shí)失效
人工智能開發(fā)者 正文
發(fā)私信給AI研習(xí)社-譯站
發(fā)送

0

無人駕駛:如何使用立體視覺實(shí)現(xiàn)距離估計(jì)?

本文作者: AI研習(xí)社-譯站 2020-11-17 16:57
導(dǎo)語:真不可思議!我們剛剛構(gòu)建了偽激光雷達(dá)!

譯者:AI研習(xí)社(ZachSuen

雙語原文鏈接:Pseudo-LiDAR — Stereo Vision for Self-Driving Cars


無人駕駛:如何使用立體視覺實(shí)現(xiàn)距離估計(jì)?在自動(dòng)化系統(tǒng)中,深度學(xué)習(xí)和計(jì)算機(jī)視覺已經(jīng)瘋狂地流行起來,無處不在。計(jì)算機(jī)視覺領(lǐng)域在過去十年中發(fā)展迅速,尤其是是障礙物檢測方面。

障礙物檢測算法,如YOLO或RetinaNet,提供2D的標(biāo)注框,該標(biāo)注框指明了障礙物在圖像中的位置。

為了獲取每個(gè)障礙物的距離,工程師將相機(jī)與激光雷達(dá)(光探測和測距)傳感器融合,使用激光返回深度信息。利用傳感器融合技術(shù)將計(jì)算機(jī)視覺和激光雷達(dá)的輸出融合在一起。

使用激光雷達(dá)這種方式存在價(jià)格昂貴的問題。而對(duì)此,工程師使用的一個(gè)有用的技巧是:對(duì)齊兩個(gè)像機(jī),并使用幾何原理來計(jì)算每個(gè)障礙物的距離。我們稱這種新設(shè)置為 偽激光雷達(dá)。

無人駕駛:如何使用立體視覺實(shí)現(xiàn)距離估計(jì)?  單目視覺和立體視覺

偽激光雷達(dá)利用幾何原理構(gòu)造深度圖,并將其與物體探測相結(jié)合,以獲得三維的距離。

如何利用立體視覺實(shí)現(xiàn)距離估計(jì)?

以下5步偽代碼用于獲取距離:

1.校準(zhǔn)2臺(tái)照相機(jī)(內(nèi)部和外部校準(zhǔn))

2.創(chuàng)建極線方案

3.先建立視差圖,再建立深度圖

然后,深度圖將與障礙檢測算法結(jié)合在一起,我們將估算邊界框像素的深度。本文結(jié)尾處有更多內(nèi)容。

開始吧!

1.內(nèi)部和外部校準(zhǔn)

每個(gè)攝像機(jī)都需要校準(zhǔn)。校準(zhǔn)意味著將具有[X,Y,Z]坐標(biāo)的3D點(diǎn)(世界上)轉(zhuǎn)換為具有[X,Y]坐標(biāo)的2D像素。

相機(jī)型號(hào)

當(dāng)今的相機(jī)使用針孔相機(jī)模型。
這個(gè)想法是使用針孔讓少量光線穿過相機(jī),從而獲得清晰的圖像。

無人駕駛:如何使用立體視覺實(shí)現(xiàn)距離估計(jì)?

如果圖像中間沒有障礙物,那么每條光線都會(huì)通過,圖像會(huì)變得模糊。它還使我們能夠確定用于變焦和更好清晰度的焦距f。

無人駕駛:如何使用立體視覺實(shí)現(xiàn)距離估計(jì)?

要校準(zhǔn)相機(jī),我們需要將世界坐標(biāo)轉(zhuǎn)換為通過相機(jī)坐標(biāo)的像素坐標(biāo)。

無人駕駛:如何使用立體視覺實(shí)現(xiàn)距離估計(jì)?  

相機(jī)校準(zhǔn)過程

  • 從世界坐標(biāo)到攝像機(jī)坐標(biāo)的轉(zhuǎn)換稱為外部校準(zhǔn)。外在參數(shù)稱為R(旋轉(zhuǎn)矩陣)和T(平移矩陣)。

  • 從相機(jī)坐標(biāo)到像素坐標(biāo)的轉(zhuǎn)換稱為固有校準(zhǔn)。它需要相機(jī)的內(nèi)部值,例如焦距,光學(xué)中心等。

固有參數(shù)是我們稱為K的矩陣。

無人駕駛:如何使用立體視覺實(shí)現(xiàn)距離估計(jì)?

校準(zhǔn)

過相機(jī)校準(zhǔn)可以找到K矩陣。

通常,我們使用棋盤格和自動(dòng)算法來執(zhí)行它。 當(dāng)我們這樣做時(shí),我們告訴算法棋盤上的一個(gè)點(diǎn)(例如:0,0,0)對(duì)應(yīng)于圖像中的一個(gè)像素(例如:545、343)。

無人駕駛:如何使用立體視覺實(shí)現(xiàn)距離估計(jì)?

  校準(zhǔn)示例

為此,我們必須使用相機(jī)拍攝棋盤格的圖像,并且在經(jīng)過一些圖像和某些點(diǎn)之后,校準(zhǔn)算法將通過最小化最小二乘方損失來確定相機(jī)的校準(zhǔn)矩陣。

通常,必須進(jìn)行校準(zhǔn)才能消除圖像失真。 針孔攝像頭模型包括變形,即“ GoPro效果”。 為了獲得校正的圖像,必須進(jìn)行校準(zhǔn)。 變形可以是徑向的或切向的。 校準(zhǔn)有助于使圖像不失真。

無人駕駛:如何使用立體視覺實(shí)現(xiàn)距離估計(jì)?  

圖像校準(zhǔn)

以下是相機(jī)校準(zhǔn)返回的矩陣:

無人駕駛:如何使用立體視覺實(shí)現(xiàn)距離估計(jì)? 

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

每一個(gè)計(jì)算機(jī)視覺工程師都必須了解和掌握攝像機(jī)的標(biāo)定。這是最基本、最重要的要求。我們習(xí)慣于在線處理圖像,從不接觸硬件,這是個(gè)錯(cuò)誤。

-嘗試運(yùn)行OpenCV進(jìn)行攝像機(jī)校準(zhǔn)。

同類坐標(biāo)

在相機(jī)校準(zhǔn)過程中,我們有兩個(gè)公式可以將世界上的點(diǎn)O設(shè)為像素空間:

world到相機(jī)的轉(zhuǎn)換

無人駕駛:如何使用立體視覺實(shí)現(xiàn)距離估計(jì)?

外在校準(zhǔn)公式

相機(jī)到圖像的轉(zhuǎn)換

無人駕駛:如何使用立體視覺實(shí)現(xiàn)距離估計(jì)?  內(nèi)部校準(zhǔn)公式

當(dāng)您進(jìn)行數(shù)學(xué)運(yùn)算時(shí),您將得出以下等式:

world到圖像的轉(zhuǎn)換

無人駕駛:如何使用立體視覺實(shí)現(xiàn)距離估計(jì)?  完整公式

如果您查看矩陣尺寸,則不匹配。

無人駕駛:如何使用立體視覺實(shí)現(xiàn)距離估計(jì)?

因此,我們需要將O_world從[X Y Z]修改為[X Y Z 1]。

該“ 1”稱為齊次坐標(biāo)。

2.極線幾何--立體視覺

立體視覺是基于兩張圖像來尋找深度。

我們的眼睛就像兩個(gè)相機(jī)。因?yàn)樗鼈儚牟煌慕嵌瓤赐环鶊D像,它們可以比對(duì)兩種視角之間的差異,并計(jì)算出距離估計(jì)。

下面是立體相機(jī)設(shè)置的示例。你會(huì)在大多數(shù)自動(dòng)駕駛汽車上發(fā)現(xiàn)類似的東西。

無人駕駛:如何使用立體視覺實(shí)現(xiàn)距離估計(jì)?

立體相機(jī)如何估算深度

假設(shè)你有兩個(gè)相機(jī),一左一右。這兩個(gè)相機(jī)在相同的Y軸和Z軸上對(duì)齊?;旧?,唯一的區(qū)別就是它們X值不一樣。

現(xiàn)在,看看下面的描述。

無人駕駛:如何使用立體視覺實(shí)現(xiàn)距離估計(jì)?

立體相機(jī)簡圖

我們的目標(biāo)是估算出O點(diǎn)(代表圖像中的任何像素)的Z值,即深度距離。

  • X 為對(duì)齊軸;

  • Y 為高度;

  • Z 為深度;

  • 兩個(gè)藍(lán)色平面對(duì)應(yīng)于來自兩個(gè)相機(jī)的圖像。

現(xiàn)在從鳥瞰的角度來考慮這個(gè)問題。

無人駕駛:如何使用立體視覺實(shí)現(xiàn)距離估計(jì)?

立體相機(jī)鳥瞰圖說明:

  • xL 對(duì)應(yīng)于左相機(jī)中的光心,xR對(duì)應(yīng)于右相機(jī)中的光心。

  • b 是基線,它是兩個(gè)相機(jī)之間的距離。

如果你運(yùn)用泰勒斯定理,你會(huì)發(fā)現(xiàn)我們可以得到兩個(gè)方程

  • 對(duì)于左邊相機(jī):

無人駕駛:如何使用立體視覺實(shí)現(xiàn)距離估計(jì)?

左相機(jī)方程

? 我們得到 Z = X*f / xL.

  • 對(duì)于右邊相機(jī):

無人駕駛:如何使用立體視覺實(shí)現(xiàn)距離估計(jì)?

右相機(jī)方程:

? 我們獲得 Z = (X — b)*f/xR.

放在一起,我們可以找到正確的視差 d =xL -- xR和目標(biāo)正確的 XYZ 坐標(biāo)。  

3. 視差與深度圖

視差是什么?視差是一個(gè)三維點(diǎn)從兩個(gè)不同的相機(jī)角度在圖像中位置的差異。

無人駕駛:如何使用立體視覺實(shí)現(xiàn)距離估計(jì)?

立體視覺公式


? 由立體視覺我們可以估計(jì)任何物體的深度。假設(shè)我們做了正確的矩陣校準(zhǔn)。它甚至能夠計(jì)算一個(gè)深度映射或者視差映射。

無人駕駛:如何使用立體視覺實(shí)現(xiàn)距離估計(jì)?

視差圖

為什么是“基線幾何”?

要計(jì)算視差,我們必須從左圖像中找到每個(gè)像素,并將其與右圖像中的每個(gè)像素進(jìn)行匹配。 這稱為立體對(duì)應(yīng)問題。


為了解決這個(gè)問題--

  • 現(xiàn)在在左邊的圖像中取一個(gè)像素

  • 要在右邊的圖像中找到這個(gè)像素,只需在基線上搜索它。沒有必要進(jìn)行2D搜索,點(diǎn)應(yīng)該位于這條線上,搜索范圍縮小到 1D。

無人駕駛:如何使用立體視覺實(shí)現(xiàn)距離估計(jì)?

基線

這是因?yàn)閮蓚€(gè)相機(jī)是沿著同一軸對(duì)齊的。

以下是基線搜索的工作原理:

無人駕駛:如何使用立體視覺實(shí)現(xiàn)距離估計(jì)?  基線搜索

應(yīng)用:建立偽激光雷達(dá)

現(xiàn)在,是時(shí)候?qū)⑦@些應(yīng)用到真實(shí)世界的場景中,看看我們?nèi)绾斡昧Ⅲw視覺來估計(jì)物體的深度。

考慮兩張圖片--

無人駕駛:如何使用立體視覺實(shí)現(xiàn)距離估計(jì)?

  立體視覺

每一幅圖像都有外部參數(shù) R 和 t,事先通過校準(zhǔn)確定(步驟1)。

視差

對(duì)于每一幅圖像,我們可以計(jì)算相對(duì)于另一幅圖像的視差圖。我們將做如下操作:

  • 確定兩幅圖像之間的視差。

  • 投影矩陣分解成相機(jī)的內(nèi)在矩陣 K和外在矩陣 R,t。

  • 利用我們?cè)谇懊鎯蓚€(gè)步驟中收集到的數(shù)據(jù)估算深度。

我們將獲得左右圖像的視差圖。

為了幫助您更好地理解差異的含義,我在 Stack Overflow 上找到了一個(gè)很棒的解釋。

視差圖是指一對(duì)立體圖像之間的明顯像素差或運(yùn)動(dòng)。
要體驗(yàn)這一點(diǎn),試著閉上你的一只眼睛,迅速閉上,同時(shí)睜開另一只。離你很近的物體看起來會(huì)跳躍一段很長的距離,而離你很遠(yuǎn)的物體幾乎不會(huì)移動(dòng)。這個(gè)運(yùn)動(dòng)就是視差。在一對(duì)來自立體攝像機(jī)的圖像中,你可以測量每個(gè)點(diǎn)的視運(yùn)動(dòng)像素,并根據(jù)測量結(jié)果制作出一個(gè)強(qiáng)度圖像。

無人駕駛:如何使用立體視覺實(shí)現(xiàn)距離估計(jì)?  

從視差到深度圖

? 我們有兩個(gè)視差圖,這基本上告訴我們,兩幅圖像之間的像素位移是多少。

對(duì)于每個(gè)攝像機(jī),都有一個(gè)投影矩陣 P_left 和 P_right。為了估計(jì)深度,我們需要估計(jì)K, R 和 t。

無人駕駛:如何使用立體視覺實(shí)現(xiàn)距離估計(jì)?

世界坐標(biāo)系到相機(jī)坐標(biāo)系的轉(zhuǎn)換一個(gè)名為

cv2.decomposeProjectionMatrix()的OpenCV函數(shù)可以做到這一點(diǎn),并從 P 中得到 K、R 和 t;對(duì)于每個(gè)相機(jī),現(xiàn)在是時(shí)候生成深度圖了。深度圖將使用其他圖像和視差圖告訴我們圖像中每個(gè)像素的距離。

這個(gè)過程如下:

  • 從矩陣 K 獲得焦距 f;

  • 使用轉(zhuǎn)換向量 t 中的相應(yīng)值來計(jì)算基線 ?;

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

無人駕駛:如何使用立體視覺實(shí)現(xiàn)距離估計(jì)?

 

 立體視覺公式

我們對(duì)每個(gè)像素進(jìn)行計(jì)算。

無人駕駛:如何使用立體視覺實(shí)現(xiàn)距離估計(jì)?


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

針對(duì)每個(gè)相機(jī),我們都有一個(gè)深度圖! 現(xiàn)在,假設(shè)我們將其與障礙檢測算法(例如YOLO)結(jié)合在一起。 對(duì)于每個(gè)障礙,這種算法都會(huì)返回帶有4個(gè)數(shù)字的邊界框:[x1; y1; x2; y2]。 這些數(shù)字表示框的左上角和右下角的坐標(biāo)。

例如,我們可以在左邊的圖像上運(yùn)行這個(gè)算法,然后使用左邊的深度圖。

現(xiàn)在,在這個(gè)邊界框中,我們可以取最近的點(diǎn)。我們知道它,因?yàn)槲覀冎缊D像中每個(gè)點(diǎn)的距離。邊界框中的第一個(gè)點(diǎn)是我們到障礙物的距離。

無人駕駛:如何使用立體視覺實(shí)現(xiàn)距離估計(jì)?

真不可思議!我們剛剛構(gòu)建了偽激光雷達(dá)!

借助立體視覺,我們不僅知道圖像中的障礙物,而且知道它們與我們的距離! 這個(gè)障礙距離我們28.927米!

立體視覺是一種使用簡單的幾何圖形和一個(gè)額外的攝像機(jī)將2D障礙物檢測轉(zhuǎn)換為3D障礙物檢測的技術(shù)。如今,大多數(shù)新興的edge平臺(tái)都考慮了立體視覺,比如新的OpenCV AI Kit或?qū)aspberry和Nvidia Jetson卡的集成。

在成本方面,與使用LiDAR相比,它保持相對(duì)便宜,并且仍具有出色的性能。我們稱它為偽激光雷達(dá),因?yàn)樗梢匀〈す饫走_(dá)的功能。檢測障礙物,對(duì)障礙物進(jìn)行分類,并在3D中進(jìn)行定位。

無人駕駛:如何使用立體視覺實(shí)現(xiàn)距離估計(jì)?


AI研習(xí)社是AI學(xué)術(shù)青年和AI開發(fā)者技術(shù)交流的在線社區(qū)。我們與高校、學(xué)術(shù)機(jī)構(gòu)和產(chǎn)業(yè)界合作,通過提供學(xué)習(xí)、實(shí)戰(zhàn)和求職服務(wù),為AI學(xué)術(shù)青年和開發(fā)者的交流互助和職業(yè)發(fā)展打造一站式平臺(tái),致力成為中國最大的科技創(chuàng)新人才聚集地。

如果,你也是位熱愛分享的AI愛好者。歡迎與譯站一起,學(xué)習(xí)新知,分享成長。

無人駕駛:如何使用立體視覺實(shí)現(xiàn)距離估計(jì)?

雷峰網(wǎng)版權(quán)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。

無人駕駛:如何使用立體視覺實(shí)現(xiàn)距離估計(jì)?

分享:
相關(guān)文章

知情人士

AI研習(xí)社(yanxishe.com)譯站頻道,傳播前沿人工智能知識(shí),讓語言不再成為學(xué)習(xí)知識(shí)的門檻。(原雷鋒字幕組)
當(dāng)月熱門文章
最新文章
請(qǐng)?zhí)顚懮暾?qǐng)人資料
姓名
電話
郵箱
微信號(hào)
作品鏈接
個(gè)人簡介
為了您的賬戶安全,請(qǐng)驗(yàn)證郵箱
您的郵箱還未驗(yàn)證,完成可獲20積分喲!
請(qǐng)驗(yàn)證您的郵箱
立即驗(yàn)證
完善賬號(hào)信息
您的賬號(hào)已經(jīng)綁定,現(xiàn)在您可以設(shè)置密碼以方便用郵箱登錄
立即設(shè)置 以后再說