# gesture_recognition_project_2 **Repository Path**: xya-123/gesture_recognition_project_2 ## Basic Information - **Project Name**: gesture_recognition_project_2 - **Description**: 基于ResNet18深度学习的手势识别探究,与上一个框架形成对比 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-16 - **Last Updated**: 2025-12-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 基于深度学习的手势识别系统 (Deep Learning Hand Gesture Recognition) ## 📖 项目简介 本项目是手势识别探究的第二阶段。针对**第一阶段(MediaPipe + 传统机器学习)** 中模型对旋转角度敏感、无法处理复杂几何变换的局限性,本项目探索了基于 **卷积神经网络 (CNN)** 的端到端识别方案。 通过使用 ResNet18 预训练模型进行迁移学习,并结合 在线数据增强 (Online Augmentation) 和 对抗性负样本 (Adversarial Negative Samples) 策略,本项目成功实现了对多角度、变形手势的高鲁棒性识别。 主要特性: 几何鲁棒性:通过 CNN 学习高维语义特征,解决手势旋转识别难题。 Web 交互:基于 Gradio 构建了静态网页演示,专注于展示模型的泛化能力。 ## 🖐️ 识别手势 系统支持以下 7 种 类别: - ✌️ peace - ✊ fist - ✋ palm - 🤟 love_you - 👉 finger_gun - 👌 ok (针对性优化,消除人脸干扰) - 🚫 nothing (负样本,包含乱动手、杂乱背景、人脸干扰) ## 📁 项目结构 ``` text gesture_recognition_project_2/ ├── data/ │ ├── raw_videos/ # 原始视频数据 │ └── processed_images/ # 经过Letterbox裁剪处理的训练集图片 ├── images/ # PROJECT_JOURNEY.md的插图 ├── models/ # 训练好的最优模型权重 │ ├── class_names.json # 类别索引映射文件 │ └── training_history.png # 训练过程 Loss/Acc 曲线 ├── scripts/ # 核心代码 │ ├── 1_create_image_dataset.py │ ├── 2_train_cnn.py │ └── 3_web_demo.py ├── PROJECT_JOURNEY.md # 个人实践过程中遇到的问题、解决方法和心得总结 ├── README.md # 项目说明 └── requirements.txt # 依赖包列表 ``` ## 🚀 快速开始 ### 安装依赖 ```bash pip install -r requirements.txt ``` ### 网页演示 (Web Demo) 由于实时视频流存在严重的域偏移 (Domain Shift) 问题,本项目采用 Gradio 构建 Web 端演示,支持上传图片或网页拍照进行高精度识别。 ``` Bash python scripts/3_web_demo.py 启动后访问终端显示的本地链接 (如 http://127.0.0.1:7860)。 ``` ## 🔬 核心结论 传统方法 (Phase 1):胜在环境鲁棒性,无视背景,但输在对角度的严苛要求。 深度学习 (Phase 2):胜在几何鲁棒性,能看懂各种姿势的手,但极其依赖数据的纯净度和多样性。