Meet YOLO26: next-gen vision AI.

Link to this section使用 Ultralytics YOLO 在不同区域进行对象计数 🚀#

Link to this section什么是区域对象计数?#

Object counting in regions with Ultralytics YOLO26 involves precisely determining the number of objects within specified areas using advanced computer vision. This approach is valuable for optimizing processes, enhancing security, and improving efficiency in various applications.



Watch: Object Counting in Different Regions using Ultralytics YOLO26 | Ultralytics Solutions 🚀

Link to this section区域对象计数的优势#

  • 精度与准确性: 使用先进计算机视觉在区域内进行对象计数可确保精确且准确的计数,最大限度地减少人工计数中常见的错误。
  • 效率提升: 自动化对象计数增强了运营效率,提供实时结果并简化了跨不同应用的流程。
  • 多功能性与应用: 区域对象计数的灵活性使其适用于各种领域,从制造和监控到交通流量监测,为其实际用途和有效性做出了贡献。

Link to this section现实世界应用#

零售集市街道
使用 Ultralytics YOLO26 在不同区域进行人员计数使用 Ultralytics YOLO26 在不同区域进行人群计数
使用 Ultralytics YOLO26 在不同区域进行人员计数使用 Ultralytics YOLO26 在不同区域进行人群计数

Link to this section使用示例#

使用 Ultralytics YOLO 进行区域计数
 import cv2

 from ultralytics import solutions

 cap = cv2.VideoCapture("path/to/video.mp4")
 assert cap.isOpened(), "Error reading video file"

 # Pass region as list
 # region_points = [(20, 400), (1080, 400), (1080, 360), (20, 360)]

 # Pass region as dictionary
 region_points = {
     "region-01": [(50, 50), (250, 50), (250, 250), (50, 250)],
     "region-02": [(640, 640), (780, 640), (780, 720), (640, 720)],
 }

 # Video writer
 w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))
 video_writer = cv2.VideoWriter("region_counting.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))

 # Initialize region counter object
 regioncounter = solutions.RegionCounter(
     show=True,  # display the frame
     region=region_points,  # pass region points
     model="yolo26n.pt",  # model for counting in regions, e.g., yolo26s.pt
 )

 # Process video
 while cap.isOpened():
     success, im0 = cap.read()

     if not success:
         print("Video frame is empty or processing is complete.")
         break

     results = regioncounter(im0)

     # print(results)  # access the output

     video_writer.write(results.plot_im)

 cap.release()
 video_writer.release()
 cv2.destroyAllWindows()  # destroy all opened windows
Ultralytics 示例代码

Ultralytics 区域计数模块可在我们的 示例部分 获取。你可以探索此示例以进行代码自定义,并将其修改以适应你的特定用例。

Link to this sectionRegionCounter 参数#

这是一个包含 RegionCounter 参数的表格:

参数类型默认值描述
modelstrNoneUltralytics YOLO 模型文件的路径。
regionlist'[(20, 400), (1260, 400)]'定义计数区域的点列表。

RegionCounter 解决方案支持使用对象追踪参数:

参数类型默认值描述
trackerstr'botsort.yaml'指定要使用的追踪算法。内置选项包括:botsort.yamlbytetrack.yamlocsort.yamldeepocsort.yamlfasttrack.yamltracktrack.yaml
conffloat0.1设置检测的置信度阈值;较低的值允许跟踪更多的对象,但也可能包含误报。
ioufloat0.7设置用于过滤重叠检测的 交并比 (IoU) 阈值。
classeslistNone按类别索引过滤结果。例如,classes=[0, 2, 3] 仅跟踪指定的类别。
verboseboolTrue控制跟踪结果的显示,提供被跟踪对象的视觉输出。
devicestrNone指定推理设备(例如 cpucuda:00)。允许用户在 CPU、特定的 GPU 或其他计算设备之间进行选择以执行模型。

此外,还支持以下可视化设置:

参数类型默认值描述
showboolFalse如果为 True,则在窗口中显示标注后的图像或视频。这对于开发或测试过程中的即时视觉反馈非常有用。
line_widthint or NoneNone指定边界框的线条宽度。如果为 None,则线条宽度会根据图像尺寸自动调整。提供用于清晰度的视觉自定义功能。
show_confboolTrue在标签旁显示每次检测的置信度得分。让你深入了解模型对每次检测的确定性。
show_labelsboolTrue在视觉输出中显示每次检测的标签。提供对检测到对象的即时理解。

Link to this section常见问题解答#

Link to this section什么是使用 Ultralytics YOLO26 在指定区域进行对象计数?#

使用 Ultralytics YOLO26 在指定区域内进行对象计数,涉及利用先进的计算机视觉来检测和统计定义区域内的对象数量。这种精确的方法提高了制造、监控和交通监控等各种应用场景的效率和 准确性

Link to this section如何使用 Ultralytics YOLO26 运行基于区域的对象计数脚本?#

按照以下步骤在 Ultralytics YOLO26 中运行对象计数:

  1. 克隆 Ultralytics 存储库并进入该目录:

    git clone https://github.com/ultralytics/ultralytics
    cd ultralytics/examples/YOLOv8-Region-Counter
  2. 执行区域计数脚本:

    python yolov8_region_counter.py --source "path/to/video.mp4" --save-img

如需更多选项,请访问 使用示例 部分。

Link to this section为什么我应该使用 Ultralytics YOLO26 进行区域对象计数?#

使用 Ultralytics YOLO26 进行区域对象计数具有以下几个优势:

  1. 实时处理: YOLO26 的架构支持快速推理,使其成为需要即时计数结果的应用的理想选择。
  2. 灵活的区域定义: 该解决方案允许你将多个自定义区域定义为多边形、矩形或线条,以满足你的特定监测需求。
  3. 多类别支持: 在同一区域内同时计数不同类型的对象,提供全面的分析。
  4. 集成能力: 通过 Ultralytics Python API 或命令行界面轻松集成到现有系统中。

优势 部分探索更深层次的好处。

Link to this section区域对象计数有哪些实际应用?#

使用 Ultralytics YOLO26 进行对象计数可应用于众多实际场景:

  • 零售分析: 统计不同商店区域的顾客数量,以优化布局和人员配置。
  • 交通管理: 监测特定道路路段或交叉口的车辆流量。
  • 制造业: 追踪在不同生产区域移动的产品。
  • 仓库运营: 统计指定存储区域内的库存物品。
  • 公共安全: 在活动期间监测特定区域的人群密度。

实际应用 部分以及 TrackZone 解决方案中探索更多示例,以获取额外的基于区域的监测能力。

评论