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

相关文章

Oracle数据库使用 listagg去重删除重复数据的方法汇总

《Oracle数据库使用listagg去重删除重复数据的方法汇总》文章介绍了在Oracle数据库中使用LISTAGG和XMLAGG函数进行字符串聚合并去重的方法,包括去重聚合、使用XML解析和CLO... 目录案例表第一种:使用wm_concat() + distinct去重聚合第二种:使用listagg,

怎么关闭Ubuntu无人值守升级? Ubuntu禁止自动更新的技巧

《怎么关闭Ubuntu无人值守升级?Ubuntu禁止自动更新的技巧》UbuntuLinux系统禁止自动更新的时候,提示“无人值守升级在关机期间,请不要关闭计算机进程”,该怎么解决这个问题?详细请看... 本教程教你如何处理无人值守的升级,即 Ubuntu linux 的自动系统更新。来源:https://

Java后端接口中提取请求头中的Cookie和Token的方法

《Java后端接口中提取请求头中的Cookie和Token的方法》在现代Web开发中,HTTP请求头(Header)是客户端与服务器之间传递信息的重要方式之一,本文将详细介绍如何在Java后端(以Sp... 目录引言1. 背景1.1 什么是 HTTP 请求头?1.2 为什么需要提取请求头?2. 使用 Spr

Java如何通过反射机制获取数据类对象的属性及方法

《Java如何通过反射机制获取数据类对象的属性及方法》文章介绍了如何使用Java反射机制获取类对象的所有属性及其对应的get、set方法,以及如何通过反射机制实现类对象的实例化,感兴趣的朋友跟随小编一... 目录一、通过反射机制获取类对象的所有属性以及相应的get、set方法1.遍历类对象的所有属性2.获取

Java中的Opencv简介与开发环境部署方法

《Java中的Opencv简介与开发环境部署方法》OpenCV是一个开源的计算机视觉和图像处理库,提供了丰富的图像处理算法和工具,它支持多种图像处理和计算机视觉算法,可以用于物体识别与跟踪、图像分割与... 目录1.Opencv简介Opencv的应用2.Java使用OpenCV进行图像操作opencv安装j

Ubuntu系统怎么安装Warp? 新一代AI 终端神器安装使用方法

《Ubuntu系统怎么安装Warp?新一代AI终端神器安装使用方法》Warp是一款使用Rust开发的现代化AI终端工具,该怎么再Ubuntu系统中安装使用呢?下面我们就来看看详细教程... Warp Terminal 是一款使用 Rust 开发的现代化「AI 终端」工具。最初它只支持 MACOS,但在 20

Python实现数据清洗的18种方法

《Python实现数据清洗的18种方法》本文主要介绍了Python实现数据清洗的18种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录1. 去除字符串两边空格2. 转换数据类型3. 大小写转换4. 移除列表中的重复元素5. 快速统

Python数据处理之导入导出Excel数据方式

《Python数据处理之导入导出Excel数据方式》Python是Excel数据处理的绝佳工具,通过Pandas和Openpyxl等库可以实现数据的导入、导出和自动化处理,从基础的数据读取和清洗到复杂... 目录python导入导出Excel数据开启数据之旅:为什么Python是Excel数据处理的最佳拍档

Debian如何查看系统版本? 7种轻松查看Debian版本信息的实用方法

《Debian如何查看系统版本?7种轻松查看Debian版本信息的实用方法》Debian是一个广泛使用的Linux发行版,用户有时需要查看其版本信息以进行系统管理、故障排除或兼容性检查,在Debia... 作为最受欢迎的 linux 发行版之一,Debian 的版本信息在日常使用和系统维护中起着至关重要的作

Python中lambda排序的六种方法

《Python中lambda排序的六种方法》本文主要介绍了Python中使用lambda函数进行排序的六种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们... 目录1.对单个变量进行排序2. 对多个变量进行排序3. 降序排列4. 单独降序1.对单个变量进行排序