基于深度学习的石头剪刀布手势识别系统演示与介绍(YOLOv12/v11/v8/v5模型+Pyqt5界面+训练代码+数据集)
视频演示
随着人机交互技术的快速发展和智能设备的广泛应用,自然、直观的手势交互已成为提升用户体验的重要方向。石头剪刀布作为一种经典的手势游戏,其识别任务融合了计算机视觉与模式识别的核心技术,对实时性和准确性提出了双重挑战。高效的石头剪刀布手势识别系统不仅能为人机交互提供新颖的交互方式,还可应用于娱乐、教育、智能控制等多个领域。因此,开发基于深度学习的高精度、实时手势识别系统具有重要的研究意义和应用价值。
2.项目演示
2.1 登陆界面

登陆界面比较有特色,需要输入用户名和密码进行登录,同时还有验证码机制,整体界面简洁美观,左侧还增加了关于石头剪刀布的logo。
2.2 用户注册


注册的时候输入用户名、密码,另外还可以设置用户的头像信息,如果头像不选择,则默认使用默认头像。
2.3 主界面

主界面大体分为3个区域,左边侧边栏是功能选择,中间是识别结果展示,右边是结果详细信息展示。
2.4 识别结果界面

选择图片后结果会显示到中间的图像区域中,下边的列表会列出每一个识别的目标信息,选择表格的不同行数,会单独对当前选择的目标进行展示。如下图所示:

2.5 模型选择
我们可以选择其他已经训练好的权重模型文件,方便用新的模型进行系统的检测识别。

2.6 技术栈
语言:python3.10
前端界面:pyqt5
数据库:sqlite(存放用户信息)
模型:yolov5、yolov8、yolov11、yolov12
3.YOLO模型对比和识别效果解析
3.1 yolov5、yolov8、yolov11、yolov12模型对比
如下表格是Ultralytics官方在COCO数据集上进行训练后得到的结果对比:
| 模型 | 尺寸 (像素) |
mAPval 50-95 |
速度 CPU ONNX (毫秒) |
参数 (M) |
FLOPs (B) |
|---|---|---|---|---|---|
| YOLO12n | 640 | 40.6 | - | 2.6 | 6.5 |
| YOLO11n | 640 | 39.5 | 56.1 ± 0.8 | 2.6 | 6.5 |
| YOLOv8n | 640 | 37.3 | 80.4 | 3.2 | 8.7 |
| YOLOv5nu | 640 | 34.3 | 73.6 | 2.6 | 7.7 |
1.精度最高:YOLO12n
•在 mAP 指标上达到 40.6%,显著领先其他模型,尤其比 YOLOv5nu 高出约6.3个百分点,显示出其更强的目标识别能力。
2.速度最优:YOLO11n
•在 CPU 上推理速度最快(56.1 ms),比 YOLOv8n 快约42%,适合对实时性要求高的轻量级部署场景。
3.参数与计算效率:YOLO12n / YOLO11n / YOLOv8n/YOLOv5nu
•三者参数量均为 2.6M,且 FLOPs 较低(YOLO12n/11n仅为6.5B),表明模型结构紧凑,计算负担小。
•YOLOv8n 参数量(3.2M)和计算量(8.7B)最高,但其精度并未显著优于YOLO12n/11n。
4.综合推荐:
•若追求高精度:推荐 YOLO12n(mAP最高,且效率不输同类);
•若需要高速度与低资源消耗:推荐 YOLO11n(速度最快,精度与YOLO12n接近);
•YOLOv5nu 和 YOLOv8n 在精度和速度上均逊于新一代模型,若无特殊兼容需求,可不作为首选。
3.2 数据集分析

数据集中训练集和验证集一共大概7000多张,数据集目标类别主要是三类:石头、剪刀、布。其中石头数据集最多,箭头和布的数据差不多一样。数据集配置代码如下:
names:
- Paper
- Rock
- Scissors
nc: 3
path: train_data
test: test/images/
train: train/images/
val: valid/images/



3.3 训练结果


石头、剪刀、布的混淆矩阵显示中,三种类别识别准确度分别是:94%,91%,94%。


F1指数(F1 Score)是统计学和机器学习中用于评估分类模型性能的核心指标,综合了模型的精确率(Precision)和召回率(Recall),通过调和平均数平衡两者的表现。
当置信度为0.658时,所有类别的综合F1值达到了0.94(蓝色曲线)

