《DNK210使用指南 -CanMV版 V1.0》第四十七章 MNIST实验

news/2024/12/27 10:20:06/文章来源:https://www.cnblogs.com/zdyz/p/18629944

第四十七章 MNIST实验

1)实验平台:正点原子DNK210开发板

2)章节摘自【正点原子】DNK210使用指南 - CanMV版 V1.0

3)购买链接:https://detail.tmall.com/item.htm?&id=782801398750

4)全套实验源码+手册+视频下载地址:http://www.openedv.com/docs/boards/k210/ATK-DNK210.html

5)正点原子官方B站:https://space.bilibili.com/394620890

6)正点原子K210技术交流企鹅群:605557868

在上一章节中,介绍了利用maix.KPU模块实现了车牌的检测和识别,本章将继续介绍利用maix.KPU模块实现的MNIST识别。通过本章的学习,读者将学习到MNIST识别应用在CanMV上的实现。
本章分为如下几个小节:
47.1 maix.KPU模块介绍
47.2 硬件设计
47.3 程序设计
47.4 运行验证

47.1 maix.KPU模块介绍
有关maix.KPU模块的介绍,请见第39.1小节《maix.KPU模块介绍》。

47.2 硬件设计
47.2.1 例程功能

  1. 获取摄像头输出的图像,对图像进行预处理后,送入KPU进行MNIST手写数字识别,然后在LCD上显示识别出的数字和其对应的得分。

47.2.2 硬件资源
本章实验内容,主要讲解maix.KPU模块的使用,无需关注硬件资源。

47.2.3 原理图
本章实验内容,主要讲解maix.KPU模块的使用,无需关注原理图。

47.3 程序设计
47.3.1 maix.KPU模块介绍
有关maix.KPU模块的介绍,请见第47.1小节《maix.KPU模块介绍》。
47.3.2 程序流程图

图47.3.2.1 人脸识别实验流程图
47.3.3 main.py代码
main.py中的脚本代码如下所示:

import lcd
import sensor
import gc
from maix import KPU
lcd.init()
sensor.reset()
sensor.set_framesize(sensor.QVGA)
sensor.set_pixformat(sensor.RGB565)
sensor.set_hmirror(False)
# 构造并初始化MNIST识别KPU对象
mnist_recognizer = KPU()
mnist_recognizer.load_kmodel("/sd/KPU/uint8_mnist_cnn_model.kmodel")
while True:# 获取摄像头输出图像img= sensor.snapshot()roi= ((img.width() - img.height()) // 2, 0, img.height(), img.height())img.draw_rectangle(roi, color=(0, 255, 0))# 对图像进行预处理gray_img = img.copy(roi)gray_img.to_grayscale()gray_img.resize(112, 112)gray_img.invert()gray_img.strech_char(1)gray_img.pix_to_ai()# 将图像送入卷积神经网络进行识别,并获取识别结果output = mnist_recognizer.run_with_output(gray_img, getlist=True)number = output.index(max(output))score = KPU.sigmoid(max(output))img.draw_string(2, 2, str(number), color=(255, 0, 0), scale=1.5)img.draw_string(2, 16 + 2, str(score), color=(255, 0, 0), scale=1.5)del gray_imglcd.display(img)gc.collect()

可以看到一开始是先初始化了LCD和摄像头,并分别构造并初始化了用于MNIST手写数字识别的KPU对象。
然后便是在一个循环中不断地获取摄像头输出的图像,在对图像进行预处理后,将图像送入卷积神经网络中进行计算和识别,最后将识别出的结果在图像上进行绘制,然后在LCD上显示图像。

47.4 运行验证
将DNK210开发板连接CanMV IDE,点击CanMV IDE上的“开始(运行脚本)”按钮后,将摄像头对手写数字,让其采集到手写数字图像,接着便可以看到LCD上显示了MNIST手写数字识别的结果,显示了识别出的数字结果及其对应的得分,如下图所示:

图47.4.1 LCD显示MNIST识别实验结果

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

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

相关文章

