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倍時(shí)測量誤差比較??;

(2)雙目立體視覺的結(jié)構(gòu)對稱時(shí),測量系統(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,打開攝像頭時(shí)使用cv2.VideoCapture()函數(shù),只需打開一次。區(qū)別有的雙目攝像頭是左右鏡頭各用一個設(shè)備ID,需要打開兩次cv2.VideoCapture(0),cv2.VideoCapture(1)。

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

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

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ì)算,直接對圖像所拍攝到的范圍進(jìn)行距離測量,無需判斷前方出現(xiàn)的是什么類型的障礙物。

o4YBAGCGXHSAP9ctAAIB8Nbbiro048.png

視差disparity

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

視差是同一個空間點(diǎn)在兩個相機(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)空間點(diǎn)在兩幅圖像上分別成像時(shí),已知左圖投影點(diǎn)p1,那么對應(yīng)右圖投影點(diǎn)p2一定在相對于p1的極線上,這樣可以極大的縮小匹配范圍。

pIYBAGCGXLOAPKEXAAIK-8o5b9w626.png

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

pIYBAGCGXNSAThFQAAJsjQw00Gk841.png

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

極線校正/立體校正

雙目測距流程:

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

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

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

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

計(jì)算距離

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)的點(diǎn)(同源點(diǎn))

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

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

o4YBAGCGXQ2AV88fAAJPgl5suuU260.png

雙目測距原理

o4YBAGCGXTOAcrRjAAG5hFei-5w838.png

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

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

e.測距效果

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

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

a.立體匹配流程

o4YBAGCGXVuAVF0OAABObZ8Tnyo191.png

b.匹配代價(jià)計(jì)算

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

常用代價(jià)函數(shù)

AD/BT

AD+Gradient

Census transform

SAD/SSD

NCC

AD+Census

CNN

c.立體匹配

端到端視差計(jì)算網(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/

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

雙目測距總結(jié)

優(yōu)勢

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

(2)沒有識別率的限制,因?yàn)閺脑砩蠠o需先進(jìn)行識別再進(jìn)行測算,而是對所有障礙物直接進(jìn)行測量;

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

(4)無需維護(hù)樣本數(shù)據(jù)庫,因?yàn)閷τ陔p目沒有樣本的概念。

難點(diǎn)

(1)計(jì)算量大,對計(jì)算單元的性能要求高,這使得雙目系統(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)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 數(shù)據(jù)庫
    +關(guān)注

    關(guān)注

    7

    文章

    3712

    瀏覽量

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

    關(guān)注

    30

    文章

    4671

    瀏覽量

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

    關(guān)注

    2

    文章

    100

    瀏覽量

    19529

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

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

收藏 人收藏

    評論

    相關(guān)推薦

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

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

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

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

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

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

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

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

    雙目立體視覺是什么樣的技術(shù)?

    雙眼視物時(shí),主觀上可產(chǎn)生被視物體的厚度以及空間的深度或距離等感覺,稱為立體視覺(stereopsis)。其主要原因是同被視物體在兩眼視網(wǎng)膜上的像并不完全相同,左眼從左方看到物體的左側(cè)面較多,而右眼則從右方看到物體的右側(cè)面較多。
    的頭像 發(fā)表于 12-28 17:08 ?863次閱讀
    <b class='flag-5'>雙目</b><b class='flag-5'>立體視覺</b>是什么樣的技術(shù)?

    LabVIEW開發(fā)自動駕駛的雙目測距系統(tǒng)

    挑戰(zhàn),包括激光雷達(dá)、單目測距和雙目視覺技術(shù)等。在當(dāng)前的高級輔助駕駛技術(shù)(ADAS)中,雙目視覺技術(shù)在距離檢測方面表現(xiàn)出色,它可以精確地測量物體的距離,提供更客觀的數(shù)據(jù)。 為了應(yīng)對這需求,設(shè)計(jì)了
    發(fā)表于 12-19 18:02

    雙目測寬儀高質(zhì)量生產(chǎn)利器 測寬儀價(jià)格

    雙目測寬儀是基于機(jī)器視覺原理及模擬人的雙眼進(jìn)行寬度尺寸自動測量的儀器,是種高度自動化的工業(yè)實(shí)時(shí)在線寬度檢測儀表。 雙目測寬儀是種智能化的
    發(fā)表于 12-04 17:10

    機(jī)器視覺雙目測寬儀具體有什么優(yōu)勢?

    雙目測寬儀是機(jī)器視覺原來制造而成的智能寬度檢測設(shè)備,廣泛應(yīng)用于板材類產(chǎn)品的寬度檢測。通過測寬儀的使用,實(shí)時(shí)了解產(chǎn)品寬度品質(zhì),進(jìn)行超差提示,減少廢品的生產(chǎn)。 雙目測寬儀優(yōu)勢 測量軟件界面顯示:產(chǎn)品規(guī)格
    發(fā)表于 11-28 17:13

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

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

    新品雙目測寬儀測量原理 寬厚板材在線檢測

    相機(jī)就像人的雙眼,可以形成立體視覺,這樣就可以得到足夠的信息判斷被測物的距離,修正和消除距離變化對測量的影響。 雙目測寬儀是新研發(fā)的種寬度檢測設(shè)備,采用立體機(jī)器
    發(fā)表于 11-20 17:25

    LiDAR和立體視覺攝像頭如何處理弱光、黑暗環(huán)境?

    立體視覺傳感器使用遠(yuǎn)光燈從 130 米外檢測到塊躺在道路上的木材,使用近光燈從 100 米外檢測到塊木材。 LiDAR 從最大 50 米外檢測到木材。
    發(fā)表于 11-08 14:53 ?351次閱讀

    LiDAR立體視覺攝像頭如何處理弱光及惡劣的天氣條件

    兩種高效的距離傳感解決方案,盡管性能存在顯著差異,尤其是在惡劣天氣和道路條件下。 Nodar是家為自動駕駛汽車提供先進(jìn)立體視覺技術(shù)的供應(yīng)商,最近進(jìn)行了系列頭對頭的性能測試,以比較LiDAR和
    的頭像 發(fā)表于 11-07 17:01 ?1042次閱讀

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

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

    三維立體視覺之三維恢復(fù)方法

    電子發(fā)燒友網(wǎng)站提供《三維立體視覺之三維恢復(fù)方法.doc》資料免費(fèi)下載
    發(fā)表于 11-03 09:31 ?0次下載
    三維<b class='flag-5'>立體視覺</b>之三維恢復(fù)方法

    LiDAR和立體視覺攝像頭如何處理低光

    的距離傳感解決方案,盡管性能存在顯著差異,特別是在惡劣的天氣和道路條件下。 Nodar是AV先進(jìn)立體視覺技術(shù)的提供商,最近進(jìn)行了系列面對面的性能測試,以比較 LiDAR 和立體視覺攝像頭如何處理低光,黑暗和惡劣天氣條件,以及檢
    的頭像 發(fā)表于 10-13 15:33 ?425次閱讀