精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

一篇文章帶你認識《雙目立體視覺》

新機器視覺 ? 來源:CSDN技術社區 ? 作者:一顆小樹X ? 2021-04-26 14:19 ? 次閱讀

前言

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

1)雙目攝像頭

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

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

2)雙目相機基線

基線越大,測量范圍越遠;基線越小,測量范圍越近。

建議:

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

(2)雙目立體視覺的結構對稱時,測量系統的誤差比較小,精度也比較高。

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

出自博士論文 基于雙目視覺的空間非合作目標姿態測量技術研究。顏坤

3)打開雙目攝像頭

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

環境

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

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

思路流程

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

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

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

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

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

4、轉換為代碼后

# 讀取攝像頭數據

ret, frame = camera.read()

#裁剪坐標為[y0:y1, x0:x1] HEIGHT * WIDTH

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

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

cv2.imshow(“left”, left_frame)

cv2.imshow(“right”, right_frame)

源代碼

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

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

import cv2

import time

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

INTERVAL = 2 # 自動拍照間隔

cv2.namedWindow(“left”)

cv2.namedWindow(“right”)

camera = cv2.VideoCapture(0)

# 設置分辨率 左右攝像機同一頻率,同一設備ID;左右攝像機總分辨率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()

# 裁剪坐標為[y0:y1, x0:x1] HEIGHT*WIDTH

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

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

cv2.imshow(“left”, left_frame)

cv2.imshow(“right”, right_frame)

now = time.time()

if AUTO and now - utc 》= INTERVAL:

shot(“left”, left_frame)

shot(“right”, right_frame)

counter += 1

utc = now

key = cv2.waitKey(1)

if key == ord(“q”):

break

elif key == ord(“s”):

shot(“left”, left_frame)

shot(“right”, right_frame)

counter += 1

camera.release()

cv2.destroyWindow(“left”)

cv2.destroyWindow(“right”)

補充理解

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

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

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

效果

4)雙目測距

原理

視差disparity

極線約束

極線校正/立體校正

雙目測距流程:

a.雙目標定

b.雙目矯正

c.立體匹配

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

e.測距效果

原理

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

o4YBAGCGXHSAP9ctAAIB8Nbbiro048.png

視差disparity

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

視差是同一個空間點在兩個相機成像中對應的x坐標的差值;

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

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

補充理解:

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

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

極線約束

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

pIYBAGCGXLOAPKEXAAIK-8o5b9w626.png

標準形式的雙目攝像頭,左右相機對齊,焦距相同。

pIYBAGCGXNSAThFQAAJsjQw00Gk841.png

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

極線校正/立體校正

雙目測距流程:

相機標定(獲取內參+外參)

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

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

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

計算距離

a.雙目標定

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

標定過程:

詳細過程請參考:雙目視覺 標定+矯正 (基于MATLAB

b.雙目矯正

消除鏡頭變形,將立體相機對轉換為標準形式

c.立體匹配

尋找左右相機對應的點(同源點)

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

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

o4YBAGCGXQ2AV88fAAJPgl5suuU260.png

雙目測距原理

o4YBAGCGXTOAcrRjAAG5hFei-5w838.png

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

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

e.測距效果

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

立體匹配是雙目立體視覺中比較重要的一環,往往這里做研究和優化。

a.立體匹配流程

o4YBAGCGXVuAVF0OAABObZ8Tnyo191.png

b.匹配代價計算

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

常用代價函數

AD/BT

AD+Gradient

Census transform

SAD/SSD

NCC

AD+Census

CNN

c.立體匹配

端到端視差計算網絡

? Disp-Net (2016)

? GC-Net (2017)

? iRestNet (2018)

? PSM-Net (2018)

? Stereo-Net (2018)

? GA-Net (2019)

? EdgeStereo (2020)

\

立體視覺方法評測網站

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/

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

雙目測距總結

優勢

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

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

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

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

難點

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

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

(3)對環境光照非常敏感;(光照角度、光照強度)

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

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

編輯:jq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 數據庫
    +關注

    關注

    7

    文章

    3765

    瀏覽量

    64275
  • 代碼
    +關注

    關注

    30

    文章

    4747

    瀏覽量

    68349
  • 測距
    +關注

    關注

    2

    文章

    103

    瀏覽量

    19617

原文標題:檢測三維物體?一篇文章認識《雙目立體視覺》

文章出處:【微信號:vision263com,微信公眾號:新機器視覺】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    德國進口蔡司體視顯微鏡的使用方法

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

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

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

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

    在這個科技飛速發展的時代,我們為您帶來了款革命性的產品——10.1寸光場裸眼3D視覺訓練平板電腦。這款平板電腦不僅讓您無需佩戴3D眼鏡就能享受逼真的立體視覺效果,還通過先進的技術幫助您緩解眼疲勞,提升
    的頭像 發表于 07-25 14:09 ?241次閱讀
    居然還有這樣的10.1寸光場裸眼3D<b class='flag-5'>視覺</b>訓練平板電腦?

    新品 | Bumblebee X系列用于高精度機器人應用的新型立體視覺產品

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

    Teledyne FLIR IIS推出款用于高精度機器人的新型立體視覺產品

    Bumblebee X是最新的GigE驅動立體成像解決方案,為機器人引導和拾取應用帶來高精度和低延遲
    的頭像 發表于 05-06 09:23 ?539次閱讀

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

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

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

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

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

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

    三維視覺測量技術:被動視覺測量和主動視覺測量

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

    雙目立體視覺是什么樣的技術?

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

    labview視覺開發模塊認識及應用

    LabVIEW視覺開發模塊是NI公司推出的款功能強大的圖形化編程軟件,專門用于圖像處理和視覺應用開發。它提供了豐富的視覺函數和工具,能夠實現圖像采集、處理、分析和測量,支持多種
    的頭像 發表于 12-28 11:00 ?1397次閱讀

    文了解3D視覺和2D視覺的區別

    文了解3D視覺和2D視覺的區別 3D視覺和2D視覺是兩種不同的視覺模式,其區別主要體現在
    的頭像 發表于 12-25 11:15 ?2877次閱讀

    LabVIEW開發自動駕駛的雙目測距系統

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

    雙目測寬儀高質量生產利器 測寬儀價格

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

    機器視覺雙目測寬儀具體有什么優勢?

    雙目測寬儀是機器視覺原來制造而成的智能寬度檢測設備,廣泛應用于板材類產品的寬度檢測。通過測寬儀的使用,實時了解產品寬度品質,進行超差提示,減少廢品的生產。 雙目測寬儀優勢 測量軟件界面顯示:產品規格
    發表于 11-28 17:13