一、例程体验
MAX78000FTHR性能非常强大,今天小结一下使用此板实现图片本地智能分析判断其相似度。虽然官方提供了参考的“cats-dogs”参考例程,但自动动手去完成DIY模型创建,过程还是比较繁琐,尤其是网络必须流畅,很多数据都必须通过联网拉取相关组件,其次电脑的配置也得符合一定的要求,否则项目很难开展。
先说说官方提供的“cats-dogs”例程,实现了通过按下SW1则采集图片,并于创建的模型进行对比分析,判断出图片的类别。使用VS Code导入工程示例,然后点击“小锤子”编译整个工程,在烧录、运行,打开串口调试工具,波特率设置115200,则Console对话框输出如下信息:
将“USE_SAMPLEDATA”宏定义,然后再次编译,即可使用用户自定义的采样图片模板,摄像头对准被测图片,按下SW1,则串口输出AI分析判断结果。串口输出log如下:
二、前期回顾
在实施搭建AI大模型之前,让我们再来巩固一下关于该板卡的一些硬件知识。板卡的硬件框图如下:
板上的引脚分布如下图所示:
开发者可借助该板卡集成的MAX78000 Arm® Cortex® M4F处理器快速实施超低功耗、人工智能(AI)方案,器件集成卷积神经网络加速器。评估板包括MAX20303 PMIC,用于电池和电源管理。评估板规格为0.9in x 2.6in、双排连接器,兼容Adafruit Feather Wing外设扩展板。评估板包括各种外设,例如CMOS VGA图像传感器、数字麦克风、低功耗立体声音频CODEC、1MB QSPI SRAM、micro SD存储卡连接器、RGB指示LED和按键。板卡正、背面布局:
要实现某方面图片的AI判断识别,因此需要我们去搜集一些同类别的图片,每种图片最好在40~50张,并将这些图片进行同一大小的裁剪、筛选。比方说如果要做一个高速路上的标志识别项目,可通过Chinese Traffic Sign Database获取想要的图片集,如果做动物识别,则搜集多种动物的图片。
三、预训练环境搭建
在github上,官方有提供一些指导性文档,MaximAI_Documentation有兴趣的坛友可移步浏览。笔者使用的是Ubuntu 16.04 LTS版本的环境,首先需要在bash终端中安装一些依赖库。
sudo apt-get install -y make build-essential libssl-dev zlib1g-dev \
libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm \
libncurses5-dev libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev \
libsndfile-dev portaudio19-dev
接着需要安装pyenv,因为项目中用到Python,可通过以下方法安装。
curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash
安装完以后默认目录是: ~/.pyenv,如果通过此方式获取失败,还可以通过git的方式,本人就是通过git工具克隆下来,然后拷贝到Ubuntu中的。
git clone git://github.com/yyuu/pyenv.git ~/.pyenv
~/.bashrc文件,在文件末尾加入以下内容:
然后文件挂载共享,通过“/mnt/hgfs/MAX78000/”路径拷贝,使用mkdir ~/.pyenv创建文件夹,并将zip文件通过unzip指令解压到该文件夹下,使用vim打开export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init --path)"
eval "$(pyenv virtualenv-init -)"
保存、退出文件编辑,使用pyenv -v可查看pyenv版本。接着使用指令pyenv install 3.8.11完成python 3.8.11的安装。
以上完成了Python环境的安装,然后需要拉取训练仓库源码。
git clone --recursive https://github.com/MaximIntegratedAI/ai8x-training.git
拉取量化仓库源码,这个过程比较久,而且需要保证网速稳定,否则需要多次尝试拉取。
git clone --recursive https://github.com/MaximIntegratedAI/ai8x-synthesis.git
这样在~目录下存有了“ai8x-training”与“ai8x-synthesis”两个文件夹,正如上面截图内容,依次运行以下指令,可完成虚拟训练环境与虚拟量化环境的创建。
进入到“ai8x-training”训练文件夹路径下,依次逐一执行以下指令:
#创建训练虚拟环境
python -m venv venv --prompt ai8x-training
# 激活训练虚拟环境
source venv/bin/activate
#安装依赖安装库
pip3 install -U pip wheel setuptools
#安装训练依赖库
pip3 install -r requirements-cu11.txt
进入到“ai8x-synthesis”量化文件夹路径下,依次逐一执行以下指令:
#创建量化虚拟环境
python -m venv venv --prompt ai8x-synthesis
#激活量化虚拟环境
source venv/bin/activate
#安装依赖安装库
pip3 install -U pip wheel setuptools
#安装量化依赖库
pip3 install -r requirements.txt
至此已完成了训练与量化环境的搭建,接下来可以进行示例程序的训练与量化。
四、后期实现步骤
预训练参考官方提供的“cats-dogs”例程搭建训练模型,以下步骤简略如下:
①、素材准备(拷贝搜罗到的图片样本)
②、训练(通过shell脚本)
③、量化(通过shell脚本)
④、评估(通过shell脚本)
⑤、生成代码(评估脚本生成的样本文件来生成代码)
五、后记
根据官方提供的“cats-dogs_demo”工程示例来新建一个工程,也可以直接拷贝“cats-dogs_demo”工程。将上述生成的文件直接替换“cats-dogs_demo”工程里的相应文件,即可执行基本测试代码。按下sw1按钮,启动板上的摄像头图片采集,经过模型数据对比,最终通过显示屏或串口输出对比分析结果。此次分享到此结束,感谢电源网提供的此次机会,同时也感谢得捷电子对活动的大力支持。对于AI产品模型设计,后续还得继续探索研究,理解每层模型参数的意义,以上的操作都是基于官方提供的网页文档来实现,有些细节尚未明白,可能是基于Python语言开发的吧。嘻嘻,时间不早了,晚安!