目錄
立體視覺
深度感知
#電腦視覺中的立體視覺和深度感知組件
電腦視覺中的立體視覺和深度感知Python範例實作:
應用程式
限制
首頁 科技週邊 人工智慧 電腦視覺中的立體視覺和深度感知及範例

電腦視覺中的立體視覺和深度感知及範例

Nov 21, 2023 am 08:21 AM
人工智慧 電腦視覺

在人工智慧和影像處理的迷人世界中,這些概念在使機器能夠像我們的眼睛一樣感知我們周圍的三維世界中起著關鍵作用。和我們一起探索立體視覺和深度感知背後的技術,揭示電腦如何從二維圖像中獲得深度、距離和空間理解的秘密。

電腦視覺中的立體視覺和深度感知及範例

立體視覺和深度感知在電腦視覺中具體指的是什麼?

立體視覺和深度感知是電腦視覺領域中的重要概念,其目的是模仿人類從視覺訊息中感知深度和三維結構的能力。這些概念通常被應用於機器人技術、自動駕駛汽車和擴增實境等領域

立體視覺

立體視覺,也稱為立體視或雙眼視覺,是一種透過捕捉和分析稍微分開放置的兩個或多個攝影機的影像來感知場景深度的技術,模仿了人眼的工作方式。

立體視覺背後的基本原理是三角測量。當兩個攝影機(或「立體攝影機」)從稍微不同的視點捕捉相同場景的影像時,產生的影像對稱為立體對,其中包含兩個影像中對應點的位置差異或差異。

透過分析這些差異,電腦視覺系統可以計算場景中物體的深度資訊。靠近相機的物體將具有較大的差異,而遠離攝影機的物體將具有較小的差異。

立體視覺演算法通常包括特徵匹配、差異映射和極線幾何等技術,用於計算深度圖或場景的3D表示

深度感知

在電腦視覺中,深度感知是指系統能夠從單一或多個2D影像或視訊影格中理解並估計3D場景中物體的距離能力

實現深度感知的方法不僅限於立體視覺,還可以採用其他途徑,包括:

  • 單眼線索:這些是可以在單一相機或影像中感知的深度線索。例如,透視、紋理梯度、陰影和遮蔽等範例。即使在沒有立體視覺的情況下,這些線索也可以幫助估算深度。
  • LiDAR(光探測與測距):LiDAR感測器使用雷射光束來測量場景中物體的距離,提供點雲形式的精確深度資訊。這些資訊可以與視覺數據融合,以獲得更準確的深度感知。
  • 結構光:結構光涉及將已知圖案投射到場景上,並分析該圖案在場景中的物體上的變形。這種變形可用於計算深度資訊。
  • 飛行時間(ToF)相機:ToF相機測量光線從物體反射並返回相機所需的時間。這些資訊用於估算深度。

在電腦視覺應用中,深度感知對於避免障礙物、辨識物件、進行3D重建和理解場景等任務至關重要

#電腦視覺中的立體視覺和深度感知組件

  • 立體攝影機:立體視覺依賴於兩個或多個相機(立體相機),這些相機相距已知的距離放置。這些相機從稍微不同的視點捕捉相同場景的影像,模擬人眼感知深度的方式。
  • 影像擷取:相機擷取場景的影像或影片畫面。這些影像通常被稱為左影像(來自左相機)和右影像(來自右相機)。
  • 校準:為了準確計算深度訊息,必須對立體攝影機進行校準。這個過程涉及確定攝影機參數,如內在矩陣、畸變係數和外在參數(攝影機之間的旋轉和平移)。校準確保來自兩台相機的影像能夠正確進行校正和匹配。
  • 校正:校正是套用於擷取的影像的幾何變換,以對齊極線上的對應特徵。這透過使差異更可預測來簡化立體匹配過程。
  • 立體匹配:立體匹配是在左側影像和右影像之間找到對應點或匹配點的過程。用於計算每個像素的差異的像素值稱為差異,表示影像中特徵的水平偏移。有各種立體匹配演算法可供選擇,包括區塊匹配、半全域匹配和圖割,用於找到這些對應點。

  • 差異圖:差異圖是一幅灰階影像,其中每個像素的強度值對應於場景中該點的差異或深度。靠近相機的物體具有較大的差異,而遠離相機的物體具有較小的差異。
  • 深度圖:深度圖是透過使用已知的基線(相機之間的距離)和相機的焦距來從差異圖中導出的。它計算每個像素的實際世界單位(例如米)的深度,而不是差異。
  • 視覺化:深度和差異圖通常被視覺化,以提供場景的3D結構的可讀人類表示。這些圖可以顯示為灰階影像,也可以轉換為點雲以進行3D視覺化。
  • 一些硬體:除了相機外,還可以使用深度感知相機(例如Microsoft Kinect、Intel RealSense)或LiDAR(光偵測與測距)感測器等專用硬體來取得深度資訊。這些感測器直接提供深度,無需立體匹配。

電腦視覺中的立體視覺和深度感知Python範例實作:

import cv2import numpy as np# Create two video capture objects for left and right cameras (adjust device IDs as needed)left_camera = cv2.VideoCapture(0)right_camera = cv2.VideoCapture(1)# Set camera resolution (adjust as needed)width = 640height = 480left_camera.set(cv2.CAP_PROP_FRAME_WIDTH, width)left_camera.set(cv2.CAP_PROP_FRAME_HEIGHT, height)right_camera.set(cv2.CAP_PROP_FRAME_WIDTH, width)right_camera.set(cv2.CAP_PROP_FRAME_HEIGHT, height)# Load stereo calibration data (you need to calibrate your stereo camera setup first)stereo_calibration_file = ‘stereo_calibration.yml’calibration_data = cv2.FileStorage(stereo_calibration_file, cv2.FILE_STORAGE_READ)if not calibration_data.isOpened():print(“Calibration file not found.”)exit()camera_matrix_left = calibration_data.getNode(‘cameraMatrixLeft’).mat()camera_matrix_right = calibration_data.getNode(‘cameraMatrixRight’).mat()distortion_coeff_left = calibration_data.getNode(‘distCoeffsLeft’).mat()distortion_coeff_right = calibration_data.getNode(‘distCoeffsRight’).mat()R = calibration_data.getNode(‘R’).mat()T = calibration_data.getNode(‘T’).mat()calibration_data.release()# Create stereo rectification mapsR1, R2, P1, P2, Q, _, _ = cv2.stereoRectify(camera_matrix_left, distortion_coeff_left,camera_matrix_right, distortion_coeff_right,(width, height), R, T)left_map1, left_map2 = cv2.initUndistortRectifyMap(camera_matrix_left, distortion_coeff_left, R1, P1, (width, height), cv2.CV_32FC1)right_map1, right_map2 = cv2.initUndistortRectifyMap(camera_matrix_right, distortion_coeff_right, R2, P2, (width, height), cv2.CV_32FC1)while True:# Capture frames from left and right camerasret1, left_frame = left_camera.read()ret2, right_frame = right_camera.read()if not ret1 or not ret2:print(“Failed to capture frames.”)break# Undistort and rectify framesleft_frame_rectified = cv2.remap(left_frame, left_map1, left_map2, interpolation=cv2.INTER_LINEAR)right_frame_rectified = cv2.remap(right_frame, right_map1, right_map2, interpolation=cv2.INTER_LINEAR)# Convert frames to grayscaleleft_gray = cv2.cvtColor(left_frame_rectified, cv2.COLOR_BGR2GRAY)right_gray = cv2.cvtColor(right_frame_rectified, cv2.COLOR_BGR2GRAY)# Perform stereo matching to calculate depth map (adjust parameters as needed)stereo = cv2.StereoBM_create(numDisparities=16, blockSize=15)disparity = stereo.compute(left_gray, right_gray)# Normalize the disparity map for visualizationdisparity_normalized = cv2.normalize(disparity, None, alpha=0, beta=255, norm_type=cv2.NORM_MINMAX, dtype=cv2.CV_8U)# Display the disparity mapcv2.imshow(‘Disparity Map’, disparity_normalized)if cv2.waitKey(1) & 0xFF == ord(‘q’):break# Release resourcesleft_camera.release()right_camera.release()cv2.destroyAllWindows()
登入後複製

注意:對於立體攝影機設置,需要進行攝影機校準,並儲存校準資料在.yml檔案中,將路徑放入範例程式碼中。

應用程式

利用深度資訊進行目標檢測和跟踪,實現更精確的定位和識別。 利用深度資訊進行虛擬實境和擴增實境應用,使用戶能夠與虛擬環境進行更真實的互動。 利用深度資訊進行人臉辨識和表情分析,提高人臉辨識的準確性和穩健性。 利用深度資訊進行三維重建和建模,產生真實感覺的三維場景。 利用深度資訊進行姿態估計與行為分析,以實現更精確的動作辨識與行為理解。 利用深度資訊進行自動駕駛和機器人導航,提高智慧交通和自動化領域的安全性和效率

  • #3D場景重建
  • 物件偵測與追蹤
  • 機器人和車輛的自主導航
  • 擴增實境與虛擬實境
  • 手勢辨識

限制

