Canaan开发者社区模型训练功能是为简化开发流程,提高开发效率开放的训练平台。该平台使用户关注视觉场景的落地实现,更加快捷的完成从数据标注到获得部署包中的KModel模型的过程,并在搭载嘉楠科技Kendryte®系列AIoT芯片中K230、K230D和K210芯片开发板上进行部署。用户仅需上传数据集,简单的配置参数就可以开始训练了。
进入勘智开发者社区,注册账号。社区地址:勘智开发者社区-模型训练
进入 数据集
界面,点击创建数据集,可以看到如下界面:
您可以选择创建的任务类型,并输入数据集名称。
💡 任务介绍:
任务名称 | 任务说明 |
---|---|
图像分类 | 对图片进行分类,得到图片的类别结果和分数。 |
图像检测 | 在图片中检测出目标物体,并给出物体的位置信息、类别信息和分数。 |
语义分割 | 对图片中的目标区域进行分割,将图片中的不同标签区域切割出来,属于像素级任务。 |
OCR检测 | 在图片中检测出文本区域,并给出文本区域的位置信息。 |
OCR识别 | 在图片中识别出文本内容。 |
度量学习 | 训练可以将图片特征化的模型,使用该模型创建特征库,通过特征对比,在不重新训练模型的前提下对新的类别进行分类,也可称为自学习。 |
多标签分类 | 对图片进行多类别分类,一些图片可能不只是属于某个单一的类别,天空和大海可以同时存在,得到图片的多标签分类结果。 |
点击数据集条目的配置
按钮,进入数据集详情页,如下图:
数据上传分为两种方式:
一种是上传图片
,您需要了解任务的数据标注过程,并在平台内部完成标注过程,需要注意的是:OCR识别任务不支持在线标注。
💡Tips: 图片上传时,选择一张起始位置图片,按住shift键选择结束位置的图片,起始位置和结束位置中间的所有图片均会被选中,点击打开,所有选中的图片开始上传。
一种是上传压缩包
,压缩包内包含已经标注好的数据,包含原图和标注文件,数据组织格式查看压缩包格式说明
,进行压缩时需要注意:将文件夹内的所有子文件夹和文件选中,右键选择压缩,而不是选中外部的文件夹压缩。
具体操作步骤见后两小节。
🔶图像分类任务:图像分类任务的标注步骤在上传图片之后,会出现输入标签的弹框,你可以在弹框中输入上传这一批图片的标签类别信息,弹框如下图所示:
🔶图像检测任务:图像检测任务上传图片后,可以看到数据集的图片概览,点击标注
按钮,进入标注界面完成图片标注,如下图所示,按照图中步骤可以完成标注:
🔶语义分割任务:语义分割任务上传图片后,可以看到数据集的图片概览,点击标注
按钮,进入标注界面完成图片标注,如下图所示,按照图中步骤可以完成标注:
🔶OCR检测任务:OCR检测任务上传图片后,可以看到数据集的图片概览,点击标注
按钮,进入标注界面完成图片标注,如下图所示,按照图中步骤可以完成标注:
🔶OCR识别任务:OCR识别任务可以使用上传压缩包的形式上传数据,不支持线上标注。
🔶度量学习任务:度量学习训练过程是为了获取一个将图片特征化的模型,其标注过程和分类过程类似。上传图片后,会出现输入标签的弹框,你可以在弹框中输入上传这一批图片的标签类别信息,弹框如下图所示:
🔶多标签分类任务:多标签分类任务上传图片后,针对待标注图片,点击编辑标签,然后依次输入标签信息回车即可。如下图所示,按照图中步骤可以完成标注:
除了上传图片标注方法外,还可以使用压缩包的形式上传数据,压缩包内包含已经标注好的数据,包含原图和标注文件。不同的任务有不同的组织形式,这里对几种任务的数据组织格式进行说明。
🔶图像分类任务:图像分类任务的压缩包内结构如下所示,数据集目录下包括子类别文件夹,每个子类别中包括该类别的所有图片。
xxxxxxxxxx
141📦 my_dataset
2├── 📁 class_0
3│ ├── 0.jpg
4│ ├── 1.jpg
5│ └── ...
6├── 📁 class_1
7│ ├── 0.jpg
8│ ├── 1.jpg
9│ └── ...
10├── 📁 class_2
11│ ├── 0.jpg
12│ ├── 1.jpg
13│ └── ...
14└── ...
🚩Note: 压缩
zip
包时,请进入到my_dataset
目录,选中所有子目录class_0
、class_1
、class_2
等,右键选择压缩,而不是选中外部的文件夹压缩。
🔶图像检测任务:图像检测任务使用 Pascal VOC
格式,文件夹需包含images
和xml
两个文件夹,且一张图片对应一个同名xml
文件。可以增加labels.txt
文件,每行表示一个类别名称。
xxxxxxxxxx
101📦 my_dataset
2├── 📁 images
3│ ├── 0.jpg
4│ ├── 1.jpg
5│ └──...
6├── 📁 xml
7│ ├── 0.xml
8│ ├── 1.xml
9│ └──...
10└── labels.txt(可选)
🚩Note: 压缩
zip
包时,请进入到my_dataset
目录,选中所有子目录和文件images
、xml
、labels.txt
等,右键选择压缩,而不是选中外部的文件夹压缩。
🔶语义分割任务:语义分割任务需包含images
和annotations
两个文件夹,且一张图片对应一个同名的json
文件。json
文件内容同labelme
格式,一个shapes
数组,每个元素包含label
字符串和points
数组,points
数组中每个元素为一个长度为2的数组,表示区域围点的坐标。
json文件示例: {"shapes":[{"label":"head","points":[[1,2],[3,4],[5,6]]}]}
xxxxxxxxxx
91📦 my_dataset
2├── 📁 images
3│ ├── 0.jpg
4│ ├── 1.jpg
5│ └──...
6└── 📁 annotations
7 ├── 0.json
8 ├── 1.json
9 └──...
🚩Note: 压缩
zip
包时,请进入到my_dataset
目录,选中所有子目录和文件images
、annotations
等,右键选择压缩,而不是选中外部的文件夹压缩。
🔶OCR检测任务:OCR检测任务的压缩包内部格式如下,文件夹需包含 images
和txts
的两个文件夹,且每张图片对应一个同名的txt
标注文件。txt
文件内包括对应图片的所有框信息,每个框的信息占一行,保证每行9个元素,每行为x1,y1,x2,y2,x3,y3,x4,y4,text
,(x1,y1)
为左上角坐标,(x2,y2)
为右上角坐标,(x3,y3)
为右下角坐标,(x4,y4)
为左下角坐标,text
为文字内容或###
。
xxxxxxxxxx
91📦 my_dataset
2├── 📁 images
3│ ├── 0.jpg
4│ ├── 1.jpg
5│ └──...
6└── 📁 txts
7 ├── 0.txt
8 ├── 1.txt
9 └──...
🚩Note: 压缩
zip
包时,请进入到my_dataset
目录,选中所有子目录和文件images
、txts
等,右键选择压缩,而不是选中外部的文件夹压缩。
🔶OCR识别任务:OCR识别任务的压缩包中,文件夹需包含images
子文件夹和labels.txt
文件。labels.txt
中的内容为每行是一个图片的标注内容:格式为:图片在my_dataset
根目录下的相对路径\t图片的文字内容。\t
为tab
键输入。
xxxxxxxxxx
61📦 my_dataset
2├── 📁 images
3│ ├── 0.jpg
4│ ├── 1.jpg
5│ └──...
6└── 🧾labels.txt
🚩Note: 压缩
zip
包时,请进入到my_dataset
目录,选中所有子目录和文件images
、labels.txt
等,右键选择压缩,而不是选中外部的文件夹压缩。
🔶度量学习任务:数据集目录下包括子类别文件夹,每个子类别中包括该类别的所有图片,最好要多一些类别,至少20个类别。数据集中最好包含更多的类别,至少20个。
xxxxxxxxxx
141📦 my_dataset
2├── 📁 class_0
3│ ├── 0.jpg
4│ ├── 1.jpg
5│ └── ...
6├── 📁 class_1
7│ ├── 0.jpg
8│ ├── 1.jpg
9│ └── ...
10├── 📁 class_2
11│ ├── 0.jpg
12│ ├── 1.jpg
13│ └── ...
14└── ...
🚩Note: 压缩
zip
包时,请进入到my_dataset
目录,选中所有子目录class_0
、class_1
、class_2
等,右键选择压缩,而不是选中外部的文件夹压缩。
🔶多标签分类任务:多标签分类任务的数据集组织形式如下,文件夹下包含images
文件夹和annotations.txt
、labels.txt
两个文件。对于annotations.txt
,其中每一行表示一张图片的标注。格式为:图片在my_dataset
根目录下的相对路径\t多标签的类别0-1向量
。举例:数据集名称为nature
,共有4个类别desert
、mountain
、river
、sun
,现在一张图片001.jpg
包括mountain
和river
,该图片的标注为images/001.jpg\t0,1,1,0
。\t
为tab
键输入。
xxxxxxxxxx
71📦 my_dataset
2├── 📁 images
3│ ├── 0.jpg
4│ ├── 1.jpg
5│ └──...
6├── annotations.txt
7└── labels.txt
🚩Note: 压缩
zip
包时,请进入到my_dataset
目录,选中所有子目录和文件images
、annotations.txt
、labels.txt
等,右键选择压缩,而不是选中外部的文件夹压缩。
数据集上传并标注完毕后,您可以开启训练任务,开启训练的入口既可以从数据集条目直接点击训练
,也可以在数据集详情页面点击训练
按钮。如下图所示:
数据集条目进入训练:
数据集详情进入训练:
进入训练参数配置界面:
k210训练参数配置
k230训练参数配置
任务开始训练后,可以在训练记录
页看到训练过的任务条目表,因为后台训练资源有限,任务提交后会视资源情况进行排队,如下图所示:
点击对应任务条目的详情
按钮,可以查看任务的训练详情,包括任务的基本信息、训练日志,结束后会刷新loss曲线。如下图所示:
等待任务训练结束后,在训练记录
页内,点击任务条目的资料下载
按钮下载对应任务的部署包,对应的部署包也会以邮件的形式发送给您。
将下载的部署zip包解压后,目录如下:
xxxxxxxxxx
81📦 task_name
2├── 📁 **_result
3│ ├── test_0.jpg
4│ ├── test_1.jpg
5│ └──...
6├── cpp_deployment_source.zip
7├── mp_deployment_source.zip
8└── README.md
内容如图所示:
您可以阅读README.md
文件,了解部署包的使用方法,部署包内提供了MicroPython开发(mp_deployment_source.zip
)和CPP开发(cpp_deployment_source.zip
)的部署资源包。
✨上述就是在线训练平台的使用方法。如有问题,欢迎在勘智问答社区给我们发帖留言,问答社区。