基于Raspberry Pi5的3D打印监测与失败检测
作者:bzhou830
- 作品简介
近年来,FDM 3D打印技术发展非常迅速,越来越多的家庭也开始使用桌面级3D打印机。虽然成品机器在近两年如雨后春笋般退出,但是打印过程中还是不免产生各种问题。如图1所示:
图1 模型打印失败
而且由于3D打印比较耗时,长时间的人工值守是非常困扰的问题。在没有人工值守的情况下,一旦出现问题就直接导致打印失败,浪费耗材,甚至损坏机器。因此本设计的思路就是使用视觉识别技术,实时采集并识别当前的打印状态,一旦出现打印异常通知用户进行人工干预。
设计中用到的主要硬件物料有: Raspberry Pi 5,小安派-Cam-D200,颜色传感器,气压传感器。设计中为了方便采集摄像头的安装,对小安派-Cam-D200进行了外壳的设计。Rapsberry Pi 5运行Debian系统,搭建mqtt服务器,用于接收传感器数据。并使用yolo v5训练自己标定的数据得到检测模型,在树莓派上部署并运行检测模型,对采集的图像进行实时的检测。
作品实物如图2 所示,小安派-Cam-D200图像采集摄像头安装在3D打印机x轴的末端,使用usb供电,通过无线网将采集的图像发送给:Raspberry Pi 5。
图2 硬件实物
- 系统框图
系统框图如图3所示,系统中的组件都是通过无线网络进行数据通信的。传感器的数据通过传感器采集板(这里使用的是esp32s3-dev-kit)使用mqtt协议将数据发送到raspberry pi 5 上搭建的mqtt服务器上。摄像头采集的图像通过web server的方式将图像传送给raspberry pi 5。
图3 系统框图
手机或电脑设备可以通过远程连接的方式连接到raspberry pi 5上查看实时图像和传感器数据,也可以直接连接到摄像头设备查看实时图像。
识别的结果则实时的显示在画面上。
三、各部分功能说明
3.1 模型的训练
对于一个视觉检测项目来说,最核心和重要的部分就是对检测模型的训练和部署。为了能得到尽可能准确的检测模型,本项目采用Kaggle上的3D打印图像数据集,对图像数据使用Labeling工具进行手动的标定。数据集中包含有900多张图像。标定过程如图4所示。
图4 数据的标定
标定完成图像即采用yolo v5对数据进行训练。
为了达到比较好的准确率,又为了兼顾模型的训练时间,这里训练过程采用100个epochs进行,训练环境为i7-7700k, Nvidia GTX1060 6G。
图5 训练完成
如图5所示,训练总用时5.8小时。训练过程的曲线如图6所示,从图中可以看到训练过程中loss已经降低到比较低的水平,但从曲线的走势来看如果加大epochs数量势必可能会得到更为精确的模型。考虑精度曲线已经达到了可用的水平,且没有计算能力更强大的硬件来进行训练,遂使用本次训练结果。
图6 训练结果曲线
3.2 图像采集模块
小安派-Cam-D200(AiPi-Cam-D200)是安信可科技为高性能模组Ai-M61-32S设计的一款摄像头核心板,默认接入200w像素摄像头,考虑图像采集的质量,本项目采用其进行图像的采集。为了方便摄像头的安装和美观,项目对摄像头进行外壳的设计,并采用3D打印的方式将其打印出来。外形的设计图如
图7 图像采集设备结构设计
设备固件代码中将采集的图像通过web的方式发送给接收端。在web浏览器中可预览采集图像如图所示。
图8 预览图像采集结果
3.3 模型部署和mqtt服务器搭建
从emqx的官网看到可以直接使用docker的方式进行安装。安装完成后在PC/手机端即可使用浏览器进行访问。成功访问如图所示。
图9 EMQX服务器的安装
搭建完服务器后即可部署识别模型。拷贝yolo v5检测代码到raspberry pi 5上。并使用检测代码进行运行,运行中安装缺少的依赖库。成功运行检测代码即表明环境搭建成功,如图10所示。
图10 YOLO v5在raspberry pi 5上的部署
随后使用训练的模型进行部署,对部分图像进行识别检测。运行检测,打开检测的结果图观察执行结构的正确性,如图11所示。
图11 模型检测结果
四、作品源码
cam200.tar
(1.25 MB)
(下载次数: 0, 2024-10-29 15:06 上传)
五、作品功能演示视频
六、项目总结
通过设计制作次项目,让我对计算机视觉检测有了更深入的理解,同时学习并使用了Web Sever传送视频数据的使用了。为了设计出比较好的外观,专门学习3D模型的绘制,对DIY电子设计又多掌握了一项关键又有用的技术。
至此非常感觉EEWold给我支持成长的机会,同时离不开Digikey的大力支持,在此表示最真诚的感谢!
本帖最后由 bzhou830 于 2024-10-29 16:36 编辑