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

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

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

一篇文章帶你認(rèn)識《雙目立體視覺》

新機(jī)器視覺 ? 來源:CSDN技術(shù)社區(qū) ? 作者:一顆小樹X ? 2021-04-26 14:19 ? 次閱讀

前言

雙目立體視覺,由兩個攝像頭組成,像人的眼睛能看到三維的物體,獲取物體長度、寬度信息,和深度的信息;單目視覺獲取二維的物體信息,即長度、寬度。

1)雙目攝像頭

常見的雙目攝像頭有以下幾款:

能看到不同類型的雙目攝像頭,左攝像頭和右攝像頭之間的距離不一樣。

2)雙目相機(jī)基線

基線越大,測量范圍越遠(yuǎn);基線越小,測量范圍越近。

建議:

(1)基線距B是工作距離的08-2.2倍時測量誤差比較??;

(2)雙目立體視覺的結(jié)構(gòu)對稱時,測量系統(tǒng)的誤差比較小,精度也比較高。

(3)兩臺相機(jī)的有效焦距∫越大,視場越小,視覺測量系統(tǒng)的測量精度越高(即采用長焦距鏡頭容易獲得較高的測量精度)

出自博士論文 基于雙目視覺的空間非合作目標(biāo)姿態(tài)測量技術(shù)研究。顏坤

3)打開雙目攝像頭

在OpenCV用使用雙目攝像頭,包括:打開單目攝像頭、設(shè)置攝像頭參數(shù)、拍照、錄制視頻。

環(huán)境

編程語言:Python3 主要依賴庫:OpenCV3.x 或 OpenCV4.x

雙目同步攝像頭,兩個鏡頭共用一個設(shè)備ID,左右攝像機(jī)同一頻率。這款攝像頭分辨率支持2560*960或以上。

思路流程

1、由于兩個鏡頭共用一個設(shè)備ID,打開攝像頭時使用cv2.VideoCapture()函數(shù),只需打開一次。區(qū)別有的雙目攝像頭是左右鏡頭各用一個設(shè)備ID,需要打開兩次cv2.VideoCapture(0),cv2.VideoCapture(1)。

2、雙目攝像頭的總分辨率是由左右鏡頭組成的,比如:左右攝像機(jī)總分辨率1280x480;分割為左相機(jī)640x480、右相機(jī)640x480

為了方便理解畫了張草圖;圖中的“原點”是圖像像素坐標(biāo)系的原點。

3、分割后,左相機(jī)的分辨率:高度 0:480、寬度 0:640

右相機(jī)的分辨率:高度 0:480、寬度 640:1280

4、轉(zhuǎn)換為代碼后

# 讀取攝像頭數(shù)據(jù)

ret, frame = camera.read()

#裁剪坐標(biāo)為[y0:y1, x0:x1] HEIGHT * WIDTH

left_frame = frame[0:480, 0:640]

right_frame = frame[0:480, 640:1280]

cv2.imshow(“l(fā)eft”, left_frame)

cv2.imshow(“right”, right_frame)

源代碼

舉個栗子:打開分辨率1280x480的雙目攝像頭

# -*- coding: utf-8 -*-

import cv2

import time

AUTO = False # 自動拍照,或手動按s鍵拍照

INTERVAL = 2 # 自動拍照間隔

cv2.namedWindow(“l(fā)eft”)

cv2.namedWindow(“right”)

camera = cv2.VideoCapture(0)

# 設(shè)置分辨率 左右攝像機(jī)同一頻率,同一設(shè)備ID;左右攝像機(jī)總分辨率1280x480;分割為兩個640x480、640x480

camera.set(cv2.CAP_PROP_FRAME_WIDTH,1280)

camera.set(cv2.CAP_PROP_FRAME_HEIGHT,480)

counter = 0

utc = time.time()

folder = “。/SaveImage/” # 拍照文件目錄

def shot(pos, frame):

global counter

path = folder + pos + “_” + str(counter) + “.jpg”

cv2.imwrite(path, frame)

print(“snapshot saved into: ” + path)

while True:

ret, frame = camera.read()

