跳转到主要内容
3.2.2 · 建议 20 分钟 · 满分 18

手写数字识别系统交互流程设计

背景

手写数字识别系统是在数字化转型和自动化需求日益增长的社会背景下应运而生的。随着信息时代的到来,大量手写文档需要进行电子化处理,以提高数据存储、检索和分析的效率。传统的光学字符识别 (OCR) 技术在处理手写体时面临诸多挑战,如书写风格的多样性、笔迹的连笔和重叠等,导致识别率不高。然而,深度学习的兴起,尤其是卷积神经网络 (CNN) 的发展,为手写数字的精准识别提供了强大的工具。 AI 模型说明:提供的模型 mnist.onnx 是基于卷积神经网络训练得到的,专门用于进行手写数字的识别应用。该模型的使用交互流程为: 1) 加载模型 mnist.onnx; 2) 加载一张本地手写数字图片 img_test.png,并进行预处理图像以符合模型输入要求; 3) 使用 mnist 模型对手写数字图片进行识别; 4) 输出识别后的数字。

工作任务

  1. 补全该模型的使用交互流程对应的 Python 代码(3.2.2.ipynb),实现本地测试图片 img_test.png 的识别,将其识别结果截图保存为 jpg 格式文件,命名为 3.2.2-1.jpg。
  2. 在上面的使用交互流程基础上,给出在手写数字识别系统中使用 mnist.onnx 模型的一种人机交互的最优流程,将其保存为 docx 文件,命名为 3.2.2.docx。

素材预览

mnist.onnx
二进制文件,见素材包
img_test.png
二进制文件,见素材包

代码填空

import onnxruntime
import numpy as np
from PIL import Image


# 加载ONNX模型  2分
ort_session = 


# 加载图像 2分
image = ('L')  # 转为灰度图


#图像预处理 
image = ((28, 28))  # 调整大小为MNIST模型的输入尺寸2分
image_array = (, dtype=np.float32)  # 转为numpy数组2分
image_array = (, axis=0)  # 添加batch维度2分
image_array = (, axis=0)  # 添加通道维度2分


#返回模型输入列表 2分
ort_inputs = {()[0].name: image_array}
# 执行预测 2分
ort_outs = (None, ort_inputs)


# 获取预测结果 2分
predicted_class = 


# 输出预测结果
print(f"Predicted class: {predicted_class}")