YOLOv11(Ultralytics)视频选定区域目标统计计数及跟踪

news/2024/11/24 21:26:47/

在计算机视觉的众多应用场景中,对特定区域的目标进行检测、跟踪与计数是一个常见且重要的需求。无论是在智慧交通中统计通过特定路口的车辆数量,还是在零售分析中追踪进入特定区域的顾客行为,这一功能都发挥着不可或缺的作用。

随着深度学习技术的发展,目标检测算法不断迭代升级。YOLO(You Only Look Once)系列作为目标检测领域的翘楚,以其高效、实时的特性受到广泛关注和应用。YOLOv11(Ultralytics)在检测性能和易用性方面再一次取得了显著提升。本文将给出基础教程,读者可自选区域并读取视频进行测试,本教程同样Ultralytics / YOLOv11 / YOLOv8通用,视频及摄像头均可使用。

YOLOv11环境配置教程如下。目标检测:YOLOv11(Ultralytics)环境配置,适合0基础纯小白,超详细_yolov11环境配置-CSDN博客文章浏览阅读7.8k次,点赞42次,收藏153次。YOLO11是Ultralytics公司YOLO系列实时目标检测器的最新迭代版本,它以尖端的准确性、速度和效率重新定义了可能实现的性能。在之前YOLO版本取得的显著进步基础上,YOLO11在架构和训练方法上进行了重大改进,使其成为各种计算机视觉任务中的通用选择。除了传统的目标检测外,YOLO11 还支持目标跟踪、实例分割、姿态估计、OBB定向物体检测(旋转目标检测)等视觉任务。如果已经会配置YOLOv8的环境,本文不需要重复配置,下载最新的YOLOv11训练文件即可。_yolov11环境配置https://blog.csdn.net/qq_67105081/article/details/143270109?spm=1001.2014.3001.5502

主要使用ultralytics的solutions.ObjectCounter中count方法(不同版本函数名称不一样,但是YOLOv11往后都是count函数),具体代码如下,本文代码需搭配ultralytics8.3.20版本 下载 。

import cv2
from ultralytics import YOLO, solutionscap = cv2.VideoCapture("dog.mp4")
assert cap.isOpened(), "读取视频异常"
w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))region_points = [(20, 400), (700, 400), (700, 360), (20, 360)] video_writer = cv2.VideoWriter("output.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))counter = solutions.ObjectCounter(model = "yolo11n.pt",region=region_points,show_in=True,show_out=True
)
while cap.isOpened():success, im0 = cap.read()if not success:print("视频处理完成")breakcv2.putText(im0, f"Total:{counter.in_count + counter.out_count}", (80, 80), cv2.FONT_HERSHEY_SIMPLEX, 1,(255, 0, 0), 2)im0 = counter.count(im0)video_writer.write(im0)cap.release()
video_writer.release()
cv2.destroyAllWindows()

使用时需要修改region_point为自选区域,可以多个点组合成多边形,也可以两个点连成一条直线,系统会自动识别。实测ultralytics8.2.0版本多边形效果最好,可以实现检测时修改自选框位置,需要代码可以 下载 ,相应的函数也需要对应修改。

import cv2from ultralytics import YOLO, solutionsmodel = YOLO("yolov8n.pt")
cap = cv2.VideoCapture("dog.mp4")
assert cap.isOpened(), "读取视频异常"
w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))region_points = [(20, 400), (700, 400), (700, 360), (20, 360)] video_writer = cv2.VideoWriter("output.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))counter = solutions.ObjectCounter(view_img=True,reg_pts=region_points,names=model.names,draw_tracks=True,line_thickness=2,view_in_counts=True,view_out_counts=True,
)
while cap.isOpened():success, im0 = cap.read()if not success:print("视频处理完成")breaktracks = model.track(im0, persist=True, show=False)cv2.putText(im0, f"Total:{counter.in_counts + counter.out_counts}", (80, 80), cv2.FONT_HERSHEY_SIMPLEX, 1,(255, 0, 0), 2)im0 = counter.start_counting(im0, tracks)video_writer.write(im0)cap.release()
video_writer.release()
cv2.destroyAllWindows()

效果展示如下,目标经过自选框则计入in,离开自选框则计入out,总数在左侧显示,跟踪轨迹显示为线条(默认YOLOv11n效果一般,自训练模型效果较好)。

运行完代码后检测结果会保存为视频,本文给出代码为默认的opencv代码,如需较为完整的使用pyqt5界面写出的视频或摄像头检测代码,可私聊获取,有其它需求欢迎私聊定制,如有大佬有好的想法也欢迎一起讨论。


http://www.ppmy.cn/news/1549635.html

相关文章

CSP/信奥赛C++语法基础刷题训练(24):洛谷P5744:培训

CSP/信奥赛C语法基础刷题训练(24):洛谷P5744:培训 题目描述 某培训机构的学员有如下信息: 姓名(字符串)年龄(周岁,整数)去年 NOIP 成绩(整数&am…

刘艳兵-DBA046-ASSM表空间的全表扫描范围由哪些因素综合确定?

ASSM表空间的全表扫描范围由哪些因素综合确定? A L1/L2/L3位图块 B 段头块Auxillary Map C 段头块Extent Map D 段头块Highwater 答: B 段头块Auxillary Map C 段头块Extent Map D 段头块Highwater 在 Oracle 数据库中&#xff0c…

基于Java Springboot高校社团管理系统

一、作品包含 源码数据库设计文档万字PPT全套环境和工具资源部署教程 二、项目技术 前端技术:Html、Css、Js、Vue、Element-ui 数据库:MySQL 后端技术:Java、Spring Boot、MyBatis 三、运行环境 开发工具:IDEA/eclipse 数据…

elasticsearch7.10.2集群部署带认证

安装elasticsearch rpm包安装 下载地址 https://mirrors.aliyun.com/elasticstack/7.x/yum/7.10.2/ 生成证书 #1.生成CA证书 # 生成CA证书,执行命令后,系统还会提示你输入密码,可以直接留空 cd /usr/share/elasticsearch/bin ./elasticsearch-certutil ca#会在/usr/share/el…

Ubuntu20.04 rk3588交叉编译opencv4.10

firefly 公司出的rk3588的设备,其中已经安装了gcc 交叉编译工具,系统版本是Ubuntu20.04。 参考文章:Arm 交叉编译opencv3.4.16 for Rv1126-CSDN博客 使用: cmake -DCMAKE_C_COMPILERgcc \ -DCMAKE_CXX_COMPILERg \ -DWITH_CUD…

【大语言模型】ACL2024论文-17 VIDEO-CSR:面向视觉-语言模型的复杂视频摘要创建

【大语言模型】ACL2024论文-17 VIDEO-CSR:面向视觉-语言模型的复杂视频摘要创建 VIDEO-CSR:面向视觉-语言模型的复杂视频摘要创建 目录 文章目录 【大语言模型】ACL2024论文-17 VIDEO-CSR:面向视觉-语言模型的复杂视频摘要创建目录摘要研究…

界面控件DevExpress WinForms v24.2新功能预览 - 人工智能(AI)

DevExpress WinForms 拥有180组件和UI库,能为Windows Forms平台创建具有影响力的业务解决方案。DevExpress WinForms能完美构建流畅、美观且易于使用的应用程序,无论是Office风格的界面,还是分析处理大批量的业务数据,它都能轻松胜…

Linux的开发工具(二)

1.vim的基本操作 正常模式到插入模式 输入a 输入i 输入o 示例 输入iao下面的就会变成INSERT模式 插入模式到正常模式 按Esc键 正常模式到低行模式 shift; :w保存当前文件 :wq保存并退出 :q!强制退出 2.vi…