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

Watch: How to Run Ultralytics Solutions from the Command Line (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 | int | 90 | “向下”姿态的角度阈值。 |
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 解决方案跟踪对象并绘制路径的视觉点。 |
source | str | None | 输入源(视频、RTSP 等)的路径。仅可与解决方案命令行界面(CLI)配合使用。 |
figsize | tuple[float, float] | (12.8, 7.2) | 分析图表(如热力图或图形)的图像尺寸。 |
fps | float | 30.0 | 用于速度计算的每秒帧数。 |
max_hist | int | 5 | 速度/方向计算中每个对象要跟踪的最大历史点数。 |
meter_per_pixel | float | 0.05 | 用于将像素距离转换为现实世界单位的缩放因子。 |
max_speed | int | 120 | 视觉叠加层中的最大速度限制(用于警报)。 |
data | str | 'images' | 用于相似性搜索的图像目录路径。 |
imgsz | int | 640 | 模型推理的输入图像尺寸。 |
解决方案会将下方的推理和跟踪参数传递给 model.track()。
| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
tracker | str | 'botsort.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 | 推理精度:针对 PyTorch 和 TorchScript 模型,使用 16 (FP16) 或 32/不设置 (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, # display the output
region=region_points, # pass region points
model="yolo26n.pt", # model="yolo26n-obb.pt" for object counting with OBB model.
# classes=[0, 2], # count specific classes i.e. person and car with COCO pretrained model.
# tracker="botsort.yaml" # Choose trackers i.e "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, 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[str, float] | 按轨迹记录计算所得对象速度的字典,用于速度分析。 |
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 创建和使用热力图,以进行全面的数据分析和可视化。