bzhou830 发表于 2024-10-29 13:50

【2024 DigiKey 创意大赛】基于Raspberry Pi5的3D打印监测与失败检测

本帖最后由 bzhou830 于 2024-10-29 16:36 编辑

<div><strong>基于</strong><strong>Raspberry</strong> <strong>Pi</strong><strong>5</strong><strong>的</strong><strong>3</strong><strong>D</strong><strong>打印</strong><strong>监测与失败检测</strong></div>

<div>作者:bzhou830</div>

<ol>
        <li><strong>作品简介</strong><br />
        近年来,FDM 3D打印技术发展非常迅速,越来越多的家庭也开始使用桌面级3D打印机。虽然成品机器在近两年如雨后春笋般退出,但是打印过程中还是不免产生各种问题。如图1所示:<br />
        <br />
        图1 模型打印失败<br />
        而且由于3D打印比较耗时,长时间的人工值守是非常困扰的问题。在没有人工值守的情况下,一旦出现问题就直接导致打印失败,浪费耗材,甚至损坏机器。因此本设计的思路就是使用视觉识别技术,实时采集并识别当前的打印状态,一旦出现打印异常通知用户进行人工干预。<br />
        设计中用到的主要硬件物料有: Raspberry Pi 5,小安派-Cam-D200,颜色传感器,气压传感器。设计中为了方便采集摄像头的安装,对小安派-Cam-D200进行了外壳的设计。Rapsberry Pi 5运行Debian系统,搭建mqtt服务器,用于接收传感器数据。并使用yolo v5训练自己标定的数据得到检测模型,在树莓派上部署并运行检测模型,对采集的图像进行实时的检测。<br />
        作品实物如图2 所示,小安派-Cam-D200图像采集摄像头安装在3D打印机x轴的末端,使用usb供电,通过无线网将采集的图像发送给:Raspberry Pi 5。<br />
       <br />
        图2 硬件实物</li>
        <li><strong>系统框图</strong></li>
</ol>

<div>系统框图如图3所示,系统中的组件都是通过无线网络进行数据通信的。传感器的数据通过传感器采集板(这里使用的是esp32s3-dev-kit)使用mqtt协议将数据发送到raspberry pi 5 上搭建的mqtt服务器上。摄像头采集的图像通过web server的方式将图像传送给raspberry pi 5。</div>

<div></div>

<div>图3 系统框图</div>

<div>手机或电脑设备可以通过远程连接的方式连接到raspberry pi 5上查看实时图像和传感器数据,也可以直接连接到摄像头设备查看实时图像。</div>

<div>识别的结果则实时的显示在画面上。</div>

<div><strong>三、各部分功能说明</strong></div>

<div><strong>3</strong><strong>.1 </strong><strong>模型的训练</strong></div>

<div>对于一个视觉检测项目来说,最核心和重要的部分就是对检测模型的训练和部署。为了能得到尽可能准确的检测模型,本项目采用Kaggle上的3D打印图像数据集,对图像数据使用Labeling工具进行手动的标定。数据集中包含有900多张图像。标定过程如图4所示。</div>

<div></div>

<div>图4 数据的标定</div>

<div>标定完成图像即采用yolo v5对数据进行训练。</div>

<div></div>

<div>为了达到比较好的准确率,又为了兼顾模型的训练时间,这里训练过程采用100个epochs进行,训练环境为i7-7700k, Nvidia GTX1060 6G。</div>

<div></div>

<div>图5 训练完成</div>

<div>如图5所示,训练总用时5.8小时。训练过程的曲线如图6所示,从图中可以看到训练过程中loss已经降低到比较低的水平,但从曲线的走势来看如果加大epochs数量势必可能会得到更为精确的模型。考虑精度曲线已经达到了可用的水平,且没有计算能力更强大的硬件来进行训练,遂使用本次训练结果。</div>

<div></div>

<div></div>

