了解深度估计如何从图像中创建深度图--立体图像、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()
将深度估计与人工智能生态系统中的类似术语区分开来非常重要:
生成式人工智能和基础模型的最新进展正进一步弥合二维与三维之间的鸿沟。 诸如神经辐射场(NeRF)等技术利用稀疏二维图像重建复杂三维场景,其运作核心依赖于底层深度原理。随着模型优化不断推进,在边缘AI设备上实现高精度深度估计正成为可能,这将为新一代智能无人机、服务机器人及空间计算设备提供强大支撑。
.webp)
