Maix-III 系列 AXera-Pi 开发板 SDK 使用介绍

获取 SDK 源码

上一篇介绍了基础的开发环境搭建和使用方法,这一篇介绍如何应用这些 sdk 源码。

由爱芯提供 AI 模型的开发与评估验证,提供给有经验的 AI 开发者使用,不涉及任何硬件外设有关的内容。

由 sipeed 提供在 linux 平台统一的嵌入式开发环境,主要有摄像头、屏幕、视觉、图像处理、NPU pipiline 相关的实机部署例程,适合刚入门嵌入式 linux 开发的同学使用。

芯片商用时所用的 bsp 开发包,这里主要提供的是芯片的原始开发资料,如 uboot 、 linux 、 msp 、msp 等工程代码,这个部分是逐步开源的,你可以从这里得到商业评估用的代码,例如 ipcdemo 这样的程序,但这些代码会很复杂且高耦合,适合有经验的同行使用。

libmaix

这是一个适用于 sipeed 所用 linux 芯片开发的 C/C++ 基础开发框架,使用 cmake 构建,提供了许多开箱参考的案例,还有一些第三方库代码的链接,如 opencv openmv 这些视觉库的链接。

SDK 源码在 libmaix, 需要使用 git 命令下载:

git clone https://github.com/sipeed/libmaix.git --recursive

注意这里--recursive 参数是必须的,用来下载仓库里面的子模块,如果没有这个参数,代码会不完整,导致编译出错

中国国内可能下载速度较慢,可以多取消重试几次,可能会遇到速度快的节点,当然最好还是通过设置代理来加速下载。

另外, AI 模型及例程在 MaixHub 模型库 可以找到, 以及 AXERA-TECH/ax-samples 仓库。

编译 SDK

编译有两种方式:

  • 直接在开发板上编译:编译速度较慢,但是不需要额外的环境配置
  • 在 PC 上编译,然后拷贝可执行文件到开发板,也就是交叉编译: 编译速度更快,但是需要额外的环境配置

libmaix

对于 libmaix, 按照其README.md 文件描述的方法编译即可, 不过需要在menuconfig命令中选择 AXera-Pi 作为编译目标。

这里简要介绍一下编译过程(libmaix 目前还未稳定,未来可能会有大的更新),实际以libmaix 仓库代码和说明为准。

  • 先安装依赖
apt install build-essential cmake python3 sshpass git

sshpass 也可以不安装, build-essential, cmake, git, python3 必须安装

  • 克隆仓库到本地或者开发板
git clone https://github.com/sipeed/libmaix --recursive

注意 --recursive 参数是必须的,用以克隆子模块,否则会缺代码

在开发板上编译

cd libmaix
cd examples/axpi
python3 project.py distclean
# python3 project.py menuconfig # 可以配置相关参数
python3 project.py build        # 如果增加文件了,需要 python3 project.py rebuild 命令
./dist/start_app.sh             # 运行示例程序

交叉编译

TODO:

ax-samples

ax-samples 是爱芯官方提供的例程,包含了一些 AI 模型和运行代码,编译完能直接在开发板上运行,只不过输入是图片,不是摄像头。

在开发板上编译

进入开发板终端,执行

git clone https://github.com/AXERA-TECH/ax-samples.git
cd ax-samples
mkdir build
cd build
cmake ..
make install

然后就能在ax-samples/build/install/bin/目录下找到编译好的可执行文件。

交叉编译

稍微复杂一点,需要在 PC 上配置交叉编译环境,然后在 PC 上编译,最后拷贝可执行文件到开发板,见ax-samples 源码编译

组合 SDK 和 AI 模型例程

比如我们要跑一个视觉 AI 模型,需要用到摄像头,屏幕,还有 AI 模型。
其中 摄像头和屏幕的使用在libmaix中已经有例程,可以直接使用,基于摄像头屏幕使用例程,将 AI 模型的例程拷贝到例程目录中,调整一下 API 调用即可。

举例:

TODO: