面向初学者的实用计算机视觉/机器学习用例

111 阅读4分钟

因此,几年前,我正在为我们的一个客户所面临的一个问题制定解决方案。为了给你一个概念,我们的客户大多是制造公司。这家公司生产安全剃须刀,并希望在包装和运送给消费者之前能够区分有盖和无盖的剃须刀。说实话,我已经厌倦了整天坐在我的办公桌前。所以我接手了这个项目(当时我以为只是从市场上买一些装置,然后卖给他们🤦♂️),下面是它的过程。

问题是,安全剃须刀将在传送带上运行,有三个潜在的缺陷,如果发生这些缺陷,将通过停止机器来消除。这种情况总是以下情况之一。

1.安全剃须刀丢失

2.安全剃须刀头缺失

3.安全剃须刀帽不见了

4.安全剃刀没问题

我做了研究,在我现有的硬件条件下,我选择了一种图像分类方法(基于和一个朋友的闲聊,他提到了一些关于区分猫和狗的图片😐)。

我阅读了一些论文和文章来熟悉ML(如果没有开源社区的支持,这是不可能的😊)。我现在的目的是用我自己的图像对现有的ML模型进行微调(也称为转移学习)。上述每一种情况的图像都被捕获了。现在我需要将这些图像输入ML模型进行训练。遗憾的是,我的电脑无法应对这一挑战。训练ML模型需要更高的计算能力。我在网上搜索了这句话,并继续使用亚马逊EC2实例在云端训练我的模型。我训练了一个模型,但结果并不理想,所以我放弃了这种方法,坚持在我的系统上训练,通过减少批次大小,这也减少了所需的计算能力(googling my way through life 😎)。该模型已成功训练。现在是实时捕捉实际图像的任务。一个传感器被用来定位剃须刀,它将信号发送到计算机上。计算机程序验证了该信号,并开始了图像捕捉序列。简而言之,网络摄像头捕捉到的图像被发送到处理器,并反馈给机器学习模型。该程序将输出该部件最可能类似的百分比(有缺陷或可接受)。根据结果,一个信号将操作一个继电器,在程序做出缺陷结果决定的情况下关闭机器。

上述所有功能的软件方面是在基于Linux的操作系统上运行的Python上处理的。

在测试了一百多个不同的模型后,有一个模型的准确率达到了每1000个剃须刀中只有一个错误的分类。说实话,我对自己很满意,但客户不同意。这与合规性有关。

对我来说,这是一个障碍,因为很难追踪错误分类的根本原因,因为模型没有提供明确的理由来解释为什么它选择一个类别而不是另一个。我已经准备放弃了。但后来我想到了一个主意。我正试图想办法从视觉上区分这两个物体(有塑料帽和无塑料帽),这时我想到了塑料的一个非常明显的特征。它们的反射性更强。我改变了程序的分析部分,以比较图像的亮度值。它成功了!它的性能更好,计算量更少。经过彻底的评估,客户购买了这个系统。一个月后,他们又订购了一套😀。下面我补充了产品使用前和使用后的照片。

这个项目给我的主要启示是,在满足需求的同时,要尽量保持简单。另外,提供免费学习材料的人是非常酷的 😉


面向初学者的实用计算机视觉/机器学习用例》最初发表在《Nerd For Tech》杂志上,人们通过强调和回应这个故事来继续对话。