K210学习笔记(十一)——MaixHub在线训练模型(旧版在线炼丹)

本文详细介绍了如何使用MaixHub进行目标分类和检测模型的在线训练。首先,讲解了MaixHub的功能,接着阐述了模型训练的步骤,包括图片采集、数据标注、打包数据集、上传训练以及下载模型。文章还提供了使用labelimg进行标注的指导,并给出了训练完成后可能出现的问题及解决方案。整个过程简单易懂,适合初学者进行AI模型训练实践。


前言

个人觉得K210与openmv最大的区别就是可以跑模型了,虽然不能跑yolov5得这类大型模型,但是还是可以使用一些yolov2、Mobilenet V1等轻量化模型。

一、MaixHub功能介绍

想要训练一个可用得模型,奈何电脑显卡不给力,没关系,我们可以使用Spieed的MaixHub模型在线训练来训练模型。Maixhub 模型训练平台帮助大家快速训练想要的 AI模型, 不需要任何训练环境搭建和代码运行, 只需要选择训练类型,上传(标注)数据集, Maixhub就会自动进行训练,训练结束后下载即可。
MaixHub目前有两种训练:
1、目标分类
识别图片所属的种类,只是识别出图片的种类,并没有显示识别物体的坐标(没有框出来),比如:
2、目标检测
既能识别出物体,又能将识别到的物体的坐标输出出来(框出来),比如:

二、Maixhub模型训练使用方法

首先要确定自己需要训练那种模型,如果只是要识别出物体,那就先目标分类,如果既要识别出物体类别,还要输出识别到的物体坐标,那就选择目标检测。
确定分类。 包括分类数量, 具体分类。 比如这里以识别红色小球和玩具为例:
在这里插入图片描述
在这里插入图片描述
所以共两个分类: ball 和 toy, 我们也称之为标签(label),
注意!!! 分类名(标签/label)只能使用英文字符下划线

确定分辨率:以下为Maixhub目前支持的分辨率,其它分辨率将会训练失败(使用推荐分辨率识别准确率更高):

目标分类: 224x224(推荐)

目标检测: 224x224(推荐), 240x240

确定采集数据集数量:另外也要满足 Maixhub 的要求:

目标分类: 每类图片数量不低于40张,比如采集 200 张

目标检测: 每类图片数量不低于100张, 比如采集200张
上限为2000张

最后要注意上传的zip文件不能超过20MiB

三、图片采集

采集图片有以下几种方式:
1、使用开发板采集到SD卡, 直接采集成需要的分辨率 (推荐
2、使用现成的图片, 使用预处理工具处理成需要的分辨率, 注意, 处理完后一定要手动检查数据是否符合要求, 不然可能影响训练精准度
3、手机拍照, 然后使用预处理工具处理成需要的分辨率, 注意, 处理完后一定要手动检查数据是否符合要求, 不然可能影响训练精准度

使用开发板进行数据采集
因为之前已经了解了MAIX BIT的拍照原理,所以这里我们主要是用开发板来采集图片。
使用这个脚本来进行采集图片

#根据你的开发板修改摄像头和屏幕配置, 比如lcd.rotation
#准备一张支持 SPI 模式的 SD 卡, 分区为 MBR (msdos), 格式化为 FAT32
#将目录下的boot.py文件拷贝到 SD 卡根目录
#开发板断电, 将SD卡插入开发板
#开发板上电, 程序会自动创建一个目录cap_images_1, 下次上电会创建cap_images_2, 这样就避免了覆盖
#采集一个分类的图片 按开发板上的boot按键,然后松开按键来采集一张图片, 这会将图片保存到cap_images_1/0/0.jpg, 采集的图片的名字会自动增长, 比如0.jpg 1.jpg ...
#长按boot按键切换类别目录 这会创建一个新目录,比如cap_images_1/1/, 后面采集的图片都会被保存到这个新的目录, 比如cap_images_1/1/0.jpg
#开发板断电,取出SD卡插到电脑, 打开文件管理器就可以看到采集的图片了
import sensor, lcd
from Maix import GPIO
from fpioa_manager import fm
from board import board_info
import os, sys
import time
import image

#### image size ####
set_windowing = (224, 224)       

#### sensor config ####

sensor.reset(freq=22000000, dual_buff=False)
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QVGA) # 320x240
try:
    sensor.set_jb_quality(95)         # for IDE display quality
except Exception:
    pass # no IDE support
if set_windowing:
    sensor.set_windowing(set_windowing)

sensor.skip_frames()

#### lcd config ####
lcd.init(type=1, freq=15000000)
lcd.rotation(2)

#### boot key ####
boot_pin = 16 # board_info.BOOT_KEY
fm.register(boot_pin, fm.fpioa.GPIOHS0)
key = GPIO(GPIO.GPIOHS0, GPIO.PULL_UP)

######################################################

#### main ####
def capture_main(key):
    def draw_string(img, x, y, text, color, scale, bg
评论 23
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值