使用Ultralytics YOLO11 🚀 进行 VisionEye 视图对象映射
什么是 VisionEye Object Mapping?
Ultralytics YOLO11VisionEye 可让计算机模拟人眼的观察精度,识别并精确定位物体。这一功能使计算机能够辨别并聚焦于特定物体,就像人眼从特定视角观察细节一样。
使用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("visioneye_output.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))
# Initialize vision eye object
visioneye = solutions.VisionEye(
show=True, # display the output
model="yolo11n.pt", # use any model that Ultralytics support, i.e, YOLOv10
classes=[0, 2], # generate visioneye view for specific classes
vision_point=(50, 50), # the point, where vision will view objects and draw tracks
)
# 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
VisionEye
论据
下面的表格显示了 VisionEye
争论:
论据 | 类型 | 默认值 | 说明 |
---|---|---|---|
model |
str |
None |
Ultralytics YOLO 模型文件的路径。 |
vision_point |
tuple[int, int] |
(50, 50) |
视觉将使用 VisionEye 解决方案跟踪物体并绘制路径的点。 |
您还可以利用各种 track
内的参数 VisionEye
解决方案
论据 | 类型 | 默认值 | 说明 |
---|---|---|---|
tracker |
str |
'botsort.yaml' |
指定要使用的跟踪算法,例如 bytetrack.yaml 或 botsort.yaml . |
conf |
float |
0.3 |
设置检测的置信度阈值;数值越低,跟踪的物体越多,但可能会出现误报。 |
iou |
float |
0.5 |
设置交叉重叠 (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 |
None or int |
None |
指定边界框的线宽。如果 None 根据图像大小自动调整线宽。提供可视化定制,使图像更加清晰。 |
VisionEye 的工作原理
VisionEye 的工作原理是在画面中建立一个固定的视觉点,然后从这个点到检测到的物体之间画线。这模拟了人类视觉从单一视点聚焦多个物体的方式。该解决方案利用物体跟踪功能保持各帧物体识别的一致性,从而创建观察者(视觉点)与场景中物体之间空间关系的可视化表示。
"(《世界人权宣言》) process
方法执行几个关键操作:
- 从输入图像中提取轨迹(边界框、类和遮罩
- 创建注释器以绘制边框和标签
- 为每个检测到的物体绘制方框标签,并从视觉点创建视觉线
- 返回带有追踪统计数据的注释图像
这种方法尤其适用于需要空间感知和对象关系可视化的应用,如监控系统、自主导航和互动装置。
VisionEye 的应用
VisionEye 物体映射在各行各业都有大量实际应用:
- 安全和监控:从一个固定的摄像头位置监控多个感兴趣的对象
- 零售分析:跟踪与商店陈列相关的顾客流动模式
- 运动分析:从教练的角度分析球员的位置和动作
- 自动驾驶汽车:可视化车辆如何 "观察 "环境中的物体并确定其优先顺序
- 人机交互:根据空间关系创建更直观的界面
通过将 VisionEye 与其他Ultralytics 解决方案(如距离计算或速度估算)相结合,您可以构建综合系统,不仅能跟踪物体,还能了解其空间关系和行为。
备注
如有任何疑问,请随时在Ultralytics 问题板块或下面提到的讨论板块发布您的问题。
常见问题
如何通过Ultralytics YOLO11 开始使用 VisionEye Object Mapping?
要开始在Ultralytics YOLO11 上使用 VisionEye Object Mapping,首先需要通过 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="yolo11n.pt", # use any model that Ultralytics support, i.e, 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 YOLO11 进行对象映射和跟踪?
Ultralytics YOLO11 以速度快、精度高、易于集成而闻名,是对象映射和跟踪的首选。主要优势包括
- 最先进的性能:实时物体检测精度高。
- 灵活性:支持检测、跟踪和距离计算等各种任务。
- 社区和支持:丰富的文档和活跃的 GitHub 社区,可用于故障排除和改进。
- 易用性:直观的应用程序接口可简化复杂的任务,实现快速部署和迭代。
有关申请和福利的更多信息,请查阅Ultralytics YOLO11 文档。
如何将 VisionEye 与Comet 或ClearML 等其他机器学习工具集成?
Ultralytics YOLO11 可以与Comet 和ClearML 等各种机器学习工具无缝集成,增强了实验跟踪、协作和可重复性。请按照有关如何使用YOLOv5 与Comet以及将YOLO11 与ClearML 集成的详细指南开始操作。
如需进一步了解和了解集成示例,请查阅我们的Ultralytics 集成指南。