Skip to content

137277900675a/magicwand-challenge

Repository files navigation

AI算法工程师(实习)线上任务比拼

比拼概述

欢迎参加 昊喆智能 AI算法工程师实习岗位线上任务比拼!本次比拼将基于我们的核心项目"AI魔法棒"手势识别系统,全面考察你的AI模型理解、API开发、前端技能和Git协作能力。

截至提交时间:2025年9月1日

🎯 比拼目标

通过实际项目开发,展示你在以下方面的能力:

  • CNN深度学习模型的理解与应用
  • Python后端API服务开发
  • 前端界面开发与用户体验设计
  • Git版本控制与团队协作
  • 问题解决能力与创新思维

📋 任务详情

任务背景

"AI魔法棒"是一个基于IMU传感器数据的手势识别系统,能识别13种不同的手势动作。由于参赛者没有实际硬件设备,我们将提供模拟数据和完整的项目框架。

核心任务列表

📋 建议的任务执行顺序: 由于项目缺少预训练模型文件,建议按以下顺序进行:

  1. 先完成任务四(模拟数据生成器)- 为模型训练提供数据
  2. 再进行任务一(模型理解与分析)- 分析并训练模型
  3. 然后完成任务二(API服务完善)- 完善后端服务
  4. 接着进行任务三(前端界面开发)- 开发用户界面
  5. 最后完成任务五(Git协作与部署)- 整合部署

🔸 任务一:模型理解与分析 (25分)

目标:深入理解现有CNN模型架构并进行优化分析

具体要求

  1. 模型架构分析 (10分)

    • 阅读 CNNTrainRaw.py 中的模型定义
    • 绘制模型架构图(可使用工具或手绘扫描)
    • 分析每层的作用和参数量
    • 计算模型的总参数数量
  2. 性能优化建议 (10分)

    • 分析当前模型的优缺点
    • 提出至少3个具体的优化建议
    • 解释优化方案的理论依据
  3. 数据处理流程 (5分)

    • 梳理从原始IMU数据到模型输入的完整流程
    • 识别数据预处理中的关键步骤
  4. 模型训练 (额外要求)

    • 由于项目缺少预训练模型,需要先运行训练脚本生成模型
    • 可使用模拟数据进行训练测试

提交物

  • model_analysis.md - 模型分析报告
  • model_architecture.png/jpg - 模型架构图
  • model.h5 - 训练好的模型文件

🔸 任务二:API服务完善 (30分)

目标:基于现有的FastAPI框架,完善API服务功能

具体要求

  1. 代码理解与重构 (15分)

    • 理解 main.py 中的API结构
    • 重构代码,提高可读性和可维护性
    • 添加详细的中文注释
  2. 新增功能接口 (10分)

    • 添加批量预测接口 /api/v1/predict_batch
    • 添加模型统计信息接口 /api/v1/stats
    • 添加手势数据上传接口 /api/v1/upload_gesture
  3. 错误处理与日志 (5分)

    • 完善异常处理机制
    • 添加结构化日志记录
    • 实现请求限流功能

提交物

  • 完善的 main.py 文件
  • api_documentation.md - API接口文档

🔸 任务三:前端界面开发 (25分)

目标:开发一个用户友好的Web界面来展示手势识别功能

具体要求

  1. 主页面设计 (10分)

    • 创建响应式主页面
    • 包含项目介绍和功能展示
    • 美观的UI设计,体现"魔法"主题
  2. 手势识别界面 (10分)

    • 实时手势识别展示页面
    • 支持上传IMU数据文件进行识别
    • 显示识别结果和置信度
    • 可视化显示13种手势类型
  3. 数据可视化 (5分)

    • IMU数据的实时波形图
    • 预测概率的柱状图/雷达图
    • 历史识别记录展示

技术要求

  • 可使用任何前端框架(React, Vue, 原生JS等)
  • 必须与后端API正确交互
  • 移动端友好的响应式设计

提交物

  • 完整的前端项目文件夹 frontend/
  • frontend_guide.md - 前端说明文档

🔸 任务四:模拟数据生成器 (10分)

目标:由于没有实际硬件,开发IMU数据模拟器

