内容已经转出,请移步以下网址:

https://viadean.notion.site

TinyML构建卷积神经网络(CNN)模型声控Arduino机器车

 二维码 110
文章附图

本教程介绍了如何将机器学习与 Arduino 结合使用。在微控制器上运行由TinyML构建的机器学习语音识别模型,控制Arduino机器车运行。


要构建这个项目,至少有两个步骤:


- 训练一个新的机器学习模型并使其适应在 Arduino 上运行

- 使用上一步训练的 Tensorflow Lite 构建汽车


您可能已经知道,我们无法在 Arduino 上直接运行 Tensorflow 模型,因为该设备资源有限。 因此,在训练模型后,有必要缩小它的大小。 我们将逐步描述如何构建模型,然后如何以与 Arduino 兼容的方式对其进行转换。


构建TinyML模型


如前所述,该项目使用了本教程中已经完成的工作。您可能已经知道,构建在 Arduino 上运行的机器学习模型需要遵循几个步骤。下面是此步骤的列表:


- 定义要使用的模型

- 训练模型

- 冻结模型

- 量化模型

- 转换成与Arduino兼容的Tensorflow模型


TinyML介绍


为了使用 Arduino 识别语音命令,我们需要一个使用 CNN 的 Tensorflow 模型。 第一步是获取语音并对其应用 FFT(快速傅立叶变换)。 使用快速傅立叶变换提取的数据将提供给 CNN。 识别命令的问题是一个分类问题。


训练模型


- 一开始需要指定我们要识别的命令或单词。这些是标签。在这个例子中,由于我们想使用语音命令控制汽车,我们将实现 4 个不同的命令:

    - go

    - stop

    - left

    - right

- 接下来需要安装 Tensorflow。您会注意到它不会安装最新版本。此版本将创建与 Arduino 兼容的 Tensorflow 模型

- 之后,需要克隆 TensorFlow 存储库。我们将使用它来运行训练过程

- 最后,运行模型。 要运行模型,需要提供一些参数。 我建议你不要改变它们。 训练过程大约需要 2 个小时,所以请放轻松。 无论如何,您可以通过更改 TRAINING_STEPS 使其减短时间。 更改此值时要小心,因为它会使模型不太准确。


冻结模型


训练任务完成后,需要冻结模型。在这一步之后,我们就不能再修改 Tensorflow 模型了。这将是我们将在接下来的步骤中使用的模型,为 Arduino 创建一个 Tensorflow 模型。


创建微控制器Tensorflow模型

如何在 Arduino 中使用 Tensorflow 模型

导入模型

调整模型标签

模型控制电机

测试模型和通讯模块

调整

源代码


阅读完整文档