前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Python实现「手势猜拳游戏」:好玩的实时机器学习项目

Python实现「手势猜拳游戏」:好玩的实时机器学习项目

作者头像
知识浅谈
发布于 2025-05-18 02:27:51
发布于 2025-05-18 02:27:51
7001
代码可运行
举报
文章被收录于专栏:分享学习分享学习
运行总次数:1
代码可运行

本教程将带你实现一个实时手势猜拳游戏识别系统,使用Kaggle公开的「Rock-Paper-Scissors」数据集(包含石头、剪刀、布三种手势),全程仅需CPU即可运行。最终效果可通过摄像头实时识别手势,并与电脑进行猜拳对战!

🎈项目亮点

  • 趣味互动:通过摄像头实现真人猜拳对战
  • 轻量模型:专为CPU优化的微型卷积神经网络(仅0.5MB)
  • 即用数据集:使用TensorFlow官方维护的公开数据集
  • 工业级技巧:包含数据泄露预防、类别平衡处理等实战技巧

🎈环境准备

打开Pycharm,新建项目文件夹

安装所需依赖库

代码语言:javascript
代码运行次数:1
运行
AI代码解释
复制
# 安装所需库(Python 3.8+)
pip install numpy matplotlib opencv-python tensorflow-cpu

🎈数据集说明

使用TensorFlow Datasets内置的「Rock-Paper-Scissors」数据集:

  • 总样本量:2,892张RGB图像(300x300像素)
  • 类别分布:
    • Rock(石头): 840张
    • Paper(布): 840张
    • Scissors(剪刀): 1212张
  • 数据特点:包含不同肤色、手势角度和背景环境

🎈完整实现代码

📍自动下载并加载数据集
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import tensorflow as tf
import tensorflow_datasets as tfds

# 自动下载数据集(首次运行需要等待)
dataset, info = tfds.load('rock_paper_scissors', 
                         split=['train', 'test'],
                         as_supervised=True,
                         with_info=True,
                         shuffle_files=True)

# 提取训练集和测试集
train_ds, test_ds = dataset[0], dataset[1]

# 查看数据集信息
print(f"训练集样本数: {
     info.splits['train'].num_examples}")
print(f"测试集样本数: {
     info.splits['test'].num_examples}")
📍数据预处理与增强
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def preprocess(image, label):
    # 统一尺寸 + 归一化
    image = tf.image.resize(image, (150, 150))
    image = tf.image.rgb_to_grayscale(image)  # 转为灰度图减少计算量
    return image/255.0, label

