ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

【CanMV K210】AI 视觉 MNIST 手写数字识别与分类推理

【CanMV K210】AI 视觉 MNIST 手写数字识别与分类推理 在 CanMV K210 入门和 AI 视觉项目中,MNIST 手写数字识别是一个很适合拆解的分类模型实验。它不像人脸检测那样输出目标框,而是把输入图像送入模型后,判断画面中的数字更接近 0 到 9 中的哪一类。本实验使用 CanMV K210 运行4.7_Mnist_recognition.py。程序通过摄像头采集画面,对图像进行开窗、灰度化、缩放、反色、字符增强和 AI 格式转换,再送入 KPU 执行 MNIST 分类模型推理。模型输出 10 个分类结果后,程序取置信度最高的一项作为识别数字,并在 LCD 画面上显示num: x。学习目标说明理解分类模型流程掌握图像输入、预处理、KPU 推理、分类输出和结果显示之间的关系区分分类与检测理解 MNIST 输出数字类别,人脸检测输出目标位置框掌握图像预处理使用灰度化、缩放、反色和字符增强改善模型输入理解 KPU 推理结果从模型输出列表中找到最大值,并得到对应数字类别建立调试思路从摄像头画面、模型路径、输入尺寸、光照和数字书写方式排查问题这个实验的重点不是让 LCD 显示一个数字那么简单,而是理解“图像如何变成分类结果”。摄像头采集到的是一张实时图像,经过预处理后变成适合模型输入的数据,KPU 输出的是 10 个类别的分数,程序再从这些分数中选出最可能的数字。文章目录理论基础硬件设施软件代码扩展应用总结理论基础MNIST 手写数字识别属于图像分类任务。分类模型的目标是判断输入图像属于哪一个类别,本实验中的类别就是数字 0 到 9。和人脸检测不同,分类模型通常不会告诉目标在画面中的具体位置,也不会输出矩形框,而是输出每个类别对应的分数或置信度。本实验中,摄像头输出的是 QVGA 图像,程序通过sensor.set_windowing((224, 224))截取中间区域,让识别对象尽量处于画面中心。随后图像被转换成灰度图,并缩放为 112×112。MNIST 模型通常关注的是数字笔画形状,因此灰度化可以减少颜色干扰,缩放可以让输入尺寸匹配模型要求,反色和字符增强可以让数字轮廓更接近模型训练时的数据特征。代码中的out = kpu.run_with_output(img_mnist2, getlist=True)会返回一个列表,这个列表可以理解成模型对 0 到 9 每个数字的判断结果。程序使用max(out)找到分数最高的一项,再用out.index(max_mnist)得到对应的数字编号。比如最大值出现在列表第 3 个位置,就认为当前图像更像数字 3。下面的流程图展示的是 MNIST 手写数字识别的数据处理链路。它不是普通电路接线图,而是从摄像头图像到分类结果的 AI 推理流程。
返回列表