• 回复
  • 收藏
  • 点赞
  • 分享
  • 发新帖

【得捷之选】MAX78000FTHR 图片模型

一、例程体验

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

pyenv-master.zip 然后文件挂载共享,通过“/mnt/hgfs/MAX78000/”路径拷贝,使用mkdir ~/.pyenv创建文件夹,并将zip文件通过unzip指令解压到该文件夹下,使用vim打开~/.bashrc文件,在文件末尾加入以下内容:

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语言开发的吧。嘻嘻,时间不早了,晚安!

全部回复(0)
正序查看
倒序查看
现在还没有回复呢,说说你的想法