自动计数在大型行业中对于准确包装至关重要。目前,工业中使用机械计数或基于重量的计数。除了耗时和忙碌之外,机械计数还受到产品尺寸和形状的限制。基于重量的计数假设每个部分都与前一个部分具有相同的重量。计算产品需要将产品的平均重量除以一个产品的重量。无论制造系统多么复杂,部件的尺寸和形状总是存在一些差异。在木材和橡胶等材料中,密度变化高达 50%。
这是我们基于视觉的适应性计数器,它实际上使用 AI 进行计数。该设备可以轻松计算有缺陷和无缺陷的零件。考虑是否有更多的缺陷零件,我们可以假设生产单元中可能出现问题。这些数据还可用于提高生产质量,从而使行业能够在更短的时间内生产出更多的产品。因此,我们的适应性强的计数器正在发展成为满足世界准确和灵活的计数需求的解决方案。自适应计数器实际上是由 Rapsberry pi 4 和摄像头模块组成的设备,计数过程完全由 FOMO 驱动。所以它比任何其他方法都能更快、更准确地计数。自适应计数器与网站集成,
这些案例可以应用于行业的任何地方。
在这种情况下,我们计算有缺陷和无缺陷的垫圈。
在这种情况下,我们正在计算通过传送带的螺栓和垫圈以及有缺陷的垫圈。
在这种情况下,我们正在数一束棒棒糖。
在这种情况下,我们正在计算多个零件,例如垫圈和螺栓
Edge Impulse 是领先的边缘设备机器学习开发平台之一,对开发人员免费,深受企业信赖。对于此设备,我们使用 FOMO,这是 Edge Impulse 用于对象检测的一种新型机器学习算法。然后我们将我们的机器学习模型部署到 Raspberry Pi 4B 上,使我们的工作变得可操作。
每个机器学习项目都从数据收集开始。良好的数据收集是影响模型性能的主要因素之一。确保您对行业中提供的项目具有广泛的视角和缩放级别。您可以从任何设备或开发板获取数据,或上传您自己的数据集,进行数据采集。因为我们有自己的数据集,所以我们使用“数据采集”选项卡上传它们。
只需导航至“数据采集”选项卡并选择要上传的文件。之后,给它打个标签,上传到训练区。Edge Impulse 仅接受 JPG 或 PNG 图像文件。如果您有任何其他格式,请使用互联网转换器将其转换为 JPG 或 PNG 格式。
在我们的例子中,我们有四个标签 - Washer、Faulty Washer、Lollipop、Bolt 。我们已经上传了这四个不同类别的所有收集数据。因此,计算机在计数时只会识别这些项目。如果你想识别除这些之外的任何其他物体,你必须上传其他物体的数据集。神经网络访问的数据越多,它们识别物体的能力就越好。
这是我们的计数设置(刚刚将可适应计数器连接在一块小木板的顶部)
您可以在标记队列中查看数据集的所有未标记数据。向对象添加标签就像在对象周围拖出一个框一样简单。我们试图通过在后台运行对象跟踪算法来自动执行此过程,以使生活更轻松。如果您在多张照片中有相同的物体,我们可以为您移动方框,您只需确认新方框即可。拖动框,然后单击保存标签。继续这样做,直到标记了整个数据集。
是时候设计冲动了。Impulse 实际上是一个用于生成特征的机器学习管道。如果您需要了解更多关于冲动的信息,请看这里。
在我们的 Impulse 中,我们将图像宽度和图像高度设置为96px ,将调整大小模式设置为适合最短轴,因为它提供了更准确的模型。
然后在图像选项卡中,我们使用灰度作为颜色深度。然后我们保存参数。
在我们为数据生成特征之后,特征实际上是一个单独的可测量属性。下图显示了从我们的数据集生成的特征。生成的特征本身可以用我们的眼睛很好地区分。
是时候训练机器学习模型了。从头开始生成机器学习模型需要大量的时间和精力。因此我们将使用一种称为迁移学习的技术,该技术在我们的数据上使用经过良好预训练的模型。然后我们可以用更少的数据创建准确的机器学习模型。
然后转到模型生成的对象检测选项卡。
在这种情况下,我们使用 FOMO 算法来训练模型。所以我们将物体检测模型改为FOMO (Faster Objects, More Objects) MobileNetV2 0.35 。FOMO 是一种新型的边缘脉冲机器学习算法,专为高度受限的设备而设计。它与 Raspberry pi 4 配合得很好。
这些是我们的神经网络设置,如图所示。我们现在已经训练了我们的模型,训练精度为 96.7%,相当不错。
现在是在现实世界中测试模型的时候了。结果实际上令人惊讶。这里我们达到了 87.5% 的准确率,这对于数据量如此之少的模型来说非常好。
在我们的项目中,我们使用 Firebase 实时数据库来即时发布和检索数据,这样就没有时间延迟。这里我们使用了Pyrebase库,它是 Firebase 的 python 包装器。
要安装 pyrebase,请运行以下命令pip install pyrebase
Pyrebase 是为 python 3 编写的,可能无法与 python 2 一起正常工作。
首先我们在数据库中创建了一个项目
然后转到构建部分并创建一个实时数据库
然后选择测试模式,这样我们就可以在不进行任何身份验证的情况下更新数据
这是我们的实时数据库
对于仅用于基于用户的身份验证,我们可以创建以下配置,并且应该将其添加到我们的 python 代码中
import pyrebase
config = {
"apiKey": "apiKey",
"authDomain": "projectId.firebaseapp.com",
"databaseURL": "https://databaseName.firebaseio.com",
"storageBucket": "projectId.appspot.com"
}
firebase = pyrebase.initialize_app(config)
然后添加 apikey、authDomain 和 databaseURL(您可以在项目设置中找到所有这些)。然后我们可以将这些值存储在实时数据库中。
使用 HTML、CSS 和 JS 创建网页以实时显示计数。Firebase 中更新的数据实时反映在网页中。当盘点过程停止时,网页显示最近计数,当盘点过程正在进行时,网页显示当前计数。
Raspberry Pi4 B 是系统的大脑。这款 Raspberry Pi 4 集成了 64 位四核 cortex-A72 ARM v8,broadcom BCM2711,运行速度为 1.5GHz。所以计数可以完美地完成。Edge Impulse 完全支持这款微型计算机。要使用 Edge Impulse 设置 Raspberry pi,请查看此处。
此 Raspberry Pi 相机模块是为 Raspberry Pi 定制设计的附加组件。这对我们的应用程序来说已经足够了。
我们使用 5V 2A 适配器为系统供电。在这种情况下,我们没有任何耗电的外围设备,因此 2A 电流就足够了。如果您有 3A 电源,请使用它。
为了方便起见,我们还使用了一个亚克力外壳来安装所有硬件。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !