当前位置: 首页 > article >正文

基于YOLOv5的教室人数检测统计系统

基于YOLOv5的教室人数检测统计系统可以有效地用于监控教室内的学生数量,适用于多种应用场景,比如

  • 自动考勤、安全监控或空间利用分析
    在这里插入图片描述

以下是如何构建这样一个系统的概述,包括环境准备、数据集创建、模型训练以及如何处理不同类型的媒体输入。

代码布置

.
├── dataset # 数据集
│   ├── annotations # XML 标签
│   ├── images # 图片
│   └── labels # txt 标签
├── detect.sh # detect shell 脚本
├── hellodata.py # 数据探索、预处理
├── LICENSE
├── README.md
├── res
│   ├── demo_picture1.png # 样例图片
│   └── demo_picture2.png
├── runs
│   ├── detect # 训练后的文件结果
│   └── train # 训练后的权重
├── train.sh # train shell 脚本
├── xml2txt.py # 将 XML 转换为 txt 标签
└── yolov5 # 从 @ultralytics/yolov5 clone
    ├── data
    │   ├── coco.yaml
    │   ├── headset.yaml # 自定义训练集
    │   ├── hyp.scratch.yaml
    │   ├── images # 存放 detect 输入数据
    │   │   ├── bus.jpg
    │   │   └── zidane.jpg
    │   └── videos # 存放 detect 输入数据
    ├── detect.py
    ├── Dockerfile
    ├── hubconf.py
    ├── models # 预训练模型 YAML 文件
    ├── requirements.txt # Python 依赖库
    ├── test.py
    ├── train.py
    ├── utils
    └── weights # 预训练权重

数据排布

目标检测 (Object Detection) 在教室人数统计上的应用尝试
先借助 YOLOv5 预训练模型对图片数据集进行训练,再测试多种输入流
数据集下载:Classroom Monitoring Dataset - kaggle
images 图片

partA 2000张,格式: [PartA_num].jpg
partB 2405张,格式:[PartB_num].jpg
annotations 标签,标注了图片中 目标的类别和坐标位置
partA 2000条,格式:[PartA_num].xml
partB 2405条,格式:[PartB_num].xml

主要工具包版本为 PyTorch 1.7.1+cu110 和 Python 3.8.5

代码运行

安装 Python 库依赖:pip3 install -r yolov5/requirements.txt
下载预训练权重,把下载的 .pt 文件部署在 yolov5/weights/ 路径下

代码训练

为了方便执行,编写了脚本 detect.sh 和 train.sh,分别进行训练与预测测试
根据训练效果调整 train.sh 文件中常用参数:

-epochs # 训练的 epoch,默认值 300
--batch-size # 默认值 16
--cfg yolov5s.yaml --weights '' # 从头开始训练
--cfg yolov5s.yaml --weights yolov5s.pt # 从预训练模型开始训练
--data # 数据集的配置文件,默认为 data/coco128.yaml
--resume # 是否从最新的 last.pt 中恢复训练,布尔值
--evolve # 进化超参数 (Evolve Hyperparameters),布尔值
--cache-images # 缓存图片可以更快的开始训练,布尔值
--weights # 初始化参数路径,默认值 ''
--adam # 使用 adam 优化器,布尔值

一般只需改动这两个脚本文件就可,如需训练自定义的数据集,请参考官方文档:Train Custom Data - YOLOv5 Documentation

其他

自定义数据集
观察数据
数据集大小
数据集样本
图像分辨率
数据预处理
数据清洗,观察发现,有一些图像的 label 存在缺失,在 XML 转换 TXT 的过程中一并丢弃
YOLOv5 原生预处理
搭建模型,可视化分析

分析与调整训练,提高模型泛化能力

结果

多视角 稳定识别!
demo 的 detect 结果:
在这里插入图片描述

最后

计算机视觉、图像处理、毕业辅导、作业帮助、代码获取,远程协助,代码定制,私聊会回复!

http://www.kler.cn/a/315377.html

相关文章:

  • 蓝队知识浅谈(上)
  • RabbitMQ高效的消息队列中间件原理及实践
  • vscode远程连接服务器并启用tmux挂载进程
  • 软件测试:测试用例详解
  • 【2024软考架构案例题】你知道 Es 的几种分词器吗?Standard、Simple、WhiteSpace、Keyword 四种分词器你知道吗?
  • 半导体企业如何利用 Jira 应对复杂商业变局?
  • 浅谈Linux中文件与目录的ACL
  • MAC 禁用 DS_Store 文件
  • tomcat,el表达式执行带参数命令,字符串数组,String[],el表达式注入
  • leetcode155.最小栈,两个栈
  • TypeError: a bytes-like object is required, not ‘str‘ - 完美解决方法
  • 区块链行业DDoS防护:直面DDoS攻击
  • 【Linux】初识信号与信号产生
  • 非root用户安装Mysql8.0
  • python函数的一些介绍
  • 人物一致性
  • [数据集][目标检测]红外微小目标无人机直升机飞机飞鸟检测数据集VOC+YOLO格式7559张4类别
  • 【嵌入式人工智能】嵌入式AI在物联网中如何应用
  • CORS跨域+Nginx配置、Apache配置
  • Python | Leetcode Python题解之第421题数组中两个数的最大异或值
  • 【PSINS】基于PSINS工具箱的EKF+UKF对比程序|三维定位|组合导航|MATLAB
  • NoSql数据库Redis知识点
  • ppt一键生成免费版软件有哪些?如何高效生成论文答辩?
  • kafka发送事件的几种方式
  • DeepCross模型实现推荐算法
  • 【软件测试】--xswitch将请求代理到测试桩