送药小车代码仓库:基于立创梁山派的21年电赛F题智能送药小车: 基于立创梁山派的21年电赛F题-智能送药小车
更好的观看体验请去:12_K210的KPU数字识别训练
送药小车立创开源平台资料:【电子竞赛】21年电赛F题-智能送药小车 - 嘉立创EDA开源硬件平台
K210的KPU数字识别训练
K210自带 KPU(通用的神经网络处理器),非常适合用来作数字识别。要采集的数据集图像尺寸为 224*224(这是目前最常用的网络数据大小),为了让结果更准确,所以要训练的数据集要尽可能多,每种数字的数据量尽可能相等。但 k210 的算力也是有限的,他所能运行的模型也是有限的,对于 k210:运行 c 代码时最大可以加载 6MB 左右的模型,运行 maixpy 的最小固件时,能加载 3MB 左右的模型,运行 maixpy 的最大固件时,能够加载约 2MB 左右的模型。(值得注意的一点,模型大小和数据集没有必然关系,所以不用担心数据集采集太多导致K210的内存装载不下的问题,选好Alpha参数就能确定模型的大小)
简单来说,实现K210的数字识别就是三步:
-
采集数据集
-
对数据集进行标注
-
开始训练并得到
采集数据集
因为我们运算是在 K210 本地的,图像来源也是 K210 自带的摄像头,为了让结果更准确,可以用 python 编写一个 K210 的拍照程序,采集固定的 224*224 图像并保存到 TF 卡里面。最好是搭好小车框架后,选好摄像头的安装位置和角度,将拍照程序保存到 K210 的运行 sd 卡里面。当按下按钮的时候就进行当前图像的保存。
拍照的代码如下所示(具体代码在2_Code->application->sensor->k210->pyconde-take_picture.py
):
import sensor, image, time, lcd, struct, ustruct, _thread
from maix import KPU,GPIO, I2S, FFT
import gc,os
from machine import Timer,PWM,I2C
from fpioa_manager import fm
l