基于YOLOV5的手势识别系统源码及模型,训练得到能识别10种常用手势的模型

news2025/1/16 13:44:51

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

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

image-20220305112626887

image-20220305112644529

配置环境

不熟悉pycharm的anaconda的小伙伴请先看这篇csdn博客,了解pycharm和anaconda的基本操作

如何在pycharm中配置anaconda的虚拟环境_dejahu的博客-CSDN博客_如何在pycharm中配置anaconda

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年Windows下安装GPU版本的Tensorflow和Pytorch_dejahu的博客-CSDN博客

需要注意以下几点:

  • 安装之前一定要先更新你的显卡驱动,去官网下载对应型号的驱动安装
  • 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是否

image-20210726172454406

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格式的标注文件。

image-20220219192930908

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

image-20220219193042855

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

配置文件准备

  • 数据配置文件的准备

    配置文件是data目录下的hand_data.yaml,只需要将这里的数据集位置修改为你本地的数据集位置即可。

    image-20220305112800839

  • 模型配置文件的准备

    模型的配置文件主要有三个,分别是hand_yolov5s.yamlhand_yolov5m.yamlhand_yolov5l.yaml,分别对应着yolo大中小三个模型,主要将配置文件中的nc修改为我们本次数据集对应的10个类别即可。

    image-20220305112923940

模型训练

模型训练的主文件是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

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

image-20220219202818016

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

image-20220219202857929

模型使用

模型的使用全部集成在了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的命令便可以得到这样的一张检测结果。

0023

构建可视化界面

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

image-20220219202323877

现在启动看看效果吧。
完整代码下载地址:基于YOLOV5的手势识别系统源码及模型

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ROS2 Launch文件编辑及运行

在第一版的 ROS 中launch 一般使用 xml 文件的格式进行编写和运行,但从 ROS2 中增添了 py 的 python 的可执行文件 作用 为了解决频繁的 ros2 run 命令,和多个节点之间的运行及关闭 特性 launch文件允许我们同时启动和配置多个包含 ROS 2 节点的可执行…

Java学习者看过来。。。这些优质项目千万别错过

程序员宝藏库:https://gitee.com/sharetech_lee/CS-Books-Store 这么主流的编程语言,如果去GitHub搜一下,会发现Java项目多如牛毛。 这就会带来很多困扰,假如有10万个项目,想从其中找到适合初学、进阶等不同阶段的项目…

【OpenFOAM】-olaFlow-算例7-波面自适应网格

算例路径: none 算例描述: 波面附近采用自适应网格划分 学习目标: 动网格设置和使用,dynamicFvMesh dynamicRefineFvMesh 的各参数含义 学习体会:    (1) 在结构附近的加密网格,自适应网格依然会对细网格…

weston 窗口管理 (1)

窗口管理 (1) 一、概述 在传统嵌入式场景下,通常只会运行一个UI程序,故相当于单窗口程序,无需桌面服务器的介入;在桌面系统下,对于每一个UI程序而言,它们的行为相比于嵌入式场景仍然没有发生改变,其对接的仍然是窗口,只不过在同一个时刻允许多个UI程序同时运行. 无论如何对于…

Git的标签:tag

目录 1. 查看标签 1.1 简单查看 1.2 匹配筛选标签 2. 创建标签 2.1 附注标签 2.2 轻量标签 2.3 代码提交之后打标签 2.4 提交标签 3. 删除标签 4. 检出标签 Git 可以给仓库历史中的某一个提交打上标签,以示重要。 比较有代表性的是人们会使用这个功能来标记…

thrift OOM 内存溢出

最近经常发生thrift服务半夜宕机的问题,虽然是测试环境,但是每天早上重启也很恶心。 经过很长时间的摸索,终于找到了原因。先说背景: 我们用的thrift版本是0.9.2,用做service的rpc框架,某一天开始&#x…

安全狗云原生安全产品入选《2022网络安全技术应用试点示范项目名单》

近日,工信部正式发布《2022网络安全技术应用试点示范项目名单》。作为国内云原生安全领导厂商,安全狗也凭借突出的产品能力,入选名单。 据悉,此次评选需层层通过单位申报、部门初审和推荐、专家评审、网上公示等多个环节。安全狗…

玉湖冷链黄铮洪出任广东省物流标准化技术委员会副主任

1月5日,广东省物流标准化技术委员会(第三届)成立大会召开,玉湖冷链执行董事黄铮洪出任副主任委员。 大会现场 根据2022年9月广东省市场监督管理局发布的通告,决定成立第三届广东省物流标准化技术委员会(以下简称「标准化委员会」)。此次大会进…

