跳至内容

使用Ultralytics YOLO11

什么是距离计算?

测量两个物体之间的间距被称为特定空间内的距离计算。在 Ultralytics YOLO11中,边界框中心点被用来计算用户突出显示的边界框的距离。



观看: 使用Ultralytics YOLO11

视觉效果

使用Ultralytics YOLO11
Ultralytics YOLO11 距离计算

距离计算的优势?

  • 定位精度提高计算机视觉任务中的空间定位精度。
  • 尺寸估算:可估算物体大小,以便更好地理解上下文。
距离计算
  • 用鼠标左键单击任意两个边界框,计算距离

使用YOLO11 计算距离示例

import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("Path/to/video/file.mp4")
assert cap.isOpened(), "Error reading video file"
w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))

# Video writer
video_writer = cv2.VideoWriter("distance_calculation.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))

# Init distance-calculation obj
distance = solutions.DistanceCalculation(model="yolo11n.pt", show=True)

# Process video
while cap.isOpened():
    success, im0 = cap.read()
    if not success:
        print("Video frame is empty or video processing has been successfully completed.")
        break
    im0 = distance.calculate(im0)
    video_writer.write(im0)

cap.release()
video_writer.release()
cv2.destroyAllWindows()
备注
  • 鼠标右键点击将删除所有绘制点
  • 鼠标左键可用于绘制点
距离是估计值
Distance will be an estimate and may not be fully accurate, as it is calculated using 2-dimensional data, which lacks information about the object's depth.

论据 DistanceCalculation()

Name Type Default 说明
model str None Ultralytics YOLO 模型文件的路径
line_width int 2 边界框的线条粗细
show bool False 用于控制是否显示视频流的标志。

论据 model.track

论据 类型 默认值 说明
source str None 指定图片或视频的源目录。支持文件路径和 URL。
persist bool False 可在帧间持续跟踪对象,在视频序列中保持 ID。
tracker str botsort.yaml 指定要使用的跟踪算法,例如 bytetrack.yamlbotsort.yaml.
conf float 0.3 设置检测的置信度阈值;数值越低,跟踪的物体越多,但可能会出现误报。
iou float 0.5 设置交叉重叠 (IoU) 阈值,用于过滤重叠检测。
classes list None 按类别索引筛选结果。例如 classes=[0, 2, 3] 只跟踪指定的类别。
verbose bool True 控制跟踪结果的显示,提供被跟踪物体的可视化输出。

常见问题

如何使用Ultralytics YOLO11 计算物体之间的距离?

使用 Ultralytics YOLO11然后,您需要确定检测到的对象的边界框中心点。这个过程包括初始化 DistanceCalculation 类从Ultralytics' solutions 模块,并使用模型的跟踪输出来计算距离。您可以参考 距离计算示例.

使用Ultralytics YOLO11 进行距离计算有哪些优势?

使用Ultralytics YOLO11 进行距离计算有几个优势:

  • 定位精度:为物体提供精确的空间定位。
  • 尺寸估算:帮助估算物理尺寸,有助于更好地理解上下文。
  • 场景理解:增强 3D 场景理解能力,有助于在自动驾驶和监控等应用中改进决策。

可以通过Ultralytics YOLO11 在实时视频流中进行距离计算吗?

是的,您可以使用Ultralytics YOLO11 在实时视频流中进行距离计算。计算过程包括使用 OpenCV跑步YOLO11 物体检测并使用 DistanceCalculation 类来计算连续帧中对象之间的距离。有关详细实现,请参阅 视频流示例.

如何删除使用Ultralytics YOLO11 计算距离时绘制的点?

要删除在使用Ultralytics YOLO11 计算距离时绘制的点,可以单击鼠标右键。此操作将清除您绘制的所有点。更多详情,请参阅距离计算示例下的注释部分。

在Ultralytics YOLO11 中初始化 DistanceCalculation 类的关键参数是什么?

初始化 DistanceCalculation Ultralytics YOLO11 中的类包括

  • model:模型文件路径。
  • show:指示是否显示视频流的标志。
  • line_width:边界框的厚度和图像上绘制的线条。

有关详细列表和默认值,请参阅距离计算的参数

📅创建于 11 个月前 ✏️已更新 25 天前

评论