为 PCB 创建图像分类模型并使用 Flask 设计 Web 应用程序。
本文,为 PCB(印刷电路板)创建一个图像分类模型,检测有缺陷的 PCB 并将它们分类为好或坏。 为此,我们将创建一个深度学习模型,并尝试获得最佳结果以及每个步骤的适当可视化。 创建工作模型后,我们将使用 Flask 为其创建一个 Web 应用程序。
条件
- Jupyter Notebook
- Python
- 库 - Tensorflow, Keras, Pandas, Numpy, Matplotlib, OpenCV, Pillow, Flask
数据源
PCB(印刷电路板)是一种广泛使用的电子元件,几乎用于任何电子设备。 有时在工厂的大规模生产过程中会导致一些异常,从而导致产品有缺陷。 电子公司必须承担这种损失。 因此,这种深度学习图像分类模型仅有助于在生产时识别好的电路和坏的电路。
因此,我们使用的数据集是 PCB 的二进制图像,其中黑色部分表示电路,白色部分表示空电路区域。图像中的点或噪声显示异常。
正如我们所看到的,图像中没有异常和缺陷。现在,我们将看到另一张有缺陷的 PCB 图像。
由于此处标记了缺陷,因此它是有缺陷的 PCB 的一个示例。
预处理
现在下载数据集后,我们可以看到每张图像的尺寸为 640x640。 如果我们减少它们的维度以便于训练数据会更好,但为了确保图像质量不受影响,我们将使用抗锯齿技术压缩图像。
使用 Image Resizer 工具,您将获得所需的结果。
模型实现
现在是设计大脑的时候了。 在这里,我使用了在 ImageNet 数据集上预训练的“MobileNet”模型。MobileNet 是一种基于深度学习的卷积神经网络架构。 它是一种轻量级架构,并使用深度可分离卷积。 你可以从这里的论文中了解更多信息。
训练
因此,我们的数据准备与模型实现一起完成。现在,是时候训练我们的模型了。在我继续之前,我想提一下,我使用了两个名为“Early Stopping”和“Learning Rate Reduction”的回调。
预测和结果
首先,加载我们的模型。
Flask 网络应用
Flask 是 Python 的 API,用于创建 Web 应用程序。所以,首先,我会给你一个我们在使用 Flask 时通常遵循的基本代码片段。
函数
设计
编译和部署
源代码
详情参阅http://viadean.com/image_classified_flask.html