首页 > 其他分享 >毕设系列-检测专题-基于YOLOV5的手势识别系统

毕设系列-检测专题-基于YOLOV5的手势识别系统

时间:2022-12-19 21:04:18浏览次数:71  
标签:YOLOV5 毕设 -- py hand yaml train weights 识别系统


毕设系列-基于YOLOV5的手势识别系统

我们之前做过一期基于Yolov5的口罩检测系统(​​手把手教你使用YOLOV5训练自己的目标检测模型-口罩,里面的代码是基于YOLOV5 6.0开发的,并且是适用其他数据集的,只需要修改数据集之后重新训练即可,非常方便,但是有些好兄弟是初学者,可能不太了解数据的处理,所以我们就这期视频做个衍生系列,主要是希望通过这些系列来教会大家如何训练和使用自己的数据集。

本期我们带来的内容是基于YOLOV5的手势识别系统,我们将会训练得到能识别10种常用手势的模型,废话不多说,还是先看效果。


毕设系列-检测专题-基于YOLOV5的手势识别系统_目标检测

毕设系列-检测专题-基于YOLOV5的手势识别系统_数据集_02

代码的下载地址是:​​YOLOV5-hand-42: 基于YOLOV5的手势识别系统 (gitee.com)​

毕设系列-检测专题-基于YOLOV5的手势识别系统_计算机视觉_03

配置环境


anaconda安装完成之后请切换到国内的源来提高下载速度 ,命令如下:

conda config --remove-key channels
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/cloud/pytorch/
conda config --set show_channel_urls yes
pip config set global.index-url https://mirrors.ustc.edu.cn/pypi/web/simple

首先创建python3.8的虚拟环境,请在命令行中执行下列操作:

conda create -n yolo5 python==3.8.5
conda activate yolo5

pytorch安装(gpu版本和cpu版本的安装)

实际测试情况是YOLOv5在CPU和GPU的情况下均可使用,不过在CPU的条件下训练那个速度会令人发指,所以有条件的小伙伴一定要安装GPU版本的Pytorch,没有条件的小伙伴最好是租服务器来使用。

GPU版本安装的具体步骤可以参考这篇文章:​​2021年Wind

  • 安装之前一定要先更新你的显卡驱动,去官网下载对应型号的驱动安装
  • 30系显卡只能使用cuda11的版本
  • 一定要创建虚拟环境,这样的话各个深度学习框架之间不发生冲突

我这里创建的是python3.8的环境,安装的Pytorch的版本是1.8.0,命令如下:

conda install pytorch==1.8.0 torchvision torchaudio cudatoolkit=10.2 # 注意这条命令指定Pytorch的版本和cuda的版本
conda install pytorch==1.8.0 torchvision==0.9.0 torchaudio==0.8.0 cpuonly # CPU的小伙伴直接执行这条命令即可
conda install pytorch torchvision torchaudio cudatoolkit=11.3 -c pytorch # 30系显卡的小伙伴执行这里的指令

安装完毕之后,我们来测试一下GPU是否

毕设系列-检测专题-基于YOLOV5的手势识别系统_人工智能_04

pycocotools的安装

后面我发现了windows下更简单的安装方法,大家可以使用下面这个指令来直接进行安装,不需要下载之后再来安装

pip install pycocotools-windows

其他包的安装

另外的话大家还需要安装程序其他所需的包,包括opencv,matplotlib这些包,不过这些包的安装比较简单,直接通过pip指令执行即可,我们cd到yolov5代码的目录下,直接执行下列指令即可完成包的安装。

pip install -r requirements.txt
pip install pyqt5
pip install labelme

数据处理

实现准备处理好的yolo格式的数据集,一般yolo格式的数据是一张图片对应一个txt格式的标注文件。

毕设系列-检测专题-基于YOLOV5的手势识别系统_python_05

标注文件中记载了目标的类别 中心点坐标 和宽高信息,如下图所示:

毕设系列-检测专题-基于YOLOV5的手势识别系统_计算机视觉_06

记住这里的数据集位置,在后面的配置文件中我们将会使用到,比如我这里数据集的位置是:​​C:/Users/chenmingsong/Desktop/hand/hand_gesture_dataset​

配置文件准备

  • 数据配置文件的准备
    配置文件是data目录下的​​hand_data.yaml​​,只需要将这里的数据集位置修改为你本地的数据集位置即可。
  • 模型配置文件的准备
    模型的配置文件主要有三个,分别是​​hand_yolov5s.yaml​​、​​hand_yolov5m.yaml​​、​​hand_yolov5l.yaml​​,分别对应着yolo大中小三个模型,主要将配置文件中的nc修改为我们本次数据集对应的10个类别即可。

模型训练

模型训练的主文件是​​train.py​​,下面的三条指令分别对应着小中大三个模型的训练,有GPU的同学可以将设备换为0,表示使用0号GPU卡,显存比较大的同学可以将batchsize调整为4或者16,训练起来更快。

python train.py --data hand_data.yaml --cfg hand_yolov5s.yaml --weights pretrained/yolov5s.pt --epoch 100 --batch-size 2 --device cpu
python train.py --data hand_data.yaml --cfg hand_yolov5l.yaml --weights pretrained/yolov5l.pt --epoch 100 --batch-size 2
python train.py --data hand_data.yaml --cfg hand_yolov5m.yaml --weights pretrained/yolov5m.pt --epoch 100 --batch-size 2

训练过程中会出现下面的进度条

毕设系列-检测专题-基于YOLOV5的手势识别系统_python_07

等待训练完成之后训练结果将会保存在​​runs/train​​目录下,里面有各种各样的示意图供大家使用。

毕设系列-检测专题-基于YOLOV5的手势识别系统_python_08

模型使用

模型的使用全部集成在了​​detect.py​​目录下,你按照下面的指令指你要检测的内容即可

# 检测摄像头
python detect.py --weights runs/train/exps/weights/best.pt --source 0 # webcam
# 检测图片文件
python detect.py --weights runs/train/exps/weights/best.pt --source file.jpg # image
# 检测视频文件
python detect.py --weights runs/train/exps/weights/best.pt --source file.mp4 # video
# 检测一个目录下的文件
python detect.py --weights runs/train/exps/weights/best.pt path/ # directory
# 检测网络视频
python detect.py --weights runs/train/exps/weights/best.pt 'https://youtu.be/NUsoVlDFqZg' # YouTube video
# 检测流媒体
python detect.py --weights runs/train/exps/weights/best.pt 'rtsp://example.com/media.mp4' # RTSP, RTMP, HTTP stream

比如以我们的口罩模型为例,如果我们执行​​python detect.py --weights runs/train/exps/weights/best.pt --source data/images/0023.png​​的命令便可以得到这样的一张检测结果。

毕设系列-检测专题-基于YOLOV5的手势识别系统_python_09

构建可视化界面

可视化界面的部分在​​window.py​​​文件中,是通过pyqt5完成的界面设计,在启动界面前,你需要将模型替换成你训练好的模型,替换的位置在​​window.py​​的第60行,修改成你的模型地址即可,如果你有GPU的话,可以将device设置为0,表示使用第0行GPU,这样可以加快模型的识别速度嗷。

毕设系列-检测专题-基于YOLOV5的手势识别系统_目标检测_10

现在启动看看效果吧。


标签:YOLOV5,毕设,--,py,hand,yaml,train,weights,识别系统
From: https://blog.51cto.com/u_15754889/5953853

相关文章

  • 计算机毕设——中文分词方法研究与实现
    1.课题意义及目标中文分词技术不断发展,各种中文分词系统层出不穷。中文分词技术应用也原来越广泛。如搜索引擎的应用、语音识别系统、机器翻译、自动分类校对等。学生应通过......
  • 计算机毕设——手机天气预报系统
    目录摘要1需求分析2一、开发背景2二、项目需求分析2总体设计2一、系统规划2二、系统功能界面3设置预报城市界面:3天气显示界面:4Widget桌面小部件界面:5三.设计目标6系统设计6......
  • 毕设之 asterisk
     1。Asterisk体系结构Asterisk系统的体系结构非常明晰,他不同于传统的PSTN交换机,更多的时候,Asterisk被当做一个连通电话的中间件,Asterisk的可扩展性使其可以应用的各个......
  • C/C++大数据行程码识别系统
    C/C++大数据行程码识别系统大数据行程码识别系统一、编程题(60分)大数据行程码是疫情防控的主要手段,请用C语言设计简单的大数据行程码识别系统具体功能描述:1、建......
  • 实现labelme标注的json格式转换为yolov5需要的txt格式
    importos,cv2,jsonimportnumpyasnpclasses=['road']base_path='E:\\aaa\\dataf1\\'path_list=[i.split('.')[0]foriinos.listdir(base_path)]for......
  • Y2、yolov5训练自己的数据集
    一、准备数据image文件夹下存放所有的图片文件annotation文件夹下存放所有的label文件两个文件夹内的图片文件名和label文件名一一对应简单查看一下xml文件:xml文件都......
  • YOLOv5安装
    安装官方的安装文档,由于大家都懂的原因,会遇到pipinstall超时,因此需要更换pip源,具体步骤如下:(1)gitclonehttps://github.com/ultralytics/yolov5.git(2)cdyolov5(3)pip......
  • 基于YOLOv5的手势识别系统(含手势识别数据集+训练代码)
    基于YOLOv5的手势识别系统(含手势识别数据集+训练代码)目录基于YOLOv5的手势识别系统(含手势识别数据集+训练代码)1.前言2.手势识别的方法(1)基于多目标检测的手势识别方法(2......
  • 一个简单的完整人脸识别系统
    一个简单的完整人脸识别系统from__future__importprint_function#便于测试新版本函数fromtimeimporttime#从time模块导入time,因为有些步骤需要计时importlog......
  • xml数据转yolov5的txt代码
    通过labelimg标注的xml文件转换yolov5可训练的txt格式代码。包含读取xml文件代码,保存txt格式代码。  fromlxml.etreeimportElement,SubElement,tostring,Elem......