测评1: 【MAX78000FEATHERBOARD】开箱与Eclipse环境搭建
测评2:【MAX78000FEATHERBOARD】TFT屏幕驱动
本次分享的是如何快速的训练关键词,目前期待识别的是:开灯和关灯。用于后面控制LED灯管的亮灭。
首先是数据集的准备。目前使用的是Python程序编写的一个脚本,点击开始录制,自动捕获1s音频。可以点击播放录音,满意后再保存。为了减少音频准备时间,脚本里添加了噪声等,可以快速生成额外99个音频。
总共:
训练 | 测试 | |
开灯 | 3880 | 402 |
关灯 | 3917 | 406 |
训练与综合:
官方git有详细的指导,大致流程如下:
本次进行的开关灯关键词的训练也是在官方的KWS20的基础上:
原来是200个Epoch,我改成了50个,最终效果还可以。
训练完成后的混淆矩阵:
为了下一步进行量化,需要把如下的qat_best.pth.tar文件拷贝到ai8x-synthesis的一个目录下,可以自定义目录。
调用quantize.py脚本进行量化,目的是把32位浮点型权重变为8位定点数据。
量化后,可以再次回到ai8x-training,进行量化后的评估。
评估结果如下:
最后一步就是使用ADI提供的工具,把模型转换位C代码,方便后续在单片机MAX78000上进行部署。
量化后的重要文件:cnn.c cnn.h weights.h
把这三个文件从Linux环境下拷贝到Eclipse的kws20项目下覆盖原来文件即可。
总结:
ADI提供了完善的文档与工具来进行数据训练、量化与部署。可以快速验证方案原型。