K210-maxhub从零自制模型及运行(数字识别)

模型训练

在开始之前,一定确保k210中已烧录较新的maxipy固件,资料中也有

数据集准备

图片格式处理

新建一个文件夹,在该文件夹里创建一个名num的文件夹(该文件夹命名随意):
在这里插入图片描述
在num文件夹中创建images文件夹(必须是该名称):
在这里插入图片描述
将准备的图片复制到该images文件夹中:
在这里插入图片描述
在资料中找到该图片处理工具,需要将图片转为224大小,打开该工具:
在这里插入图片描述
在这里插入图片描述
确保这里的输出图片大小为224,接着选择图片文件夹开始转换,选择刚刚存放图片的images文件夹:
在这里插入图片描述
转换完成后:
在这里插入图片描述
在原本的images文件夹下会出现一个新文件夹(images_out):
在这里插入图片描述
images_out中就是处理好的224大小的图片,我们需要将原来的images文件夹删除,并将out文件重命名为images文件:
在这里插入图片描述
至此,图片格式处理完毕

标注训练集

在标注训练集之前,需要在num文件夹下创建新文件夹xml和文本文件labels,必须是这两个名称。现在开始标签图片:
运行标注工具:
在这里插入图片描述
如果一打开就闪退,那是中文路径的问题,把它拖到纯英文路径地方即可正常使用
在这里插入图片描述
点击open dir,选择要标注的文件夹:选择images文件夹
在这里插入图片描述
点击change save dir,选择保存的地方,选择之前创建的xml文件夹:
在这里插入图片描述
打开自动保存,也就是你标注之后就软件会自动保存
在这里插入图片描述

切换到英语输入,可以使用快捷键,主要用到W和D,W开启框选,D则是下一张:按下W,进入框选,按住鼠标左键拖动,选中对应范围。
在这里插入图片描述
标签标注为1,ok
在这里插入图片描述
然后按D切换下一张,重复此操作,知道无可切换图片。这时打开xml文件夹就能看到处理好的xml文件,标注好的图片是以xml为后缀文件。
接着,这个项目这边只是识别一个数字1,所以也就一个标签1,这个标签要写在labels文本文件中,labels相当于就是用于存放标签名字,如果好几个标签,就一行写一个。
在这里插入图片描述

maxhub网站使用

接下来到了模型训练的步骤,打开maxhub网站,地址:
https://maixhub.com/home
未注册的注册,很简单
点击模型训练:新建训练
在这里插入图片描述
创建数据集
在这里插入图片描述
导入数据集
在这里插入图片描述
将我们刚刚的num文件夹压缩,选择num压缩包,并开始上传:
在这里插入图片描述
创建任务:k210一定要选nncase!
在这里插入图片描述
训练完成,有时需要排队,耐心等待
在这里插入图片描述
下载模型,这里是演示了一遍,未认真处理,准确率很低
在这里插入图片描述

模型部署至K210

将下载下来的压缩文件解压,将三个文件都放入SD卡中,其实放一个komdel文件就行。
在这里插入图片描述
在这里插入图片描述
将SD卡插上K210,然后用Maixpy IDE运行这个main.py即可
在这里插入图片描述
效果图:
请添加图片描述
请添加图片描述
请添加图片描述
参考b站一个视频:【[教程]从0自制模型,实现多物体识别(以k210多数字识别举例)】 https://www.bilibili.com/video/BV13G411V7jd/?share_source=copy_web&vd_source=4d84f07cf9b4e331ed12b31fc1240391
链接:https://pan.baidu.com/s/1IxUKV3V2dA1grawSaTXZGA?pwd=1111
提取码:1111

### K210 芯片实现数字识别的方法 #### 准备工作 为了在K210芯片上实现数字识别,需先完成一系列准备工作。这包括但不限于MAIX GO硬件组装、安装MaixPy IDE、更新MaixPy固件以及获取必要的机器码[^3]。 #### 获取与准备数据集 对于数字识别任务来说,拥有一个高质量的数据集至关重要。可以选择已有的公开数据集如MNIST,也可以自行收集特定场景下的数字图像作为训练样本。确保这些图片经过预处理以便于后续操作。 #### 训练模型 利用maixHub或其他平台来训练适合K210使用的轻量级神经网络模型来进行数字分类。此过程可能涉及调整超参数以优化性能,并最终导出适用于嵌入式设备部署的小型化模型文件[^2]。 #### 部署模型K210 一旦获得了满意的模型权重文件(.kmodel),就需要将其传输到K210开发板中。可以通过USB连接电脑,在MaixPyIDE环境中编写简单的Python脚本来加载该模型并初始化摄像头模块用于实时捕获待测对象的画面流。 ```python from maix import nn, camera, display, image as img_tool import time # 加载之前训练好的.kmodel 文件路径 model_path = "/path/to/your/digit_recognition_model.kmodel" # 初始化神经网络推理引擎实例 interpreter = nn.Interpreter(model_file=model_path) while True: frame = camera.capture() # 抓取一帧视频画面 # 对输入图像做适当缩放和平移变换使其适应模型预期尺寸 resized_frame = img_tool.resize(frame, (96, 96)) output_data = interpreter.run(resized_frame)[0] predicted_digit = int(output_data.argmax()) result_image = draw_text_on_img(resized_frame, str(predicted_digit), position=(10, 10)) display.show(result_image) if button_pressed(): break # 如果按下按钮则退出循环停止程序执行 ``` 上述代码片段展示了如何读取来自摄像头的每一帧图像并通过已经部署成功的数字识别模型对其进行预测分析;最后将结果显示出来供观察者查看。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值