如何通過立體視覺構建小巧輕便的深度感知係統
發布時間:2022-08-18 責任編輯:wenwei
【導讀】有多種 3D 傳感器方案來實現深度感知係統,包括立體視覺相機、激光雷達和TOF(飛行時間)相xiang機ji。每mei個ge選xuan擇ze都dou有you其qi優you缺que點dian,其qi中zhong,嵌qian入ru式shi深shen度du感gan知zhi立li體ti係xi統tong成cheng本ben低di,堅jian固gu耐nai用yong,適shi合he戶hu外wai使shi用yong,並bing且qie能neng夠gou提ti供gong高gao分fen辨bian率lv的de彩cai色se點dian雲yun。
目前市場上有各種現成的立體感知係統。有時係統工程師需求根據精度、基線(兩個相機間距)、視野和分辨率等因素,構建定製係統來滿足特定的應用需求。
zaibenwenzhong,womenshouxianjieshaolelitishijiaoxitongdezhuyaobufen,bingtigongleyouguanshiyongyingjianzuchenghekaiyuanruanjianzhizuodingzhilitixiangjideshuoming。youyucishezhizhuanzhuyuqianrushixitong,yincitajiangshishijisuanrenhechangjingdeshendutu,erwuxudiannaozhuji。zailingyipianwenzhangzhong,womenjiangtaolunruhezaikongjianjiaoshaodeqingkuangxiagoujiandingzhilitishijiaoxitong,yibianyudiannaozhujiyiqishiyong。
立體視覺概述
立體視覺是通過從兩個視角比較場景中的信息,從數字圖像中提取 3D 信息。物體在兩個圖像平麵中的相對位置可提供關於物體距離相機的深度的信息。
立體視覺係統概述如圖 1 所示,包括以下關鍵步驟:
校準:相機校準包括內部校準和外部校準。內部校準確定圖像中心、焦距和失真參數,而外部校準確定相機的 3D 位置。這在許多計算機視覺應用中是至關重要的一步,尤其是在需要有關場景的計量信息(例如深度)時。我們將在下文第 5 節詳細討論校準步驟。
糾正:立li體ti糾jiu正zheng是shi指zhi將jiang圖tu像xiang平ping麵mian重zhong新xin投tou影ying到dao與yu相xiang機ji中zhong心xin之zhi間jian的de線xian平ping行xing的de公gong共gong平ping麵mian上shang的de過guo程cheng。糾jiu正zheng後hou,對dui應ying點dian位wei於yu同tong一yi行xing,大da大da降jiang低di了le匹pi配pei的de成cheng本ben和he模mo糊hu度du。此ci步bu驟zhou在zai提ti供gong的de代dai碼ma中zhong完wan成cheng,用yong於yu構gou建jian您nin自zi己ji的de係xi統tong。
立體匹配:這是指在左右圖像之間匹配像素的過程,從而產生視差圖像。提供的代碼中將使用半全局匹配 (SGM) 算法來構建您自己的係統。
三角測量:三角測量是指在給定 3D 空間中的點投影到兩個圖像上的情況下確定該點的過程。視差圖像將轉換為 3D 點雲。
圖 1:立體視覺係統概述
設計示例
我們來看一個立體聲係統設計示例。以下是移動機器人在具有快速移動物體的動態環境中的應用要求。有關場景大小為 2 m,相機到場景的距離為 3 m,在 3 m 處所需的精度為 1 cm。
有關立體精度的更多詳細信息,請參閱本文。深度誤差由下式給出:ΔZ=Z²/Bf * Δd,這取決於以下因素:
● Z 是範圍
● B 是基線
● f 是以像素為單位的焦距,與相機視野和圖像分辨率有關
有you多duo種zhong設she計ji選xuan項xiang可ke以yi滿man足zu這zhe些xie要yao求qiu。根gen據ju上shang述shu場chang景jing大da小xiao和he距ju離li要yao求qiu,我wo們men可ke以yi確que定ding特te定ding傳chuan感gan器qi的de鏡jing頭tou焦jiao距ju。結jie合he基ji線xian,我wo們men可ke以yi使shi用yong上shang述shu公gong式shi計ji算suan 3 m 處的預期深度誤差,以驗證其是否滿足精度要求。
圖 2 顯(xian)示(shi)了(le)兩(liang)個(ge)選(xuan)項(xiang),使(shi)用(yong)基(ji)線(xian)較(jiao)長(chang)的(de)低(di)分(fen)辨(bian)率(lv)相(xiang)機(ji)或(huo)基(ji)線(xian)較(jiao)短(duan)的(de)高(gao)分(fen)辨(bian)率(lv)相(xiang)機(ji)。第(di)一(yi)個(ge)選(xuan)項(xiang)是(shi)較(jiao)大(da)的(de)相(xiang)機(ji),但(dan)計(ji)算(suan)需(xu)求(qiu)較(jiao)低(di),而(er)第(di)二(er)個(ge)選(xuan)項(xiang)是(shi)更(geng)緊(jin)湊(cou)的(de)相(xiang)機(ji),但(dan)計(ji)算(suan)需(xu)求(qiu)較(jiao)高(gao)。對(dui)於(yu)此(ci)應(ying)用(yong),我(wo)們(men)選(xuan)擇(ze)了(le)第(di)二(er)個(ge)選(xuan)項(xiang),因(yin)為(wei)緊(jin)湊(cou)的(de)尺(chi)寸(cun)更(geng)適(shi)合(he)移(yi)動(dong)機(ji)器(qi)人(ren),我(wo)們(men)可(ke)以(yi)使(shi)用(yong)適(shi)用(yong)於(yu) TX2 的 Quartet 嵌入式解決方案,該解決方案具有強大的板載 GPU 來滿足處理需求。
圖 2:示例應用的立體聲係統設計選項
硬件要求
在本例中,我們使用 IMX273 Sony Pregius 全局快門傳感器將兩台 Blackfly S 板級 160 萬像素相機安裝在 12 cm 基線處的 3D 印刷杆上。這兩台相機都有類似的 6 mm S 接口鏡頭。相機使用兩條 FPC 電纜連接到“適用於 TX2 的 Quartet 嵌入式解決方案”定製載板。為了同步左右相機以同時捕捉圖像,製作了一條連接兩個相機的同步電纜。圖 3 顯示了我們定製的嵌入式立體聲係統的前後視圖。
圖 3:定製嵌入式立體聲係統的前後視圖
下表列出了所有硬件組件:
應調整兩個鏡頭,以將相機聚焦在您的應用所需的距離範圍內。擰緊每個鏡頭上的螺釘(圖 4 中以紅色圈出)以保持對焦。
圖 4:顯示鏡頭螺釘的立體聲係統側視圖
軟件要求
a. Spinnaker
Teledyne FLIR Spinnaker SDK 已預裝在適用於 TX2 的 Quartet 嵌入式解決方案中。Spinnaker 需要與相機進行通信。
b. 支持 CUDA 的 OpenCV 4.5.2
SGM(我們正在使用的立體匹配算法)需要 OpenCV 4.5.1 或更高版本。下載包含本文代碼的 zip 文件,並將其解壓縮到 StereoDepth 文件夾。安裝 OpenCV 的腳本是 OpenCVInstaller.sh。在終端中鍵入以下命令:
● cd ~/StereoDepth
● chmod +x OpenCVInstaller.sh
● ./OpenCVInstaller.sh
安裝程序將要求您輸入管理員密碼。安裝程序將開始安裝 OpenCV 4.5.2。下載和構建 OpenCV 可能需要幾個小時。
校準
抓取和校準立體圖像的代碼可在 “Calibration” 文件夾中找到。使用 SpinView GUI 識別左右相機的序列號。在我們的設置中,右相機是主相機,左相機是從相機。將主從相機序列號複製到文件 grabStereoImages.cpp 第 60 和 61 行。在終端中使用以下命令構建可執行文件:
● cd ~/StereoDepth/Calibration
● mkdir build
● mkdir -p images/{left, right}
● cd build
● cmake ..
● make
從此鏈接打印出棋盤狀圖案,並將其貼在平麵上用作校準目標。為了在校準時獲得最佳效果,在 SpinView 中將 Exposure Auto 設置為 Off 並調整曝光,使棋盤狀圖案清晰且白色方塊不會過度曝光,如圖 5 所示。收集校準圖像後,增益和曝光可在 SpinView 中設置為自動。
圖 5:SpinView GUI 設置
要開始收集圖像,請鍵入
./grabStereoImages
代碼應以大約 1 幀/秒的速度開始收集圖像。左側圖像存儲在 images/left 文件夾中,右側圖像存儲在 images/right 文件夾中。移動目標,使其出現在圖像的每個角落。您可以旋轉目標,從近處和遠處拍攝圖像。默認情況下,該程序捕獲 100 個圖像對,但可以使用命令行參數進行更改:
./grabStereoImages 20
這將僅收集 20 對圖像。請注意,這將覆蓋之前寫入文件夾中的所有圖像。部分示例校準圖像如圖 6 所示。
圖 6:示例校準圖像
收集圖像後,通過鍵入以下內容運行校準 Python 代碼:
● cd ~/StereoDepth/Calibration
● python cameraCalibration.py
這將生成 2 個名為 “intrinsics.yml” 和 “extrinsics.yml” 的文件,其中包含立體聲係統的內部和外部參數。該代碼默認采用 30mm 棋盤方格,但可以根據需要進行編輯。在校準結束時,它會顯示 RMS 誤差,表明校準的好壞。良好校準的典型 RMS 誤差應低於 0.5 像素。
實時深度圖
實時計算視差的代碼位於 “Depth” 文件夾中。將相機序列號複製到文件 live_disparity.cpp 第 230 和 231 行。在終端中使用以下命令構建可執行文件:
● cd ~/StereoDepth/Depth
● mkdir build
● cd build
● cmake ..
● make
將校準步驟中獲得的 “intrinsics.yml” 和 “extrinsics.yml” 文件複製到此文件夾。要運行實時深度圖演示,請鍵入
./live_disparity
它將顯示左相機圖像(原始未糾正圖像)和深度圖(我們的最終輸出)。部分示例輸出如圖 7 所示。與相機的距離根據深度圖右側的圖例進行顏色編碼。深度圖中的黑色區域意味著在該區域中沒有發現視差數據。得益於 NVIDIA Jetson TX2 GPU,它在 1440 × 1080 的分辨率下可運行高達 5 幀/秒,在 720 × 540 的分辨率下可運行高達 13 幀/秒。
要查看特定點的深度,請在深度圖中單擊該點,深度將會顯示出來,如圖 7 中最後一個示例所示。
圖 7:對左相機圖像和相應的深度圖進行采樣。底部深度圖還會顯示特定點的深度。
摘要
使(shi)用(yong)立(li)體(ti)視(shi)覺(jiao)來(lai)形(xing)成(cheng)深(shen)度(du)信(xin)息(xi)感(gan)知(zhi)的(de)優(you)勢(shi)眾(zhong)多(duo),包(bao)括(kuo)在(zai)戶(hu)外(wai)工(gong)作(zuo)良(liang)好(hao),能(neng)夠(gou)提(ti)供(gong)高(gao)分(fen)辨(bian)率(lv)的(de)深(shen)度(du)圖(tu),可(ke)通(tong)過(guo)低(di)成(cheng)本(ben)的(de)現(xian)成(cheng)組(zu)件(jian)製(zhi)作(zuo)。當(dang)您(nin)需(xu)要(yao)開(kai)發(fa)一(yi)個(ge)定(ding)製(zhi)化(hua)的(de)嵌(qian)入(ru)式(shi)立(li)體(ti)感(gan)知(zhi)係(xi)統(tong),根(gen)據(ju)此(ci)處(chu)提(ti)供(gong)的(de)說(shuo)明(ming)進(jin)行(xing)操(cao)作(zuo),也(ye)將(jiang)是(shi)一(yi)個(ge)相(xiang)對(dui)簡(jian)單(dan)的(de)任(ren)務(wu)。
免責聲明:本文為轉載文章,轉載此文目的在於傳遞更多信息,版權歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權問題,請聯係小編進行處理。
推薦閱讀:
- 噪聲中提取真值!瑞盟科技推出MSA2240電流檢測芯片賦能多元高端測量場景
- 10MHz高頻運行!氮矽科技發布集成驅動GaN芯片,助力電源能效再攀新高
- 失真度僅0.002%!力芯微推出超低內阻、超低失真4PST模擬開關
- 一“芯”雙電!聖邦微電子發布雙輸出電源芯片,簡化AFE與音頻設計
- 一機適配萬端:金升陽推出1200W可編程電源,賦能高端裝備製造
- 從機械執行到智能互動:移遠Q-Robotbox助力具身智能加速落地
- 品英Pickering將亮相2026航空電子國際論壇,展示航電與電池測試前沿方案
- 模擬芯片設計師的噩夢:晶體管差1毫伏就廢了,溫度升1度特性全飄
- 3A大電流僅需3x1.6mm?意法半導體DCP3603重新定義電源設計
- 芯科科技Tech Talks與藍牙亞洲大會聯動,線上線下賦能物聯網創新
- 車規與基於V2X的車輛協同主動避撞技術展望
- 數字隔離助力新能源汽車安全隔離的新挑戰
- 汽車模塊拋負載的解決方案
- 車用連接器的安全創新應用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall




