了解深度估计如何从图像中创建深度图--立体图像、ToF、激光雷达和单目深度学习为机器人、AR/VR 和 3D 感知提供支持。
深度估计是计算机视觉 (CV) 计算机视觉 (CV)中的一项基本任务,涉及确定场景中物体相对于摄像机的距离。 场景中物体相对于摄像机的距离。通过计算图像中每个像素的深度值、 这一过程将标准的二维数据转换为丰富的三维表示,通常称为深度图。 这种能力对于机器感知空间关系至关重要,使它们能够在环境中导航、 这种能力对于机器感知空间关系至关重要,使它们能够像人类视觉系统一样浏览环境、操作物体和理解世界的几何形状。
深度估算可以通过多种方法实现,从硬件密集型的主动传感到软件驱动的深度学习(DL)方法,不一而足。 软件驱动的深度学习 (DL)方法。
感知三维空间的能力为各行各业带来了重要的功能。
在自动驾驶汽车领域,深度 深度估计对安全和导航至关重要。自动驾驶汽车结合摄像头数据和激光雷达来detect 障碍物、 估计与其他车辆的距离,并构建实时道路地图。同样,在 同样,在机器人技术中,深度知觉可以让自动机械臂 在制造自动化工作流程中,通过准确判断物品的位置和形状来执行 "取放 "操作。 在制造自动化工作流程中,深度知觉可让自动机械臂通过准确判断物品的位置和形状来执行 "取放 "操作。
对于 增强现实 要使体验身临其境,虚拟物体必须与物理世界进行逼真的交互。深度估计 使移动设备能够理解房间的几何形状,从而将虚拟家具或角色放置在地板上或隐藏在现实世界的物体后面(遮挡),从而大大改善用户体验。 或隐藏在现实世界的物体后面(遮挡),从而大大改善用户体验。
虽然有专门的深度模型,但开发人员通常使用 2D
物体检测 与校准数据一起
近似距离。缆线 ultralytics 库通过其解决方案模块简化了这一过程,允许用户
根据边框位置估算被跟踪物体的距离。
以下代码演示了如何使用 YOLO11来track 物体并计算它们与摄像机之间的大致 距离。
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()
将深度估计与人工智能生态系统中的类似术语区分开来非常重要:
生成式人工智能和基础模型的最新进展进一步缩小了二维和三维之间的差距。 模型进一步缩小了 2D 和 3D 之间的差距。这些技术包括 神经辐射场 (NeRF)等技术利用稀疏的二维图像来重建复杂的三维场景。 神经辐射场(NeRF)等技术利用稀疏的二维图像来重建复杂的三维场景,这在很大程度上依赖于潜在的深度原理。随着 模型优化的改进、 高精度深度估计在边缘设备上变得可行,为下一代智能无人机、服务机器人和空间设备提供动力、 服务机器人和空间计算设备。