跳转至内容

Ultralytics 解决方案:利用 YOLO11 解决现实世界的问题

Ultralytics 解决方案提供 YOLO 模型的前沿应用,提供对象计数、模糊处理和安全系统等实际解决方案,从而提高各行各业的效率和准确性。了解 YOLO11 在实际应用中的强大功能。

Ultralytics 解决方案缩略图



观看: 如何从命令行 (CLI) 运行 Ultralytics 解决方案 | Ultralytics YOLO11 🚀

解决方案

以下是我们精心挑选的 Ultralytics 解决方案列表,可用于创建出色的计算机视觉项目。

  • 对象计数:学习使用 YOLO11 执行实时对象计数。获得准确计算实时视频流中对象的专业知识。
  • 对象裁剪:掌握使用 YOLO11 进行对象裁剪,以便从图像和视频中精确提取对象。
  • 对象模糊:使用 YOLO11 应用对象模糊,以保护图像和视频处理中的隐私。
  • Workouts Monitoring:了解如何使用 YOLO11 监控锻炼。学习实时跟踪和分析各种健身活动。
  • 区域中的对象计数:使用 YOLO11 对特定区域中的对象进行计数,以便在不同区域中进行准确检测。
  • 安全警报系统:创建一个使用 YOLO11 的安全警报系统,该系统在检测到新对象时触发警报。自定义系统以满足您的特定需求。
  • 热图:利用检测热图来可视化矩阵中的数据强度,从而在计算机视觉任务中提供清晰的见解。
  • 结合对象跟踪的实例分割:使用 YOLO11 实现实例分割和对象跟踪,以实现精确的对象边界和连续监控。
  • VisionEye View Objects Mapping:开发模仿人眼聚焦于特定对象的系统,从而增强计算机辨别和优先处理细节的能力。
  • 速度估计:使用 YOLO11 和物体追踪技术来估计物体速度,这对于自动驾驶车辆和交通监控等应用至关重要。
  • 距离计算:使用YOLO11中的边界框中心点计算对象之间的距离,这对于空间分析至关重要。
  • 队列管理:实施高效的队列管理系统,以最大限度地减少等待时间,并使用 YOLO11 提高生产力。
  • 停车管理:使用 YOLO11 组织和引导停车场中的车辆流动,从而优化空间利用率和用户体验。
  • 分析:进行全面的数据分析,以发现模式并做出明智的决策,利用YOLO11进行描述性、预测性和指导性分析。
  • 使用 Streamlit 进行实时推理:通过用户友好的 Streamlit 界面,直接通过 Web 浏览器利用 YOLO11 的强大功能进行实时对象检测
  • Track Objects in Zone:学习如何使用 YOLO11 跟踪视频帧的特定区域内的对象,以实现精确高效的监控。
  • 相似性搜索 🚀 新增:通过将 OpenAI CLIP 嵌入与 Meta FAISS 结合,实现智能图像检索,允许使用自然语言查询,例如“拿着包的人”或“行驶中的车辆。”

解决方案参数

参数 类型 默认值 描述
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, areapie.
colormap int cv2.COLORMAP_JET 用于热图的颜色映射。
json_file str None 包含所有停车坐标数据的 JSON 文件路径。
up_angle float 145.0 “向上”姿势的角度阈值。
kpts list[int, int, 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 解决方案绘制路径的点。
source str None 输入源(视频、RTSP 等)的路径。仅适用于 Solutions 命令行界面 (CLI)。
figsize tuple[int, int] (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' 用于相似性搜索的图像目录的路径。

跟踪 args

解决方案还支持来自以下方面的一些参数 track,包括诸如以下的参数 conf, line_width, tracker, model, show, verboseclasses.

参数 类型 默认值 描述
tracker str 'botsort.yaml' 指定要使用的跟踪算法,例如: bytetrack.yamlbotsort.yaml.
conf float 0.3 设置检测的置信度阈值;较低的值允许跟踪更多对象,但可能包含误报。
iou float 0.5 设置用于过滤重叠检测的 Intersection over Union (IoU) 阈值。
classes list None 按类别索引过滤结果。例如, classes=[0, 2, 3] 仅跟踪指定的类别。
verbose bool True 控制跟踪结果的显示,提供被跟踪对象的可视化输出。
device str None 指定用于推理的设备(例如, cpu, cuda:00)。允许用户在 CPU、特定 GPU 或其他计算设备之间进行选择,以执行模型。

可视化参数

您可以使用 show_conf, show_labels,以及其他提到的参数来自定义可视化。

参数 类型 默认值 描述
show bool False 可视化参数: True,则在窗口中显示带注释的图像或视频。这对于开发或测试期间的即时视觉反馈非常有用。
line_width None or int 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_countclasswise_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="yolo11n.pt",  # model="yolo11n-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 source="path/to/video.mp4" # specify video file path

贡献我们的解决方案

我们欢迎社区的贡献!如果您掌握了 Ultralytics YOLO 的某个特定方面,但我们的解决方案尚未涵盖,我们鼓励您分享您的专业知识。编写指南是回馈社区的好方法,并帮助我们使文档更全面、更易于使用。

要开始使用,请阅读我们的贡献指南,了解如何发起 Pull Request (PR) 🛠️。我们期待您的贡献!

让我们携手合作,使 Ultralytics YOLO 生态系统更加强大和通用 🙏!

常见问题

如何使用 Ultralytics YOLO 进行实时对象计数?

Ultralytics YOLO11 可以通过利用其先进的对象检测功能来进行实时对象计数。您可以按照我们关于对象计数的详细指南来设置 YOLO11 以进行实时视频流分析。只需安装 YOLO11,加载您的模型,然后处理视频帧以动态地计算对象。

使用 Ultralytics YOLO 进行安全系统有哪些好处?

Ultralytics YOLO11 通过提供实时对象检测和警报机制来增强安全系统。通过使用 YOLO11,您可以创建一个安全警报系统,该系统在监控区域中检测到新对象时触发警报。了解如何使用 YOLO11 设置安全警报系统以进行强大的安全监控。

Ultralytics YOLO 如何改进排队管理系统?

Ultralytics YOLO11 可以通过准确地计算和跟踪队列中的人数来显着改进队列管理系统,从而有助于减少等待时间并优化服务效率。请按照我们关于排队管理的详细指南,了解如何实施 YOLO11 以进行有效的队列监控和分析。

Ultralytics YOLO 可以用于锻炼监控吗?

是的,Ultralytics YOLO11 可以通过实时跟踪和分析健身项目来有效地用于监控锻炼。这可以对运动形式和表现进行精确评估。请浏览我们关于锻炼监控的指南,了解如何使用 YOLO11 设置 AI 驱动的锻炼监控系统。

Ultralytics YOLO 如何帮助创建热图以进行数据可视化

Ultralytics YOLO11 可以生成热图,以可视化给定区域内的数据强度,突出显示高活动或感兴趣的区域。此功能在理解各种计算机视觉任务中的模式和趋势方面特别有用。了解有关使用 YOLO11 创建和使用热图以进行全面数据分析和可视化的更多信息。



📅 1 年前创建 ✏️ 1 个月前更新

评论