Rumah  >  Artikel  >  Peranti teknologi  >  Penglihatan stereo dan persepsi mendalam dalam penglihatan komputer dan contoh

Penglihatan stereo dan persepsi mendalam dalam penglihatan komputer dan contoh

WBOY
WBOYke hadapan
2023-11-21 08:21:381241semak imbas

Dalam dunia kecerdasan buatan dan pemprosesan imej yang menarik, konsep ini memainkan peranan penting dalam membolehkan mesin melihat dunia tiga dimensi di sekeliling kita dengan cara yang sama mata kita. Sertai kami sambil kami meneroka teknologi di sebalik penglihatan stereo dan persepsi kedalaman, mendedahkan rahsia bagaimana komputer memperoleh pemahaman tentang kedalaman, jarak dan ruang daripada imej 2D.

Penglihatan stereo dan persepsi mendalam dalam penglihatan komputer dan contoh

Apakah sebenarnya yang dimaksudkan dengan penglihatan stereo dan persepsi mendalam dalam penglihatan komputer?

Penglihatan stereo dan persepsi kedalaman adalah konsep penting dalam bidang penglihatan komputer, yang bertujuan untuk meniru keupayaan manusia untuk melihat struktur kedalaman dan tiga dimensi daripada maklumat visual. Konsep-konsep ini sering digunakan dalam bidang seperti robotik, kereta pandu sendiri dan realiti tambahan Teknologi yang menggunakan imej daripada satu atau lebih kamera untuk melihat kedalaman pemandangan, meniru cara mata manusia berfungsi.

Prinsip asas di sebalik penglihatan stereo ialah triangulasi. Apabila dua kamera (atau "kamera stereo") menangkap imej pemandangan yang sama dari sudut pandangan yang sedikit berbeza, pasangan imej yang terhasil, dipanggil pasangan stereo, mengandungi perbezaan atau perbezaan, dalam kedudukan titik yang sepadan dalam kedua-dua imej.

Dengan menganalisis perbezaan ini, sistem penglihatan komputer boleh mengira maklumat kedalaman untuk objek di tempat kejadian. Objek yang lebih dekat dengan kamera akan mempunyai perbezaan yang lebih besar, manakala objek yang lebih jauh dari kamera akan mempunyai perbezaan yang lebih kecil.

Algoritma penglihatan stereo biasanya termasuk teknik seperti padanan ciri, pemetaan perbezaan dan geometri epipolar, yang digunakan untuk mengira peta kedalaman atau perwakilan 3D bagi sesuatu pemandangan

Persepsi Kedalaman

Dalam penglihatan kedalaman komputer, rujuk ke dalam keupayaan sistem untuk mengekstrak maklumat daripada satu Keupayaan untuk memahami dan menganggarkan jarak objek dalam pemandangan 3D daripada berbilang imej 2D atau bingkai video

Kaedah untuk mencapai persepsi kedalaman tidak terhad kepada penglihatan stereoskopik, tetapi juga boleh mengambil jalan lain, termasuk:

Isyarat monokular: Ini ialah perkara yang boleh dilakukan dalam satu isyarat Kedalaman yang dilihat dalam kamera atau imej. Contohnya termasuk perspektif, kecerunan tekstur, bayang-bayang dan oklusi. Petunjuk ini boleh membantu menganggarkan kedalaman walaupun tanpa stereovision.

LiDAR (Pengesanan dan Ranging Cahaya): Penderia LiDAR menggunakan pancaran laser untuk mengukur jarak objek dalam pemandangan, memberikan maklumat kedalaman yang tepat dalam bentuk awan titik. Maklumat ini boleh digabungkan dengan data visual untuk persepsi kedalaman yang lebih tepat.

Cahaya Berstruktur: Cahaya berstruktur melibatkan menayangkan corak yang diketahui pada pemandangan dan menganalisis ubah bentuk corak itu pada objek dalam pemandangan itu. Ubah bentuk ini boleh digunakan untuk mengira maklumat kedalaman.
  • Kamera Masa Penerbangan (ToF): Kamera ToF mengukur masa yang diperlukan untuk cahaya memantul daripada objek dan kembali ke kamera. Maklumat ini digunakan untuk menganggarkan kedalaman.
  • Dalam aplikasi penglihatan komputer, persepsi kedalaman adalah penting untuk tugas seperti mengelakkan halangan, mengenal pasti objek, melakukan pembinaan semula 3D dan memahami pemandangan

Penglihatan stereo dan persepsi kedalaman

Komponen kamera

dalam komputer: Penglihatan stereo bergantung pada dua atau lebih kamera (kamera stereo) yang diletakkan pada jarak yang diketahui. Kamera ini menangkap imej pemandangan yang sama dari sudut pandangan yang sedikit berbeza, meniru cara mata manusia melihat kedalaman.

Tangkapan Imej: Kamera menangkap imej atau bingkai video tempat kejadian. Imej ini sering dirujuk sebagai imej kiri (dari kamera kiri) dan imej kanan (dari kamera kanan).

    Penentukuran: Untuk mengira maklumat kedalaman dengan tepat, kamera stereo mesti ditentukur. Proses ini melibatkan penentuan parameter kamera seperti matriks intrinsik, pekali herotan dan parameter ekstrinsik (putaran dan terjemahan antara kamera). Penentukuran memastikan bahawa imej daripada kedua-dua kamera dibetulkan dan dipadankan dengan betul.
  • Pembetulan: Pembetulan ialah transformasi geometri yang digunakan pada imej yang ditangkap untuk menyelaraskan ciri yang sepadan pada garisan epipolar. Ini memudahkan proses pemadanan stereo dengan menjadikan perbezaan lebih mudah diramal.
  • Padanan Stereo: Pemadanan stereo ialah proses mencari titik yang sepadan atau titik pemadanan antara imej kiri dan imej kanan. Nilai piksel yang digunakan untuk mengira perbezaan bagi setiap piksel dipanggil ketaksamaan dan mewakili anjakan mendatar ciri dalam imej. Terdapat pelbagai algoritma padanan stereo yang tersedia, termasuk padanan blok, padanan separa global dan pemotongan graf, untuk mencari titik sepadan ini.
    • Peta perbezaan: Peta perbezaan ialah imej skala kelabu di mana nilai keamatan setiap piksel sepadan dengan perbezaan atau kedalaman pada titik itu dalam pemandangan. Objek yang lebih dekat dengan kamera mempunyai perbezaan yang lebih besar, manakala objek yang jauh dari kamera mempunyai perbezaan yang lebih kecil.
    • Peta Kedalaman: Peta kedalaman diperoleh daripada peta perbezaan dengan menggunakan garis dasar yang diketahui (jarak antara kamera) dan jarak fokus kamera. Ia mengira kedalaman dalam unit dunia sebenar (cth. meter) untuk setiap piksel, bukan perbezaannya.
    • Visualisasi: Peta kedalaman dan perbezaan sering digambarkan untuk memberikan gambaran struktur 3D pemandangan yang boleh dibaca oleh manusia. Plot ini boleh dipaparkan sebagai imej skala kelabu atau ditukar kepada awan titik untuk visualisasi 3D.
    • Sesetengah perkakasan: Selain kamera, anda juga boleh menggunakan perkakasan khusus seperti kamera pengesan kedalaman (seperti Microsoft Kinect, Intel RealSense) atau penderia LiDAR (Light Detection and Ranging) untuk mendapatkan maklumat kedalaman. Penderia ini memberikan kedalaman secara langsung tanpa memerlukan padanan stereo.

    Stereo Visi dan Persepsi Kedalaman dalam Computer Vision Python Contoh Pelaksanaan:

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()

Nota: Untuk persediaan kamera stereo, penentukuran kamera diperlukan dan data penentukuran disimpan dalam fail .yml, masukkan laluan ke dalam kod contoh .

Apl

menggunakan maklumat mendalam untuk pengesanan dan penjejakan sasaran untuk mencapai kedudukan dan pengenalan yang lebih tepat. Menggunakan maklumat mendalam untuk aplikasi realiti maya dan realiti tambahan membolehkan pengguna berinteraksi dengan persekitaran maya secara lebih realistik. Gunakan maklumat kedalaman untuk pengecaman muka dan analisis ekspresi untuk meningkatkan ketepatan dan keteguhan pengecaman muka. Gunakan maklumat kedalaman untuk pembinaan semula dan pemodelan 3D untuk menjana pemandangan 3D yang realistik. Gunakan maklumat kedalaman untuk anggaran postur dan analisis tingkah laku untuk mencapai pengecaman tindakan dan pemahaman tingkah laku yang lebih tepat. Gunakan maklumat kedalaman untuk pemanduan autonomi dan navigasi robot untuk meningkatkan keselamatan dan kecekapan dalam bidang pengangkutan pintar dan automasi

  • Pembinaan semula pemandangan 3D
  • Pengesanan dan pengesanan objek
  • Navigasi autonomi robot
  • dan realiti maya realiti
  • Pengecaman Gerak Isyarat
Had

Berikut adalah beberapa had penting:

    Pergantungan pada Penentukuran Kamera: Sistem penglihatan stereo memerlukan penentukuran tepat kamera yang digunakan. Penentukuran yang tepat adalah penting untuk memastikan pengiraan maklumat kedalaman yang betul. Sebarang kesilapan dalam penentukuran boleh membawa kepada persepsi kedalaman yang tidak tepat.
  • Bidang pandangan terhad: Sistem penglihatan stereo mempunyai medan pandangan terhad, berdasarkan jarak garis dasar antara kedua-dua kamera. Ini boleh menyebabkan titik buta atau kesukaran untuk melihat objek di luar bidang pandangan kedua-dua kamera.
  • Permukaan tanpa tekstur dan ciri: Algoritma pemadanan stereo bergantung pada mencari ciri yang sepadan dalam imej kiri dan kanan. Permukaan yang tidak mempunyai tekstur atau ciri unik, seperti dinding licin atau latar belakang seragam, mungkin sukar dipadankan dengan tepat, yang membawa kepada ralat anggaran kedalaman.
  • Oklusi: Objek yang menghalang satu sama lain dalam tempat kejadian boleh menyebabkan kesukaran dengan penglihatan stereoskopik. Apabila satu objek menghalang sebahagian objek lain, menentukan kedalaman kawasan tersumbat boleh menjadi masalah.
  • Julat dan Resolusi Terhad: Ketepatan persepsi kedalaman menggunakan penglihatan stereo berkurangan apabila jarak dari kamera meningkat. Selain itu, resolusi ukuran kedalaman berkurangan dengan jarak, menjadikan butiran objek jauh sukar untuk dilihat.
  • Sensitif kepada keadaan pencahayaan: Perubahan dalam keadaan pencahayaan, seperti perubahan cahaya ambien atau bayang-bayang, boleh menjejaskan ketepatan penglihatan stereoskopik. Keadaan pencahayaan yang tidak konsisten boleh menyebabkan kesesuaian antara imej kiri dan kanan sukar dicari.
  • Sumber pengkomputeran: Algoritma pemadanan stereo boleh memerlukan sumber pengkomputeran yang luas, terutamanya apabila memproses imej resolusi tinggi atau strim video masa nyata. Aplikasi masa nyata mungkin memerlukan perkakasan yang berkuasa untuk pemprosesan yang cekap.
  • Kos dan Kerumitan: Menyediakan sistem penglihatan stereo dengan kamera yang ditentukur boleh menjadi mahal dan memakan masa. Keperluan perkakasan, termasuk kamera dan peralatan penentukuran, boleh menjadi penghalang untuk sesetengah aplikasi.
  • Ketidaktepatan dengan objek lutsinar atau pemantulan: Permukaan lutsinar atau sangat pemantul boleh menyebabkan ralat dalam penglihatan stereoskopik kerana bahan ini mungkin tidak memantulkan cahaya dengan cara yang sesuai untuk persepsi kedalaman.
  • Adegan dinamik: Penglihatan stereo menganggap bahawa pemandangan itu statik semasa tangkapan imej. Dalam adegan dinamik dengan objek bergerak atau gerakan kamera, mengekalkan kesesuaian antara imej kiri dan kanan boleh menjadi mencabar, yang membawa kepada anggaran kedalaman yang tidak tepat.
  • Penggunaan Luar Terhad: Sistem penglihatan stereo mungkin bergelut dalam persekitaran luar dengan cahaya matahari yang terang atau pemandangan yang tidak mempunyai tekstur, seperti langit yang cerah.

Ringkasnya, penglihatan stereoskopik dan persepsi mendalam dalam penglihatan komputer membuka kemungkinan baharu untuk mesin berinteraksi dan memahami kekayaan tiga dimensi persekitaran kita. Seperti yang kita bincangkan dalam artikel ini, teknologi ini merupakan teras kepada pelbagai aplikasi, termasuk bidang seperti robotik dan kenderaan autonomi, realiti tambahan dan pengimejan perubatan

Atas ialah kandungan terperinci Penglihatan stereo dan persepsi mendalam dalam penglihatan komputer dan contoh. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:51cto.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam