Ultralytics YOLO27:

Ultralytics 解决方案:利用 YOLO26 解决现实世界问题#

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

Ultralytics 解决方案缩略图



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 监控训练。学习实时跟踪和分析各种健身训练。

解决方案参数#

参数类型默认值描述
modelstrNoneUltralytics YOLO 模型文件的路径。
regionlistdictNone定义感兴趣区域的点,可以是 (x, y) 元组列表,也可以是将区域名称映射到多区域点列表的字典(仅限 RegionCounter)。当 None 时,需要区域的解决方案会回退到预定义的默认区域。
show_inboolTrue控制是否在视频流中显示进入计数的标志。
show_outboolTrue控制是否在视频流中显示离开计数的标志。
analytics_typestr'line'图表类型,即 linebarareapie
colormapintcv2.COLORMAP_DEEPGREEN用于热力图的颜色映射。
line_widthint2解决方案绘制的框、关键点和计数的线条粗细。
verboseboolTrue启用解决方案逐帧记录输入形状、类别计数和处理速度的日志。跟踪调用本身始终保持静默。
json_filestrNone包含所有停车坐标数据的 JSON 文件路径。
up_anglefloat145.0“向上”姿态的角度阈值。
kptslist[int]'[6, 8, 10]'用于监控训练的三个关键点索引列表。这些关键点对应肩部、肘部和手腕等身体关节或部位,适用于俯卧撑、引体向上、深蹲和腹部训练等练习。
down_angleint90“向下”姿态的角度阈值。
blur_ratiofloat0.5调整模糊强度百分比,取值范围为 0.1 - 1.0
crop_dirstr'cropped-detections'用于存储裁剪检测结果的目录名称。
recordsint5触发安防报警系统发送电子邮件所需的检测总数。
vision_pointtuple[int, int](20, 20)VisionEye 解决方案跟踪对象并绘制路径的视觉点。
sourcestrNone输入源(视频、RTSP 等)的路径。仅可与解决方案命令行界面(CLI)配合使用。
figsizetuple[float, float](12.8, 7.2)分析图表(如热力图或图形)的图像尺寸。
fpsfloat30.0用于速度计算的每秒帧数。
max_histint5速度/方向计算中每个对象要跟踪的最大历史点数。
meter_per_pixelfloat0.05用于将像素距离转换为现实世界单位的缩放因子。
max_speedint120视觉叠加层中的最大速度限制(用于警报)。
datastr'images'用于相似性搜索的图像目录路径。
imgszint640模型推理的输入图像尺寸。
跟踪参数

解决方案会将下方的推理和跟踪参数传递给 model.track()

参数类型默认值描述
trackerstr'botsort.yaml'指定要使用的跟踪算法。内置选项:botsort.yamlbytetrack.yamlocsort.yamldeepocsort.yamlfasttrack.yamltracktrack.yaml
conffloat0.25设置检测的置信度阈值;较低的值允许跟踪更多对象,但可能包含误报。
ioufloat0.7设置用于过滤重叠检测结果的交并比(IoU)阈值。
classeslistNone按类别索引过滤结果。例如,classes=[0, 2, 3] 仅跟踪指定类别。
devicestrNone指定推理设备(例如 cpucuda:00)。允许用户在 CPU、特定 GPU 或其他计算设备之间进行选择,以执行模型。
imgszint or tuple640目标推理图像大小:用于正方形的整数或 (height, width) 对。形状会根据模型步长进行调整。
max_detint300在跟踪前每帧保留的最大检测数,用于限制解决方案在密集场景中处理的对象数量。
quantizeint or strNone推理精度:针对 PyTorch 和 TorchScript 模型,使用 16 (FP16) 或 32/不设置 (FP32);其他格式则在其工件和运行时选择的精度下进行计算。它替代了已弃用的 half 标志。
可视化参数

你可以使用 show_confshow_labels 以及其他提到的参数来自定义可视化效果。

参数类型默认值描述
showboolFalse如果为 True,则会在窗口中显示带标注的图像或视频。适用于开发或测试期间获取即时视觉反馈。
show_confboolTrue在每个检测结果旁显示其置信度分数,让你了解模型对每个检测结果的确定程度。
show_labelsboolTrue在可视化输出中显示每个检测结果的标签,帮助你立即了解检测到的对象。

使用 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_countout_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="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_imnp.ndarray包含计数、模糊效果或解决方案专属增强效果等视觉叠加层的图像。
in_countint视频流中检测到进入定义区域的对象总数。
out_countint视频流中检测到离开定义区域的对象总数。
classwise_countDict[str, int]记录按类别统计的进出对象计数的字典,用于高级分析。
queue_countint当前位于预定义队列或等待区域中的对象数量(适用于队列管理)。
workout_countlist[int]AI Gym 中每个跟踪对象的训练重复次数(每个当前跟踪的个体对应一条记录)。
workout_anglelist[float]AI Gym 中每个跟踪对象的训练动作角度(每个当前跟踪的个体对应一条记录)。
workout_stagelist[str]AI Gym 中每个跟踪对象当前的训练阶段(每个当前跟踪的个体对应一条记录)。
pixels_distancefloat两个对象或点之间基于像素的距离,例如边界框之间的距离。(适用于距离计算。)
available_slotsint监控区域中的空闲车位数量(适用于停车管理)。
filled_slotsint监控区域中的已占用车位数量。(适用于停车管理)
email_sentbool指示通知或警报电子邮件是否已成功发送(适用于安防报警)。
total_tracksint视频分析期间观察到的唯一对象轨迹总数。
region_countsDict[str, int]用户定义区域或分区内的对象计数。
speed_dictDict[str, float]按轨迹记录计算所得对象速度的字典,用于速度分析。
total_crop_objectsintObjectCropper 解决方案生成的裁剪对象图像总数。
speedDict[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 创建和使用热力图,以进行全面的数据分析和可视化。

评论