Khám phá cách ước tính độ sâu tạo ra bản đồ độ sâu từ hình ảnh—âm thanh nổi, ToF, LiDAR và học sâu đơn sắc—để hỗ trợ robot, AR/VR và nhận thức 3D.
Ước lượng độ sâu là một nhiệm vụ cơ bản trong thị giác máy tính (CV) , bao gồm việc xác định khoảng cách giữa các vật thể trong một cảnh so với máy ảnh. Bằng cách tính toán giá trị độ sâu cho mỗi pixel trong ảnh, quá trình này chuyển đổi dữ liệu hai chiều tiêu chuẩn thành biểu diễn 3D phong phú, thường được gọi là bản đồ độ sâu. Khả năng này rất cần thiết để máy móc nhận thức các mối quan hệ không gian, cho phép chúng định hướng môi trường, thao tác với vật thể và hiểu hình dạng của thế giới, tương tự như hệ thống thị giác của con người.
Có thể ước tính độ sâu thông qua nhiều phương pháp khác nhau, từ cảm biến chủ động sử dụng phần cứng đến phương pháp học sâu (DL) dựa trên phần mềm.
Khả năng nhận thức chiều thứ ba mở ra chức năng quan trọng trong nhiều ngành công nghiệp khác nhau.
Trong lĩnh vực xe tự hành , việc ước tính độ sâu rất quan trọng đối với an toàn và điều hướng. Xe tự lái kết hợp dữ liệu camera với LiDAR để detect chướng ngại vật, ước tính khoảng cách đến các phương tiện khác và xây dựng bản đồ đường đi theo thời gian thực. Tương tự, trong robot , nhận thức chiều sâu cho phép cánh tay tự động thực hiện các thao tác "nhặt và đặt" bằng cách đánh giá chính xác vị trí và hình dạng của các vật phẩm trong quy trình tự động hóa sản xuất .
Để trải nghiệm thực tế tăng cường trở nên sống động, các vật thể ảo phải tương tác thực tế với thế giới vật lý. Ước tính độ sâu cho phép thiết bị di động hiểu được hình dạng của một căn phòng, cho phép đặt đồ nội thất hoặc nhân vật ảo trên sàn hoặc ẩn sau các vật thể thực tế (che khuất), cải thiện đáng kể trải nghiệm người dùng.
Mặc dù tồn tại các mô hình độ sâu chuyên dụng, các nhà phát triển thường sử dụng 2D
phát hiện đối tượng cùng với dữ liệu hiệu chuẩn để ước tính khoảng cách. ultralytics Thư viện đơn giản hóa việc này thông qua mô-đun giải pháp, cho phép người dùng ước tính khoảng cách của các đối tượng được theo dõi dựa trên vị trí hộp giới hạn của chúng.
Đoạn mã sau đây minh họa cách sử dụng YOLO11 để track các vật thể và tính toán khoảng cách gần đúng của chúng tới máy ảnh.
import cv2
from ultralytics import YOLO, solutions
# Load the YOLO11 model for object detection
model = YOLO("yolo11n.pt")
# Initialize the DistanceCalculation solution
# This estimates distance based on bounding box centroids
dist_obj = solutions.DistanceCalculation(names=model.names, view_img=True)
# Open a video file or camera stream
cap = cv2.VideoCapture("path/to/video.mp4")
while cap.isOpened():
success, im0 = cap.read()
if not success:
break
# Track objects and calculate distance
tracks = model.track(im0, persist=True, show=False)
im0 = dist_obj.start_process(im0, tracks)
# Display result (or save/process further)
cv2.imshow("Distance Estimation", im0)
if cv2.waitKey(1) == ord("q"):
break
cap.release()
cv2.destroyAllWindows()
Điều quan trọng là phải phân biệt ước tính độ sâu với các thuật ngữ tương tự trong hệ sinh thái AI:
Những tiến bộ gần đây trong Trí tuệ nhân tạo (AI) và các mô hình nền tảng đang tiếp tục thu hẹp khoảng cách giữa 2D và 3D. Các kỹ thuật như Trường bức xạ thần kinh (Neural Radiance Fields - NeRF) sử dụng hình ảnh 2D thưa thớt để tái tạo các cảnh 3D phức tạp, dựa chủ yếu vào các nguyên tắc chiều sâu cơ bản. Khi việc tối ưu hóa mô hình được cải thiện, việc ước tính chiều sâu với độ chính xác cao đang trở nên khả thi trên các thiết bị biên, cung cấp năng lượng cho thế hệ máy bay không người lái thông minh, robot dịch vụ và thiết bị điện toán không gian tiếp theo.