##以下是一些重要的限制:

    依賴相機校準:立體視覺系統需要對所使用的攝影機進行精確的校準。準確的校準對於確保深度資訊的正確計算至關重要。校準中的任何錯誤都可能導致深度感知不準確。
  • 有限的視野範圍:立體視覺系統的視野範圍有限,基於兩個攝影機之間的基線距離。這可能導致盲點或在兩個攝影機視場之外的物體的感知困難。
  • 沒有紋理和特徵的表面:立體匹配演算法依賴在左右影像中找到對應的特徵。缺乏紋理或獨特特徵的表面,如光滑的牆壁或均勻的背景,可能難以準確匹配,導致深度估計錯誤。
  • 遮擋:在場景中相互遮蔽的物件可能會對立體視覺造成困難。當一個物件部分遮蔽另一個物件時,確定被遮蔽區域的深度可能會有問題。
  • 有限的範圍和解析度:隨著距離攝影機的增加,使用立體視覺感知深度的準確性會減少。此外,深度測量的分辨率隨著距離的增加而減小,使遠處物體的細節難以感知。
  • 對光照條件敏感:光照條件的變化,如環境光的變化或陰影,可能會影響立體視覺的準確性。不一致的光照條件可能會使左右影像之間的對應關係難以找到。
  • 運算資源:立體匹配演算法可能需要大量運算資源,特別是在處理高解析度影像或即時視訊串流時。即時應用可能需要強大的硬體來進行高效處理。
  • 成本和複雜性:設置帶有校準攝影機的立體視覺系統可能會昂貴且耗時。硬體需求,包括攝影機和校準設備,可能會成為某些應用的障礙。
  • 透明或反光物體的不準確性:透明或高反射表面可能會導致立體視覺中的錯誤,因為這些材料可能不會以適合深度感知的方式反射光線。
  • 動態場景:立體視覺假定在影像捕捉期間場景是靜態的。在具有移動物件或攝影機運動的動態場景中,維護左右影像之間的對應關係可能會很具有挑戰性,導致深度估計不準確。
  • 有限的戶外使用:立體視覺系統在明亮陽光下的戶外環境或缺乏紋理的場景中可能會遇到困難,例如晴朗的天空。

總而言之,電腦視覺中的立體視覺和深度感知為機器與理解我們環境的三維豐富性互動開啟了新的可能性。正如我們在本文中所討論的,這些技術是各種應用的核心,包括機器人和自動駕駛車輛,擴增實境和醫學成像等領域

以上是電腦視覺中的立體視覺和深度感知及範例的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
威爾R.E.P.O.有交叉遊戲嗎?
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

位元組跳動剪映推出 SVIP 超級會員:連續包年 499 元,提供多種 AI 功能 位元組跳動剪映推出 SVIP 超級會員:連續包年 499 元,提供多種 AI 功能 Jun 28, 2024 am 03:51 AM

本站6月27日訊息,剪映是由位元組跳動旗下臉萌科技開發的一款影片剪輯軟體,依託於抖音平台且基本面向該平台用戶製作短影片內容,並相容於iOS、安卓、Windows 、MacOS等作業系統。剪映官方宣布會員體系升級,推出全新SVIP,包含多種AI黑科技,例如智慧翻譯、智慧劃重點、智慧包裝、數位人合成等。價格方面,剪映SVIP月費79元,年費599元(本站註:折合每月49.9元),連續包月則為59元每月,連續包年為499元每年(折合每月41.6元) 。此外,剪映官方也表示,為提升用戶體驗,向已訂閱了原版VIP

使用Rag和Sem-Rag提供上下文增強AI編碼助手 使用Rag和Sem-Rag提供上下文增強AI編碼助手 Jun 10, 2024 am 11:08 AM

透過將檢索增強生成和語意記憶納入AI編碼助手,提升開發人員的生產力、效率和準確性。譯自EnhancingAICodingAssistantswithContextUsingRAGandSEM-RAG,作者JanakiramMSV。雖然基本AI程式設計助理自然有幫助,但由於依賴對軟體語言和編寫軟體最常見模式的整體理解,因此常常無法提供最相關和正確的程式碼建議。這些編碼助手產生的代碼適合解決他們負責解決的問題,但通常不符合各個團隊的編碼標準、慣例和風格。這通常會導致需要修改或完善其建議,以便將程式碼接受到應

微調真的能讓LLM學到新東西嗎:引入新知識可能讓模型產生更多的幻覺 微調真的能讓LLM學到新東西嗎:引入新知識可能讓模型產生更多的幻覺 Jun 11, 2024 pm 03:57 PM

大型語言模型(LLM)是在龐大的文字資料庫上訓練的,在那裡它們獲得了大量的實際知識。這些知識嵌入到它們的參數中,然後可以在需要時使用。這些模型的知識在訓練結束時被「具體化」。在預訓練結束時,模型實際上停止學習。對模型進行對齊或進行指令調優,讓模型學習如何充分利用這些知識,以及如何更自然地回應使用者的問題。但是有時模型知識是不夠的,儘管模型可以透過RAG存取外部內容,但透過微調使用模型適應新的領域被認為是有益的。這種微調是使用人工標註者或其他llm創建的輸入進行的,模型會遇到額外的實際知識並將其整合

七個很酷的GenAI & LLM技術性面試問題 七個很酷的GenAI & LLM技術性面試問題 Jun 07, 2024 am 10:06 AM

想了解更多AIGC的內容,請造訪:51CTOAI.x社群https://www.51cto.com/aigc/譯者|晶顏審校|重樓不同於網路上隨處可見的傳統問題庫,這些問題需要跳脫常規思維。大語言模型(LLM)在數據科學、生成式人工智慧(GenAI)和人工智慧領域越來越重要。這些複雜的演算法提升了人類的技能,並在許多產業中推動了效率和創新性的提升,成為企業保持競爭力的關鍵。 LLM的應用範圍非常廣泛,它可以用於自然語言處理、文字生成、語音辨識和推薦系統等領域。透過學習大量的數據,LLM能夠產生文本

你所不知道的機器學習五大學派 你所不知道的機器學習五大學派 Jun 05, 2024 pm 08:51 PM

機器學習是人工智慧的重要分支,它賦予電腦從數據中學習的能力,並能夠在無需明確編程的情況下改進自身能力。機器學習在各個領域都有廣泛的應用,從影像辨識和自然語言處理到推薦系統和詐欺偵測,它正在改變我們的生活方式。機器學習領域存在著多種不同的方法和理論,其中最具影響力的五種方法被稱為「機器學習五大派」。這五大派分別為符號派、聯結派、進化派、貝葉斯派和類推學派。 1.符號學派符號學(Symbolism),又稱符號主義,強調利用符號進行邏輯推理和表達知識。該學派認為學習是一種逆向演繹的過程,透過現有的

為大模型提供全新科學複雜問答基準與評估體系,UNSW、阿貢、芝加哥大學等多家機構共同推出SciQAG框架 為大模型提供全新科學複雜問答基準與評估體系,UNSW、阿貢、芝加哥大學等多家機構共同推出SciQAG框架 Jul 25, 2024 am 06:42 AM

編輯|ScienceAI問答(QA)資料集在推動自然語言處理(NLP)研究中發揮著至關重要的作用。高品質QA資料集不僅可以用於微調模型,也可以有效評估大語言模型(LLM)的能力,尤其是針對科學知識的理解和推理能力。儘管目前已有許多科學QA數據集,涵蓋了醫學、化學、生物等領域,但這些數據集仍有一些不足之處。其一,資料形式較為單一,大多數為多項選擇題(multiple-choicequestions),它們易於進行評估,但限制了模型的答案選擇範圍,無法充分測試模型的科學問題解答能力。相比之下,開放式問答

SOTA性能,廈大多模態蛋白質-配體親和力預測AI方法,首次結合分子表面訊息 SOTA性能,廈大多模態蛋白質-配體親和力預測AI方法,首次結合分子表面訊息 Jul 17, 2024 pm 06:37 PM

編輯|KX在藥物研發領域,準確有效地預測蛋白質與配體的結合親和力對於藥物篩選和優化至關重要。然而,目前的研究並沒有考慮到分子表面訊息在蛋白質-配體相互作用中的重要作用。基於此,來自廈門大學的研究人員提出了一種新穎的多模態特徵提取(MFE)框架,該框架首次結合了蛋白質表面、3D結構和序列的信息,並使用交叉注意機制進行不同模態之間的特徵對齊。實驗結果表明,該方法在預測蛋白質-配體結合親和力方面取得了最先進的性能。此外,消融研究證明了該框架內蛋白質表面資訊和多模態特徵對齊的有效性和必要性。相關研究以「S

SK 海力士 8 月 6 日將展示 AI 相關新品:12 層 HBM3E、321-high NAND 等 SK 海力士 8 月 6 日將展示 AI 相關新品:12 層 HBM3E、321-high NAND 等 Aug 01, 2024 pm 09:40 PM

本站8月1日消息,SK海力士今天(8月1日)發布博文,宣布將出席8月6日至8日,在美國加州聖克拉拉舉行的全球半導體記憶體峰會FMS2024,展示諸多新一代產品。未來記憶體和儲存高峰會(FutureMemoryandStorage)簡介前身是主要面向NAND供應商的快閃記憶體高峰會(FlashMemorySummit),在人工智慧技術日益受到關注的背景下,今年重新命名為未來記憶體和儲存高峰會(FutureMemoryandStorage),以邀請DRAM和儲存供應商等更多參與者。新產品SK海力士去年在

See all articles