# 配置数据管道
BATCH_SIZE 
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-05-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
TensorFlow 2.0入门
谷歌于2019年3月6日和7日在其年度TensorFlow开发者峰会上发布了最新版本的TensorFlow机器学习框架。这一新版本使用TensorFlow的方式进行了重大改进。TensorFlow拥有最大的开发者社区之一,从机器学习库到完善的机器学习生态系统已经走过了漫长的道路。
代码医生工作室
2019/06/21
2K0
TensorFlow 2.0入门
TensorFlow可以“预装”数据集了,新功能Datasets出炉
训练机器学习模型的时候,需要先找数据集、下载、装数据集……太麻烦了,比如MNIST这种全世界都在用的数据集,能不能来个一键装载啥的?
量子位
2019/04/23
1.4K0
TensorFlow可以“预装”数据集了,新功能Datasets出炉
使用Python实现深度学习模型:图像语义分割与对象检测
图像语义分割和对象检测是计算机视觉中的两个重要任务。语义分割是将图像中的每个像素分类到特定的类别,而对象检测是识别图像中的目标并确定其位置。本文将介绍如何使用Python和TensorFlow实现这两个任务,并提供详细的代码示例。
Echo_Wish
2024/07/15
2210
使用Python实现深度学习模型:图像语义分割与对象检测
TensorFlow从1到2(九)迁移学习
迁移学习是这两年比较火的一个话题,主要原因是在当前的机器学习中,样本数据的获取是成本最高的一块。而迁移学习可以有效的把原有的学习经验(对于模型就是模型本身及其训练好的权重值)带入到新的领域,从而不需要过多的样本数据,也能达到大批量数据所达成的效果,进一步节省了学习的计算量和时间。
俺踏月色而来
2019/05/10
1.9K0
TensorFlow从1到2(九)迁移学习
使用Python实现深度学习模型:图像语义分割与对象检测
图像语义分割和对象检测是计算机视觉中的两个重要任务。语义分割是将图像中的每个像素分类到特定的类别,而对象检测是识别图像中的目标并确定其位置。本文将介绍如何使用Python和TensorFlow实现这两个任务,并提供详细的代码示例。
Echo_Wish
2024/07/16
1490
基于TensorFlow.js在浏览器上构建深度学习应用
在前面的章节,我们讨论了各种JavaScript概念和运行在浏览器上的各种深度学习框架。在本章中,我们将所有的知识付诸于实践,证明该技术的潜力。
麒思妙想
2020/07/10
1.2K0
掌声送给TensorFlow 2.0!用Keras搭建一个CNN | 入门教程
2019 年 3 月 6 日,谷歌在 TensorFlow 开发者年度峰会上发布了最新版的 TensorFlow 框架 TensorFlow2.0 。新版本对 TensorFlow 的使用方式进行了重大改进,使其更加灵活和更具人性化。具体的改变和新增内容可以从 TensorFlow 的官网找到,本文将介绍如何使用 TensorFlow2.0 构建和部署端到端的图像分类器,以及新版本中的新增内容,包括:
AI科技大本营
2019/05/22
1.6K0
MOOC TensorFlow入门实操课程代码回顾总结(二)
欢迎来到TensorFlow入门实操课程的学习 MOOC TensorFlow入门实操课程代码回顾总结(一) MOOC TensorFlow入门实操课程代码回顾总结(三) 注: 用于表示python代码 粘贴运行结果 目录 5 图像分类基础应用——猫狗分类案例 5.1 导入库 5.2 下载数据集 5.3 查看样本数目 5.4 创建文件夹,存放训练测试数据 5.5 切分为训练数据和测试数据 5.6 模型构建 5.7 数据预处理 5.8 模型训练 5.9 训练结果可视化 5.10 模型推理 6 迁移学
荣仔_最靓的仔
2022/01/05
5650
MOOC TensorFlow入门实操课程代码回顾总结(二)
一次GAN项目背景下的tensorflow_datasets的mnist数据集的下载笔记
https://blog.csdn.net/ccbrid/article/details/103491467
用户3946442
2022/04/11
7960
一次GAN项目背景下的tensorflow_datasets的mnist数据集的下载笔记
10分钟,用TensorFlow.js库,训练一个没有感情的“剪刀石头布”识别器
“剪刀石头布”是我们小时候经常玩的游戏,日常生活中做一些纠结的决策,有时候也常常使用这种规则得出最后的选择,我们人眼能很轻松地认知这些手势,“石头”呈握拳状,“布”掌心摊开,“剪刀”食指和中指分叉,如何让机器识别这些手势呢?
大数据文摘
2019/08/18
1.8K0
TensorFlow从1到2(五)图片内容识别和自然语言语义识别
上一节我们讲过了完整的保存模型及其训练完成的参数。 Keras中使用这种方式,预置了多个著名的成熟神经网络模型。当然,这实际是Keras的功劳,并不适合算在TensorFlow 2.0头上。 当前TensorFlow 2.0-alpha版本捆绑的Keras中包含:
俺踏月色而来
2019/04/25
2.3K0
TensorFlow从1到2(五)图片内容识别和自然语言语义识别
码农の带娃绝技:TensorFlow+传感器,200美元自制猜拳手套
王小新 编译自 Google Cloud Blog 量子位 出品 | 公众号 QbitAI 你们程序员啊,连带娃都这么技术流…… 今年夏天,谷歌云负责维护开发者关系的Kaz Sato带着他的儿子,用一些传感器和一个简单的机器学习线性模型,开发了一个“猜拳机器”,能检测石头剪刀布的手势。 最近他还还根据这个过程写了一份教程,详细介绍了怎样构建这个机器,以及怎样用机器学习算法解决日常问题。 量子位搬运编译整理如下,适合有一定编程基础的同学,需要大约200美元的硬件设备。 我们先来看一下这个机器: 上面视频中,
量子位
2018/03/26
1.2K0
码农の带娃绝技:TensorFlow+传感器,200美元自制猜拳手套
石头、剪刀、布!10分钟带你打开深度学习大门,代码已开源
深度学习技术的不断普及,越来越多的语言可以用来进行深度学习项目的开发,即使是JavaScript这样曾经只是在浏览器中运行的用于处理轻型任务的脚本语言。
量子位
2019/08/21
1.2K0
石头、剪刀、布!10分钟带你打开深度学习大门,代码已开源
使用 MNIST 集入门 Tensoflow(1)
在入门之前,我们需要开发工具,本文使用 JupyterLab,可以用 conda 或者 pip 方式安装。
coding01
2021/02/24
4290
TensorFlow2.0 教程 (2)
强烈安利 Google的Colab,即使你没有一台很好的电脑,也能在这个平台上学习TensorFlow
用户7447819
2021/07/23
4290
使用Python实现深度学习模型:Transformer模型
Transformer模型自提出以来,已经成为深度学习领域,尤其是自然语言处理(NLP)中的一种革命性模型。与传统的循环神经网络(RNN)和长短期记忆网络(LSTM)不同,Transformer完全依赖于注意力机制来捕捉序列中的依赖关系。这使得它能够更高效地处理长序列数据。在本文中,我们将详细介绍Transformer模型的基本原理,并使用Python和TensorFlow/Keras实现一个简单的Transformer模型。
Echo_Wish
2024/06/08
1K0
使用Python实现深度学习模型:Transformer模型
Load and preprocess images
This tutorial shows how to load and preprocess an image dataset in three ways. First, you will use high-level Keras preprocessing utilities and layers to read a directory of images on disk. Next, you will write your own input pipeline from scratch using tf.data. Finally, you will download a dataset from the large catalog available in TensorFlow Datasets.
XianxinMao
2021/07/29
7200
官方资源帖!手把手教你在TensorFlow 2.0中实现CycleGAN,推特上百赞
CycleGAN,一个可以将一张图像的特征迁移到另一张图像的酷算法,此前可以完成马变斑马、冬天变夏天、苹果变桔子等一颗赛艇的效果。
量子位
2019/07/09
5500
TensorFlow 2.0 - CNN / 预训练 / RNN
文章目录 1. CNN 卷积神经网络 2. 预训练模型 3. RNN 循环神经网络 学习于:简单粗暴 TensorFlow 2 1. CNN 卷积神经网络 卷积神经网络,卷积后尺寸计算 tf.keras.layers.Conv2D, tf.keras.layers.MaxPool2D # CNN 模型 class myCNN(tf.keras.Model): def __init__(self): super().__init__() self.conv1 = tf
Michael阿明
2021/02/19
5500
利用Libra进行机器学习和深度学习
随着机器学习的兴起,我们看到了许多伟大的框架和库的兴起,比如scikit learn、Tensorflow、Pytorch。这些框架使得用户更容易创建机器学习模型。但仍然需要遵循包括数据准备、建模、评估在内的整个过程。
磐创AI
2020/08/28
4970
推荐阅读
相关推荐
TensorFlow 2.0入门
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档