基于YOLOv8的暴力行为分类系统

embedded/2024/9/20 1:53:17/ 标签: YOLO, 目标跟踪, 人工智能, 暴力检测

本项目旨在通过计算机视觉技术实现暴力行为的实时监测和分类。利用先进的目标检测算法YOLOv8,结合Streamlit开发的前端界面,该系统能够高效地从图像或视频中识别出暴力行为,并及时报警。系统支持对实时摄像头输入进行分析,以及上传的图像和视频文件。

技术栈:
  • YOLOv8: 目标检测模型,用于检测图像中的物体。
  • Streamlit: Python Web应用框架,用于构建用户界面。
功能特点:
  • 支持图片、视频及实时摄像头输入。
  • 实现暴力行为与正常行为的二分类。
  • 提供直观的用户界面,便于操作和监控。
混淆矩阵示例(假设数据):
          预测值正常  暴力
实际值
正常   95    5
暴力   10   85

这表明模型在测试集上具有较高的准确率,其中95%的正常行为被正确分类为正常,而85%的暴力行为被正确识别。

关键代码示例

下面是一些关键代码片段,包括如何使用YOLOv8进行预测以及如何用Streamlit构建用户界面。

YOLOv8预测代码

首先确保安装了ultralytics库:

pip install ultralytics

然后编写预测函数:

from ultralytics import YOLOdef predict(image_path, model):"""使用YOLOv8模型进行预测。:param image_path: 图像路径:param model: 加载的YOLOv8模型:return: 预测结果"""results = model.predict(image_path)return results[0].boxes.cls
Streamlit前端代码

创建一个简单的Web应用:

import streamlit as st
from PIL import Image
import torch# 加载模型
model = YOLO('path/to/yolov8_model.pt')# Streamlit应用
st.title("暴力行为分类系统")# 文件上传
uploaded_file = st.file_uploader("上传图片或视频", type=["jpg", "jpeg", "png", "mp4"])if uploaded_file is not None:# 保存上传的文件到临时目录temp_file_path = f"temp_{uploaded_file.name}"with open(temp_file_path, mode='wb') as f:f.write(uploaded_file.read())# 显示上传的文件if uploaded_file.name.endswith(('jpg', 'jpeg', 'png')):image = Image.open(uploaded_file)st.image(image, caption='Uploaded Image.', use_column_width=True)elif uploaded_file.name.endswith('mp4'):st.video(uploaded_file)# 进行预测predictions = predict(temp_file_path, model)# 输出预测结果if 0 in predictions:st.write("预测结果: 正常")elif 1 in predictions:st.write("预测结果: 暴力")else:st.write("无法识别的行为")

注意事项

  • 上述代码需要根据实际情况调整模型路径等细节。
  • 对于实时摄像头的支持,您可以使用OpenCV来捕获视频流并将其传递给预测函数。
  • 在部署前,请确保所有依赖项都已经安装并且兼容。

http://www.ppmy.cn/embedded/99672.html

相关文章

微软正式确认将在近期关闭经典Windows控制面板

微软在不断测试并为 Windows 添加新功能的同时,也在不断淘汰一些公司认为不再需要的功能。这些功能会被添加到Windows 过时功能的列表中,最近的一项功能是 Paint 3D,该公司宣布它很快就会被淘汰。 与微软似乎希望尽早取消的"3D 画图&quo…

Python计算机视觉——第二章 局部图像描述子

本章旨在寻找图像间的对应点和对应区域。 2.1 Harris角点检测器 Harris 角点检测算法(也称Harris & Stephens 角点检测器)是一个极为简单的角点检测算法。该算法的主要思想是,如果像素周围显示存在多于一个方向的边,我们认为…

[数据集][目标检测]电力场景输电线导线散股检测数据集VOC+YOLO格式3890张1类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):3890 标注数量(xml文件个数):3890 标注数量(txt文件个数):3890 标注…

如何在本地和远程删除 Git 分支?

如何在本地和远程删除 Git 分支? 欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 欢迎来到我的主页,我是博主英杰,211科班出身,就职于医疗科技公司,热衷分享知识,武汉城市开发者社区主理人 擅长.n…

【C/C++】字符或字符串长度及所占内存大小的求法

参考【C/C】字符或字符串长度及所占内存大小的求法_c求整个string的内存大小-CSDN博客 下代码计算字符串的长度和大小。 char str[] "hello";//如果不初始化字符串,则[]里面必须有具体的值,而且最后一个字符为\0 int l strlen(str); cout …

leetcode977:有序数组的平方

有序数组的平方 给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。 public int[] sortedSquares(int[] nums) {int start 0;int end nums.length-1;int[] arr new int[nums.length];for (in…

设计模式 3 单例模式

设计模式 3 创建型模式(5):工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式结构型模式(7):适配器模式、桥接模式、组合模式、装饰者模式、外观模式、享元模式、代理模式行为型模式&#xff0…

鸿蒙OS高级应用开发例题

44项目需要同时进行应用和元服务的开发,并针对当前项目工程中的代码可以分别构建出应用和元服务的包,如何在DevEco Studio中设置不同的构建配置,达成这个目的 A. 在模块级别buld-pronlejson5定义两个target;将两个target的bundleType分别设置…

Java ArrayList和LinkedList

ArrayList ArrayList是Java中最常用的数据结构之一,它是一个动态数组的实现,允许你在程序中存储和管理一个可变大小的对象列表,我们可以添加或删除元素。 ArrayList 继承了 AbstractList ,并实现了 List 接口。 基本概念 Arra…

jenkins 实现二级联动选择参数

需求 有2个参数,一个AppName,一个GitRepository。当选择appName时,动态显示正确的git仓库地址。 注意需要安装插件 Active Choices 添加第一个参数AppName 参数类型选择,Active Choices Reactive Parameter,注意&#…

C语言-写一函数,实现两个字符串的比较。即自己写一个strcmp函数,函数原型为 int strcmp(char *pl,char *p2);

题目要求: 17.写一函数,实现两个字符串的比较。即自己写一个strcmp函数,函数原型为 int strcmp(char *pl,char *p2); 设p1指向字符串s1,p2指向字符串s2。要求当s1s2时,返回值为0;若s1≠s2,返回它们二者第1个不同字符的 ASCI1码差值(如"BOY"与…

MySQL: find_in_set基本使用

一、创建表 CREATE TABLE tb_test (id int(8) NOT NULL auto_increment,name varchar(255) NOT NULL,list varchar(255) NOT NULL,PRIMARY KEY (id) ); INSERT INTO tb_test VALUES (1, name, daodao,xiaohu,xiaoqin); INSERT INTO tb_test VALUES (2, name2, xiaohu,daodao,…

C/C++实现蓝屏2.0

🚀欢迎互三👉:程序猿方梓燚 💎💎 🚀关注博主,后期持续更新系列文章 🚀如果有错误感谢请大家批评指出,及时修改 🚀感谢大家点赞👍收藏⭐评论✍ 前…

javascript利用三元运算符制作补零程序

这里的补零是当数字小于0时自动在前面补零&#xff0c;大于等于10时&#xff0c;前面不用补零。 代码如下 <html><head><meta charset"UTF-8"><title></title></head><body><script>let numprompt("请输入一…

stable diffusion inpainting(img2img+inpaint/inpaint-model)

https://zhuanlan.zhihu.com/p/681250295https://zhuanlan.zhihu.com/p/681250295AIGC专栏4——Stable Diffusion原理解析-inpaint修复图片为例_diffusion inpaint-CSDN博客文章浏览阅读1.7w次,点赞42次,收藏79次。Inpaint是Stable Diffusion中的常用方法,一起简单学习一下。…

25届网安秋招面试之后台信息泄露

吉祥知识星球http://mp.weixin.qq.com/s?__bizMzkwNjY1Mzc0Nw&mid2247485367&idx1&sn837891059c360ad60db7e9ac980a3321&chksmc0e47eebf793f7fdb8fcd7eed8ce29160cf79ba303b59858ba3a6660c6dac536774afb2a6330#rd 《网安面试指南》http://mp.weixin.qq.com/s…

Docker核心技术和实现原理

镜像制作及原因 镜像制作是因为某种需求&#xff0c;官方的镜像无法满足需求&#xff0c;需要我们通过一定手段来自定 义镜像来满足要求。 制作镜像往往因为以下原因 1. 编写的代码如何打包到镜像中直接跟随镜像发布 2. 第三方制作的内容安全性未知&#xff0c;如含有安…

软件工程概述(上)

1、软件的概念、特点和分类 要了解软件工程&#xff0c;首先让我们重新认识一下软件。如今可以说是一个软件定义一切的时代&#xff0c;虽然人工智能发展的如火如荼&#xff0c;但究其本质&#xff0c;核心还是软件。那么&#xff0c;如何给软件下一个定义呢&#xff1f;软件又…

Windows Server查看W3SVC IIS服务器中对应的网站日志

W3SVC日志文件夹中序号的含义&#xff0c;格式就是W3SVC网站ID 如果没有自定义站点的日志路径&#xff0c;日志默认的路径是C:\inetpub\logs\LogFiles\ 基本上每个网站存放日志的文件夹名称都是以W3SVC开头&#xff0c;区别在于后面的ID/编号/序号&#xff0c;对应的是网站各…

IOPaint部署,在服务器Ubuntu22.04系统下——点动科技

这里写目录标题 一、ubuntu22.04基本环境配置1.1 更换清华Ubuntu镜像源1.2 更新包列表&#xff1a;2. 安装英伟达显卡驱动2.1 使用wget在命令行下载驱动包2.2 更新软件列表和安装必要软件、依赖2.2 卸载原有驱动2.3 安装驱动2.4 安装CUDA2.5 环境变量配置 二、安装miniconda环境…