# 裁剪坐標(biāo)為[y0:y1, x0:x1] HEIGHT*WIDTH

left_frame = frame[0:480, 0:640]

right_frame = frame[0:480, 640:1280]

cv2.imshow(“l(fā)eft”, left_frame)

cv2.imshow(“right”, right_frame)

now = time.time()

if AUTO and now - utc 》= INTERVAL:

shot(“l(fā)eft”, left_frame)

shot(“right”, right_frame)

counter += 1

utc = now

key = cv2.waitKey(1)

if key == ord(“q”):

break

elif key == ord(“s”):

shot(“l(fā)eft”, left_frame)

shot(“right”, right_frame)

counter += 1

camera.release()

cv2.destroyWindow(“l(fā)eft”)

cv2.destroyWindow(“right”)

補(bǔ)充理解

OpenCV有VideoCapture()函數(shù),能用來定義“攝像頭”對象,0表示第一個攝像頭(一般是電腦內(nèi)置的攝像頭);如果有兩個攝像頭,第二個攝像頭則對應(yīng)VideoCapture(1)。

在while循環(huán)中使用“攝像頭對象”的read()函數(shù)一幀一幀地讀取攝像頭畫面數(shù)據(jù)。

imshow函數(shù)是顯示攝像頭的某幀畫面;cv2.waitKey(1)是等待1ms,如果期間檢測到了鍵盤輸入q,則退出while循環(huán)。

效果

4)雙目測距

原理

視差disparity

極線約束

極線校正/立體校正

雙目測距流程:

a.雙目標(biāo)定

b.雙目矯正

c.立體匹配

d.雙目測距(三角測量)

e.測距效果

原理

通過對兩幅圖像視差的計算,直接對圖像所拍攝到的范圍進(jìn)行距離測量,無需判斷前方出現(xiàn)的是什么類型的障礙物。

o4YBAGCGXHSAP9ctAAIB8Nbbiro048.png

視差disparity

首先看一組視覺圖:左相機(jī)圖和右相機(jī)圖不是完全一致的,通過計算兩者的差值,形成視差,生成視差圖(也叫:深度圖)

視差是同一個空間點在兩個相機(jī)成像中對應(yīng)的x坐標(biāo)的差值;

它可以通過編碼成灰度圖來反映出距離的遠(yuǎn)近,離鏡頭越近的灰度越亮;

我們觀察一下,看到臺燈在前面,離雙目相機(jī)比較近,在灰度圖呈現(xiàn)比較亮;攝影機(jī)及支架在后方,離雙目相機(jī)比較遠(yuǎn),在灰度圖呈現(xiàn)比較暗。

補(bǔ)充理解:

由立體視覺系統(tǒng)測量的深度被離散成平行平面 (每個視差值一個對應(yīng)一個平面)

給定具有基線 b 和焦距 f 的立體裝備, 系統(tǒng)的距離場受視差范圍[dmin ,dmax]的約束。

極線約束

極線約束(Epipolar Constraint)是指當(dāng)空間點在兩幅圖像上分別成像時,已知左圖投影點p1,那么對應(yīng)右圖投影點p2一定在相對于p1的極線上,這樣可以極大的縮小匹配范圍。

pIYBAGCGXLOAPKEXAAIK-8o5b9w626.png

標(biāo)準(zhǔn)形式的雙目攝像頭,左右相機(jī)對齊,焦距相同。

pIYBAGCGXNSAThFQAAJsjQw00Gk841.png

如果不是標(biāo)準(zhǔn)形式的雙目攝像頭呢?哦,它是是這樣的:(需要 極線校正/立體校正)

極線校正/立體校正

雙目測距流程:

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

雙目矯正(矯正鏡頭變形圖像)

雙目立體匹配(生成視差圖 Disparity map)

計算深度信息(生成深度圖 Depth map)

計算距離

a.雙目標(biāo)定

主要是獲取內(nèi)參(左攝像頭內(nèi)參+右攝像頭內(nèi)參)、外參(左右攝像頭之間平移向量+旋轉(zhuǎn)矩陣)

標(biāo)定過程:

