0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何通過(guò)立體視覺構(gòu)建小巧輕便的深度感知系統(tǒng)

suanjunihao ? 來(lái)源:suanjunihao ? 作者:suanjunihao ? 2022-08-23 16:45 ? 次閱讀

如何通過(guò)立體視覺構(gòu)建小巧輕便的深度感知系統(tǒng)

【導(dǎo)讀】有多種 3D 傳感器方案來(lái)實(shí)現(xiàn)深度感知系統(tǒng),包括立體視覺相機(jī)、激光雷達(dá)和TOF(飛行時(shí)間)相機(jī)。每個(gè)選擇都有其優(yōu)缺點(diǎn),其中,嵌入式深度感知立體系統(tǒng)成本低,堅(jiān)固耐用,適合戶外使用,并且能夠提供高分辨率的彩色點(diǎn)云。

pYYBAGMEk5uAOfMqAACFUQT2fP8562.jpg

目前市場(chǎng)上有各種現(xiàn)成的立體感知系統(tǒng)。有時(shí)系統(tǒng)工程師需求根據(jù)精度、基線(兩個(gè)相機(jī)間距)、視野和分辨率等因素,構(gòu)建定制系統(tǒng)來(lái)滿足特定的應(yīng)用需求。

在本文中,我們首先介紹了立體視覺系統(tǒng)的主要部分,并提供了有關(guān)使用硬件組成和開源軟件制作定制立體相機(jī)的說(shuō)明。由于此設(shè)置專注于嵌入式系統(tǒng),因此它將實(shí)時(shí)計(jì)算任何場(chǎng)景的深度圖,而無(wú)需電腦主機(jī)。在另一篇文章中,我們將討論如何在空間較少的情況下構(gòu)建定制立體視覺系統(tǒng),以便與電腦主機(jī)一起使用。

立體視覺概述

立體視覺是通過(guò)從兩個(gè)視角比較場(chǎng)景中的信息,從數(shù)字圖像中提取 3D 信息。物體在兩個(gè)圖像平面中的相對(duì)位置可提供關(guān)于物體距離相機(jī)的深度的信息。

立體視覺系統(tǒng)概述如圖 1 所示,包括以下關(guān)鍵步驟:

校準(zhǔn):相機(jī)校準(zhǔn)包括內(nèi)部校準(zhǔn)和外部校準(zhǔn)。內(nèi)部校準(zhǔn)確定圖像中心、焦距和失真參數(shù),而外部校準(zhǔn)確定相機(jī)的 3D 位置。這在許多計(jì)算機(jī)視覺應(yīng)用中是至關(guān)重要的一步,尤其是在需要有關(guān)場(chǎng)景的計(jì)量信息(例如深度)時(shí)。我們將在下文第 5 節(jié)詳細(xì)討論校準(zhǔn)步驟。

糾正:立體糾正是指將圖像平面重新投影到與相機(jī)中心之間的線平行的公共平面上的過(guò)程。糾正后,對(duì)應(yīng)點(diǎn)位于同一行,大大降低了匹配的成本和模糊度。此步驟在提供的代碼中完成,用于構(gòu)建您自己的系統(tǒng)。

立體匹配:這是指在左右圖像之間匹配像素的過(guò)程,從而產(chǎn)生視差圖像。提供的代碼中將使用半全局匹配 (SGM) 算法來(lái)構(gòu)建您自己的系統(tǒng)。

電子元器件現(xiàn)貨上唯樣商城

三角測(cè)量:三角測(cè)量是指在給定 3D 空間中的點(diǎn)投影到兩個(gè)圖像上的情況下確定該點(diǎn)的過(guò)程。視差圖像將轉(zhuǎn)換為 3D 點(diǎn)云。

poYBAGMEk5yAZfzBAABDAQho4gI340.jpg

圖 1:立體視覺系統(tǒng)概述

設(shè)計(jì)示例

我們來(lái)看一個(gè)立體聲系統(tǒng)設(shè)計(jì)示例。以下是移動(dòng)機(jī)器人在具有快速移動(dòng)物體的動(dòng)態(tài)環(huán)境中的應(yīng)用要求。有關(guān)場(chǎng)景大小為 2 m,相機(jī)到場(chǎng)景的距離為 3 m,在 3 m 處所需的精度為 1 cm。

有關(guān)立體精度的更多詳細(xì)信息,請(qǐng)參閱本文。深度誤差由下式給出:ΔZ=Z2/Bf * Δd,這取決于以下因素:

● Z 是范圍

● B 是基線

● f 是以像素為單位的焦距,與相機(jī)視野和圖像分辨率有關(guān)

有多種設(shè)計(jì)選項(xiàng)可以滿足這些要求。根據(jù)上述場(chǎng)景大小和距離要求,我們可以確定特定傳感器的鏡頭焦距。結(jié)合基線,我們可以使用上述公式計(jì)算 3 m 處的預(yù)期深度誤差,以驗(yàn)證其是否滿足精度要求。

圖 2 顯示了兩個(gè)選項(xiàng),使用基線較長(zhǎng)的低分辨率相機(jī)或基線較短的高分辨率相機(jī)。第一個(gè)選項(xiàng)是較大的相機(jī),但計(jì)算需求較低,而第二個(gè)選項(xiàng)是更緊湊的相機(jī),但計(jì)算需求較高。對(duì)于此應(yīng)用,我們選擇了第二個(gè)選項(xiàng),因?yàn)榫o湊的尺寸更適合移動(dòng)機(jī)器人,我們可以使用適用于 TX2 的 Quartet 嵌入式解決方案,該解決方案具有強(qiáng)大的板載 GPU 來(lái)滿足處理需求。

poYBAGMEk5yAc0oUAAA9NfCZad8230.jpg

圖 2:示例應(yīng)用的立體聲系統(tǒng)設(shè)計(jì)選項(xiàng)

硬件要求

在本例中,我們使用 IMX273 Sony Pregius 全局快門傳感器將兩臺(tái) Blackfly S 板級(jí) 160 萬(wàn)像素相機(jī)安裝在 12 cm 基線處的 3D 印刷桿上。這兩臺(tái)相機(jī)都有類似的 6 mm S 接口鏡頭。相機(jī)使用兩條 FPC 電纜連接到“適用于 TX2 的 Quartet 嵌入式解決方案”定制載板。為了同步左右相機(jī)以同時(shí)捕捉圖像,制作了一條連接兩個(gè)相機(jī)的同步電纜。圖 3 顯示了我們定制的嵌入式立體聲系統(tǒng)的前后視圖。

pYYBAGMEk5yAfxUEAADKCdbbKaE042.jpg

圖 3:定制嵌入式立體聲系統(tǒng)的前后視圖

下表列出了所有硬件組件:

pYYBAGMEk_-AdQ3PAABWeL4CX1Y522.png

應(yīng)調(diào)整兩個(gè)鏡頭,以將相機(jī)聚焦在您的應(yīng)用所需的距離范圍內(nèi)。擰緊每個(gè)鏡頭上的螺釘(圖 4 中以紅色圈出)以保持對(duì)焦。

pYYBAGMEk52AYfvLAAC29PDsNbc034.jpg

圖 4:顯示鏡頭螺釘?shù)牧Ⅲw聲系統(tǒng)側(cè)視圖

軟件要求

a. Spinnaker

Teledyne FLIR Spinnaker SDK 已預(yù)裝在適用于 TX2 的 Quartet 嵌入式解決方案中。Spinnaker 需要與相機(jī)進(jìn)行通信。

b. 支持 CUDA 的 OpenCV 4.5.2

SGM(我們正在使用的立體匹配算法)需要 OpenCV 4.5.1 或更高版本。下載包含本文代碼的 zip 文件,并將其解壓縮到 StereoDepth 文件夾。安裝 OpenCV 的腳本是 OpenCVInstaller.sh。在終端中鍵入以下命令:

● cd ~/StereoDepth

● chmod +x OpenCVInstaller.sh

● ./OpenCVInstaller.sh

安裝程序?qū)⒁竽斎牍芾韱T密碼。安裝程序?qū)㈤_始安裝 OpenCV 4.5.2。下載和構(gòu)建 OpenCV 可能需要幾個(gè)小時(shí)。

校準(zhǔn)

抓取和校準(zhǔn)立體圖像的代碼可在 “Calibration” 文件夾中找到。使用 SpinView GUI 識(shí)別左右相機(jī)的序列號(hào)。在我們的設(shè)置中,右相機(jī)是主相機(jī),左相機(jī)是從相機(jī)。將主從相機(jī)序列號(hào)復(fù)制到文件 grabStereoImages.cpp 第 60 和 61 行。在終端中使用以下命令構(gòu)建可執(zhí)行文件:

● cd ~/StereoDepth/Calibration

● mkdir build

● mkdir -p images/{left, right}

● cd build

● cmake ..

● make

從此鏈接打印出棋盤狀圖案,并將其貼在平面上用作校準(zhǔn)目標(biāo)。為了在校準(zhǔn)時(shí)獲得最佳效果,在 SpinView 中將 Exposure Auto 設(shè)置為 Off 并調(diào)整曝光,使棋盤狀圖案清晰且白色方塊不會(huì)過(guò)度曝光,如圖 5 所示。收集校準(zhǔn)圖像后,增益和曝光可在 SpinView 中設(shè)置為自動(dòng)。

poYBAGMEk52ASUURAAFDBKrwtzw006.jpg

圖 5:SpinView GUI 設(shè)置

要開始收集圖像,請(qǐng)鍵入

./grabStereoImages

代碼應(yīng)以大約 1 幀/秒的速度開始收集圖像。左側(cè)圖像存儲(chǔ)在 images/left 文件夾中,右側(cè)圖像存儲(chǔ)在 images/right 文件夾中。移動(dòng)目標(biāo),使其出現(xiàn)在圖像的每個(gè)角落。您可以旋轉(zhuǎn)目標(biāo),從近處和遠(yuǎn)處拍攝圖像。默認(rèn)情況下,該程序捕獲 100 個(gè)圖像對(duì),但可以使用命令行參數(shù)進(jìn)行更改:

./grabStereoImages 20

這將僅收集 20 對(duì)圖像。請(qǐng)注意,這將覆蓋之前寫入文件夾中的所有圖像。部分示例校準(zhǔn)圖像如圖 6 所示。

pYYBAGMEk56AEWd0AAEHJao6NL8292.jpg

圖 6:示例校準(zhǔn)圖像

收集圖像后,通過(guò)鍵入以下內(nèi)容運(yùn)行校準(zhǔn) Python 代碼:

● cd ~/StereoDepth/Calibration

● python cameraCalibration.py

這將生成 2 個(gè)名為 “intrinsics.yml” 和 “extrinsics.yml” 的文件,其中包含立體聲系統(tǒng)的內(nèi)部和外部參數(shù)。該代碼默認(rèn)采用 30mm 棋盤方格,但可以根據(jù)需要進(jìn)行編輯。在校準(zhǔn)結(jié)束時(shí),它會(huì)顯示 RMS 誤差,表明校準(zhǔn)的好壞。良好校準(zhǔn)的典型 RMS 誤差應(yīng)低于 0.5 像素。

實(shí)時(shí)深度圖

實(shí)時(shí)計(jì)算視差的代碼位于 “Depth” 文件夾中。將相機(jī)序列號(hào)復(fù)制到文件 live_disparity.cpp 第 230 和 231 行。在終端中使用以下命令構(gòu)建可執(zhí)行文件:

● cd ~/StereoDepth/Depth

● mkdir build

● cd build

● cmake ..

● make

將校準(zhǔn)步驟中獲得的 “intrinsics.yml” 和 “extrinsics.yml” 文件復(fù)制到此文件夾。要運(yùn)行實(shí)時(shí)深度圖演示,請(qǐng)鍵入

./live_disparity

它將顯示左相機(jī)圖像(原始未糾正圖像)和深度圖(我們的最終輸出)。部分示例輸出如圖 7 所示。與相機(jī)的距離根據(jù)深度圖右側(cè)的圖例進(jìn)行顏色編碼。深度圖中的黑色區(qū)域意味著在該區(qū)域中沒有發(fā)現(xiàn)視差數(shù)據(jù)。得益于 NVIDIA Jetson TX2 GPU,它在 1440 × 1080 的分辨率下可運(yùn)行高達(dá) 5 幀/秒,在 720 × 540 的分辨率下可運(yùn)行高達(dá) 13 幀/秒。

要查看特定點(diǎn)的深度,請(qǐng)?jiān)谏疃葓D中單擊該點(diǎn),深度將會(huì)顯示出來(lái),如圖 7 中最后一個(gè)示例所示。

poYBAGMEk56AdMxZAAGXNCMemYk204.jpg

圖 7:對(duì)左相機(jī)圖像和相應(yīng)的深度圖進(jìn)行采樣。底部深度圖還會(huì)顯示特定點(diǎn)的深度。

摘要

