在金属加工和制造行业中,表面缺陷如划痕、凹痕或其它不期望的瑕疵是影响产品质量的重要因素。为了确保产品的高标准,需要一种高效且可靠的检测方法。计算机视觉技术提供了一种自动化的解决方案,可以识别和分类这些缺陷。本文将介绍如何利用计算机视觉技术来检测金属表面的缺陷,并展示如何将这一技术集成到质量保证流程中。
传统的机器视觉系统通常使用模式匹配等工具来识别金属缺陷。这些系统虽然可靠,但往往一次只能进行一项检查。这意味着一个部件可能需要通过多个摄像头来完成所需的检查。而计算机视觉系统则使用深度学习来识别物体的特征。例如,可以训练一个系统来识别——并区分——凹痕、裂纹和划痕。这个系统可以像机器视觉系统一样实时运行,并可以连接到制造执行系统,用于监控生产线。
计算机视觉是识别金属缺陷的有效方法。要构建一个用于识别金属缺陷的计算机视觉系统,需要一个能够识别缺陷的模型。模型是一种经过训练的计算机程序,能够找到特定的物体。本文将向展示如何使用一个预训练的计算机视觉模型,并讨论如何训练自己的模型来识别制造设施中存在的特定缺陷。
将使用Roboflow平台来部署视觉模型。首先,创建一个免费的Roboflow账户。这将允许访问一个API密钥,将使用这个API密钥来测试一个预训练的缺陷检测模型。
在Roboflow Universe上打开金属缺陷检测模型。Universe是世界上最大的开源计算机视觉模型社区,有超过50,000个预训练模型可供使用。要测试模型,点击侧边栏中的“模型”,然后选择屏幕左侧窗格中标记为“测试集”的图像。这将允许在为测试模型性能而设置的图像上测试模型。也可以上传自己的图像或视频来使用模型。
在Roboflow上训练的所有模型都可以部署到自己的硬件上。本文将指导如何在边缘设备上部署模型。为了获得最佳性能,建议在专用的边缘计算设备上部署,如NVIDIA Jetson。对于测试,可以在计算机上部署模型。
首先,需要安装Inference系统,这是一个允许在自己硬件上运行计算机视觉模型的系统。本文还将需要安装supervision,这是一个Python包,提供了一系列用于处理视觉模型的工具。
pip install inference
# 设置API密钥在环境。将使用这个API密钥来认证与Roboflow。
export ROBOFLOW_API_KEY="key" # “key”是API密钥
# 创建一个新的Python文件并添加以下代码:
from inference import get_roboflow_model
import supervision as sv
import cv2
image = cv2.imread("image.jpg")
model = get_roboflow_model(model_id="defect-detection-dqcko/4")
results = model.infer(image)
labels = [i.class_name for i in results[0].predictions]
detections = sv.Detections.from_inference(results[0].dict(by_alias=True, exclude_none=True))
bounding_box_annotator = sv.BoundingBoxAnnotator()
label_annotator = sv.LabelAnnotator()
annotated_image = bounding_box_annotator.annotate(
scene=image, detections=detections)
annotated_image = label_annotator.annotate(
scene=annotated_image, detections=detections, labels=labels)
sv.plot_image(annotated_image)
这段代码将在名为“image.jpg”的图像上运行模型。将“image.jpg”替换为想要运行模型的文件名。然后,推理的结果将在交互式窗口中显示,以供评估。
上述内容展示了如何使用预训练模型来识别金属表面的缺陷。尽管如此,建议使用自己的数据来训练一个自定义模型,以确保系统尽可能多地识别出缺陷实例。模型训练所用的图像越能代表模型部署的环境,模型的性能就越好。
构建视觉模型的步骤如下:收集图像、使用标记工具在每张图像中标注缺陷、生成数据集、训练模型、部署模型。可以在一个下午内训练出视觉模型的第一个版本。要开始,请参阅Roboflow入门指南。
一旦训练了一个自定义模型,可以开始将业务逻辑应用到模型的输出上。例如,可以在物体的特定角落搜索缺陷。可以测量划痕的长度,或者可以跟踪制造过程中最有可能产生缺陷的阶段。
Supervision Python包提供了一套广泛的工具,用于将计算机视觉集成到业务逻辑中。Supervision拥有用于可视化计算机视觉模型结果的工具,计算物体在区域中停留的时间,计算物体穿越线条的次数,按大小过滤预测等。
如果需要帮助构建适用于用例的视觉模型并将模型部署到生产中,请联系Roboflow销售团队。Roboflow团队与Rivian Automotive等企业合作,使用计算机视觉模型构建强大的质量保证模型。