具体要求

  1. 数据模拟器 (7分)

    • 创建 data_simulator.py
    • 模拟13种手势的IMU数据
    • 数据格式与原始硬件输出一致
    • 支持添加噪声和变化
  2. WebSocket实时数据流 (3分)

    • 实现WebSocket接口推送模拟数据
    • 支持实时手势识别演示

提交物

  • data_simulator.py - 数据模拟器
  • simulator_guide.md - 使用说明

🔸 任务五:Git协作与部署 (10分)

目标:展示版本控制和项目部署能力

具体要求

  1. Git使用规范 (5分)

    • 清晰的commit message
    • 合理的分支策略
    • 完整的README.md文件
  2. Docker化部署 (5分)

    • 编写Dockerfile
    • 创建docker-compose.yml
    • 一键启动整个系统

提交物

  • 规范的Git仓库
  • Dockerfiledocker-compose.yml
  • 完善的 README.md

📊 评分标准

总分:100分

任务模块 分值 评分重点
模型理解与分析 25分 技术深度、分析质量、创新思维
API服务完善 30分 代码质量、功能完整性、性能优化
前端界面开发 25分 UI/UX设计、交互体验、技术实现
模拟数据生成器 10分 实用性、数据质量、技术创新
Git协作与部署 10分 规范性、完整性、易用性

详细评分细则

⭐ 优秀 (90-100分)

  • 超额完成所有任务要求
  • 代码质量高,有创新性改进
  • 技术理解深入,分析透彻
  • UI设计精美,用户体验优秀

⭐ 良好 (75-89分)

  • 完成大部分任务要求
  • 代码结构清晰,功能正确
  • 技术理解正确,分析合理
  • UI界面美观,功能完整

⭐ 及格 (60-74分)

  • 完成基本任务要求
  • 代码可运行,基本功能实现
  • 技术理解基本正确
  • 界面简洁,基本可用

❌ 不及格 (< 60分)

  • 未完成核心任务
  • 代码无法运行或错误较多
  • 技术理解有明显错误
  • 界面缺失或无法使用

🚀 开始指南

环境准备

  1. 克隆项目仓库

    git clone [项目仓库地址]
    cd magicwand-challenge
  2. 安装依赖

    pip install -r requirements.txt

    注意

    • 项目包含TensorFlow、FastAPI等多个框架的依赖
    • 如果遇到NNOM本地依赖安装问题,可先注释掉 ./nnom-master
    • 建议使用Python 3.8-3.11版本以确保兼容性
  3. 训练模型(首次运行必需)

    # 首先需要准备训练数据或使用模拟数据
    python CNNTrainRaw.py
  4. 启动API服务

    python main.py

重要提示

  • 由于项目中缺少预训练模型文件,首次运行需要先训练模型
  • 如果没有真实训练数据,建议先完成"任务四:模拟数据生成器"来生成训练数据

项目结构

magicwand-challenge/
├── main.py                      # FastAPI主服务
├── CNNTrainRaw.py              # 模型训练脚本
├── CNNTestSerialRaw.py         # 模型测试脚本  
├── Serial_Read.py              # 串口数据读取
├── requirements.txt            # 依赖包列表
└── submissions/                # 你的提交文件夹(需要创建以下文件)
    ├── model_analysis.md       # 模型分析报告
    ├── model_architecture.png  # 模型架构图
    ├── api_documentation.md    # API接口文档
    ├── frontend/               # 前端项目文件夹
    ├── frontend_guide.md       # 前端说明文档
    ├── data_simulator.py       # 数据模拟器
    ├── simulator_guide.md      # 模拟器使用说明
    ├── Dockerfile              # Docker容器配置
    ├── docker-compose.yml      # Docker编排配置
    └── README.md               # 项目说明文档

注意事项

  • 预训练模型文件 model.h5 需要通过训练脚本生成
  • 训练数据集需要自行准备或使用模拟数据
  • 所有提交物都应放在 submissions/ 目录下

🏁 结束语

祝你在这次比拼中取得优异成绩,期待你加入HuboAI Studio大家庭! ��✨

"让AI创造像魔法一样简单"

About

手势识别

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors