基于深度学习的石头剪刀布手势识别系统演示与介绍(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界面.在界面中可以选择人脸图片.视频进行检 ...
随机推荐
- Kerberos身份验证在ChunJun中的落地实践
Kerberos,在古希腊神话故事中,指的是一只三头犬守护在地狱之门外,禁止任何人类闯入地狱之中. 那么在现实中,Kerberos指的是什么呢? 一.Kerberos介绍 01 Kerberos是什么 ...
- Spring 概述和依赖注入(DI)
Spring概述 Spring框架是一个轻量级的企业级开发的一站式解决方案 Spring框架主要提供Ioc容器.AOP.数据访问.WEB开发.消息.测试等相关技术的支持 每一个被Spring管理的Ja ...
- C2065错误
简介 应该是编译器出现了问题 有的时候 我加入注释就会报错.贼烦人.算了 还是用英文写注释没毛病. 其实核心解决方案 https://blog.csdn.net/weixin_43975504/art ...
- SciTech-Mathmatics-Probability+Statistics-Population Vs. Sampling: Representative Samples + How to obtain Samples
Difference: Population vs. Sample BY ZACH BOBBITTPOSTED ON NOVEMBER 27, 2020 Often in statistics we' ...
- SciTech-Mathmatics-Mathmatical Analysis-Series: 解数列通项的通用模型
解数列通项的通用模型
- 关闭Python函数执行期间的标准输出
Suppressing Stan optimizer printing in Python 1 # from https://stackoverflow.com/questions/11130156/ ...
- 进阶篇:3.3.1)DFM铸造-压铸件设计
本章目的:设计符合压铸工艺的零件,不再犯简单错误,不必再为反复修改模具而烦恼. 1.基础阅读: 进阶篇:2)DFMA的介绍 进阶篇:2.3)DFMA的运用方法(个人方法) 2.压铸的概念 2.1 压铸 ...
- Django实时通信实战:WebSocket与ASGI全解析(上)
一.实时通信的核心:WebSocket 协议 WebSocket 介绍 在 Web 开发中,实时通信场景(如在线聊天.实时数据监控.协作工具等)越来越常见.传统的 HTTP 协议基于 "请求 ...
- python2 & python3
如果你的代码需要同时在 Python 2 和 Python 3 中运行, 使用:from __future__ import absolute_import, print_function
- Swgger3 接入
接入 引入依赖 引用 Knife4j 的 starter <dependency> <groupId>com.github.xiaoymin</groupId> & ...