如何高效地创建和管理CMS中的模块与栏目?

在CMS中创建和管理模块及栏目是网站结构规划的重要组成部分,直接影响到用户体验和SEO表现。为了实现高效的管理和组织,以下是几个实用的建议: 一、清晰定义网站架构 在开始创建模块和栏目之前,首先要对网站的整体架构有一个清晰的认识。确定好每个页面的功能定位,比如首页…

安装CMS程序需要注意哪些事项?

安装CMS程序是将下载好的内容管理系统部署到服务器上的关键步骤。为了确保安装过程顺利无误,以下几点是你应该特别注意的: 首先,确保服务器环境符合CMS的要求。不同的CMS对服务器有不同的要求,比如PHP版本、MySQL数据库版本等。通常这些信息可以在CMS的官方文档中找到。如果…

如何处理云服务器IP变更及后续调整?

您好,关于您提到的云服务器IP变更问题,以下是详细的处理步骤和注意事项:确认新IP地址:首先,我们需要确认新的IP地址。根据您的描述,新IP为127.0.0.1(实际情况下,这通常是一个本地回环地址,用于测试或内部通信,而非公网IP)。请确保您收到的是正确的公网IP地址,并在需…

如何在Windows上正确启用PHP的mbstring扩展?

1. 确保 php_mbstring.dll 文件存在 首先,你需要确认你的PHP安装目录中确实包含了php_mbstring.dll文件。通常情况下,这个文件位于PHP安装目录下的ext文件夹中。如果你没有找到这个文件,可能是因为你下载的PHP版本默认没有包含这个扩展。此时,你可以考虑重新下载一个完整的…

六边形图片展示

六边形图片展示 html代码展示<div class="boxF"><div class="boxS"><div class="boxT" :style="{background:url(+ $global.picCodePolice(item.faceImg) +)}"></div></div> </div>相关的css展示…

网站被挂木马,如何紧急处理并加强防护?

您好!当您的网站被挂木马时,需要立即采取一系列措施来清理木马文件,并防止未来的攻击。以下是详细的处理步骤和建议:立即停止传播有害信息:根据国家相关法律规定,网站主办者有责任确保网站不传播有害信息。一旦发现有害信息,必须在24小时内清除所有有害内容,并采取必要…

【GreatSQL优化器-08】statistics和index dives

【GreatSQL优化器-08】statistics和index dives 一、statistics和index_dives介绍 GreatSQL的优化器对于查询条件带有范围的情况,需要根据 mm tree 来估计该范围内大概有多少行,然后以此来计算cost。对于等号条件,给出了两种方法来估计对应行数--Statistics和index dives,前…

AS计划与AP排程如何革新供应链决策

过去大批量生产模式对计划排产、齐套配送、成本核算要求不高,人工计算和简单的MRP运算就已经满足生产计划需要。然而随着市场个性化需求的递增,市场的生产模式已经变为多品种、小批量、非标订单模式,这对企业的快速交付能力发起了挑战。maiAPS高级计划排程能解决企业哪些痛点…

VMware ESXi 8.0U3c macOS Unlocker OEM BIOS 集成 Marvell AQC 网卡驱动定制版 (集成驱动版)

VMware ESXi 8.0U3c macOS Unlocker & OEM BIOS 集成 Marvell AQC 网卡驱动定制版 (集成驱动版)VMware ESXi 8.0U3c macOS Unlocker & OEM BIOS 集成 Marvell AQC 网卡驱动定制版 (集成驱动版) VMware ESXi 8.0U3c macOS Unlocker & OEM BIOS 集成网卡驱动和 NVMe …

How to make iOS App fullscreen using SwiftUI views?

How to make iOS App fullscreen using SwiftUI views? 如何使用 SwiftUI 视图让 iOS App 全屏显示? iPad 全屏时钟 自开发 App,无广告,纯净版 🚀 SwiftUI x fullscreen API fullScreenCoverHow to make iOS App fullscreen using SwiftUI views?如何使用 SwiftUI 视图让…