七、k8s Service详解

文章目录1 Service介绍1.1 userspace 模式1.2 iptables 模式1.3 ipvs 模式2 Service类型3 Service使用3.1 实验环境准备3.2 ClusterIP类型的Service3.3 Endpoint3.4 HeadLiness类型的Service3.5 NodePort类型的Service3.6 LoadBalancer类型的Service3.7 ExternalName类型的Serv…

树莓派3B摄像头的详细使用教程(拍照+录像+监控)

树莓派4B摄像头的详细使用教程(拍照录像监控) 本篇博文将介绍树莓派摄像头是如何在树莓派开发板上从安装到使用的,博主过程中参考了许多帖子,现将整理的比较全面的过程分享出来,供大家参考使用。 排线连接 硬件连接时…

【阶段二】Python数据分析数据可视化工具使用02篇:条形图与雷达图

本篇的思维导图: 条形图 条形图与柱形图类似,几乎可以表达相同多的数据信息。条形图的柱形变为横向,从而导致与柱形图相比,条形图更加强调项目之间的大小对比。尤其在项目名称较长以及数量较多时,采用条形图可视化数据会更加美观、清晰。 代码 # 导入需要的包imp…

java学习day70(乐友商城)授权中心

1.无状态登录原理 1.1.什么是有状态? 有状态服务,即服务端需要记录每次会话的客户端信息,从而识别客户端身份,根据用户身份进行请求的处理,典型的设计如tomcat中的session。 例如登录:用户登录后&#x…

cubeIDE开发, stm32的C库应用分析

一、stm32的C库 cubeIDE针对STM32芯片开发,提供个了两大库,HLA库和C库(集成GNU Tools for STM32工具链时提供,该工具链同样是意法半导体提供,可在http:// www.st.com单独下载),前者帮助开发这简…

P1055 [NOIP2008 普及组] ISBN 号码————C++

文章目录题目[\[NOIP2008 普及组\] ISBN 号码](https://www.luogu.com.cn/problem/P1055)题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1样例 #2样例输入 #2样例输出 #2提示解题思路1Code运行结果解题思路2Code运行结果题目 [NOIP2008 普及组] ISBN 号码 题目描述 …

windows 安装jenkins运行发布vue项目到linux服务器

文章目录背景安装jenkins安装插件安装nodej插件Publish over SSH系统配置Publish over SSH全局工具配置设置node构建项目创建一个freestyle的项目Discard old buildsgit命令报错Host key verification failedBuild背景 由于服务器上运行jenkins很卡,所以对于小公司…

windows安装jenkins运行发布java springboot项目到linux服务器

文章目录背景安装jenkins安装插件安装maven插件Publish over SSH系统配置Global propertiesPublish over SSH全局工具配置设置jdk设置maven设置git构建java maven项目freestyle 或者maven都可以Discard old buildsgit命令报错Host key verification failed每次构建前清理构建环…

可观测性之Log4j2优雅日志打印

可观测性之Log4j2优雅日志打印# 简介 对于Log4j2大家应该都不是很陌生,听说最多的应该是2021年年底出现的安全漏洞了,不过最让大家头痛的应该不仅仅是这个安全漏洞的处理,安全漏洞通过升级最新的依赖版本即可快速解决,平时在使用…

基于Java+SpringMvc+vue+element实现上海汽车博物馆平台

基于JavaSpringMvcvueelement实现上海汽车博物馆平台 博主介绍:5年java开发经验,专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 作者主页 超级帅帅吴 Java毕设项目精品实战案例《500套》 欢迎点赞 收藏 ⭐留言 文末获取源…

C语言.表白神器.爱你之心之闪耀

前言 爱你之心之闪耀,这个名字比较沙雕哈哈哈。。。 爱你之心之闪耀前言爱心函数的选取爱心函数1爱心函数2简单爱心粒子发射原理爱心结构一些宏初始化init创建若干爱心并初始化setHeart展示爱心showHeart爱心变大modifyHeart设置音乐主函数Love.hLove.cpp祝有情人&a…

【有营养的算法笔记】一文轻松学会高精度算法(加减乘除)

👑作者主页:进击的安度因 🏠学习社区:进击的安度因(个人社区) 📖专栏链接:有营养的算法笔记 文章目录一、前言二、高精度加法1、思想及模板2、代码实现三、高精度减法1、思路及模板2…