使用立體視覺來(lái)形成深度信息感知的優(yōu)勢(shì)眾多,包括在戶外工作良好,能夠提供高分辨率的深度圖,可通過(guò)低成本的現(xiàn)成組件制作。當(dāng)您需要開發(fā)一個(gè)定制化的嵌入式立體感知系統(tǒng),根據(jù)此處提供的說(shuō)明進(jìn)行操作,也將是一個(gè)相對(duì)簡(jiǎn)單的任務(wù)。


審核編輯 黃昊宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 嵌入式
    +關(guān)注

    關(guān)注

    5052

    文章

    18912

    瀏覽量

    300789
  • 立體視覺
    +關(guān)注

    關(guān)注

    0

    文章

    36

    瀏覽量

    9761
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    雙目立體視覺原理大揭秘(二)

    ?;陔p目立體視覺的三維重構(gòu)其基本原理也是模擬人眼并利用空間幾何模型推導(dǎo)出相應(yīng)的算法來(lái)解決實(shí)際問(wèn)題。本文以服裝設(shè)計(jì)中關(guān)于人體輪廓還原案例做一說(shuō)明。為了便于理解,本文僅說(shuō)明案例中一個(gè)視角的雙目系統(tǒng),下圖是已經(jīng)
    發(fā)表于 11-21 16:22

    基于立體視覺的變形測(cè)量

    ` 本帖最后由 ketianjian 于 2016-3-3 10:01 編輯 關(guān)鍵詞: 機(jī)器視覺;攝影測(cè)量;計(jì)算機(jī)視覺;立體視覺;變形測(cè)量; 大家好!有一段時(shí)間沒有跟大家分享交流機(jī)器視覺
    發(fā)表于 09-21 10:11

    雙目立體視覺的運(yùn)用

    高速相機(jī)對(duì)目標(biāo)位進(jìn)行攝像,充當(dāng)人的雙眼的功能,然后通過(guò)系統(tǒng)軟件處理,可以確定任意物體的三維輪廓,還可以得到輪廓上任意點(diǎn)的三維坐標(biāo)?;陔p目立體視覺這種強(qiáng)大的技術(shù)功能,不但在軍事科研上有所運(yùn)用,如航天遙測(cè)
    發(fā)表于 03-03 09:36

    采用OPT9221 ToF傳感器設(shè)計(jì)的立體視覺深度感知電路

    成像對(duì)于許多機(jī)器人應(yīng)用至關(guān)重要,能讓機(jī)器人執(zhí)行基本任務(wù),躲避障礙物,進(jìn)行導(dǎo)航以及確?;景踩?。 顯然,提供成像的方式是采用低成本視頻攝像頭,或者再好點(diǎn),使用兩個(gè)攝像頭實(shí)現(xiàn)立體視野和深度感知。 但后者
    發(fā)表于 11-27 06:20

    雙目立體視覺在嵌入式中有何應(yīng)用

    雙目立體視覺(BinocularStereoVision)是機(jī)器視覺的一種重要形式,因其可簡(jiǎn)單地利用左右攝像機(jī)中的圖像信息計(jì)算得到相機(jī)視野中物體相對(duì)于攝像機(jī)的深度信息使得該技術(shù)擁有廣泛的應(yīng)用前景
    發(fā)表于 12-23 07:19

    基于HALCON的雙目立體視覺系統(tǒng)實(shí)現(xiàn)

    雙目立體視覺的研究一直是機(jī)器視覺中的熱點(diǎn)和難點(diǎn)。使用雙目立體視覺系統(tǒng)可以確定任意物體的三維輪廓,并且可以得到輪廓上任意點(diǎn)的三維坐標(biāo)。因此雙目立體視覺系統(tǒng)可以應(yīng)用在
    發(fā)表于 04-08 17:51 ?130次下載
    基于HALCON的雙目<b class='flag-5'>立體視覺系統(tǒng)</b>實(shí)現(xiàn)

    圖像處理基本算法-立體視覺

    立體視覺是計(jì)算機(jī)視覺領(lǐng)域的一個(gè)重要課題,它的目的在于重構(gòu)場(chǎng)景的三維幾何信息。立體視覺的研究具有重要的應(yīng)用價(jià)值,其應(yīng)用包括移動(dòng)機(jī)器人的自主導(dǎo)航系統(tǒng),航空及遙感測(cè)量,工業(yè)自動(dòng)化
    發(fā)表于 11-17 10:09 ?5473次閱讀

    Humanplus人加為各類機(jī)器人提供立體視覺感知解決方案

    依托自主研發(fā)的嵌入式主動(dòng)/被動(dòng)雙目立體視覺技術(shù),人加已經(jīng)推出雙目AI攝像頭產(chǎn)品——“司眸”系列,可以為各類機(jī)器人提供立體視覺感知解決方案,讓機(jī)器人擁有人體感知、自主避障等
    的頭像 發(fā)表于 06-07 14:44 ?5839次閱讀

    雙相機(jī)立體視覺和結(jié)構(gòu)光立體視覺原理及優(yōu)勢(shì)對(duì)比

    目前的深度相機(jī)根據(jù)其工作原理可以分為三種:TOF相機(jī)、雙相機(jī)立體視覺、結(jié)構(gòu)光投射立體視覺。
    的頭像 發(fā)表于 05-14 09:04 ?7922次閱讀

    使用雙目立體視覺實(shí)現(xiàn)CCD測(cè)距系統(tǒng)設(shè)計(jì)的資料說(shuō)明

    的CCD測(cè)距技術(shù)。雙目立體視覺的基本原理是模仿人眼與人類視覺立體感知過(guò)程,從兩個(gè)視點(diǎn)觀察同一景物,以獲取不同視角下的感知圖像,通過(guò)三角測(cè)量
    發(fā)表于 11-26 12:05 ?6次下載
    使用雙目<b class='flag-5'>立體視覺</b>實(shí)現(xiàn)CCD測(cè)距<b class='flag-5'>系統(tǒng)</b>設(shè)計(jì)的資料說(shuō)明

    雙目立體視覺深度測(cè)量步驟介紹

    深度信息恢復(fù)是計(jì)算機(jī)視覺領(lǐng)域的一個(gè)重要研究?jī)?nèi)容。使用傳統(tǒng)的光學(xué)成像系統(tǒng)對(duì)不同距離的物體成像時(shí),需要機(jī)械移動(dòng)會(huì)造成圖像放大率變化,導(dǎo)致深度測(cè)量產(chǎn)生誤差。近年來(lái),電控調(diào)焦的液晶透鏡光學(xué)成像
    的頭像 發(fā)表于 06-14 13:43 ?2801次閱讀

    邊緣AI套件上的立體視覺深度感知

    電子發(fā)燒友網(wǎng)站提供《邊緣AI套件上的立體視覺深度感知.zip》資料免費(fèi)下載
    發(fā)表于 06-12 14:36 ?0次下載
    邊緣AI套件上的<b class='flag-5'>立體視覺</b><b class='flag-5'>深度</b><b class='flag-5'>感知</b>

    如何通過(guò)立體視覺構(gòu)建小巧輕便深度感知系統(tǒng)

    在本文中,我們首先介紹了立體視覺系統(tǒng)的主要部分,并提供了有關(guān)使用硬件組成和開源軟件制作定制立體相機(jī)的說(shuō)明。由于此設(shè)置專注于嵌入式系統(tǒng),因此它將實(shí)時(shí)計(jì)算任何場(chǎng)景的深度圖,而無(wú)需電腦主機(jī)。
    的頭像 發(fā)表于 07-13 16:49 ?653次閱讀
    如何<b class='flag-5'>通過(guò)</b><b class='flag-5'>立體視覺</b><b class='flag-5'>構(gòu)建</b><b class='flag-5'>小巧</b><b class='flag-5'>輕便</b>的<b class='flag-5'>深度</b><b class='flag-5'>感知</b><b class='flag-5'>系統(tǒng)</b>

    立體視覺系統(tǒng)的設(shè)計(jì)方案

    電子發(fā)燒友網(wǎng)站提供《立體視覺系統(tǒng)的設(shè)計(jì)方案.pdf》資料免費(fèi)下載
    發(fā)表于 11-06 10:17 ?0次下載
    <b class='flag-5'>立體視覺系統(tǒng)</b>的設(shè)計(jì)方案

    計(jì)算機(jī)視覺中的立體視覺深度感知Python示例實(shí)現(xiàn)

    在人工智能和圖像處理的迷人世界中,這些概念在使機(jī)器能夠像我們的眼睛一樣感知我們周圍的三維世界中起著關(guān)鍵作用。和我們一起探索立體視覺深度感知背后的技術(shù),揭示計(jì)算機(jī)如何從二維圖像中獲得
    的頭像 發(fā)表于 11-21 10:50 ?541次閱讀