yolov5简单手势识别

news2024/11/25 19:27:10

实验目的

实验要求只需要识别五个简单的手势即可,分别对应的一下五个动作

动作对应标签名
点赞good
OKok
单手比心love
数字 5five
数字8eight

使用yolov5实现目标检测功能,有一下几个主要步骤

  1. 环境配置(包括conda、labelimg、yolov5的下载)
  2. 图片标签
  3. 模型训练
  4. 模型测试(图片+视频)

附上实验结果
在这里插入图片描述
在这里插入图片描述

环境配置

Anaconda安装

推荐使用Anconda,它是python的一个集成管理工具,提供了包管理与环境管理的功能,可以很方便地解决多版本python并存、切换以及各种第三方包安装问题。

anconda安装不难,很多博主都有教程,可以看看他们的,不再赘述了

可以参考这个http://t.csdnimg.cn/vpmbv

Anconda的使用教程:

  • 在Anconda中主要使用的两个程序是Anaconda Prompt 和Anaconda Navigator。

  • Anaconda Prompt就是我们的cmd,以后的创建环境和切换环境,和pip安装各种包全在这里。
    (可以通过指令创建虚拟环境)

    python --version 查看python版本
    conda create -n env_name python=3.8 创建一个python版本为3.8的自命名虚拟环境
    conda remove -n env_name --all 移除自命名虚拟环境
    
  • Anaconda Navigator为可视化管理软件
    我们创建的环境和环境里的安装的包可以在Environments里查看,也可以在这里创建虚拟环境和移除虚拟环境,还可为每个独立的环境安装需要的包

Pycharm安装

PyCharm是使用最广泛的一种集成开发环境适用于Python编程语言。它对于代码的检索、提示和补全非常友好,同时便于跨平台开发。

官网下载地址:https://www.jetbrains.com/pycharm/

至于破解版自己想办法咯

注意在使用pycharm进行开发时,选择对应的conda环境

yolov5环境配置

步骤一:环境创建

打开anaconda prompt 控制台,创建一个自己的yolov5环境

conda create -n yolov5 python=3.9

再输入y,安装内容

激活环境

conda activate yolov5

步骤二:Pytorch安装

Pytorch的安装

安装pytorch之前,最好先配置清华镜像源,否则下载速度很慢

pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

官网下载地址:https://pytorch.org/get-started/locally/

在官网选择对应的版本(在英伟达控制面版左下角的系统信息中的组件里查看自己合适哪个)

步骤三:yolov5下载

下载yolov5自身环境

Github地址:https://github.com/ultralytics/yolov5

将这个GitHub库的文件压缩包下载下来,并解压,会发现有一个requirements.txt文件

来到yolo-master目录下,输入命令安装剩余环境

pip install -r .\requirements.txt

将下载好的模型文件yolov5s.pt放到文件夹,重新运行测试文件

python detect.py

这样就完成了官方案例的检测,也证明你配置好了

Labelimg安装

注意要在yolov5的环境下

用gitbash打开,运行

git clone https://github.com/tzutalin/labelImg

然后

