手势识别模型部署在esp32s3(三)
手势识别模型
2. 模型选择与设计
查阅信息
1. 几个手势识别模型
以下是几种常见的手势识别模型:
传统方法
HOG + SVM:Histogram of Oriented Gradients (HOG) 特征提取方法与支持向量机(SVM)分类器结合。
Haar-like 特征 + AdaBoost:使用 Haar-like 特征进行特征提取,然后通过 AdaBoost 算法进行分类。
深度学习方法
卷积神经网络 (CNN):例如LeNet, AlexNet, VGG, ResNet等,用于特征提取和分类。
区域卷积神经网络 (R-CNN):如 Faster R-CNN、Mask R-CNN,用于目标检测。
YOLO (You Only Look Once):YOLOv3, YOLOv4, YOLOv5, YOLOv8等,用于实时目标检测和识别。
SSD (Single Shot MultiBox Detector):用于实时目标检测。
MobileNet:轻量级卷积神经网络,适用于移动设备。
OpenPose:用于人体关键点检测的深度学习模型。
2. 适合部署在硬件 ...
手势识别模型部署在esp32s3(二)
手势识别模型
1. 数据
1.1 标注
用于识别原始数据(图片、文本文件、视频等)并添加一个或多个有意义的信息标签以提供上下文,从而使机器学习模型能够从中学习
每张图片生成对应标签文件
标签文件仅含有一个表示手势种类的标签
多个标签可能导致训练过程中标签文件读取错误,也可以处理只读取手势类别的标签
123456789101112131415161718192021222324252627282930313233343536373839404142import os#手势与标签的映射class_mapping = { '01_palm': 0, '02_l': 1, '03_fist': 2, '04_fist_moved': 3, '05_thumb': 4, '06_index': 5, '07_ok': 6, '08_palm_moved': 7, ...
手势识别模型部署在esp32s3(一)
模型开发
1. 数据
收集
划分数据集(训练集,验证集,测试集)
预处理
提高数据质量,模型训练效果
2. 模型的选择与设计
3. 模型训练,验证与调优
使用训练集进行模型训练
使用验证集进行模型性能评估
调整超参数(学习率,批次大小,迭代次数)
确保模型具有良好的性能与泛化能力
4. 模型评估
使用测试集进行模型性能评估
评估指标(准确率,召回率,F1_score等)
5. 模型优化
模型剪枝:减少模型参数,去除冗余节点,提高推理速度。
模型量化:将模型从浮点数精度降低到定点数精度(如FP32到INT8),减少计算量和内存占用。
量化时遇到两种量化方法选择
查阅资料:
两种量化方式的比较
(A) 动态量化 (Dynamic Quantization)
动态量化在推理过程中对激活值(如权重和中间结果)进行量化。这意味着模型在推理时会动态地将某些浮点运算转换为整数运算,以提高推理效率。此方法不需要校准数据集,适合一些模型在部署时简化量化过程。
优点:
不需要校准数据集,过程较为简单。
可以立即用于大部分推理任务。
通常会保留浮点精度,适用于大部分任务。
缺点:
对 ...
keil使用
概述(来自搜索)
Keil提供了包括C编译器、宏汇编、链接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(μVision)将这些部分组合在一起。
keil新建工程(基于标准库)
keil工程文件
STM32官方固件库(标准外设库下载)
keil.arm官网CMSIS PACKS
新建工程
Project→create new project,选择芯片型号
新建文件夹——移植标准外设库
ProjectName/
├── ProjectName.uvprojx # 项目配置文件
├── ProjectName.uvoptx # 用户选项配置文件
├── Start/ # 启动文件夹
│ ├── startup.s # 启动汇编代码
│ ├── stm32f4xx.h # STM32F4 系列微控制器头文件
│ ├── system_stm32f4xx.h # 系统初始化头文件
│ ├── system ...
test
Hello World
欢迎来到基地!
💡下面是基地创建者的小小尝试
代码
1printf("hello world");
链接
github
基地搭建起来啦🥳🥳🥳