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

本文主要是介绍K210视觉识别模块学习笔记2:固件的下载升级_官方数字识别例程导入方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

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

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

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

目录

固件的下载升级:

固件下载网址:

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_mnistprint(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_mnistprint(display_str, score)img.draw_string(4,3,display_str,color=(0,0,0),scale=2)# 对于其他数字 ,无论得分如何,都进行显示和       else:display_str = "num: %d" % index_mnistprint(display_str, score)img.draw_string(4,3,display_str,color=(0,0,0),scale=2)lcd.display(img)kpu.deinit()

网上学习网址贴出:

 更新 MaixPy 固件 - Sipeed Wiki

这篇关于K210视觉识别模块学习笔记2:固件的下载升级_官方数字识别例程导入方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1018415

相关文章

SpringBoot+EasyExcel实现自定义复杂样式导入导出

《SpringBoot+EasyExcel实现自定义复杂样式导入导出》这篇文章主要为大家详细介绍了SpringBoot如何结果EasyExcel实现自定义复杂样式导入导出功能,文中的示例代码讲解详细,... 目录安装处理自定义导出复杂场景1、列不固定,动态列2、动态下拉3、自定义锁定行/列,添加密码4、合并

Python通用唯一标识符模块uuid使用案例详解

《Python通用唯一标识符模块uuid使用案例详解》Pythonuuid模块用于生成128位全局唯一标识符,支持UUID1-5版本,适用于分布式系统、数据库主键等场景,需注意隐私、碰撞概率及存储优... 目录简介核心功能1. UUID版本2. UUID属性3. 命名空间使用场景1. 生成唯一标识符2. 数

Java中读取YAML文件配置信息常见问题及解决方法

《Java中读取YAML文件配置信息常见问题及解决方法》:本文主要介绍Java中读取YAML文件配置信息常见问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要... 目录1 使用Spring Boot的@ConfigurationProperties2. 使用@Valu

Java 方法重载Overload常见误区及注意事项

《Java方法重载Overload常见误区及注意事项》Java方法重载允许同一类中同名方法通过参数类型、数量、顺序差异实现功能扩展,提升代码灵活性,核心条件为参数列表不同,不涉及返回类型、访问修饰符... 目录Java 方法重载(Overload)详解一、方法重载的核心条件二、构成方法重载的具体情况三、不构

Python包管理工具pip的升级指南

《Python包管理工具pip的升级指南》本文全面探讨Python包管理工具pip的升级策略,从基础升级方法到高级技巧,涵盖不同操作系统环境下的最佳实践,我们将深入分析pip的工作原理,介绍多种升级方... 目录1. 背景介绍1.1 目的和范围1.2 预期读者1.3 文档结构概述1.4 术语表1.4.1 核

SQL中如何添加数据(常见方法及示例)

《SQL中如何添加数据(常见方法及示例)》SQL全称为StructuredQueryLanguage,是一种用于管理关系数据库的标准编程语言,下面给大家介绍SQL中如何添加数据,感兴趣的朋友一起看看吧... 目录在mysql中,有多种方法可以添加数据。以下是一些常见的方法及其示例。1. 使用INSERT I

Python中反转字符串的常见方法小结

《Python中反转字符串的常见方法小结》在Python中,字符串对象没有内置的反转方法,然而,在实际开发中,我们经常会遇到需要反转字符串的场景,比如处理回文字符串、文本加密等,因此,掌握如何在Pyt... 目录python中反转字符串的方法技术背景实现步骤1. 使用切片2. 使用 reversed() 函

Python中将嵌套列表扁平化的多种实现方法

《Python中将嵌套列表扁平化的多种实现方法》在Python编程中,我们常常会遇到需要将嵌套列表(即列表中包含列表)转换为一个一维的扁平列表的需求,本文将给大家介绍了多种实现这一目标的方法,需要的朋... 目录python中将嵌套列表扁平化的方法技术背景实现步骤1. 使用嵌套列表推导式2. 使用itert

Python使用pip工具实现包自动更新的多种方法

《Python使用pip工具实现包自动更新的多种方法》本文深入探讨了使用Python的pip工具实现包自动更新的各种方法和技术,我们将从基础概念开始,逐步介绍手动更新方法、自动化脚本编写、结合CI/C... 目录1. 背景介绍1.1 目的和范围1.2 预期读者1.3 文档结构概述1.4 术语表1.4.1 核

在Linux中改变echo输出颜色的实现方法

《在Linux中改变echo输出颜色的实现方法》在Linux系统的命令行环境下,为了使输出信息更加清晰、突出,便于用户快速识别和区分不同类型的信息,常常需要改变echo命令的输出颜色,所以本文给大家介... 目python录在linux中改变echo输出颜色的方法技术背景实现步骤使用ANSI转义码使用tpu