K210视觉识别模块学习笔记2:固件的下载升级_官方数字识别例程导入方法

今日开始学习K210视觉识别模块:固件的下载升级_官方数字识别例程导入方法

主要学习如何升级固件库,在哪下载固件库,以及如何在TF卡正确导入官方例程:

亚博智能的K210视觉识别模块......  

固件库版本:  canmv_yahboom_v2.1.1.bin

本次最终目的是正确导入官方的数字识别例程,并运行测试: 

目录

固件的下载升级:

固件下载网址:

k_falsh下载网址:

k_flash 操作下载固件:

官方数字识别例程导入:

例程导入步骤:

例程测试效果:

例程代码解释:

网上学习网址贴出:


固件的下载升级:

K210下载更新固件主要是为了修复错误、提高性能、添加新功能、增强兼容性、保障安全性以及解决用户在使用中遇到的问题,从而提供更好的用户体验 

固件下载网址:

下载站 - Sipeed

k_falsh下载网址:

https://github.com/sipeed/kflash_gui/releases

注意选择适合自己电脑系统的包,(我的是windows),解压后找到.exe 就能使用:
 

k_flash 操作下载固件:

1、首先USB连接K210到电脑

2、打开kflash的可执行文件

3、最后一步就是先选择之前下好的固件文件,然后别忘了选定正确的串口号与波特率

(波特率一般是115200)

官方数字识别例程导入:

例程导入步骤:

1、拔出K210的TF卡,将其放入读卡器插入电脑:

2、找到官方例程的KPU文件夹,直接复制到TF卡:

这里面一般都是官方训练好的模型文件,该文件夹会在例程中被调用,因此千万不可自行更改名称!

3、复制手写数字识别的py文件到TF卡,并更名为 main.py:

例程测试效果:

例程代码解释:

import sensor, image, time, lcd # 导入必要的库,包括摄像头传感器、图像处理、时间处理和液晶显示屏控制库  
from maix import KPU # 导入KPU库,用于在K210芯片上运行神经网络 
import gc # 导入垃圾收集库,用于释放不再使用的内存  

lcd.init() # 初始化LCD显示屏  
sensor.reset()  # 重置摄像头传感器  
sensor.set_pixformat(sensor.RGB565) # 设置摄像头的像素格式为RGB565,这是一种颜色深度较低的格式,可以节省内存和处理时间  
sensor.set_framesize(sensor.QVGA) # 设置摄像头捕获的图像大小为QVGA(320x240像素) 
sensor.set_windowing((224, 224)) # 设置摄像头捕获的感兴趣区域(ROI)为224x224像素,这通常是为了匹配神经网络模型的输入大小  
sensor.skip_frames(time = 100) # 跳过摄像头的前100帧,以便让摄像头稳定下来,避免初始化时的噪点  
clock = time.clock() # 初始化一个时间计数器,代码中没有它的进一步使用 

kpu = KPU() # 创建一个KPU对象,用于加载和运行神经网络模型
# 加载预训练的神经网络模型,该模型位于SD卡的指定路径下,并用于识别MNIST手写数字数据集
kpu.load_kmodel("/sd/KPU/mnist/uint8_mnist_cnn_model.kmodel")


while True:  # 无限循环,持续捕获图像并进行识别  
    gc.collect()  # 调用垃圾收集器,释放不再使用的内存 
    img = sensor.snapshot() # 从摄像头捕获一帧图像  
    img_mnist1=img.to_grayscale(1) # 将捕获的图像转换为灰度图像,这有助于减少计算量,因为MNIST数据集是灰度图像 
    img_mnist2=img_mnist1.resize(112,112) # 将灰度图像缩放到112x112像素 
    img_mnist2.invert()  # 对图像进行反色处理,可能是为了增强图像的对比度或其他预处理目的 
    img_mnist2.strech_char(1) # 这可能是一个自定义函数,用于对图像进行某种形式的拉伸或字符增强处理
    img_mnist2.pix_to_ai() # 这可能是一个自定义函数,用于将图像数据转换为神经网络可以处理的格式  

 # 使用KPU运行神经网络模型,并获取模型的输出,这里`getlist=True`表示返回一个列表,包含了所有类别的得分  
    out = kpu.run_with_output(img_mnist2, getlist=True)
    max_mnist = max(out) # 找到输出列表中得分最高的项  
    index_mnist = out.index(max_mnist)  # 找到得分最高项在列表中的索引,这代表了预测的类别
    score = KPU.sigmoid(max_mnist)  # 对最高得分应用sigmoid函数,将其转换为0到1之间的概率值
    
     # 如果预测的数字是1,并且概率非常高(大于0.999)
     # 在图像上绘制识别的数字,并在控制台上打印结果  
    if index_mnist == 1:
        if score > 0.999:
            display_str = "num: %d" % index_mnist
            print(display_str, score)
            img.draw_string(4,3,display_str,color=(0,0,0),scale=2)
            
     # 同上,但针对数字5          
    elif index_mnist == 5:
        if score > 0.999:
            display_str = "num: %d" % index_mnist
            print(display_str, score)
            img.draw_string(4,3,display_str,color=(0,0,0),scale=2)
     # 对于其他数字 ,无论得分如何,都进行显示和       
    else:
        display_str = "num: %d" % index_mnist
        print(display_str, score)
        img.draw_string(4,3,display_str,color=(0,0,0),scale=2)
    lcd.display(img)

kpu.deinit()

网上学习网址贴出:

 更新 MaixPy 固件 - Sipeed Wiki

  • 6
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

NULL指向我

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值