mAP@0.5:是目标检测任务中常用的评估指标,表示在交并比(IoU)阈值为0.5时计算的平均精度均值(mAP)。其核心含义是:只有当预测框与真实框的重叠面积(IoU)≥50%时,才认为检测结果正确。
图中可以看到综合mAP@0.5达到了0.961(96.1%),几乎识别都是准确的。
结束语
以上便是博主开发的基于深度学习的石头剪刀布手势识别系统的全部内容,由于博主能力有限,难免有疏漏之处,希望小伙伴能批评指正
关于本篇文章大家有任何建议或意见,欢迎在评论区留言交流!
基于深度学习的石头剪刀布手势识别系统演示与介绍(YOLOv12/v11/v8/v5模型+Pyqt5界面+训练代码+数据集)的更多相关文章
- 基于深度学习的车型识别系统(Python+清新界面+数据集)
摘要:基于深度学习的车型识别系统用于识别不同类型的车辆,应用YOLO V5算法根据不同尺寸大小区分和检测车辆,并统计各类型数量以辅助智能交通管理.本文详细介绍车型识别系统,在介绍算法原理的同时,给出P ...
- 基于深度学习的中文语音识别系统框架(pluse)
目录 声学模型 GRU-CTC DFCNN DFSMN 语言模型 n-gram CBHG 数据集 本文搭建一个完整的中文语音识别系统,包括声学模型和语言模型,能够将输入的音频信号识别为汉字. 声学模型 ...
- 基于深度学习的人脸识别系统(Caffe+OpenCV+Dlib)【一】如何配置caffe属性表
前言 基于深度学习的人脸识别系统,一共用到了5个开源库:OpenCV(计算机视觉库).Caffe(深度学习库).Dlib(机器学习库).libfacedetection(人脸检测库).cudnn(gp ...
- 基于深度学习的人脸识别系统(Caffe+OpenCV+Dlib)【三】VGG网络进行特征提取
前言 基于深度学习的人脸识别系统,一共用到了5个开源库:OpenCV(计算机视觉库).Caffe(深度学习库).Dlib(机器学习库).libfacedetection(人脸检测库).cudnn(gp ...
- 基于深度学习的人脸识别系统(Caffe+OpenCV+Dlib)【二】人脸预处理
前言 基于深度学习的人脸识别系统,一共用到了5个开源库:OpenCV(计算机视觉库).Caffe(深度学习库).Dlib(机器学习库).libfacedetection(人脸检测库).cudnn(gp ...
- 基于深度学习的人脸识别系统系列(Caffe+OpenCV+Dlib)——【四】使用CUBLAS加速计算人脸向量的余弦距离
前言 基于深度学习的人脸识别系统,一共用到了5个开源库:OpenCV(计算机视觉库).Caffe(深度学习库).Dlib(机器学习库).libfacedetection(人脸检测库).cudnn(gp ...
- 基于深度学习的回声消除系统与Pytorch实现
文章作者:凌逆战 文章代码(pytorch实现):https://github.com/LXP-Never/AEC_DeepModel 文章地址(转载请指明出处):https://www.cnblog ...
- VulDeePecker:基于深度学习的脆弱性检测系统
最近的两款软件,VUDDY和VulPecker,假阴性率高而假阳性率低,用于检测由代码克隆引发的漏洞.而如果用于非代码克隆引起的漏洞则会出现高误报率. 本文使用深度学习处理程序中的代码片段,不应由专家 ...
- 基于深度学习的人脸识别系统Win10 环境安装与配置(python+opencv+tensorflow)
一.需要下载的软件.环境及文件 (由于之前见识短浅,对Anaconda这个工具不了解,所以需要对安装过程做出改变:就是Python3.7.2的下载安装是可选的,因为Anaconda已经为我们解决Pyt ...
- 基于深度学习的人脸性别识别系统(含UI界面,Python代码)
摘要:人脸性别识别是人脸识别领域的一个热门方向,本文详细介绍基于深度学习的人脸性别识别系统,在介绍算法原理的同时,给出Python的实现代码以及PyQt的UI界面.在界面中可以选择人脸图片.视频进行检 ...
随机推荐
- 实测提速 60%!Maven Daemon 全面加速 SeaTunnel 编译打包效率
作者 | 张东浩 在大规模数据集成项目中,构建效率尤为关键.本文实测了 Apache SeaTunnel 项目在使用传统 Maven 与新一代构建工具 Maven Daemon(mvnd)下的打包效率 ...
- UFT 对时间的处理
1. 当前时间的后n天 2. 当前时间的前n天 3. 当前时间 eg:
- Kong入门学习实践(7)灰度发布与蓝绿部署
两年前,我在学习K8s的时候有写过一篇基于Nginx Ingress实现灰度发布的博文.这次,我们基于Kong来实践一下.灰度发布的具体实现其实是流量切分,那就让我们先回顾一下流量切分的实现方式. 流 ...
- 11-3 MySQL 中对于 PowerDesigner 的使用
11-3 MySQL 中对于 PowerDesigner 的使用 @ 目录 11-3 MySQL 中对于 PowerDesigner 的使用 1. PowerDesigner的使用 1.1 开始界面 ...
- 手把手教你在 Sevalla 上部署 Next.js 博客:从搭建到上线全流程
很多开发者会纠结:"现在博客平台这么多,为啥还要自己搭博客?" 答案很简单:用 Next.js 搭的博客,是真正属于你的 "数字资产". 为什么选 Next.j ...
- Windows链接创建神器:一键生成符号链接与硬链接的智能批处理工具【NuGet】
[自用工具]NuGet 或各项目中共用部分目录或文件,利用DOS符号链接解决重复文件的多份拷贝,起到节省磁盘空间的作用. 告别复杂的命令行操作!这款增强版批处理脚本让Windows链接创建变得简单.直 ...
- vite使用短链接
增加改配置项 vite.config.js import { defineConfig } from 'vite' import vue from '@vitejs/plugin-vue' impor ...
- springBoot项目打包并部署centos7
打包 部署centos7首准备好jdk环境将jar复制到指定的地方启动服务: nohup java -jar inner-analysis-center-1.0.0.jar --spring.prof ...
- centos7导入很大的数据库脚本
前提因为远程桌面,图形化界面实在是太慢了 所以将压缩数据库文件传入到服务器某个目录下aggs_court.sql.gz解压gunzip aggs_court.sql.gz进入数据库:mysql -p@ ...
- virtual studio 插入 函数注释头 snippet方式
简介 以前通过一个插件就可以管理所有的函数,也可以通过snippet插入 参考链接 如何使用snippet https://blog.csdn.net/weixin_30278237/article/ ...