3. K230 AI Demo 概述
本章针对K230提供了50多个覆盖多模态的AI Demo应用示例,并开放了源码,提供了使用文档;用户可以通过本章概览AI Demo的应用场景,并在k230开发板上体验;同时参考源码开发基于其他场景的应用demo。
3.1 概述
K230 AI Demo集成了人脸、人体、手部、车牌、单词续写、语音、dms等模块,包含了分类、检测、分割、识别、跟踪、单目测距等多种功能,给客户提供如何使用K230开发AI相关应用的参考。
3.2 源码位置
源码路径位于k230 sdk根目录下的src/reference/ai_poc
(k230_sdk/src/reference/ai_poc at main · kendryte/k230_sdk (github.com)或src/reference/ai_poc · kendryte/k230_sdk - 码云 - 开源中国 (gitee.com)),关于每个demo的介绍,请参考下表链接文档:
kmodel、image及相关依赖路径位于/mnt/src/big/kmodel/ai_poc
,目录结构如下:
.
│ # images目录下为demo推理的测试图片或测试数据
├── images
│ # kmodel目录下为demo所需的所有kmodel模型
├── kmodel
│ # utils目录下存放的是demo推理所用的工具文件
└── utils
3.3 编译及运行程序
本章节基于kendryte/k230_sdk: Kendryte K230 SDK (github.com)或kendryte/k230_sdk - 码云 - 开源中国 (gitee.com)的最新版本源码实现。
3.4.2. 编译程序上板流程
-
按照《k230 SDK环境搭建》配置好SDK的环境
# 进入 K230 SDK目录
cd k230_sdk
# 下载工具链Linux和RT-Smart toolchain, buildroot package, AI package等
make prepare_sourcecode
# 挂载工具链目录
sudo mount --bind $(pwd)/toolchain /opt/toolchain
# 配置板级型号
make CONF=k230_canmv_dongshanpi_defconfig prepare_memory
# 构建mpp内核驱动程序用户api lib和k230的示例代码
make mppmpp编译相对于镜像编译耗时要少很多;
-
进入ai demo的目录,执行下述命令,编译ai demo部分:
cd src/reference/ai_poc
# 如果build_app.sh权限不足,执行chmod +x build_app.sh
# 执行脚本前确保src/big/kmodel/ai_poc下已经有相应kmodel、images、utils
./build_app.sh -
执行build_app.sh脚本后,会将kmodel、images、utils、shell、elf统一拷贝生成到k230_bin文 件夹;
-
将整个文件夹拷贝到开发板,在大核上执行sh脚本即可运行相应AI demo;
注:
1.sharefs是大小核共用目录,通过对大小核各自/sharefs目录的访问,提供了大核访问小核文件系统的功能。在实际使用中,通常会将大核的可执行程序存放在/sharefs目录下,大核通过sharefs功能执行这些程序,方便大核上应用程序的开发和调试;参考:《K230大小核通讯Sharefs使用简介》。
2.为了保证系统空间,最后一个disk的空间大小可能不足以存放所有文件;您可以使用下述命令修改最后一个分区大小;参考:《K230 SDK常见问题解答》 问题9。
umount /sharefs/
parted -l /dev/mmcblk1
# 31.3GB大小请参考上一条命令输出的 Disk /dev/mmcblk1
parted -a minimal /dev/mmcblk1 resizepart 4 31.3GB
mkfs.ext2 /dev/mmcblk1p4
mount /dev/mmcblk1p4 /sharefs -
分区结束后,重启开发板,在小核sharefs下新建目录test_demo,选择读卡器拷贝或者scp拷贝,因传输较慢不推荐使用tftp拷贝;
-
若您只关注某一个demo,请首先将utils中的所有文件拷贝到开发板/sharefs/test_demo目录下,参照对应demo的shell脚本中使用的文件拷贝elf、kmodel、测试图片;文件准备好后可以在开发板上运行;
@You:
AI Demo章节和Fancy POC章节旨在展示K230在AI领域的强大性能和广泛应用场景。虽然我们提供了相关源代码供用户参考,但这些源码多是基于特定Demo或POC任务场景的实现。
对于希望深入了解K230人工智能开发流程的用户,建议学习《第5章》和《第6章》。在这两章中,我们详细讲解了K230的多媒体应用、AI推理流程以及基于K230的人工智能开发流程,从代码层面全面解析了K230的AI开发知识。
3.4. Demo效果集锦
demo效果如下图所示,感兴趣的可以动手实践将demo跑起来。