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_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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/21715.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

医学数据属于小样本,或许源于资源不对等|罗小罗·说

小罗碎碎念 医学数据属于小样本,或许源于资源不对等 今天这篇推文,源于一场对话。 我和他(粉丝)聊完以后,觉得心里总是压了点什么东西,直到我写完那篇关于医学数据类别不平衡的文章,我才大致理…

SEO之关键词扩展(一)

初创企业搭建网站的朋友看1号文章;想学习云计算,怎么入门看2号文章谢谢支持: 1、我给不会敲代码又想搭建网站的人建议2、新手上云 确定了核心关键词后,接下来就是进行关键词扩展。对一个稍有规模的网站来说,研究几十个…

Java设计模式 _行为型模式_状态模式

一、状态模式 1、状态模式 状态模式(State Pattern)是一种行为型模式。 它允许一个对象在其内部状态改变时改变它的行为。状态模式把所研究的对象的行为包装在不同的状态对象里,每一个状态对象都属于一个抽象状态类的一个子类。状态模式的意图…

JAVAEE之文件IO_数据流概念,字节流:InputStream、OutputStream,字符流:reader、writer,及实例代码

什么是数据流 顾名思义,I 表示input,O 表示output,也就是输入输出流,主要是在程序与文件之间,用于传输数据的通道。既然要传输数据,那么我们需要理解文件和程序之间哪种方向的传输是输入流,哪种…

操作系统(3) 处理机调度

目录 一、处理机调度概述 1.基本准则 (1)CPU利用率 (2)系统吞吐量 (3)周转时间 (4)等待时间 (5)响应时间 2.进程调度方式 (1&#xff0…

现代密码学-数字签名

从消息认证码到数字签名 前面讲到,消息认证码无法防止否认,A,B之间共享密钥计算出MAC,A,B都能计算出MAC,对于第三方C来说,他无法证明这个MAC是A计算的还是B计算的。 通过数字签名解决问题。 A,B各自使用不同的密钥-公钥密码,A用…

LeetCode刷题之HOT100之组合总和

2024/6/3 周一,工作日的第一天。昨晚梦到被导师说去实验室不积极哈哈哈,风扇开到二级,早上被吹醒。买的书马上快要到了。上午刚来准备刷题,结果去搞了一下数据库sql,做的差不多了,还差点格式转换就差不多出…

军用电源性能测试有哪些测试项目?需要遵循什么标准?

为了确保军用电源在极端条件下能够正常工作,必须对其进行一系列严格的性能测试。这些测试不仅包括效率、电压调整率和负载调整率等基本参数的测试,还包括动态响应能力、绝缘电阻、耐压测试、温度系数以及高低温循环等综合性能的评估。 测试项目 效率 电压…

MySQL -- 连接查询

MySQL使用连接查询(JOIN)是为了从多个相关表中获取数据。连接查询是一种强大且常用的操作,可以根据某些条件将两张或多张表中的数据组合在一起,返回一个联合结果集。 1.为什么使用连接查询 数据规范化: 数据库设计时通…

站点被篡改快照被劫持解决服务方法教程_一招制敌

站点被篡改快照被劫持解决服务方法教程_一招制敌 被篡改表现形式: 站点打不开或跳转到别的网站。 攻击者目的: 报复、勒索、卖防御产品(如DDOS防御产品)。 攻击成本: 工具(如VPN购买)成本、人…

智能工厂生产设备实时监控技术的UI设计

智能工厂生产设备实时监控技术的UI设计

Flutter的Dart语法入门

文章目录 前言1. 类型声明2. 数据类型2.1 基本数据类型常量 2.2 String2.3 集合2.4 unicode 3. Dart函数特征3.1 可变参数列表和默认入参3.2 匿名函数3.3 typedef 4. Dart面向对象4.1 构造函数4.2 访问权限4.3 类的继承 参考资料附录 前言 每个语言都有控制流语句就不写测试代…

房地产vr全景展示交互视频让购房者更有参与感

在当今房地产市场中,购房者的需求日益多样化和个性化。为满足这一趋势,我们创新性地将VR虚拟现实技术应用于楼盘宣传,为购房者带来前所未有的沉浸式购房体验。 一、地理位置全景展示 通过实景拍摄与VR技术的结合,我们为购房者呈现…

day26-单元测试

1. 单元测试Junit 1.1 什么是单元测试?(掌握) 1.2 Junit的特点?(掌握) 1.3 基本用法:(掌握) 实际开发中单元测试的使用方式(掌握) public class …

C语言,排序

前言 排序,可以说是数据结构中必不可缺的一环。我们创造数据存储它,要想知道数据之间的联系,比较是必不可少的。不然,费劲心思得来的数据若是不能有更多的意义,那么拿到了又有什么用? 排序是计算机内经常进…

风险投资公司正在帮助小投资者购买Anthropic、OpenAI等热门公司的股票

近年来,风险投资公司对于人工智能(AI)领域的公司,如Anthropic、Groq、OpenAI等,表现出了极高的投资热情。这些公司因为它们在AI技术方面的创新而备受瞩目。但是,对于很多小投资者来说,由于资金有…

[C#]使用C#部署yolov8的目标检测tensorrt模型

【测试通过环境】 win10 x64 vs2019 cuda11.7cudnn8.8.0 TensorRT-8.6.1.6 opencvsharp4.9.0 .NET Framework4.7.2 NVIDIA GeForce RTX 2070 Super 版本和上述环境版本不一样的需要重新编译TensorRtExtern.dll,TensorRtExtern源码地址:TensorRT-CShar…

期权的权利金怎么算的

期权权利金的计算涉及多个因素,包括敲定价格、到期时间以及整个期权合约的具体情况。期权的权利金具体的计算公式和因素可能因不同的期权合约和市场条件而有所不同,下文为大家介绍期权的权利金怎么算的 ?本文来自:期权酱 一、期权…

【LeetCode】二叉树oj专题

如有不懂的地方,可查阅往期相关文章! 个人主页:小八哥向前冲~ 所属专栏:数据结构【c语言】 目录 单值二叉树 对称二叉树 计算二叉树的深度 二叉树的前序遍历 相同二叉树 另一棵树的子树 二叉树的构建和遍历 翻转二叉树 判…

spring boot 中的异步@Async

spring boot 开启异步调用 1、启动类上添加EnableAsync注解,表示启动异步 2、在具体实现异步的方法上添加Async注解 package com.example.demo;import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootAppli…