使用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_本人 . ...
随机推荐
- 一文搞懂javascript中的var、let、const
简介 var, let and const是JavaScript中三种定义变量的方式,它们之间有什么区别呢?这是前端面试中常见的一道题,今天我们来一文说透它. let和const区别不大,主要是con ...
- 一文读懂Cookie、Session和Token:原理、区别与应用场景
咱上网冲浪的时候,天天和各种网站.APP打交道.但HTTP协议有个"毛病"--它记性不好,每次请求都像第一次见面,根本不记得之前和你聊过啥.为了解决这个问题,程序员们整出了Cook ...
- 1.Java Spring框架源码分析-AOP-给容器中注入AspectJAnnotationAutoProxyCreator组件
目录 1. 开启AOP 2. 注册AspectJAnnotationAutoProxyCreator组件 3. ImportBeanDefinitionRegistrar的registerBeanDe ...
- [Ynoi2014] 人人本着正义之名
题传 考虑 3/4/5/6 操作,发现本质上是对某段颜色相同的段向左/右拓展. 考虑 1/2 为区间推平操作,其它操作只会减少颜色段,因此总颜色段为 \(O(n+m)\) 的,直接平衡树维护即可. 然 ...
- layui 父级页面传值给子页面layer.open
在子页面定义一个方法, 子页面 function child(obj) { } 父级页面 var iframe = window[layero.find('iframe')[0]['name']]; ...
- vmware15.5的解锁mac系统插件
停止虚拟机服务 执行破解 进入插件MK-Unlocker-VM15.5目录内,右键以管理员权限运行win-install.cmd 查看效果 等待如上的脚本执行完成后,再打开vm,创建虚拟机,看看就有了 ...
- C语言中如何不用strcat函数来连接2个数组
C语言中如何不用strcat函数来连接2个数组? 今天就遇到这个问题,所以就尝试了一下,虽然这个问题被好多大佬看作就不是问题,但我还是对这方面做个简单的介绍. 下面是我的代码和运行情况. 其实简单的引 ...
- lingo 练习3
简介 练习 question 有一个护士工作站点,每天(周一至周日)所需最少职员数量20,16,13,16,19,14,和12,并要求每个职员一周连续工作5天,试求每周所需最少职员数,并给出安排. c ...
- matlab 求解常微分方程
简介 高数中关于求解常微分方程,我一直记得是公式 code clc, clear syms y(x) % 定义符号常量 dsolve(x^2 + y + (x -2 * y) * diff(y) == ...
- Linguistics-English-10级英语水平
可以自我评估一下你的英语水平吗? 完全不会英文,无法听懂或说出任何英文内容. 仅能听懂或说出非常简单的单词或短语,如"Hello"."Thank you".&q ...