Ultralytics YOLO27:
Get Started

Ultralytics Solutions:利用 YOLO26 解决现实世界的问题#

Ultralytics Solutions 提供 YOLO 模型的前沿应用,带来目标计数、模糊处理和安防系统等现实解决方案,提升各行业的效率和准确性。了解 YOLO26 在实用且影响深远的应用中的强大能力。

Ultralytics Solutions 缩略图



观看: 如何从命令行运行 Ultralytics Solutions (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 模型文件的路径。
regionlist 或 dictNone定义感兴趣区域的点,可以是 (x, y) 元组列表,也可以是将区域名称映射到点列表的字典(仅支持多个 RegionCounter 区域)。如果为 None,则需要区域的解决方案会退回到预定义的默认区域。
show_inboolTrue控制是否在视频流中显示流入计数的标志。
show_outboolTrue控制是否在视频流中显示流出计数的标志。
analytics_typestr'line'图表类型,即 line、bar、area 或 pie。
colormapintcv2.COLORMAP_DEEPGREEN要用于热力图的颜色映射。
line_widthint2解决方案绘制的框、关键点和计数的线条粗细。
verboseboolTrue启用逐帧日志,记录输入形状、类别计数和处理速度。跟踪调用本身始终不会输出日志。
json_filestrNone包含所有停车位坐标数据的 JSON 文件路径。
up_anglefloat145.0“向上”姿势的角度阈值。
kptslist[int][6, 8, 10]用于监测锻炼动作的三个关键点索引组成的列表。这些关键点对应身体关节或部位,例如肩部、肘部和手腕,可用于俯卧撑、引体向上、深蹲和腹部锻炼等动作。
down_anglefloat90.0“向下”姿势的角度阈值。
blur_ratiofloat0.5调整模糊强度百分比,取值范围为 0.1 - 1.0。
crop_dirstr'cropped-detections'用于存储裁剪后检测结果的目录名称。
recordsint5触发安全警报系统发送邮件所需的检测总数。
vision_pointtuple[int, int](20, 20)视觉系统使用 VisionEye Solution 跟踪对象并绘制路径的位置。
sourcestrNone输入源的路径(视频、RTSP 等)。仅适用于 Solutions 命令行界面 (CLI)。
figsizetuple[float, float](12.8, 7.2)Analytics 图表的图幅尺寸(英寸);(12.8, 7.2) 会渲染 1280×720 的帧。
fpsfloat30.0用于速度计算的每秒帧数。
max_histint5每个对象用于速度/方向计算的最大历史跟踪点数。
meter_per_pixelfloat0.05用于将像素距离转换为实际单位的缩放系数。
max_speedint120最高速度(km/h);估算速度超过此值时将按此值封顶。
datastr'images'用于相似性搜索的图像目录路径。
imgszint640模型推理的输入图像尺寸。
跟踪参数

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

参数类型默认值说明
trackerstr'tracktrack.yaml'指定要使用的跟踪算法。内置选项:botsort.yaml、bytetrack.yaml、ocsort.yaml、deepocsort.yaml、fasttrack.yaml、tracktrack.yaml。
conffloat0.25设置检测的置信度阈值;较低的值允许跟踪更多物体,但可能会包含误检。
ioufloat0.7设置用于筛除重叠检测结果的交并比 (IoU) 阈值。
classeslistNone按类别索引筛选结果。例如,classes=[0, 2, 3] 只跟踪指定类别。
devicestrNone指定推理设备(例如 cpu、cuda:0 或 0)。用户可以选择 CPU、特定 GPU 或其他计算设备来运行模型。
imgszint or tuple640目标推理图像尺寸:正方形图像使用整数,或使用 (height, width) 对。图像尺寸会调整为模型步幅的整数倍。
max_detint300跟踪前每帧保留的最大检测数量,用于限制解决方案在密集场景中处理的物体数量。
quantizeint or strNone推理精度:对于非 CPU 上运行的 PyTorch 和 TorchScript 模型,使用 16 (FP16) 或 32/unset (FP32) 进行选择;其他格式使用其模型文件和运行时所选的精度。此参数替代已弃用的 half 参数。
可视化参数

你可以使用 show_conf、show_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_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,  # 显示输出
    region=region_points,  # 传入区域点
    model="yolo26n.pt",  # model="yolo26n-obb.pt" 用于使用 OBB 模型进行目标计数。
    # classes=[0, 2],  # 使用 COCO 预训练模型时,只统计指定类别,例如人和汽车。
    # tracker="botsort.yaml"  # 选择跟踪器,例如 "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, dict[str, int] | int]每个类别的计数:ObjectCounter 和 Heatmap 使用 {"IN": int, "OUT": int},Analytics 使用 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[int, int]按跟踪 ID 分类的字典,包含 SpeedEstimator 估算的对象速度(单位:km/h),适用于速度分析。
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 创建和使用热力图,进行全面的数据分析和可视化。

评论