概述
Ultralytics提供了一系列的解决方案,利用YOLO11解决现实世界的问题,包括物体计数、模糊处理、热力图、安防系统、速度估计、物体追踪等多个方面的应用。
Ultralytics提供了三种基本的数据可视化类型:折线图(面积图)、条形图和饼图。
- 折线图适合用于跟踪长短期的变化,以及比较同一时期多个组别的变化。
- 条形图则适合比较不同类别的数量,并显示类别与其数值之间的关系。
- 饼图可以有效地说明不同类别之间的比例,并显示整体的各个部分。
解决方案的演示代码如下:
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))
out = cv2.VideoWriter(
"analytics_output.avi",
cv2.VideoWriter_fourcc(*"MJPG"),
fps,
(1280, 720), # this is fixed
)
# Initialize analytics object
analytics = solutions.Analytics(
show=True, # display the output
analytics_type="line", # pass the analytics type, could be "pie", "bar" or "area".
model="yolo11n.pt", # path to the YOLO11 model file
# classes=[0, 2], # display analytics for specific detection classes
)
# Process video
frame_count = 0
while cap.isOpened():
success, im0 = cap.read()
if success:
frame_count += 1
results = analytics(im0, frame_count) # update analytics graph every frame
# print(results) # access the output
out.write(results.plot_im) # write the video file
else:
break
cap.release()
out.release()
cv2.destroyAllWindows() # destroy all opened windows
Analytics
参数
基本参数
参数 | 类型 | 默认值 | 说明 |
---|---|---|---|
data |
str |
images |
用于相似性搜索的图像目录路径。 |
analytics_type |
str |
line |
图形类型,即 line , bar , area 或 pie . |
track参数
参数 | 类型 | 默认值 | 说明 |
---|---|---|---|
tracker |
str |
'botsort.yaml' |
指定要使用的跟踪算法, bytetrack.yaml 或 botsort.yaml . |
conf |
float |
0.3 |
设置检测的置信度阈值;数值越低,跟踪的物体越多,但可能会出现误报。 |
iou |
float |
0.5 |
设置交叉重叠 (IoU) 阈值,用于过滤重叠检测。 |
classes |
list |
None |
按类别索引筛选结果。例如 classes=[0, 2, 3] 只跟踪指定的类别(class在COCO数据集定义)。 |
verbose |
bool |
True |
控制跟踪结果的显示,提供被跟踪物体的可视化输出。 |
device |
str |
None |
指定用于推理的设备(例如: cpu , cuda:0 或 0 ). 允许用户选择CPU 、特定GPU 或其他计算设备运行模型。 |
可视化参数:
参数 | 类型 | 默认值 | 说明 |
---|---|---|---|
show |
bool |
False |
如果 True 在一个窗口中显示注释的图像或视频。有助于在开发或测试过程中提供即时视觉反馈。 |
line_width |
None or int |
None |
指定边界框的线宽。如果 None 则根据图像大小自动调整线宽,使图像更加清晰。 |
效果展示
图像文件:
分析类型analytics_type=line
分析类型analytics_type=area
分析类型analytics_type=bar
分析类型analytics_type=pie