yolov8 区域声光报警+计数

yolov8 区域报警+计数

  • 1. 基础
  • 2. 报警功能
    • 2. 1声音报警代码
    • 2. 2画面显示报警代码
  • 3. 完整代码
  • 4. 源码

1. 基础

本项目是在 yolov8 区域多类别计数 的基础上实现的,具体区域计数原理可见上边文章

2. 报警功能

设置一个区域region_points,当行人这一类别进入该区域范围内,会触发报警系统,产生警报

2. 1声音报警代码

pygame.mixer.init()  # 初始化
pygame.mixer.music.load('out.wav')  # 加载报警音源
pygame.mixer.music.set_volume(1)   # 设置声音
pygame.mixer.music.play()  # 播放音乐

2. 2画面显示报警代码

text = "ALARM"
cv2.putText(annotated_frame, text, (600, 300), cv2.FONT_ITALIC, 2.0,(0, 0, 255), 3)

请添加图片描述

3. 完整代码


import cv2
import numpy as np
from ultralytics import YOLO
import pygamedef is_inside_region(point, region_points):"""判断点是否在指定区域内"""return cv2.pointPolygonTest(np.array(region_points), point, False) >= 0def detect():model = YOLO("yolov8n.pt")cv2.namedWindow('region couter', cv2.WINDOW_NORMAL)cv2.resizeWindow('region couter', 960, 540)  # 设置宽高cap = cv2.VideoCapture('ultralytics/assets/people.mp4')out_video = cv2.VideoWriter('output.avi', cv2.VideoWriter_fourcc(*'XVID'), 30, (1920, 1080))region_points = [(640, 270), (640, 540), (1280, 540), (1280, 270)]region_points_np = np.array(region_points)assert cap.isOpened(), "Error reading video file"while cap.isOpened():success, im0 = cap.read()if not success:print("Video frame is empty or video processing has been successfully completed.")breaktracks = model.track(im0, persist=True)annotated_frame = tracks[0].plot()boxes = tracks[0].boxes.datacount_class1 = 0count_class2 = 0for i, box in enumerate(boxes):x1, y1, x2, y2 = box[:4]x_center = (x1 + x2) / 2y_center = (y1 + y2) / 2center_point = (int(x_center), int(y_center))if is_inside_region(center_point, region_points):if box[-1] == 0:  # 类别1的标签.人count_class1 += 1pygame.mixer.init()pygame.mixer.music.load('out.wav')pygame.mixer.music.set_volume(1)pygame.mixer.music.play()text = "ALARM"cv2.putText(annotated_frame, text, (960, 400), cv2.FONT_ITALIC, 2.0,(0, 255, 255), 3)elif  box[-1] == 2:  # 类别2的标签,车count_class2 += 1# cv2.polylines(annotated_frame, [region_points_np], isClosed=True, color=(255, 0, 0), thickness=2)region_mask = np.zeros_like(annotated_frame)cv2.fillPoly(region_mask, [region_points_np], color=(255, 0, 0))# 使用透明度将填充后的区域与原始帧混合alpha = 0.3  # 调整透明度annotated_frame = cv2.addWeighted(annotated_frame, 1 - alpha, region_mask, alpha, 0)print("Number of objects in class 1:", count_class1)print("Number of objects in class 2:", count_class2)cv2.imshow("region couter", annotated_frame)out_video.write(annotated_frame)if cv2.waitKey(1) == ord('q'):breakout_video.release()cap.release()cv2.destroyAllWindows()
if __name__ == '__main__':detect()

4. 源码

下载链接:https://download.csdn.net/download/qq_45077760/89212535

有问题可以在评论区交流

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/319915.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Microsoft Remote Desktop Beta for Mac:远程办公桌面连接工具

Microsoft Remote Desktop Beta for Mac不仅是一款远程桌面连接工具,更是开启远程办公新篇章的利器。 它让Mac用户能够轻松访问和操作远程Windows计算机,实现跨平台办公的无缝衔接。无论是在家中、咖啡店还是旅途中,只要有网络连接&#xff0…

【hive】transform脚本

文档地址:https://cwiki.apache.org/confluence/display/Hive/LanguageManualTransform 一、介绍二、实现1.脚本上传到本地2.脚本上传到hdfs 三、几个需要注意的点1.脚本名不要写全路径2.using后面语句中,带不带"python"的问题3.py脚本Shebang…

ASP.NET淘宝店主交易管理系统的设计与实现

摘 要 淘宝店主交易管理系统主要采用了ASPACCESS的B/S设计模式,通过网络之间的数据交换来实现客户、商品、交易的管理和对客户、商品、交易统计工作,从而提高淘宝店主在管理网店过程中的工作效率和质量。 系统分为基本资料模块,统计资料模…

【MySQL】第一次作业

【MySQL】第一次作业 1、在官网下载安装包2、解压安装包,创建一个dev_soft文件夹,解压到里面。3、创建一个数据库db_classes4、创建一行表db_hero5、将四大名著中的常见人物插入这个英雄表 写一篇博客,在window系统安装MySQL将本机的MySQL一定…

安装库后JupyterLab一直报ModuleNotFoundError问题解决

背景: 先安装的Python3.10,安装在默认路径: C:\Users\#用户名省略#\AppData\Local\Programs\Python\Python310\ 后安装的Anaconda,更改过路径在D盘: D:\ProgramData\anaconda3 此时C盘Python安装路径下Scripts文件…

华为手机ip地址怎么切换

