Ultralytics Solutions:利用 YOLO26 解决实际问题
Ultralytics Solutions 提供 YOLO 模型的尖端应用,提供目标计数、模糊处理和安全系统等实际解决方案,提高各行各业的效率和准确性。探索 YOLO26 在实际、有影响力的实施中的强大功能。
![]()
观看: 如何从命令行 (CLI) 运行 Ultralytics Solutions | Ultralytics YOLO26 🚀
解决方案
以下是我们精心挑选的 Ultralytics 解决方案列表,可用于创建出色的计算机视觉项目。
- 分析:利用 YOLO26 进行描述性、预测性和规范性分析,进行全面的数据分析以发现模式并做出明智决策。
- 距离计算:使用 YOLO26 中的边界框中心点计算目标之间的距离,这对于空间分析至关重要。
- 热图:利用检测热图来可视化矩阵中的数据强度,从而在计算机视觉任务中提供清晰的见解。
- 实例分割与目标跟踪:使用 YOLO26 实施实例分割和目标跟踪,以实现精确的目标边界和持续监控。
- 使用 Streamlit 进行实时推理:通过用户友好的 Streamlit 界面,利用 YOLO26 的强大功能,直接通过您的网络浏览器进行实时目标检测。
- 目标模糊处理:使用 YOLO26 应用目标模糊处理,以保护图像和视频处理中的隐私。
- 目标计数:学习使用 YOLO26 进行实时目标计数。掌握在实时视频流中准确计数目标的专业知识。
- 区域内目标计数:使用 YOLO26 在特定区域内计数目标,以实现在不同区域的准确检测。
- 目标裁剪:掌握使用 YOLO26 进行目标裁剪,以精确地从图像和视频中提取目标。
- 停车管理:使用 YOLO26 组织和引导停车区域的车辆流,优化空间利用率和用户体验。
- 排队管理:实施高效的排队管理系统,使用 YOLO26 最大程度地减少等待时间并提高生产力。
- 安全警报系统:使用 YOLO26 创建一个安全警报系统,在检测到新目标时触发警报。根据您的具体需求定制系统。
- 相似性搜索:通过将 OpenAI CLIP 嵌入与 Meta FAISS 结合,实现智能图像检索,从而支持“手提包的人”或“行驶中的车辆”等自然语言查询。
- 速度估算:使用 YOLO26 和目标跟踪技术估算目标速度,这对于自动驾驶车辆和交通监控等应用至关重要。
- 区域内目标跟踪:学习如何使用 YOLO26 在视频帧的特定区域内跟踪目标,以实现精确高效的监控。
- VisionEye View Objects Mapping:开发模仿人眼聚焦于特定对象的系统,从而增强计算机辨别和优先处理细节的能力。
- 运动监测:了解如何使用 YOLO26 监测运动。学习实时跟踪和分析各种健身例程。
解决方案参数
| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
model | str | None | Ultralytics YOLO 模型文件的路径。 |
region | list | '[(20, 400), (1260, 400)]' | 定义计数区域的点列表。 |
show_in | bool | True | 控制是否在视频流上显示进入计数的标志。 |
show_out | bool | True | 控制是否在视频流上显示离开计数的标志。 |
analytics_type | str | 'line' | 图形类型,即 line, bar, area或 pie. |
colormap | int | cv2.COLORMAP_JET | 用于热图的颜色映射。 |
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[int, int] | (12.8, 7.2) | 用于分析图表(如热图或图形)的图形大小。 |
fps | float | 30.0 | 用于速度计算的每秒帧数。 |
max_hist | int | 5 | 每个对象用于速度/方向计算的最大历史 track 点数。 |
meter_per_pixel | float | 0.05 | 用于将像素距离转换为真实世界单位的比例因子。 |
max_speed | int | 120 | 视觉叠加中的最大速度限制(用于警报)。 |
data | str | 'images' | 用于相似性搜索的图像目录的路径。 |
跟踪 args
解决方案还支持来自以下方面的一些参数 track,包括诸如以下的参数 conf, line_width, tracker, model, show, verbose 和 classes.
| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
tracker | str | 'botsort.yaml' | 指定要使用的跟踪算法,例如: bytetrack.yaml 或 botsort.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 都使用单独的类 SolutionAnnotator,它扩展了主要的 Annotator 类,并具有以下方法:
| 方法 | 返回类型 | 描述 |
|---|---|---|
draw_region() | None | 使用指定的点、颜色和粗细绘制区域。 |
queue_counts_display() | None | 显示指定区域中的队列计数。 |
display_analytics() | None | 显示停车场管理的总体统计信息。 |
estimate_pose_angle() | float | 计算对象姿势中三个点之间的角度。 |
draw_specific_points() | None | 在图像上绘制特定的关键点。 |
plot_workout_information() | None | 在图像上绘制带标签的文本框。 |
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.
SolutionResults
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_count
SolutionResults 对象具有以下属性:
| 属性 | 类型 | 描述 |
|---|---|---|
plot_im | np.ndarray | 带有视觉覆盖的图像,例如计数、模糊效果或特定于解决方案的增强功能。 |
in_count | int | 视频流中检测到的进入定义区域的对象总数。 |
out_count | int | 视频流中检测到的离开定义区域的对象总数。 |
classwise_count | Dict[str, int] | 记录用于高级分析的各类别的对象进/出计数的字典。 |
queue_count | int | 当前在预定义队列或等待区域内的对象数量(适用于队列管理)。 |
workout_count | int | 运动跟踪期间完成的锻炼重复总次数。 |
workout_angle | float | 在锻炼期间计算关节或姿势角度,用于评估姿势。 |
workout_stage | str | 当前的锻炼阶段或运动阶段(例如,“向上”、“向下”)。 |
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 使用解决方案
命令信息
大多数解决方案都可以通过命令行界面直接使用,包括:
Count, Crop, Blur, Workout, Heatmap, Isegment, Visioneye, Speed, Queue, Analytics, Inference
语法
yolo SOLUTIONS SOLUTION_NAME ARGS
- SOLUTIONS 是一个必需的关键词。
- SOLUTION_NAME 是以下之一:
['count', 'crop', 'blur', 'workout', 'heatmap', 'isegment', 'queue', 'speed', 'analytics', 'trackzone', 'inference', 'visioneye']. - 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 的某个特定方面,但我们的解决方案尚未涵盖,我们鼓励您分享您的专业知识。编写指南是回馈社区的好方法,并帮助我们使文档更全面、更易于使用。
要开始使用,请阅读我们的贡献指南,了解如何发起 Pull Request (PR) 🛠️。我们期待您的贡献!
让我们携手合作,使 Ultralytics YOLO 生态系统更加强大和通用 🙏!
常见问题
如何使用 Ultralytics YOLO 进行实时对象计数?
Ultralytics YOLO26 可利用其先进的目标检测能力进行实时目标计数。您可以按照我们的目标计数详细指南,配置 YOLO26 进行实时视频流分析。只需安装 YOLO26,加载您的模型,然后处理视频帧即可动态计数目标。
使用 Ultralytics YOLO 进行安全系统有哪些好处?
Ultralytics YOLO26 通过提供实时目标检测和警报机制来增强安全系统。通过使用 YOLO26,您可以创建一个安全警报系统,在监控区域检测到新目标时触发警报。了解如何使用 YOLO26 设置安全警报系统,以实现强大的安全监控。
Ultralytics YOLO 如何改进排队管理系统?
Ultralytics YOLO26可以通过精确计数和track队列中的人员,显著改善队列管理系统,从而有助于减少等待时间并优化服务效率。请遵循我们的队列管理详细指南,了解如何实施YOLO26以进行有效的队列监控和分析。
Ultralytics YOLO 可以用于锻炼监控吗?
是的,Ultralytics YOLO26可以有效地用于监控锻炼,通过实时track和分析健身例程。这使得可以精确评估运动姿态和表现。请查阅我们的锻炼监控指南,了解如何使用YOLO26设置AI驱动的锻炼监控系统。
Ultralytics YOLO 如何帮助创建热图以进行数据可视化?
Ultralytics YOLO26可以生成热力图,以可视化给定区域的数据强度,突出显示高活动或感兴趣的区域。此功能在理解各种计算机视觉任务中的模式和趋势方面特别有用。了解更多关于使用YOLO26创建和使用热力图的信息,以进行全面的数据分析和可视化。