利用EdgeImpulse和RaspberryPiPico构建基于手势的YouTube播放界面
立即解锁
发布时间: 2025-08-31 00:22:50 阅读量: 7 订阅数: 14 AIGC 

### 利用Edge Impulse和Raspberry Pi Pico构建基于手势的YouTube播放界面
#### 1. 频率分析与特征提取
不同类别具有不同的主导频率,即能量最高的频率分量。加速度计信号虽与特定类别信号不同,但有重复模式,其频率分量适合分类任务。频率表示的好处之一是能对原始信号进行压缩表示。
以三轴加速度计采集的训练样本为例,频率50Hz,时长2.5秒,每个实例含375个数据点(每轴125个)。对每个样本应用128输出频率的快速傅里叶变换(FFT),会产生384个数据点(每轴128个),看似未减少数据量。但并非所有频率都有意义,可提取能量最高的频率(主导频率)来减少数据,便于信号模式识别。
手势识别的频谱特征通常通过以下步骤获得:
1. 取FFT输出频率的一半,因为频谱关于0Hz对称。
2. 在频域应用低通滤波器去除高频,合理的截止频率通常在3Hz - 10Hz之间,可使特征提取更抗噪,并减少频谱特征数量。
3. 提取幅度最高的频率分量,通常取峰值最高的频率。
通过这些步骤,可获得数量减少的频谱特征,通常在30 - 100个之间,这有助于训练小型前馈神经网络。
#### 2. 设计神经网络
在Edge Impulse中进行以下操作:
1. 点击左侧菜单的“Create Impulse”选项卡,在“Create Impulse”部分,将“Window size”设置为2500ms,“Window increase”设置为400ms。“Window increase”参数用于定期运行ML推理。
2. **添加处理块**:点击“Add a processing block”按钮,找到“Spectral Analysis”,点击“Add”将其集成到Impulse中。
3. **添加学习块**:点击“Add a learning block”按钮,选择“Classification”,确保“Output features block”显示四个输出类(circle、cross、pan和unknown),然后点击“Save Impulse”保存。
4. **调整频谱特征参数**:点击“Impulse design”类别中的“Spectral features”按钮,在新窗口中进行设置。在“Filter”框中,从“Type”下拉菜单中选择“low”以使用低通滤波器,将“Cut-off frequency”调整为10Hz,“Order”调整为2,这将使用二阶巴特沃斯滤波器去除10Hz以上的频率。在“Analysis”框中,从“Type”下拉菜单中选择“FFT”,将“FFT length”配置为128,取消选择“Take log of spectrum?”和“Overlap FFT frames?”选项,然后点击“Save parameters”和“Generate features”提取频谱特征。
5. **构建分类器**:点击“Impulse design”部分的“Classifier”按钮,在全连接层之间引入比例为0.2的“Dropout layer”,确保初始全连接层有64个神经元,另一个有16个神经元,将“Number of training cycles”设置为60,点击“Start training”开始训练。
6. **模型测试**:点击左侧面板的“Model testing”按钮,在新窗口中点击“Classify all”,完成后会生成混淆矩阵,该小型模型在数据集上的准确率可达97.8%。
训练模型后,可使用Edge Impulse EON Tuner微调模型,以优化内存利用率和延迟。在部署到微控制器之前,需评估模型在未见过数据上的准确性。
#### 3. 使用Edge Impulse数据转发器工具进行实时分类
部署模型到微控制器易出错,因此需要进行模型测试。可使用Edge Impulse的实时分类工具进行评估。
操作步骤如下:
1. 确保Raspberry Pi Pico设备运行“Acquiring accelerometer data”中的程序,且计算机上运行“edge-impulse-data-forwarder”程序。点击“Live classification”选项卡,检查“Device”下拉列表中是否显示Raspberry Pi Pico设备。
2. 在“Live classification”窗口中,从“Sensor”下拉列表中选择“Sensor with 3 axes”,将“Sample length (ms)”设置为20000,保持“Frequency”为默认值50Hz。
3. 将Raspberry Pi Pico设备放在面前,点击“Start sampling”按钮,出现“Sampling…”消息时,做出模型可识别的三种动作(circle、cross或pan)。录制完成后,样本将上传到Edge Impulse,它会将录制内容分割成2.5秒的样本并进行模型推理,分类结果将显示在同一页面。
4. 点击测试样本的垂直省略号(三个点),然后点击“Show classification”选项,检查是否能正确分类三种手势。若设备未列出,需重新将Raspberry Pi Pico与Edge Impulse配对。
如果模型训练良好,在执行手部动作的时间段内,应能观察到许多准确率高于80%的正确手势检测。若想在SparkFun Artemis Nano上测试模型,只需断开Raspberry Pi Pico,连接SparkFun Artemis Nano,重新运行“edge-impulse-data-forwarder”工具。
#### 4
0
0
复制全文
相关推荐









