9. 使用AI Cube开发
注:
- 本章节使用SDK1.1.0版本和nncase2.4.0版本实现,后续更改请参考: 嘉楠开发者社区 (canaan-creative.com)->资料下载->Tools->AI Cube->AI_Cube_V##_用户指南。
- 开发时需要注意版本对应,k230_sdk版本和nncase版本对应关系参考链接:K230 SDK nncase版本对应关系 — K230 文档 (canaan-creative.com)。
- MicroPython开发时需要注意版本对应,k230_canmv(MicroPython开发)版本和k230_sdk、nncase版本对应关系参考链接:CanMV-K230_SDK_nncase版本对应关系 — K230 CanMV 文档 (canaan-creative.com)。
- 相关教学视频,见参考章节链接。
- AI Cube不支持AMD训练显卡。
本章节以图像分类和目标检测为例,详细地介绍了AI Cube工具在Ubuntu平台和Windows平台的使用方法,并将任务在K230开发板上部署运行的过程。AI Cube是一款离线训练工具,适合具有计算资源,追求数据安全性,但不关注底层训练代码的用户使用。
9.1 使用AI Cube实现图像分类任务
9.1.1 软件安装
AI Cube是嘉楠为开发者提供的离线开发工具,该平台保证了数据安全性,实现可视化的本地训练。该平台支持图像分类、目标检测、语义分割、OCR检测、OCR识别、度量学习、多标签分类、异常检测共8个任务。
现在以使用Ubuntu版本AI Cube实现蔬菜分类并在CanMV-K230上部署为例,介绍利用AI Cube快速开发的流程。请准备一台带有界面的ubuntu系统PC,安装cuda驱动。
首先,在嘉楠开发者社区 (canaan-creative.com)的资料下载页面,选择Tools,下载Linux版本AI Cube,推荐使用V1.2版本。
在安装包下载目录解压安装包:
unzip AI_Cube_for_Linux_v1.2.zip
解压后,内部目录如下图所示:
打开一个新的Terminal,先按如下步骤安装dotnet sdk 7.0,如果您的计算机已安装dotnet sdk 7.0,请跳过此步骤。
wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
dpkg -i packages-microsoft-prod.deb
apt update
apt install -y apt-transport-https
apt install -y dotnet-sdk-7.0
在Terminal进入解压目录,启动AI Cube:
./run.sh
9.1.2 功能页介绍
AI Cube包含5个功能页,“项目”页面主要实现项目管理功能,展示当前项目和最近项目;“图像”页面展示当前项目的数据集信息,便于用户查看数据集的图片;“拆分”页面展示拆分信息,统计拆分类别和不同拆分集的图片;“训练”页面实现训练参数配置,训练信息和训练曲线的显示;“评估”页面实现模型评估和评估信息的展示,并且可以配置部署必要参数生成部署包。
“项目”页面图示:
“图像”页面图示:
“拆分”页面图示:
“训练”页面图示:
“评估” 页面图示:
9.1.3 创建数据集
按照不同任务的数据集格式组织数据集。对应数据集格式在“项目”页面点击新建项目查看,同时我们提供了不同任务的示例数据集,在AI Cube/example_dataset/目录下,vegetable_cls就是图像分类任务的示例数据集。
关于不同任务的示例数据集,对应关系如下:
数据集名称 | 对应任务 | 说明 |
---|---|---|
vegetable_cls | 图像分类 | 蔬菜分类场景 |
insect | 目标检测 | 昆虫检测场景 |
Ocular_lesions | 语义分割 | 眼球病变区域分割场景 |
dataset_td100 | OCR检测 | OCR文字检测场景 |
ProductionDate | OCR识别 | 生产日期识别场景 |
drink | 度量学习 | 饮料瓶分类场景 |
multilabel2000 | 多标签分类 | 自然风光多标签分类场景 |
bottle | 异常检测 | 瓶口异常检测场景 |
您既可以使用我们提供的示例数据集,也可以自己按照对应格式组织您的数据集。下面是蔬菜分类场景的数据集的结构:
每个类别一个子目录,子目录内是对应类别的所有图片。