实现效果

在该作品中,我们会使用自定义图像分类模型在MARK上实现基于神经网络的自动驾驶功能,类似于驴车和真正的自动驾驶汽车运作的方式。

收集数据,训练模型

首先也是最耗时的步骤是获取训练数据。您可以看到示例代码如下,该代码让用户可以使用两个按钮来操纵 MARK,并将每个运动帧的图像保存到SD卡上——图片名称格式为[方向]-[实耗时间]。这样一来,按照对每一帧进行的操作,我们可以将训练数据分为三类:左转/右转/前进。
project6-1.png
然后,将数据上传到谷歌云端硬盘上,使用 aXeleRate, Keras-based framework for AI on the Edge 训练基于Mobilenet(alpha = 0.25)的分类器,并将训练后的模型自动转换为.kmodel格式,可参阅 Colab notebook here.
示例项目:Donkey MARK(自定义图像分类模型推断) - 图2

将模型上传到 SD 卡上,编写自动驾驶程序

训练完成后,从 Colab notebook 上下载下来 .kmodel 文件,复制到 SD 卡上,并将 SD 卡插入主板。打开 Codecraft,点击“添加扩展”,选择“扩展模型”,然后点击“图像分类模型”。
示例项目:Donkey MARK(自定义图像分类模型推断) - 图3
在文件地址输入 SD 卡上模型的完整路径,例如:/sd/model.kmodel,在模型名称处输入方向,有三种分类,前进,左转,右转。添加完扩展模型后,编写自动驾驶程序,该程序逻辑很简单——根据图像识别的方向类别,相应地控制电动机。
project6-2.png

上传程序

打开电源开关,并用 Type-C USB 线将小车连接到电脑。如1中所述,点击“连接”,成功连接之后点击下方的“上传”,将所编写程序上传到小车。

实验程序

您也可以尝试用 Micropython 在 MaixPy IDE 中编写该程序更高级的版本。 您可以在此 GitHub 存储库中找到参考代码。并且在 我们的 YouTube 频道 上观看演示视频。