1、 DNk210学习过程(正点原子)
1、1 开发方式
1、1、1 SDK开发环境搭建(命令行)
1、配置工具:cmake;2、工具链(kendyte):3、toolchain;4、官方SDK
- 配置工具需要添加环境变量
- 工具链添加环境变量
cmake --version//检查是否安装成功
make --version//检查是否安装成功
1、1、2 vscode 裸机开发SDK(略)
1、1、3Canmv
MicroPython是一种精简版本的Python 3解释器
……………………………………………………………
下面这串代码是显示Canmv是否成功挂在SD卡
import os
print(os.listdir("/"))
2、官网数字识别
import sensor, image, time, lcd # 导入必要的库:sensor、image、time、lcd
from maix import KPU # 导入KPU模块
import gc # 导入垃圾回收模块
lcd.init(freq=15000000) # 初始化LCD屏幕,设置频率为15MHz
sensor.reset() # 重置并初始化摄像头传感器
sensor.set_pixformat(sensor.RGB565) # 设置像素格式为RGB565(或者灰度)
sensor.set_framesize(sensor.QVGA) # 设置帧大小为QVGA(320x240)
sensor.set_windowing((224, 224)) # 设置窗口大小为224x224
sensor.skip_frames(time=1000) # 等待设置生效
clock = time.clock() # 创建一个时钟对象,用于追踪帧率
kpu = KPU() # 创建KPU对象
kpu.load_kmodel("/sd/kmodel/uint8_mnist_cnn_model.kmodel") # 加载预训练的KModel模型
while True:
gc.collect() # 手动执行垃圾回收,释放内存空间
img = sensor.snapshot() # 获取摄像头当前帧图像
img_mnist1 = img.to_grayscale(1) # 转换为灰度图像
img_mnist2 = img_mnist1.resize(112, 112) # 调整图像大小为112x112像素
a = img_mnist2.invert() # 将图像反转,因为MNIST模型需要反转的图像
a = img_mnist2.strech_char(1) # 预处理图像,消除暗角
a = img_mnist2.pix_to_ai() # 将图像像素转换为AI模块所需格式
out = kpu.run_with_output(img_mnist2, getlist=True) # 使用KPU模型进行推理,获取输出结果列表
max_mnist = max(out) # 获取输出结果中的最大值
index_mnist = out.index(max_mnist) # 获取最大值对应的索引,即预测的数字
# score = KPU.sigmoid(max_mnist) # 可选:根据需要计算置信度分数
display_str = "num: %d" % index_mnist # 构建显示的字符串,显示预测的数字
print(display_str) # 打印预测的数字到控制台
a = img.draw_string(4, 3, display_str, color=(0, 0, 0), scale=2) # 在图像上绘制预测的数字
lcd.display(img) # 在LCD屏幕上显示带有预测数字的图像
kpu.deinit() # 关闭KPU模型,释放资源
2、解释如下:
此代码用于运行机器学习模型,以使用 K210 AI 芯片识别手写数字。下面是对代码重要部分的说明:
- *import sensor, image, time, lcd:这些是导入的库,用于与相机传感器连接、管理图像、跟踪时间和控制 LCD 显示屏。
- sensor.reset():这将重置并初始化相机传感器。
- sensor.set_pixformat(sensor.RGB565):将相机传感器的像素格式设置为RGB565。
- sensor.set_framesize(sensor.QVGA):将相机传感器的帧大小设置为QVGA(320x240)。
- sensor.set_windowing((224, 224)):将相机传感器的窗口设置为(224、224)。
- sensor.skip_frames(time = 1000):跳过帧以允许设置生效。
- kpu.load_kmodel("/sd/kmodel/uint8_mnist_cnn_model.kmodel"):从 SD 卡加载经过 Keras 训练的模型文件。
该循环从传感器捕获图像,对其进行预处理,使用 KPU 模块通过加载的 Keras 模型运行该图像,并将结果显示在 LCD 屏幕上。while True
- kpu.deinit():取消初始化 KPU 系统。*
- gc.collect: 中的函数用于手动触发垃圾回收 (GC) 进程。垃圾回收是自动释放程序不再使用的内存
- img_mnist1=img.to_grayscale(1) 将捕获的图像转换为灰度图像并将其存储在变量中
- a=img_mnist2.invert() 反转存储在变量中的图像的颜色。此操作将每个像素的颜色值转换为其互补值,实质上是创建原始图像的底片
img_mnist2.strech_char(1): 这个函数调用似乎是对图像进行预处理,可能是为了消除图像边缘的暗角或者做一些增强处理,使得图像更适合后续的处理步骤或模型输入。
img_mnist2.pix_to_ai(): 这个函数调用可能是将处理后的图像像素数据转换为某种特定的格式,以便于后续的人工智能模块(AI模块)进行处理或分析。这样做可能涉及将图像数据重新组织或转换为特定的数据结构或格式,以便于模型能够有效地使用它们。
score = KPU.sigmoid(max_mnist) # 可选:根据需要计算置信度分数
Minst需要反转
3、线上训练模型maixhub
3、1 参考网址:
MaixHub参考网址
百度网盘
数据爬取软件
下载图片的时候要关闭防火墙:
MaixHub在线训练平台
大数据平台
Canmv在线训练平台数据