使用 Ultralytics YOLO26 进行 VisionEye 视图对象映射 🚀
什么是 VisionEye 对象映射?
Ultralytics YOLO26 VisionEye 赋予了计算机识别和定位对象的能力,模拟了人眼的观察精度。此功能使计算机能够像人眼从特定视点观察细节一样,辨别并聚焦于特定对象。
# Monitor objects position with visioneye
yolo solutions visioneye show=True
# Pass a source video
yolo solutions visioneye source="path/to/video.mp4"
# Monitor the specific classes
yolo solutions visioneye classes="[0, 5]"VisionEye 参数
下表列出了 VisionEye 的参数:
| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
model | str | None | Ultralytics YOLO 模型文件的路径。 |
vision_point | tuple[int, int] | (20, 20) | 使用 VisionEye 解决方案追踪对象并绘制路径的点。 |
You can also utilize various track arguments within the VisionEye solution:
| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
tracker | str | 'botsort.yaml' | 指定使用的跟踪算法,例如 bytetrack.yaml 或 botsort.yaml。 |
conf | float | 0.1 | 设置检测的置信度阈值;较低的值允许跟踪更多对象,但可能会包含误报。 |
iou | float | 0.7 | 设置过滤重叠检测的 Intersection over Union (IoU) 阈值。 |
classes | list | None | 按类别索引过滤结果。例如,classes=[0, 2, 3] 将仅跟踪指定的类别。 |
verbose | bool | True | 控制跟踪结果的显示,提供跟踪对象的视觉输出。 |
device | str | None | 指定推理设备(例如 cpu、cuda:0 或 0)。允许用户选择 CPU、特定的 GPU 或其他计算设备来执行模型。 |
此外,还支持一些可视化参数,如下所示:
| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
show | bool | False | 如果设为 True,则在一个窗口中显示标注后的图像或视频。这对于开发或测试期间的即时视觉反馈非常有用。 |
line_width | int or None | None | 指定边界框的线宽。如果为 None,线宽将根据图像大小自动调整。提供视觉自定义以提高清晰度。 |
show_conf | bool | True | 在标签旁边显示每个检测结果的置信度分数。让你可以洞察模型对每个检测的确定性。 |
show_labels | bool | True | 在可视化输出中显示每个检测结果的标签。提供对检测对象的即时了解。 |
VisionEye 的工作原理
VisionEye 通过在帧中建立一个固定的视点,并从该点向检测到的对象绘制线条来工作。这模拟了人眼如何从单个视点聚焦于多个对象。该解决方案使用对象追踪来保持对象在帧之间的持续识别,从而创建观察者(视点)与场景中对象之间空间关系的视觉呈现。
VisionEye 类中的 process 方法执行几个关键操作:
- 从输入图像中提取追踪结果(边界框、类别和掩码)
- 创建一个标注器来绘制边界框和标签
- 对于每个检测到的对象,绘制一个框标签并从视点创建一条视觉线
- 返回带有追踪统计数据的标注图像
这种方法对于需要空间感知和对象关系可视化的应用特别有用,例如监控系统、自动导航和交互式安装。
VisionEye 的应用
VisionEye 对象映射在各个行业都有许多实际应用:
- 安全与监控:从固定相机位置监控多个目标对象
- 零售分析:追踪顾客移动模式与商店陈列的关系
- 体育分析:从教练的视角分析运动员的站位和移动
- 自动驾驶车辆:可视化车辆如何“观察”并优先处理环境中的对象
- 人机交互:创建能响应空间关系的更直观界面
通过将 VisionEye 与其他 Ultralytics 解决方案(如距离计算或速度估计)结合使用,你可以构建出不仅能追踪对象,还能理解其空间关系和行为的综合系统。
注意
如有任何疑问,欢迎在 Ultralytics 问题板块 或下方提到的讨论区提问。
常见问题 (FAQ)
如何开始使用 Ultralytics YOLO26 进行 VisionEye 对象映射?
要开始使用 Ultralytics YOLO26 进行 VisionEye 对象映射,首先,你需要通过 pip 安装 Ultralytics YOLO 包。然后,你可以使用文档中提供的示例代码来设置 VisionEye 对象检测。这是一个让你入门的简单示例:
import cv2
from ultralytics import solutions
cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"
# Video writer
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 = cv2.VideoWriter("vision-eye-mapping.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))
# Init vision eye object
visioneye = solutions.VisionEye(
show=True, # display the output
model="yolo26n.pt", # use any model that Ultralytics supports, e.g., YOLOv10
classes=[0, 2], # generate visioneye view for specific classes
)
# 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
results = visioneye(im0)
print(results) # access the output
video_writer.write(results.plot_im) # write the video file
cap.release()
video_writer.release()
cv2.destroyAllWindows() # destroy all opened windows为什么我应该使用 Ultralytics YOLO26 进行对象映射和追踪?
Ultralytics YOLO26 以其速度、准确性和易于集成的特性而闻名,使其成为对象映射和追踪的首选。主要优势包括:
- 最先进的性能:提供高精度的实时对象检测。
- 灵活性:支持检测、追踪和距离计算等各种任务。
- 社区与支持:拥有广泛的文档和活跃的 GitHub 社区以进行故障排除和功能增强。
- 易用性:直观的 API 简化了复杂任务,支持快速部署和迭代。
有关应用和优势的更多信息,请查看 Ultralytics YOLO26 文档。
如何将 VisionEye 与其他机器学习工具(如 Comet 或 ClearML)集成?
Ultralytics YOLO26 可以与 Comet 和 ClearML 等各种机器学习工具无缝集成,从而增强实验追踪、协作和可重复性。请参考如何使用 YOLOv5 与 Comet 以及 集成 YOLO26 与 ClearML 的详细指南以开始使用。
如需进一步探索和查看集成示例,请访问我们的 Ultralytics 集成指南。