使用Yolo12算法进行区域内实时目标计数
视频演示
大家好,今天给大家分享一个使用yolo12算法进行区域内目标实时计数的项目。
计数效果

如上图所示,程序会检测画面中的所有行人,紫色的矩形框是我们统计的区域
当行人从北向南进入紫色矩形框时,会计入进入人数
当行人从南向北进入紫色矩形框时,会计入离开人数
核心代码
处理的核心流程大概如下:
- 读取视频
- 设置区域的坐标
- 初始化目标计数对象
- 依次读取视频中的帧图像,调用counter进行统计
- 释放视频资源
import cv2
from ultralytics import solutions
# 读取视频
cap = cv2.VideoCapture("MOT16-04-raw.webm")
#判断视频是否读取成功
assert cap.isOpened(), "Error reading video file"
# 检测区域的坐标
# region_points = [(20, 400), (1080, 400)] # line counting
region_points = [(20, 400), (600, 400), (600, 300), (20, 300)] # rectangle region
# region_points = [(20, 400), (1080, 400), (1080, 360), (20, 360), (20, 400)] # polygon region
# 初始化目标计数对象
counter = solutions.ObjectCounter(
show=True, # 是否显示检测过程
region=region_points, # 检测区域
model="yolo12n.pt", # 使用的检测模型
classes=[0], # 检测的类别
)
# 处理视频
while cap.isOpened():
# 读取视频帧图像
success, im0 = cap.read()
#判读是否读取成功
if not success:
print("Video frame is empty or processing is complete.")
break
#调用counter进行计数处理
results = counter(im0)
#释放视频对象
cap.release()
#按键处理
cv2.waitKey(0)
cv2.destroyAllWindows() # 关闭所有窗口

上述代码中,我们已经对关键地方做了注释,这里大概对关键地方进行下说明:
我们这里需要region_points设置区域的坐标,分别是四组坐标,分别表示矩形区域的左上角、右上角、右下角、左下角。
region_points坐标除了设置矩形外,还可以设置直线和多边形,当坐标只有两组的时候,是一条直线,当超过4组之后,是多边形区域。
在solutions.ObjectCounter我们需要设置一些参数,这里的model需要填写权重文件,这里我们写了yolo12n的预训练权重文件。
GUI系统
上述我们提到,我们需要设定一组坐标来控制检测的区域部分,但是坐标的部分不是太好把控,因为我们需要把坐标值和视频中的实际位置关联起来。
所以更好的办法是做一个界面,然后可以通过鼠标在图像上进行框选来绘制矩形框,这样更加直观的显示矩形框的位置。

