亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

树莓派手写数字识别:TensorFlow 与 OpenCV 实战部署

了解如何训练深度卷积神经网络识别手写数字,并利用树莓派摄像头、OpenCV 与 TensorFlow 在树莓派上实现实时部署。

项目概览

本项目将完整走通 AI 流水线:从数据准备、在笔记本上训练模型,到树莓派摄像头实时推理。技术栈包括用于图像处理的 Scikit-Learn 与 OpenCV 3.3,以及以 TensorFlow 为后端的 Keras 深度学习框架。

我们使用 MNIST 数据集——包含 60,000 张训练和 10,000 张测试的 28×28 像素灰度数字图像。树莓派摄像头捕获的图像经预处理后转为相同格式送入网络。

网络架构为标准卷积堆叠加全连接输出层,输出层包含 10 个神经元分别对应 0–9 十个数字。

模型训练完成后,将权重传输至树莓派。轻量级 Python 脚本捕获帧、灰度化、阈值化、缩放、反色,最后执行推理。

硬件搭建

演示中我用简易手持支架固定 Pi Camera 对准单个数字。实际部署建议使用固定支架或小型外壳以提升稳定性。

软件安装

在树莓派上创建 Python 虚拟环境并安装依赖库。以下命令假设已安装 Raspberry Pi OS 且 Python 版本 ≥ 3.7。

source ~/.profile
workon cv
python PiCameraApp.py --picamera 1

安装 TensorFlow

pip install tensorflow

安装 Keras

pip install keras

安装 OpenCV 3.3

OpenCV 需从源码编译以在树莓派上启用全部优化。详细步骤请参考 PyImageSearch 教程。

https://www.pyimagesearch.com/2017/09/04/raspbian-stretch-install-opencv-3-python-on-your-raspberry-pi/

最后安装带 NumPy 优化的 PiCamera 库:

pip install "picamera[array]"

模型训练

在笔记本(建议配备 GPU)上运行训练脚本。脚本在 Keras 中定义 CNN、编译、在 MNIST 上训练、验证性能,并将权重保存为 model_weights.h5。

python Train_MNIST.py

若有 NVIDIA GPU,安装 GPU 版 TensorFlow 与 CUDA 驱动可大幅加速训练;纯 CPU 也能完成,只是耗时更长。

训练完成后,通过 scp 或 WinSCP 将 model_weights.h5 传至树莓派。

实时数字识别

在树莓派上启动识别脚本。按 t 捕获帧,按 q 退出。识别准确率主要取决于光照、角度和书写清晰度。在清晰、高对比度数字上通常可达 95% 以上。

图像预处理流水线

模型输出长度为 10 的概率向量,概率最高的索引即为预测数字。

核心要点

本例演示了数据准备、模型训练、部署、单板推理的完整端到端工作流。代码已开源于 GitHub,欢迎实验与扩展。

参考资料

来源: PiCamera AI 数字识别

制造工艺

  1. 树莓派2上使用DS18B20读取温度完整指南
  2. 树莓派结合 Maxim 1-Wire 传感器与 DS2482 I2C 桥接器的多点温度测量
  3. 树莓派精准监测机柜温度:DS18B20 多点部署实战
  4. Posture Pal:Walabot 实时距离监测,预防颈背疼痛
  5. TJBot 入门指南:构建、配置与语音控制您的 AI 机器人
  6. 树莓派自平衡Segway搭建全攻略
  7. 在树莓派 3 上扩展 GoPiGo v2 的 Windows 10 IoT Core 应用
  8. Acceed IGS-9822DGP:12 口千兆交换机含 4 个 SFP 口——高性能工业网络解决方案
  9. AAEON 与 Intel 联合交付 FWS-8600:40 核 2U 网络设备,400 Gbps 吞吐量
  10. Lanner 采用第二代 Intel Xeon Scalable 处理器强化网络设备
  11. 以IoT网络方案应对城市洪涝
  12. 无线网络设备公司携手Sigfox 部署全英物联网络