咖啡豆视觉检测系统构建指南

在咖啡豆的包装过程中,确保其品质至关重要。专业的品鉴师会通过“杯测”来确保咖啡豆符合特定的风味特征。此外,还会使用光度计检查咖啡豆的颜色,以确保烘焙程度符合要求。在包装前,还需要进行一轮视觉检查,以排除可能混入包装袋中的石子和缺陷豆。

构建视觉咖啡豆检测系统

为了自动化这一过程,可以利用计算机视觉技术。通过训练计算机视觉系统识别咖啡豆中的石子和缺陷豆,然后将该系统部署在生产线或烘焙车间,对烘焙后的咖啡豆进行自动检查,确保在包装和发货前达到品质要求。

系统构建步骤

本指南将指导构建一个能够识别咖啡豆中石子的系统。可以使用相同的步骤来寻找缺陷豆。

步骤1:创建项目

首先,创建一个免费的Roboflow账户。登录到Roboflow仪表板,然后点击“创建项目”按钮。在新页面上,为项目设置一个名称,并选择“实例分割”项目类型。配置好项目后,点击页面底部的“创建项目”按钮。

步骤2:上传咖啡豆图像

为了训练视觉模型,需要收集代表模型部署环境的图像。例如,如果模型将部署在生产线的顶部摄像头上,应该从生产线收集图像。需要收集咖啡豆的图像,以及包含想要识别的缺陷的图像:石子。(如果想要识别缺陷豆,也需要收集可见缺陷豆的图像。)

建议收集20-30张图像用于训练第一个模型。收集完数据后,可以将它们上传到Roboflow。为此,请将图像拖放到Roboflow项目的数据上传页面:

步骤3:标记咖啡豆图像

计算机视觉模型需要被训练以识别感兴趣的对象。这涉及到用标签注释图像。由于正在训练一个对象检测模型,将在图像中感兴趣的对象——石子和其他类似的外来杂质——周围创建多边形。这些框将作为训练模型的输入,与图像一起使用。

要开始标记图像,请点击项目侧边栏中的“注释”。然后,选择一个图像进行注释。Roboflow注释界面将打开,可以在其中标记数据。

一旦标记了所有图像,就可以生成一个数据集版本。数据集版本是数据集的冻结时间快照。可以对数据集版本应用预处理步骤和增强。预处理步骤为图像训练做准备。增强让使用数据集生成新图像,这可能有助于提高模型性能。

要生成数据集版本,请单击左侧边栏中的“生成”链接。对于这个项目,请添加一个“平铺”预处理步骤。同时,应用一个90度旋转增强。这种增强将通过旋转数据集中的选定图像来生成新图像。这些新图像与已经标记的图像一起使用,将为模型提供更多的信息以供学习。

步骤5:训练咖啡豆检测模型

有了标记的数据集和生成的数据集,就可以训练咖啡豆检测模型了。为此,请在数据集页面上点击“使用Roboflow训练”按钮。一个弹出窗口将出现,可以从中选择配置训练作业的选项。选择“快速”训练。然后,确保从现有的MS COCO检查点进行训练。

总是建议从这个检查点训练第一个模型版本。在后续版本中,可以从以前的模型版本训练来完善模型性能。只有当模型已经表现良好时,才应该使用以前的模型版本作为检查点,否则将从一个次优的检查点进行训练。这将对模型性能产生负面影响。

步骤6:部署咖啡豆检测模型

可以使用Roboflow推理在自己的硬件上部署咖啡豆检测模型。推理是一个开源应用程序,可以使用它来运行计算机视觉模型。例如,可以将检测系统部署到连接到摄像头的NVIDIA Jetson上,该摄像头可以俯瞰生产线,推理在设备上运行模型。

要部署模型,首先安装推理:

pip install inference

接下来,安装监督,这是一个Python包,包含可以用于处理视觉模型预测的实用工具:

pip install supervision

接下来,将Roboflow API密钥导出到名为ROBOFLOW_API_KEY的环境变量中:

export ROBOFLOW_API_KEY="key"

最后,创建一个新的Python文件并添加以下代码:

from inference import get_roboflow_model import supervision as sv import cv2 image = cv2.imread("image.jpg") model = get_roboflow_model(model_id="coffee-bean-inspection/2") result = model.infer(image)[0] detections = sv.Detections.from_inference(result) 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) sv.plot_image(annotated_image)

在上面的代码中,将coffee-bean-inspection/1替换为Roboflow模型ID。了解如何检索模型ID。当首次运行上述脚本时,将下载模型权重。这将需要一些时间。然后,模型将在默认系统摄像头的输出上运行。如果有多个网络摄像头,可以从0更改视频源为不同的数字(例如,对于第二个摄像头使用1)。也可以提供RTSP流而不是网络摄像头源。

当石子进入视野时,模型会识别它。然后,可以通过人工(适合个别烘焙车间)或使用自动化系统(适合拥有自动化装配线流程的大型烘焙车间)来移除石子。

可以使用计算机视觉来检查咖啡豆。在本指南中,开发了一个系统,可以识别咖啡豆袋中石子的存在。为了构建这个系统,收集了咖啡豆的图像,包括咖啡豆中混有石子的图像。将数据上传到Roboflow,标记了所有的石子,然后训练了一个模型。然后使用开源工具Roboflow推理将模型部署到自己的硬件上。

上述指南可以扩展到识别不同的缺陷实例。例如,可以通过在用于训练模型的图像中标记缺陷豆来识别缺陷豆。

需要帮助构建咖啡豆检测系统吗?

请联系Roboflow销售团队。销售团队是构建用于制造过程的计算机视觉系统的专家。销售团队可以就如何最好地将计算机视觉集成到工作流程中提供建议。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485