界面我们采用pyqt5实现的,可以选择绘制矩形还是直线。
有GUI后,我们对程序把控的能力会更强一些,我们可以中途停止视频的处理,也可以随时更换新的视频来进行检测。
这就是本次的内容,有问题欢迎小伙伴评论区留言~
使用Yolo12算法进行区域内实时目标计数的更多相关文章
- 【GIS新探索】算法实现在不规则区域内均匀分布点
1 概要 在不规则区域内均匀分布点,这个需求初看可能不好理解.如果设想一下需求场景就比较简单了. 场景1:在某个地区范围内,例如A市区有100W人口,需要将这100W人口在地图上面相对均匀的标识出来. ...
- 判断一个点是否在多边形区域内--C算法
/*函数的输入:(1)当前点的坐标p(2)区域顶点数组pt[]:(3)顶点数nCount 输出: 在区域内返回TRUE,否则返回FALSE. Point类型是一个结构: struct Point { ...
- 使用SlimYOLOv3框架实现实时目标检测
介绍 人类可以在几毫秒内在我们的视线中挑选出物体.事实上,你现在就环顾四周,你将观察到周围环境并快速检测到存在的物体,并且把目光回到我们这篇文章来.大概需要多长时间? 这就是实时目标检测.如果我们能让 ...
- 【原】ios的hitTest方法以及不规则区域内触摸事件处理方法
概述 在正常的使用场景中,我们处理了比较多的矩形区域内触摸事件,比如UIButton.UIControl.一般来说,这些控件的图形以及触摸区域都是矩形或者圆角矩形的.但是在一些特殊应用场景中我们有时不 ...
- java/c# 判断点是否在多边形区域内
java/c# 判断点是否在多边形区域内 年06月29日 ⁄ 综合 ⁄ 共 1547字 ⁄ 字号 小 中 大 ⁄ 评论关闭 最近帮别人解决了一个问题,如何判断一个坐标点,是否在多边形区域内(二维). ...
- KMP算法 --- 在文本中寻找目标字符串
KMP算法 --- 在文本中寻找目标字符串 很多时候,为了在大文本中寻找到自己需要的内容,往往需要搜索关键字.这其中就牵涉到字符串匹配的算法,通过接受文本和关键词参数来返回关键词在文本出现的位置.一般 ...
- ios的hitTest方法以及不规则区域内触摸事件处理方法
概述 在正常的使用场景中,我们处理了比较多的矩形区域内触摸事件,比如UIButton.UIControl.一般来说,这些控件的图形以及触摸区域都是矩形或者圆角矩形的.但是在一些特殊应用场景中我们有时不 ...
- java 坐标系运算 判断一个地理坐标是否在电子围栏 圆、矩形、多边形区域内
转载自:https://blog.csdn.net/Deepak192/article/details/79402694 测试没问题,我用的是原始坐标:要注意的是坐标转换问题,要看当前是属于什么坐标系 ...
- Yolo:实时目标检测实战(上)
Yolo:实时目标检测实战(上) YOLO:Real-Time Object Detection 你只看一次(YOLO)是一个最先进的实时物体检测系统.在帕斯卡泰坦X上,它以每秒30帧的速度处理图像, ...
- python进阶:带你学习实时目标跟踪
摘要:本程序主要实现了python的opencv人工智能视觉模块的目标跟踪功能. 本文分享自华为云社区<python进阶--人工智能实时目标跟踪,这一篇就够用了!>,作者:lqj_本人 . ...
随机推荐
- 「CF798E」 Mike and code of a permutation
\(O(n^2)\)做法 让第\(i\)个点向\(p_j(p_j>p_i)\)的点连边 首先\(i\)肯定能连向\(a_i\),若当\(a_i==-1\),那么当前所有没打过标记的点向\(i\) ...
- 如何用三层防护体系打造坚不可摧的 API 安全堡垒?
扫描二维码 关注或者微信搜一搜:编程智域 前端至全栈交流与成长 发现1000+提升效率与开发的AI工具和实用程序:https://tools.cmdragon.cn/ FastAPI 安全与认证综合实 ...
- 京东携手HarmonyOS SDK首发家电AR高精摆放功能
在电商行业的演进中,商品的呈现方式不断升级:从文字.图片到视频,再到如今逐渐兴起的3D与AR技术.作为XR应用探索的先行者,京东正站在这场体验革新的最前沿,不断突破商品展示的边界,致力于通过创新技术让 ...
- mac安装java
下载jdk 点击此处下载. . 下载需要登陆,如果不想登陆,可以下载我阿里网盘资源. 安装jdk 按照提示操作即可. 配置环境变量 其实这个时候,打开终端,输入java -version,已经可以看到 ...
- software-center ubuntu处在不稳定的状态,最好重装
sudo dpkg --remove --force-remove-reinstreq software-center sudo apt-get install software-center 搞得我 ...
- vs 运行 qt 项目的注意事项
简介 RT 1 使用vs 打开 qt 项目 https://blog.csdn.net/weixin_44840658/article/details/99693803 2 运行项目之后 会因为缺少相 ...
- Skill Discovery | LGSD:用描述 state 的语言 embedding 的距离,作为 metra 的 d(x,y) 距离约束
ICLR 2025,8 8 6 6 poster. arxiv:https://arxiv.org/abs/2406.06615 pdf:https://arxiv.org/pdf/2406.0661 ...
- ETL中图表统计分析模版组件使用
在数据处理和分析过程中,ETL(Extract, Transform, Load)工具扮演着至关重要的角色.ETL不仅帮助我们从各种数据源中提取数据,还通过转换和加载过程将数据整理成适合分析的格式.为 ...
- ETL驱动企业集成转型与数据集成创新
数据集成:企业数智化的核心 数据集成是这一资产发挥价值的关键步骤,它将分散在不同来源的数据汇集到统一的平台,实现数据的集中管理和深入分析.通过这一过程,企业能够打破信息孤岛,提升数据的准确性和可靠性, ...
- IDEA的安装与卸载
IDEA安装 什么是IDE IDE是集成开发环境,用于提供程序开发环境的应用程序,一般包括代码编辑器,编译器,调试器图形用户界面等工具. 常见的Java的IDE工具有Eclipse,IntelliJ ...