随着移动互联网的普及,IP地址成为了我们手机上网的重要标识。然而,在某些情况下,我们可能需要切换手机的IP地址,以更好地保护个人隐私、访问特定地区的内容或服务,或者出于其他网络需求。华为手机作为市场上的热门品牌…

MVC和DDD的贫血和充血模型对比

文章目录 架构区别MVC三层架构DDD四层架构 贫血模型代码示例 充血模型代码示例 架构区别 MVC三层架构 MVC三层架构是软件工程中的一种设计模式,它将软件系统分为 模型(Model)、视图(View)和控制器(Contro…

【kettle006】kettle访问华为openGauss高斯数据库并处理数据至execl文件(已更新)

1.一直以来想写下基于kettle的系列文章,作为较火的数据ETL工具,也是日常项目开发中常用的一款工具,最近刚好挤时间梳理、总结下这块儿的知识体系。 2.熟悉、梳理、总结下华为openGauss高斯数据库相关知识体系 3.欢迎批评指正,跪谢…

【C语言回顾】数据在内存中的存储

前言1. 概述2. 大小端字节序和字节序判断2.1 大端字节序(Big-Endian)2.2 小端字节序(Little-Endian)2.3 判断字节序的示例 3. 数据在内存中的存储3.1 整数在内存中的存储3.2 浮点数在内存中的存储 结语 ↓ 上期回顾: 【C语言回顾】…

Coursera: An Introduction to American Law 学习笔记 Week 05: Criminal Law

An Introduction to American Law 本文是 https://www.coursera.org/programs/career-training-for-nevadans-k7yhc/learn/american-law 这门课的学习笔记。 文章目录 An Introduction to American LawInstructors Week 05: Criminal LawKey Criminal Law TermsSupplemental Re…

【Python项目】基于opencv的的【疲劳检测系统】

技术简介:使用Python技术、OpenCV图像处理库、MYSQL数据库等实现。 系统简介:用户可以通过登录系统平台实现实时的人脸照片的拍摄和上传,结合上传图像的内容进行后台的图像预处理和运算分析,用户可以通过照片分析界面查看到当前检…

企业计算机服务器中了rmallox勒索病毒怎么处理,rmallox勒索病毒解密恢复

网络在为企业提供便利的同时,也为企业的数据安全带来严重威胁。随着网络技术的不断发展,越来越多的企业利用网络开展各项工作业务,网络数据安全问题,一直成为企业关心的主要话题,但网络威胁随着网络技术的不断成熟&…

OpenCV如何模板匹配(59)

返回:OpenCV系列文章目录(持续更新中......) 上一篇:OpenCV如何实现背投(58) 下一篇 :OpenCV在图像中寻找轮廓(60) 目标 在本教程中,您将学习如何: 使用 OpenCV 函数 matchTemplate()搜索图像贴片和输入…

第 129 场 LeetCode 双周赛题解

A 构造相同颜色的正方形 枚举&#xff1a;枚举每个 3 3 3\times 3 33的矩阵&#xff0c;判断是否满足条件 class Solution {public:bool canMakeSquare(vector<vector<char>>& grid) {for (int i 0; i < 2; i)for (int j 0; j < 2; j) {int c1 0, c…

Spring Cloud架构进化实操:Eureka、Apollo、OpenFeign、Ribbon、Zuul组件

文章目录 前言一、引出二、服务注册与发现2.1 创建Eureka注册中心2.1.1 引入pom依赖2.1.2 配置yaml2.1.3 启动服务21.4 测试访问 2.2 创建服务提供者2.2.1 配置yaml2.2.2 启动服务2.2.3 测试访问 2.3 创建服务消费者2.3.1 服务提供者接口2.3.2 服务消费者调用接口 三、负载均衡…

在GPU上加速RWKV6模型的Linear Attention计算

精简版&#xff1a;经过一些profile发现flash-linear-attention中的rwkv6 linear attention算子的表现比RWKV-CUDA中的实现性能还要更好&#xff0c;然后也看到了继续优化triton版本kernel的线索。接着还分析了一下rwkv6 cuda kernel的几次开发迭代以此说明对于不懂cuda以及平时…

LLVM Instruction Selection 笔记

Instruction Selection 所处阶段 注&#xff1a;上图来源于 Welcome to the back-end: The LLVM machine representation 可以看到 SelectionDAG 架在 LLVM IR 和 LLVM MIR 之间&#xff0c;在此之前 machine independent optimization 已经完成。之后基本上就进入了 machine …

学习3:scrapy请求对象、模拟登录、POST请求、管道的使用、crawlspider爬虫类

请求对象 请求对象参数 scrapy.Request(url[],callback,method"GET",headers,body,cookies,meta,dont_filterFalse)callback 表示当前的url响应交给那个函数去处理method 指定请求方式headers 接受一个字典&#xff0c;其中不包括cookiesbody 接收json字符串&#…

原来spring也可以AI

最近大模型是相当的火&#xff0c;尤其是在自然语言处理&#xff08;NLP&#xff09;、图像识别、语音识别等领域的应用&#xff0c;那对于工程同学来说应该如何接住这波破天的富贵呢&#xff1f; 想啥来啥&#xff0c;前段时间LangChain给我们整了一套钢铁战甲&#xff0c;让…

javascript 练习 写一个简单 另类录入 电脑组装报价表 可打印

数据格式 &#xff08;1代表cpu、2代表主板、3代表内存、。。。&#xff09; 1i3 12100 630 2H610 480 3DDR4 3200 16G 220 4500G M.2 299 5300W电源 150 6小机箱 85 7GT 730G 4G 350 8WD 2T 399 9飞利浦 24Led 580 主代码 Html JS <!DOCTYPE html> <html lang&qu…