pip install pyqt5`

下好后,直接在.whl文件当前文件夹右键运行cmd,执行

pip install PyQt5-5.13.0-5.13.0-cp35.cp36.cp37.cp38-none-win_amd64.whl

然后安装lxml:

pip install lxml

然后打开labelimg的文件夹在cmd中执行

pyrcc5 -o libs/resources.py resources.qrc

然后再该文件夹下

python labelImg.py

启动labelimg

在使用labelimg的时候不要关闭命令行控制台哦

数据标注

创建一下的文件格式

master
	--images //存放你要进行打标签的图片
	--labels //存放标签结果

在labelimg中左边选择文件目录为master/images,存放目录为master/labels,将左侧save下方的东西点成yolov

在上侧选项栏中的view选择自动保存

接下来可以打标签啦

注意

  • w可以快速进入画框模式,d为下一个 a为上一个
  • 标签时记得将原有的默认标签换成你自己的(在labelimg中的data文件夹的txt文件)

模型训练

将yolov5-master的data文件夹中coco128.yaml复制一份并粘贴回该文件夹改个名handSize 并修改内容

# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
path: ../handSize/master # dataset root dir
train: images  # train images (relative to 'path') 128 images
val: images  # val images (relative to 'path') 128 images
test:  # test images (optional)

# Classes
names:
  0: good
  1: five
  2: eight
  3: love
  4: ok

将yolov5-master的model文件夹中yolov5s.yaml复制一份并粘贴回该文件夹改个名handSize并修改内容

nc: 5  # number of classes 修改分类数量

打开train.py修改这两行

其实就是修改文件路径为刚刚修改的那两个

parser.add_argument('--cfg', type=str, default=ROOT / 'models/handSize.yaml', help='model.yaml path') 

parser.add_argument('--data', type=str, default=ROOT / 'data/handSize.yaml', help='dataset.yaml path')

修改训练轮数

parser.add_argument('--epochs', type=int, default=100, help='total training epochs')

修改为gpu模式

parser.add_argument('--device', default='0', help='cuda device, i.e. 0 or 0,1,2,3 or cpu')

然后执行train.py

注意环境!!!

训练需要一定时间,看大家电脑实力了

yolov5-master\runs\train中查看训练结果

模型检测

图片检测

将要检测的图片放在data/images

将刚刚训练的结果best.pt放在yolov5-master

修改detect.py

parser.add_argument('--weights', nargs='+', type=str, default=ROOT / 'best.pt', help='model path or triton URL')

# 目标图片路径
parser.add_argument('--source', type=str, default=ROOT / 'data/images', help='file/dir/URL/glob/screen/0(webcam)')

parser.add_argument('--data', type=str, default=ROOT / 'data/handSize.yaml', help='(optional) dataset.yaml path')

parser.add_argument('--conf-thres', type=float, default=0.25, help='confidence threshold')

运行detect.py

实时视频检测

修改detect.py

parser.add_argument('--source', type=str, default='0', help='file/dir/URL/glob/screen/0(webcam)')
# 0 是指电脑默认的摄像头

运行detect.py

参考文献

  1. anaconda的安装http://t.csdnimg.cn/nCyrV
  2. labelimg的使用http://t.csdnimg.cn/asZTb
  3. labelimg的安装http://t.csdnimg.cn/MmXnk
  4. 训练教程【【一看就懂,一学就会】yolov5保姆级打标签、训练+识别教程】https://www.bilibili.com/video/BV1rT411f7Up?vd_source=85cf7c918a14ac5619e90f4590db906e
  5. 视频检测【从0开始运行YOLOV5:8、YOLOV5使用本机摄像头实时检测】https://www.bilibili.com/video/BV1qe4y1W7n9?vd_source=85cf7c918a14ac5619e90f4590db906e

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

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

相关文章

【解决|三方工具】导入 XChart 后提示丢失关于 TMPPro 工具引用

开发平台:Unity 2021 版本 插件版本:XChart 3.0:官方文档 - https://github.com/XCharts-Team/XCharts   问题描述 导入 XChart 插件至 Unity 中出现 目录:Component、Theme 等提示丢失 TMPPro(TextMeshPro 工具&…

iOS实时查看App运行日志

目录 一、设备连接 二、使用克魔助手查看日志 三、过滤我们自己App的日志 📝 摘要: 本文介绍了如何在iOS iPhone设备上实时查看输出在console控制台的日志。通过克魔助手工具,我们可以连接手机并方便地筛选我们自己App的日志。 &#x1f4…

Java报表是什么?盘点2024最实用的四款Java报表!

Java报表工具在Java环境下发挥着重要的作用,它们通过提供可视化操作界面,支持通用jdbc数据库,并可以输出多种格式报表,帮助用户更好地处理和分析数据。这些工具应用广泛,例如在数据展示、数据统计和分析、数据监控以及…

项目经验简单总结

引擎 unity 2020 语言 C# lua python(用于工具链) java (用于SDK对接) js(PC WEB SDK对接) 编辑器 VS VSCODE IDEA eclipse 项目开发模块规划分 主项目工程,UI资源项目工程,模型场景资源项目工程 主项目工程:所有的…

GC6236,GC6208,GC6209镜头驱动芯片选型,多应用于摄像机镜头,家庭监控云台驱动等产品中

国产芯片GC6236,GC6208,GC6209 为5V摄像机镜头驱动芯片,电压范围在3~5.5(V),最大持续电流可达0.8(A)最高工作温度在-40~100之间。其特点都具有5V多通道,低噪步进电机驱动和霍尔自动光圈驱动等。可应用在摄像机镜头,家庭…

深度学习|3.6 激活函数 3.7 为什么需要非线性激活函数

激活函数 主要有sigmoid函数、tanh函数、relu函数和leaky relu函数 tanh函数相比sigmoid函数是具有优势的,因为tanh函数使得输出值的平均值为0,而sigmoid函数使得输出值的平均值为1/2,对下一层来说tanh输出的0更好进行处理。 激活函数tanh…

【数据结构和算法】 相等行列对

其他系列文章导航 Java基础合集数据结构与算法合集 设计模式合集 多线程合集 分布式合集 ES合集 文章目录 其他系列文章导航 文章目录 前言 一、题目描述 二、题解 2.1 三层循环 2.2 哈希 二层循环 三、代码 3.1 三层循环 3.2 哈希 二层循环 四、复杂度分析 4.1 …

Eureka注册及使用

一、Eureka的作用 Eureka是一个服务注册与发现的工具,主要用于微服务架构中的服务发现和负载均衡。其主要作用包括: 服务提供者将自己注册到Eureka Server上,包括服务的地址和端口等信息。服务消费者从Eureka Server上获取服务提供者的地址…

C++入门【17-C++ 字符串】

C 字符串 C 提供了以下两种类型的字符串表示形式: C 风格字符串C 引入的 string 类类型 C 风格字符串 C 风格的字符串起源于 C 语言,并在 C 中继续得到支持。字符串实际上是使用 null 字符 \0 终止的一维字符数组。因此,一个以 null 结尾…

2023年度十大科技名词发布:大语言模型、脑机接口在列

源自:IT之家 “人工智能技术与咨询” 发布 IT之家 12 月 26 日消息,据光明日报,全国科学技术名词审定委员会事务中心联合国家语言资源监测与研究平面媒体中心、蜜度微热点研究院、万方数据、百度百科、百度指数、《中国科技术语》杂志社等…

uni-app 前后端调用实例 基于Springboot 数据列表显示实现

锋哥原创的uni-app视频教程: 2023版uniapp从入门到上天视频教程(Java后端无废话版),火爆更新中..._哔哩哔哩_bilibili2023版uniapp从入门到上天视频教程(Java后端无废话版),火爆更新中...共计23条视频,包括:第1讲 uni…

【VTK三维重建-体绘制】第四期 VTK中GPU加速

很高兴在雪易的CSDN遇见你 VTK技术爱好者 QQ:870202403 前言 上期内容讲到VTK的体绘制技术vtkGPUVolumeRayCastMapper,本文分享VTK中GPU加速的相关内容,希望对各位小伙伴有所帮助! 感谢各位小伙伴的点赞关注,小易会…

国标GB28181对接的时候如何配置服务端口和本地端口

目 录 一、国标GB28181对接需要配置的端口等参数 二、GB28181服务器端口的配置:SIP服务器端口 三、GB28181设备测端口的配置:本地SIP端口 (一)本地SIP端口配置的意义 (二&#xf…

一文初识Linux进程(超详细!)

🎬慕斯主页:修仙—别有洞天 ♈️今日夜电波:HEART BEAT—YOASOBI 2:20━━━━━━️💟──────── 5:35 🔄 ◀️ ⏸ ▶️ ☰ …

QT上位机开发(绘图软件)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 稍微复杂一点的软件,一般都是带有绘图功能。绘图的意义,不仅仅是像CAD一样,可以进行模型的设计、比对和调试。它…

数字图像处理(3)——频域图像增强

🔥博客主页:是dream 🚀系列专栏:深度学习环境搭建、环境配置问题解决、自然语言处理、语音信号处理、项目开发 💘每日语录:贤才,难进易出;庸才,易进易初出;…

IDA入门【二】IDA数据显示窗口

主窗口 IDA图形视图 图形视图会让人联想到程序流程图,因为它将一个函数分解成许多基本块,以生动显示该函数由一个块到另一个块的控制流程。 在屏幕上你会发现,IDA使用不同的彩色箭头区分函数块之间各种类型的流。 根据测试条件&#xff0c…

【Spring实战】15 Logback

文章目录 1. 依赖2. 配置3. 打印日志4. 启动程序5. 验证6. 调整日志级别7. 代码详细总结 Spring 作为一个现代化的 Java 开发框架,提供了很多便利的功能,其中包括灵活而强大的日志记录。本文将介绍如何结合 Spring 和 Logback 配置和使用日志&#xff0c…

旅游平台网页前后端

功能清单 游客功能 用户注册、登录登录权限拦截按名称搜索房间支付流程查看订单信息和状态评论预定过的房间,并自动修改订单状态查看统计剩余房间数量,数量为0时不可预定 管理员功能 房间分类管理 类型的删除、修改、查询(准备添加增添功能…

一文通透Text Embedding模型:从text2vec、openai-ada-002到m3e、bge

前言 本文一开始是属于此文《知识库问答LangChainLLM的二次开发:商用时的典型问题及其改进方案》的1.2节,但为把Text Embedding模型阐述的更为精准、全面,特把那部分的内容抽取出来,不断完善成此文 第一部分 衡量文本向量表示效果…