詳細(xì)過程請參考:雙目視覺 標(biāo)定+矯正 (基于MATLAB

b.雙目矯正

消除鏡頭變形,將立體相機(jī)對轉(zhuǎn)換為標(biāo)準(zhǔn)形式

c.立體匹配

尋找左右相機(jī)對應(yīng)的點(同源點)

d.雙目測距(三角測量)

給定視差圖、基線和焦距,通過三角計算在3D中對應(yīng)的位置

o4YBAGCGXQ2AV88fAAJPgl5suuU260.png

雙目測距原理

o4YBAGCGXTOAcrRjAAG5hFei-5w838.png

C++版代碼請參考:雙目 機(jī)器視覺-- 測距

Python版代碼:看看大家情況,如果需要的,我抽時間完成分享給大家(BM、SGBM算法等)

e.測距效果

彩蛋:雙目立體匹配(重點)

立體匹配是雙目立體視覺中比較重要的一環(huán),往往這里做研究和優(yōu)化。

a.立體匹配流程

o4YBAGCGXVuAVF0OAABObZ8Tnyo191.png

b.匹配代價計算

代價函數(shù)用于計算左、右圖中兩個像素之間的匹配代價(cost)。 cost越大,表示這兩個像素為對應(yīng)點的可能性越低。

常用代價函數(shù)

AD/BT

AD+Gradient

Census transform

SAD/SSD

NCC

AD+Census

CNN

c.立體匹配

端到端視差計算網(wǎng)絡(luò)

? Disp-Net (2016)

? GC-Net (2017)

? iRestNet (2018)

? PSM-Net (2018)

? Stereo-Net (2018)

? GA-Net (2019)

? EdgeStereo (2020)

\

立體視覺方法評測網(wǎng)站

ETH3D https://www.eth3d.net/

Kitti Stereo http://www.cvlibs.net/datasets/kitti/eval_scene_flow.php?benchmark=stereo

Middlebury Stereo 3.0 https://vision.middlebury.edu/stereo/eval3/

如果大家對端到端視差計算網(wǎng)絡(luò)感興趣,需要開源代碼跑通教程和介紹,也考慮分享大家,主要看大家意愿了。

雙目測距總結(jié)

優(yōu)勢

(1)成本比單目系統(tǒng)要高,但尚處于可接受范圍內(nèi),并且與激光雷達(dá)等方案相比成本較低;

(2)沒有識別率的限制,因為從原理上無需先進(jìn)行識別再進(jìn)行測算,而是對所有障礙物直接進(jìn)行測量;

(3)直接利用視差計算距離,精度比單目高;

(4)無需維護(hù)樣本數(shù)據(jù)庫,因為對于雙目沒有樣本的概念。

難點

(1)計算量大,對計算單元的性能要求高,這使得雙目系統(tǒng)的產(chǎn)品化、小型化的難度較;(芯片FPGA

(2)雙目的配準(zhǔn)效果,直接影響到測距的準(zhǔn)確性;

(3)對環(huán)境光照非常敏感;(光照角度、光照強(qiáng)度)

(4)不適用于單調(diào)缺乏紋理的場景;(天空、白墻、沙漠)

(5)相機(jī)基線限制了測量范圍。(基線越大,測量范圍越遠(yuǎn);基線越小,測量范圍越近)

編輯:jq

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

    關(guān)注

    7

    文章

    3800

    瀏覽量

    64402
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4788

    瀏覽量

    68625
  • 測距
    +關(guān)注

    關(guān)注

    2

    文章

    105

    瀏覽量

    19647

原文標(biāo)題:檢測三維物體?一篇文章認(rèn)識《雙目立體視覺》

文章出處:【微信號:vision263com,微信公眾號:新機(jī)器視覺】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    UVLED光固化機(jī)常用術(shù)語和單位簡介,文章帶你全面了解!

    在現(xiàn)代化的工業(yè)生產(chǎn)中,UVLED光固化機(jī)以其高效、環(huán)保的特點,成為了眾多行業(yè)的得力助手。然而,對于初次接觸UVLED光固化機(jī)的朋友來說,那些專業(yè)術(shù)語和單位可能會讓人感到困惑。別擔(dān)心,今天我們就來
    的頭像 發(fā)表于 12-24 13:27 ?150次閱讀
    UVLED光固化機(jī)常用術(shù)語和單位簡介,<b class='flag-5'>一</b><b class='flag-5'>篇</b>文章<b class='flag-5'>帶你</b>全面了解!

    杰和課堂|帶你認(rèn)識算力

    杰和課堂|帶你認(rèn)識算力人工智能浪潮洶涌的今天,算力詞頻繁出現(xiàn)在各類科技新聞、產(chǎn)業(yè)發(fā)展報告中。了解過杰和科技產(chǎn)品的讀者們,也會在杰和各產(chǎn)品參數(shù)中發(fā)現(xiàn)算力這概念,比如AI
    的頭像 發(fā)表于 12-06 10:24 ?297次閱讀
    杰和課堂|<b class='flag-5'>帶你</b><b class='flag-5'>認(rèn)識</b>算力

    智慧公交是什么?帶你詳解智慧公交的解決方案!

    智慧公交是什么?帶你詳解智慧公交的解決方案!
    的頭像 發(fā)表于 11-05 12:26 ?292次閱讀
    智慧公交是什么?<b class='flag-5'>一</b>文<b class='flag-5'>帶你</b>詳解智慧公交的解決方案!

    德國進(jìn)口蔡司體視顯微鏡的使用方法

    顯微鏡時是否需要手動對焦鏡頭,以及如何正確地進(jìn)行對焦操作。、蔡司體視顯微鏡的對焦機(jī)制蔡司體視顯微鏡設(shè)計有靈活的對焦系統(tǒng),旨在提供清晰、銳利的圖像。盡管有些高級模型可
    的頭像 發(fā)表于 09-26 15:19 ?386次閱讀
    德國進(jìn)口蔡司<b class='flag-5'>體視</b>顯微鏡的使用方法

    立體視覺新手必看:英特爾? 實感? D421深度相機(jī)模組

    英特爾首款體化立體深度模組,旨在將先進(jìn)的深度感應(yīng)技術(shù)帶給更廣泛的受眾 2024年9月24日?—— 英特爾? 實感? 技術(shù)再次突破界限,推出全新的英特爾? 實感? 深度相機(jī)模組D421。這是
    的頭像 發(fā)表于 09-26 13:33 ?265次閱讀
    <b class='flag-5'>立體視覺</b>新手必看:英特爾? 實感? D421深度相機(jī)模組

    居然還有這樣的10.1寸光場裸眼3D視覺訓(xùn)練平板電腦?

    在這個科技飛速發(fā)展的時代,我們?yōu)槟鷰砹?b class='flag-5'>一款革命性的產(chǎn)品——10.1寸光場裸眼3D視覺訓(xùn)練平板電腦。這款平板電腦不僅讓您無需佩戴3D眼鏡就能享受逼真的立體視覺效果,還通過先進(jìn)的技術(shù)幫助您緩解眼疲勞,提升
    的頭像 發(fā)表于 07-25 14:09 ?278次閱讀
    居然還有這樣的10.1寸光場裸眼3D<b class='flag-5'>視覺</b>訓(xùn)練平板電腦?

    新品 | Bumblebee X系列用于高精度機(jī)器人應(yīng)用的新型立體視覺產(chǎn)品

    TeledyneFLIRIIS推出款用于高精度機(jī)器人應(yīng)用的新型立體視覺產(chǎn)品BumblebeeX系列。BumblebeeX產(chǎn)品圖BumblebeeX系列,個基于
    的頭像 發(fā)表于 05-07 08:34 ?454次閱讀
    新品 | Bumblebee X系列用于高精度機(jī)器人應(yīng)用的新型<b class='flag-5'>立體視覺</b>產(chǎn)品

    Teledyne FLIR IIS推出款用于高精度機(jī)器人的新型立體視覺產(chǎn)品

    Bumblebee X是最新的GigE驅(qū)動立體成像解決方案,為機(jī)器人引導(dǎo)和拾取應(yīng)用帶來高精度和低延遲
    的頭像 發(fā)表于 05-06 09:23 ?564次閱讀

    文讀懂雙眼立體顯示技術(shù) 四種主流立體顯示技術(shù)介紹

    實現(xiàn)基于雙眼視覺立體顯示需要經(jīng)過兩大步驟,首先,要準(zhǔn)備好兩套分別供左眼和右眼觀看的畫面。
    發(fā)表于 04-24 11:48 ?1533次閱讀
    <b class='flag-5'>一</b>文讀懂雙眼<b class='flag-5'>立體</b>顯示技術(shù) 四種主流<b class='flag-5'>立體</b>顯示技術(shù)介紹

    全新代哈弗H6官圖曝光:外觀煥然新,性能持續(xù)升級

     新款哈弗H6的前臉采用了大面積中網(wǎng)設(shè)計,呈現(xiàn)出獨特的點陣式方塊圖案,營造出立體視覺效果。前大燈組與中網(wǎng)緊密連接,內(nèi)置兩個透鏡,下方配以“7”字形日行燈,增強(qiáng)了科技感。
    的頭像 發(fā)表于 04-16 15:17 ?522次閱讀

    工業(yè)相機(jī)單目和雙目的區(qū)別

    工業(yè)相機(jī)標(biāo)定的方法根據(jù)工業(yè)相機(jī)的數(shù)目可分為單目標(biāo)定、雙目標(biāo)定Q以及多目標(biāo)定。
    的頭像 發(fā)表于 03-26 16:26 ?1916次閱讀
    工業(yè)相機(jī)單目和<b class='flag-5'>雙目</b>的區(qū)別

    銀牛微電子3D視覺感知方案賦能小米CyberDog系列仿生四足機(jī)器人

    2024年3月21日,合肥銀牛微電子宣布小米CyberDog系列仿生四足機(jī)器人的AI多模態(tài)融合感知決策系統(tǒng)正式采用銀牛的雙目立體視覺產(chǎn)品解決方案。
    的頭像 發(fā)表于 03-21 13:55 ?834次閱讀

    總投資1.5億!蘇州清研微視立體視覺傳感器項目落戶安徽蕪湖

    2月1日,清研年產(chǎn)3萬臺立體視覺傳感器項目簽約落戶安徽蕪湖三山經(jīng)濟(jì)開發(fā)區(qū)。項目計劃總投資15000萬元,建設(shè)年產(chǎn)3萬臺立體視覺傳感器(產(chǎn)業(yè)創(chuàng)新融合產(chǎn)品)。該項目的落地加強(qiáng)了三山經(jīng)開區(qū)與清華大學(xué)未來在
    的頭像 發(fā)表于 02-20 08:36 ?341次閱讀
    總投資1.5億!蘇州清研微視<b class='flag-5'>立體視覺</b>傳感器項目落戶安徽蕪湖

    教你該如何操作體視顯微鏡

    科技體視顯微鏡也稱解刨顯微鏡,是微量物證檢驗常用的儀器。主要用于痕跡檢驗、文件檢驗中的細(xì)小物證,如指紋、工具、文字的顯微觀察和分析檢驗。體視顯微鏡主要操作有:調(diào)焦,視度調(diào)節(jié),瞳距調(diào)節(jié)和燈泡更換
    的頭像 發(fā)表于 01-26 08:35 ?2186次閱讀
    教你該如何操作<b class='flag-5'>體視</b>顯微鏡

    三維視覺測量技術(shù):被動視覺測量和主動視覺測量

    與人眼的立體感知類似,雙目立體視覺用兩個相機(jī)從不同的角度對被測物體成像。依據(jù)兩幅圖像中對應(yīng)點的立體視差( stereo disparity) ,根據(jù)三角測量原理實現(xiàn)三維信息測量。
    的頭像 發(fā)表于 01-03 11:30 ?857次閱讀
    三維<b class='flag-5'>視覺</b>測量技術(shù):被動<b class='flag-5'>視覺</b>測量和主動<b class='flag-5'>視覺</b>測量