Ultralytics 解决方案:利用 YOLO26 解决现实世界的问题#
Ultralytics Solutions 提供 YOLO 模型的尖端应用,提供如对象计数、模糊和安全系统等真实世界的解决方案,从而在各个行业中提升效率和准确率。探索 YOLO26 在实际且具有影响力的实现中的强大功能。
![]()
Watch: How to Run Ultralytics Solutions from the Command Line (CLI) | Ultralytics YOLO26 🚀
解决方案#
这是我们精选的 Ultralytics 解决方案列表,可用于创建出色的计算机视觉项目。
- 分析:进行全面的数据分析以发现模式并做出明智的决策,利用 YOLO26 进行描述性、预测性和规范性分析。
- 距离计算:使用 YOLO26 中边界框的质心计算对象之间的距离,这对于空间分析至关重要。
- 热力图:利用检测热力图来可视化矩阵中的数据强度,在计算机视觉任务中提供清晰的洞察。
- 带对象追踪的实例分割:使用 YOLO26 实现实例分割和对象追踪,以实现精确的对象边界和持续监控。
- 使用 Streamlit 进行实时推理:通过用户友好的 Streamlit 界面,直接在网页浏览器中利用 YOLO26 的强大功能进行实时对象检测。
- 对象模糊:在图像和视频处理中使用 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 | 用于热力图的颜色映射。 |
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 | 用于模型推理的输入图像尺寸。 |
解决方案还支持 track 中的一些参数,包括诸如 conf、line_width、tracker、model、show、verbose 和 classes 等参数。
| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
tracker | str | 'tracktrack.yaml' | 指定要使用的跟踪算法。内置选项:botsort.yaml、bytetrack.yaml、ocsort.yaml、deepocsort.yaml、fasttrack.yaml、tracktrack.yaml。 |
conf | float | 0.1 | 设置检测的置信度阈值;较低的值允许跟踪更多的对象,但也可能包含误报。 |
iou | float | 0.7 | 设置用于过滤重叠检测结果的交并比 (IoU) 阈值。 |
classes | list | None | 按类别索引过滤结果。例如,classes=[0, 2, 3] 仅跟踪指定的类别。 |
verbose | bool | True | 控制跟踪结果的显示,提供被跟踪对象的视觉输出。 |
device | str | None | 指定用于推理的设备(例如 cpu、cuda:0 或 0)。允许用户在 CPU、特定的 GPU 或用于模型执行的其他计算设备之间进行选择。 |
你可以使用 show_conf、show_labels 以及其他提到的参数来自定义可视化效果。
| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
show | bool | False | 如果为 True,则在窗口中显示带注释的图像或视频。对于开发或测试期间的即时视觉反馈非常有用。 |
line_width | int or None | None | 指定边界框的线条宽度。如果为 None,则线条宽度会根据图像大小自动调整。提供视觉定制以提高清晰度。 |
show_conf | bool | True | 在标签旁显示每次检测的置信度得分。让你深入了解模型对每次检测的确定性。 |
show_labels | bool | True | 在视觉输出中显示每次检测的标签。提供对检测到对象的即时理解。 |
SolutionAnnotator 的使用#
所有 Ultralytics Solutions 都使用继承自主 Annotator 类的独立类 SolutionAnnotator,并具有以下方法:
| 方法 | 返回类型 | 描述 |
|---|---|---|
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 使用 Solutions#
大多数 Solutions 可以直接通过命令行界面使用,包括:
Count、Crop、Blur、Workout、Heatmap、Isegment、Visioneye、Speed、Queue、Analytics、Inference、Trackzone
语法
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为我们的 Solutions 做出贡献#
我们欢迎社区做出贡献!如果你已经掌握了 Ultralytics YOLO 的某个特定方面,而我们的解决方案中尚未涵盖,我们鼓励你分享你的专业知识。撰写指南是回馈社区并帮助我们使文档更全面、更用户友好的一种好方法。
若要开始使用,请阅读我们的贡献指南,了解如何发起 Pull Request (PR) 🛠️ 的相关准则。我们期待你的贡献!
让我们携手合作,让 Ultralytics YOLO 生态系统更强大、更多元化 🙏!
常见问题解答#
Ultralytics YOLO26 可以利用其先进的对象检测功能用于实时对象计数。你可以遵循我们关于对象计数的详细指南,设置 YOLO26 进行实时视频流分析。只需安装 YOLO26、加载你的模型并处理视频帧即可动态对对象进行计数。
Ultralytics YOLO26 通过提供实时对象检测和警报机制来增强安全系统。通过采用 YOLO26,你可以创建一个安全报警系统,在监控区域中检测到新对象时触发警报。了解如何使用 YOLO26 设置安全报警系统以实现稳健的安全监控。
Ultralytics YOLO26 可以通过准确对队列中的人员进行计数和追踪来显着改善队列管理系统,从而帮助减少等待时间并优化服务效率。遵循我们关于队列管理的详细指南,了解如何实现 YOLO26 以进行有效的队列监控和分析。
是的,Ultralytics YOLO26 可以通过实时追踪和分析健身常规来有效地用于监控锻炼。这允许对锻炼姿势和表现进行精确评估。探索我们关于锻炼监控的指南,了解如何使用 YOLO26 设置由 AI 驱动的锻炼监控系统。
Ultralytics YOLO26 可以生成热力图来可视化给定区域内的数据强度,突出显示高活动或感兴趣的区域。此功能对于理解各种计算机视觉任务中的模式和趋势特别有用。了解有关使用 YOLO26 创建和使用热力图的更多信息,以进行全面的数据分析和可视化。