Ultralytics Solutions:利用 YOLO26 解决现实世界的问题#
Ultralytics Solutions 提供 YOLO 模型的前沿应用,带来目标计数、模糊处理和安防系统等现实解决方案,提升各行业的效率和准确性。了解 YOLO26 在实用且影响深远的应用中的强大能力。

观看: 如何从命令行运行 Ultralytics Solutions (CLI) | Ultralytics YOLO26 🚀
解决方案#
以下是我们精选的 Ultralytics 解决方案列表,你可以用它们来创建出色的计算机视觉项目。
- 分析:利用 YOLO26 开展描述性、预测性和规范性分析,进行全面的数据分析,以发现模式并做出明智决策。
- 距离计算:使用 YOLO26 中边界框的质心计算物体之间的距离,这是空间分析的重要环节。
- 热力图:利用检测热力图可视化矩阵中的数据强度,为计算机视觉任务提供清晰的洞察。
- 实例分割与目标跟踪:使用 YOLO26 实现实例分割和目标跟踪,从而精确确定物体边界并持续监控。
- 使用 Streamlit 进行实时推理:借助 YOLO26 的强大能力,通过易用的 Streamlit 界面直接在 Web 浏览器中进行实时目标检测。
- 物体模糊处理:使用 YOLO26 对物体进行模糊处理,保护图像和视频处理中的隐私。
- 目标计数:了解如何使用 YOLO26 实时统计目标。掌握在实时视频流中准确统计目标的技能。
- 区域内目标计数:使用 YOLO26 统计特定区域内的目标,确保在各种区域中准确检测。
- 物体裁剪:掌握使用 YOLO26 进行物体裁剪,从图像和视频中精准提取物体。
- 停车管理:使用 YOLO26 组织并引导停车区域内的车辆流动,优化空间利用率和用户体验。
- 队列管理:使用 YOLO26 实施高效的队列管理系统,缩短等待时间并提升生产效率。
- 安防报警系统:使用 YOLO26 创建安防报警系统,在检测到新物体时触发警报。你可以根据具体需求自定义系统。
- 相似度搜索:将 OpenAI CLIP 嵌入向量与余弦相似度搜索相结合,实现智能图像检索,并支持“拿着包的人”或“行驶中的车辆”等自然语言查询。
- 速度估计:使用 YOLO26 和目标跟踪技术估计物体速度,这对于自动驾驶车辆和交通监控等应用至关重要。
- 跟踪区域内的物体:了解如何使用 YOLO26 跟踪视频帧特定区域内的物体,实现精准高效的监控。
- VisionEye 视角物体映射:开发模拟人眼聚焦特定物体的系统,增强计算机辨别细节并确定其优先级的能力。
- 锻炼监测:了解如何使用 YOLO26 监测锻炼。学习实时跟踪和分析各种健身训练。
解决方案参数#
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
model | str | None | Ultralytics YOLO 模型文件的路径。 |
region | list 或 dict | None | 定义感兴趣区域的点,可以是 (x, y) 元组列表,也可以是将区域名称映射到点列表的字典(仅支持多个 RegionCounter 区域)。如果为 None,则需要区域的解决方案会退回到预定义的默认区域。 |
show_in | bool | True | 控制是否在视频流中显示流入计数的标志。 |
show_out | bool | True | 控制是否在视频流中显示流出计数的标志。 |
analytics_type | str | 'line' | 图表类型,即 line、bar、area 或 pie。 |
colormap | int | cv2.COLORMAP_DEEPGREEN | 要用于热力图的颜色映射。 |
line_width | int | 2 | 解决方案绘制的框、关键点和计数的线条粗细。 |
verbose | bool | True | 启用逐帧日志,记录输入形状、类别计数和处理速度。跟踪调用本身始终不会输出日志。 |
json_file | str | None | 包含所有停车位坐标数据的 JSON 文件路径。 |
up_angle | float | 145.0 | “向上”姿势的角度阈值。 |
kpts | list[int] | [6, 8, 10] | 用于监测锻炼动作的三个关键点索引组成的列表。这些关键点对应身体关节或部位,例如肩部、肘部和手腕,可用于俯卧撑、引体向上、深蹲和腹部锻炼等动作。 |
down_angle | float | 90.0 | “向下”姿势的角度阈值。 |
blur_ratio | float | 0.5 | 调整模糊强度百分比,取值范围为 0.1 - 1.0。 |
crop_dir | str | 'cropped-detections' | 用于存储裁剪后检测结果的目录名称。 |
records | int | 5 | 触发安全警报系统发送邮件所需的检测总数。 |
vision_point | tuple[int, int] | (20, 20) | 视觉系统使用 VisionEye Solution 跟踪对象并绘制路径的位置。 |
source | str | None | 输入源的路径(视频、RTSP 等)。仅适用于 Solutions 命令行界面 (CLI)。 |
figsize | tuple[float, float] | (12.8, 7.2) | Analytics 图表的图幅尺寸(英寸);(12.8, 7.2) 会渲染 1280×720 的帧。 |
fps | float | 30.0 | 用于速度计算的每秒帧数。 |
max_hist | int | 5 | 每个对象用于速度/方向计算的最大历史跟踪点数。 |
meter_per_pixel | float | 0.05 | 用于将像素距离转换为实际单位的缩放系数。 |
max_speed | int | 120 | 最高速度(km/h);估算速度超过此值时将按此值封顶。 |
data | str | 'images' | 用于相似性搜索的图像目录路径。 |
imgsz | int | 640 | 模型推理的输入图像尺寸。 |
解决方案会将以下推理和跟踪参数传递给 model.track()。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
tracker | str | 'tracktrack.yaml' | 指定要使用的跟踪算法。内置选项:botsort.yaml、bytetrack.yaml、ocsort.yaml、deepocsort.yaml、fasttrack.yaml、tracktrack.yaml。 |
conf | float | 0.25 | 设置检测的置信度阈值;较低的值允许跟踪更多物体,但可能会包含误检。 |
iou | float | 0.7 | 设置用于筛除重叠检测结果的交并比 (IoU) 阈值。 |
classes | list | None | 按类别索引筛选结果。例如,classes=[0, 2, 3] 只跟踪指定类别。 |
device | str | None | 指定推理设备(例如 cpu、cuda:0 或 0)。用户可以选择 CPU、特定 GPU 或其他计算设备来运行模型。 |
imgsz | int or tuple | 640 | 目标推理图像尺寸:正方形图像使用整数,或使用 (height, width) 对。图像尺寸会调整为模型步幅的整数倍。 |
max_det | int | 300 | 跟踪前每帧保留的最大检测数量,用于限制解决方案在密集场景中处理的物体数量。 |
quantize | int or str | None | 推理精度:对于非 CPU 上运行的 PyTorch 和 TorchScript 模型,使用 16 (FP16) 或 32/unset (FP32) 进行选择;其他格式使用其模型文件和运行时所选的精度。此参数替代已弃用的 half 参数。 |
你可以使用 show_conf、show_labels 及其他提到的参数来自定义可视化效果。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
show | bool | False | 如果 True,则在窗口中显示带标注的图像或视频。适用于在开发或测试期间即时查看结果。 |
show_conf | bool | True | 在每个检测结果的标签旁显示置信度分数,帮助了解模型对该检测结果的确信程度。 |
show_labels | bool | True | 在可视化输出中显示每个检测结果的标签,便于立即了解检测到的对象。 |
使用 SolutionAnnotator#
所有 Ultralytics 解决方案都使用独立的类 SolutionAnnotator,该类继承自主类 Annotator,并具有以下方法:
| 方法 | 返回类型 | 说明 |
|---|---|---|
draw_region() | None | 使用指定的点、颜色和线宽绘制区域。 |
queue_counts_display() | None | 显示指定区域内的队列计数。 |
display_analytics() | None | 显示停车场管理的整体统计数据。 |
estimate_pose_angle() | float | 计算物体姿态中三个点之间的角度。 |
draw_specific_kpts() | np.ndarray | 在图像上绘制指定关键点。 |
plot_workout_information() | int | 在图像上绘制带标签的文本框。 |
plot_angle_and_count_and_stage() | None | 可视化锻炼监测中的角度、步数和阶段。 |
plot_distance_and_line() | None | 显示质心之间的距离,并用线段连接质心。 |
display_objects_labels() | None | 为边界框标注物体类别标签。 |
sweep_annotator() | None | 可视化垂直扫描线和可选标签。 |
visioneye() | None | 将物体质心映射并连接到可视化的“眼睛”点。 |
adaptive_label() | None | 在边界框中心绘制圆形或矩形背景标签。 |
使用 SolutionResults#
除 Similarity Search 外,每次 Solution 调用都会返回一个 SolutionResults 对象。
- 对于目标计数,结果包括
in_count、out_count和classwise_count。
import cv2
from ultralytics import solutions
im0 = cv2.imread("path/to/img")
region_points = [(20, 400), (1080, 400), (1080, 360), (20, 360)]
counter = solutions.ObjectCounter(
show=True, # 显示输出
region=region_points, # 传入区域点
model="yolo26n.pt", # model="yolo26n-obb.pt" 用于使用 OBB 模型进行目标计数。
# classes=[0, 2], # 使用 COCO 预训练模型时,只统计指定类别,例如人和汽车。
# tracker="botsort.yaml" # 选择跟踪器,例如 "bytetrack.yaml"
)
results = counter(im0)
print(results.in_count) # display in_counts
print(results.out_count) # display out_counts
print(results.classwise_count) # display classwise_countSolutionResults 对象具有以下属性:
| 属性 | 类型 | 说明 |
|---|---|---|
plot_im | np.ndarray | 带有计数、模糊效果或特定解决方案增强效果等可视化叠加层的图像。 |
in_count | int | 在视频流中检测到进入所定义区域的物体总数。 |
out_count | int | 在视频流中检测到离开所定义区域的物体总数。 |
classwise_count | dict[str, dict[str, int] | int] | 每个类别的计数:ObjectCounter 和 Heatmap 使用 {"IN": int, "OUT": int},Analytics 使用 int。 |
queue_count | int | 预定义队列或等待区域内当前的物体数量(适用于队列管理)。 |
workout_count | list[int] | AI Gym 中每条跟踪轨迹的锻炼重复次数(每个当前跟踪的个体对应一条记录)。 |
workout_angle | list[float] | AI Gym 中每条跟踪轨迹的运动角度(每个当前跟踪的个体对应一条记录)。 |
workout_stage | list[str] | AI Gym 中每条跟踪轨迹当前的锻炼阶段(每个当前跟踪的个体对应一条记录)。 |
pixels_distance | float | 两个物体或点(例如边界框)之间基于像素的距离。(适用于距离计算)。 |
available_slots | int | 监控区域内的空闲车位数量(适用于停车管理)。 |
filled_slots | int | 监控区域内的已占用车位数量。(适用于停车管理) |
email_sent | bool | 指示通知或警报邮件是否已成功发送(适用于安防报警)。 |
total_tracks | int | 视频分析期间观察到的唯一目标轨迹总数。 |
region_counts | Dict[str, int] | 用户自定义区域或分区内的对象数量。 |
speed_dict | Dict[int, int] | 按跟踪 ID 分类的字典,包含 SpeedEstimator 估算的对象速度(单位:km/h),适用于速度分析。 |
total_crop_objects | int | ObjectCropper 解决方案生成的裁剪对象图像总数。 |
speed | Dict[str, float] | 包含跟踪和解决方案处理性能指标的字典。 |
如需了解更多详情,请参阅 SolutionResults 类文档。
通过 CLI 使用解决方案#
大多数解决方案都可以直接通过命令行界面使用。
语法
yolo SOLUTIONS SOLUTION_NAME ARGS
- SOLUTIONS 是必需的关键字。
- SOLUTION_NAME 可以是以下值之一:
['count', 'crop', 'blur', 'workout', 'heatmap', 'isegment', 'queue', 'speed', 'analytics', 'trackzone', 'inference', 'visioneye', 'region', 'security', 'parking']。 - ARGS(可选)是自定义的
arg=value键值对,例如show_in=True,用于覆盖默认设置。
yolo solutions count show=True # for object counting
yolo solutions count source="path/to/video.mp4" # specify video file path为我们的解决方案贡献力量#
我们欢迎社区成员贡献力量!如果你已熟练掌握 Ultralytics YOLO 的某个方面,而我们的解决方案中尚未涉及,我们鼓励你分享专业知识。撰写指南是回馈社区、帮助我们完善文档并提升文档易用性的好方法。
开始之前,请阅读我们的贡献指南,了解如何发起拉取请求 (PR) 🛠️。期待你的贡献!
让我们携手打造更强大、更灵活的 Ultralytics YOLO 生态系统 🙏!
常见问题#
Ultralytics YOLO26 可以利用其先进的对象检测能力实时统计对象数量。你可以按照我们的详细指南对象计数,设置 YOLO26 以分析实时视频流。只需安装 YOLO26、加载模型并处理视频帧,即可动态统计对象数量。
Ultralytics YOLO26 提供实时对象检测和警报机制,可增强安防系统。使用 YOLO26,你可以构建安防警报系统,在监控区域检测到新对象时触发警报。了解如何使用 YOLO26 设置安防警报系统,实现可靠的安全监控。
Ultralytics YOLO26 可以准确统计和跟踪队列中的人员,从而显著改进排队管理系统,帮助缩短等待时间并提升服务效率。请参阅我们的详细指南排队管理,了解如何使用 YOLO26 实现高效的队列监控和分析。
可以,Ultralytics YOLO26 能有效监测锻炼过程,实时跟踪和分析健身活动。这有助于精确评估锻炼姿势和表现。请参阅我们的指南锻炼监测,了解如何使用 YOLO26 构建 AI 驱动的锻炼监测系统。
Ultralytics YOLO26 可以生成热力图,展示指定区域内的数据强度,并突出显示活动频繁或值得关注的区域。这项功能对于理解各种计算机视觉任务中的模式和趋势尤其有用。了解如何使用 YOLO26 创建和使用热力图,进行全面的数据分析和可视化。