<div>图6 训练结果曲线</div>

<div><strong>3</strong><strong>.2 </strong><strong>图像采集模块</strong></div>

<div>小安派-Cam-D200(AiPi-Cam-D200)是安信可科技为高性能模组Ai-M61-32S设计的一款摄像头核心板,默认接入200w像素摄像头,考虑图像采集的质量,本项目采用其进行图像的采集。为了方便摄像头的安装和美观,项目对摄像头进行外壳的设计,并采用3D打印的方式将其打印出来。外形的设计图如</div>

<div></div>

<div>图7 图像采集设备结构设计</div>

<div>设备固件代码中将采集的图像通过web的方式发送给接收端。在web浏览器中可预览采集图像如图所示。</div>

<div></div>

<div>图8 预览图像采集结果</div>

<div><strong>3</strong><strong>.3 </strong><strong>模型部署和</strong><strong>mqtt</strong><strong>服务器搭建</strong></div>

<div>从emqx的官网看到可以直接使用docker的方式进行安装。安装完成后在PC/手机端即可使用浏览器进行访问。成功访问如图所示。</div>

<div> </div>

<div>图9 EMQX服务器的安装</div>

<div>搭建完服务器后即可部署识别模型。拷贝yolo v5检测代码到raspberry pi 5上。并使用检测代码进行运行,运行中安装缺少的依赖库。成功运行检测代码即表明环境搭建成功,如图10所示。</div>

<div></div>

<div>图10 YOLO v5在raspberry pi 5上的部署</div>

<div>随后使用训练的模型进行部署,对部分图像进行识别检测。运行检测,打开检测的结果图观察执行结构的正确性,如图11所示。</div>

<div></div>

<div> </div>

<div>图11 模型检测结果</div>

<div>&nbsp;</div>

<div><strong>四、作品源码</strong></div>

<div></div>

<div>&nbsp;</div>

<div><strong>五、作品功能演示视频</strong></div>

<div>&nbsp;</div>

<div><iframe __idm_id__="270337" allowfullscreen="true" frameborder="0" height="450" src="//player.bilibili.com/player.html?bvid=1LPSbYqEM3&amp;page=1" style="background:#eee;margin-bottom:10px;" width="700"></iframe><br />
&nbsp;</div>

<div>&nbsp;</div>

<div><strong>六、项目总结</strong></div>

<div>
<p>通过设计制作次项目,让我对计算机视觉检测有了更深入的理解,同时学习并使用了Web Sever传送视频数据的使用了。为了设计出比较好的外观,专门学习3D模型的绘制,对DIY电子设计又多掌握了一项关键又有用的技术。</p>

<p>至此非常感觉EEWold给我支持成长的机会,同时离不开Digikey的大力支持,在此表示最真诚的感谢!</p>
</div>

<div>&nbsp;</div>

<div></div>

<p><!--importdoc--></p>

wangerxian 发表于 2024-10-29 19:17

<p>监测效果怎么样?话说3D打印拉丝,主要是打印机配置没搞好。</p>

bzhou830 发表于 2024-10-29 20:18

wangerxian 发表于 2024-10-29 19:17
监测效果怎么样?话说3D打印拉丝,主要是打印机配置没搞好。

<p>训练数据里面都是针对炒面类的问题,所以检测炒面类还是很准的。</p>
<p>打印问题原因很多,喷头温度不合适,调平不好,热床不沾,模型缺少支撑等等都可能导致打印失败。</p>

wangerxian 发表于 2024-10-30 09:25

bzhou830 发表于 2024-10-29 20:18
训练数据里面都是针对炒面类的问题,所以检测炒面类还是很准的。
打印问题原因很多,喷头温度不合适,调 ...

<p>嗯嗯,我之前换了打印材料,就拉丝了。。。</p>
页: [1]
查看完整版本: 【2024 DigiKey 创意大赛】基于Raspberry Pi5的3D打印监测与失败检测