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

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

0

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

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

譯者:AI研習社(Zach、Suen

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


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

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

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

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

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

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

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

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

1.校準2臺照相機(內(nèi)部和外部校準)

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

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

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

開始吧!

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

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

相機型號

當今的相機使用針孔相機模型。
這個想法是使用針孔讓少量光線穿過相機,從而獲得清晰的圖像。

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

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

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

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

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

相機校準過程

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

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

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

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

校準

過相機校準可以找到K矩陣。

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

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

  校準示例

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

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

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

圖像校準

以下是相機校準返回的矩陣:

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

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

每一個計算機視覺工程師都必須了解和掌握攝像機的標定。這是最基本、最重要的要求。我們習慣于在線處理圖像,從不接觸硬件,這是個錯誤。

-嘗試運行OpenCV進行攝像機校準。

同類坐標

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

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

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

外在校準公式

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

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

當您進行數(shù)學運算時,您將得出以下等式:

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

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

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

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

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

該“ 1”稱為齊次坐標。

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

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

我們的眼睛就像兩個相機。因為它們從不同的角度看同一幅圖像,它們可以比對兩種視角之間的差異,并計算出距離估計。

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

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

立體相機如何估算深度

假設(shè)你有兩個相機,一左一右。這兩個相機在相同的Y軸和Z軸上對齊?;旧希ㄒ坏膮^(qū)別就是它們X值不一樣。

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

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

立體相機簡圖

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

  • X 為對齊軸;

  • Y 為高度;

  • Z 為深度;

  • 兩個藍色平面對應(yīng)于來自兩個相機的圖像。

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

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

立體相機鳥瞰圖說明:

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

  • b 是基線,它是兩個相機之間的距離。

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

  • 對于左邊相機:

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

左相機方程

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

  • 對于右邊相機:

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

右相機方程:

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

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

3. 視差與深度圖

視差是什么?視差是一個三維點從兩個不同的相機角度在圖像中位置的差異。

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

立體視覺公式


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

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

視差圖

為什么是“基線幾何”?

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


為了解決這個問題--

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

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

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

基線

這是因為兩個相機是沿著同一軸對齊的。

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

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

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

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

考慮兩張圖片--

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

  立體視覺

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

視差

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

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

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

  • 利用我們在前面兩個步驟中收集到的數(shù)據(jù)估算深度。

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

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

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

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

從視差到深度圖

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

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

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

世界坐標系到相機坐標系的轉(zhuǎn)換一個名為

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

這個過程如下:

  • 從矩陣 K 獲得焦距 f;

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

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

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

 

 立體視覺公式

我們對每個像素進行計算。

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


估計障礙物的深度

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

例如,我們可以在左邊的圖像上運行這個算法,然后使用左邊的深度圖。

現(xiàn)在,在這個邊界框中,我們可以取最近的點。我們知道它,因為我們知道圖像中每個點的距離。邊界框中的第一個點是我們到障礙物的距離。

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

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

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

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

在成本方面,與使用LiDAR相比,它保持相對便宜,并且仍具有出色的性能。我們稱它為偽激光雷達,因為它可以取代激光雷達的功能。檢測障礙物,對障礙物進行分類,并在3D中進行定位。

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


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

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

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

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

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

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

知情人士

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