在当今数字化时代,计算机视觉技术的应用越来越广泛,其中一个重要应用就是商品识别和库存管理。通过计算机视觉,可以构建一个系统,该系统能够识别图像中的商品,提取商品的属性,并以结构化数据的形式返回。
设想一个场景,正在构建一个面向消费者的包装商品库存目录系统。这个系统应该允许用户拍摄商品的照片,并在系统中注册关于该商品的结构化数据(例如商品名称、ID、SKU)。利用计算机视觉,可以构建这样的系统。
在本指南中,将构建一个商品库存系统。将通过一个示例,让拍摄一袋咖啡的照片,并检索有关咖啡的结构化数据。不需要编写任何代码来开发应用程序的逻辑。可以自定义应用程序以识别不同类型的包装(例如袋子、盒子)。
要构建系统,将执行以下步骤:
系统将返回一个JSON结果,该结果可以使用代码进行处理。让详细讨论这个工作流程是如何工作的。
Workflows是一个低代码计算机视觉应用程序构建器。通过Workflows,可以在Web界面中构建复杂的计算机视觉应用程序,然后使用Roboflow云、边缘设备(如NVIDIA Jetson)或任何云提供商(如GCP或AWS)部署Workflows。
Workflows为项目提供了广泛的预构建功能,可以在Workflows Web编辑器中测试管道,允许在不编写任何代码的情况下迭代开发逻辑。
首先,需要能够检测商品。对于这项任务,将使用YOLO-World,这是一个零样本对象识别模型。可以使用YOLO-World来检测常见对象(例如盒子、商品包装),而无需训练一个微调模型。
通过使用YOLO-World,可以在不花费时间构建自定义模型的情况下检测商品。为了检测咖啡包装,向模型提供文本提示“咖啡包装”:
YOLO-World.detect("咖啡包装")
一旦YOLO-World检测到商品,将使用动态裁剪块裁剪它们。这将使用YOLO-World的检测结果创建新图像。例如,如果图像包含三个咖啡包,将创建三个图像:每个包装一个。
要从每个包装中提取信息,将使用GPT-4模型。将为原始图像的每个裁剪区域调用一次GPT-4模型。通过提前裁剪图像,可以将每个响应归因于一个图像。这意味着可以将响应与图像关联起来,因此库存系统可以保存特定包装的图像以及从图像中提取的元数据。
要从包装中提取数据,使用GPT-4模型。这个模型通过大型多模态模型(LMM)块访问。提供提示“读取咖啡袋上的信息”,然后使用自定义JSON提示在“JSON输出”字段中提取特定信息:
{
"烘焙日期": "烘焙日期",
"国家": "国家",
"风味笔记": "风味笔记"
}
第一个值是工作流程将返回的标签,第二个是与每个值关联的提示。
工作流程包含一个边界框可视化块。这个块将显示YOLO-World返回的所有预测。这对于调试非常有用;可以看到YOLO-World检测到的确切区域。
已经配置了工作流程以返回三个值:
要测试工作流程,请点击页面顶部的“运行预览”。要运行预览,首先将图像拖放到图像输入字段中。点击“运行预览”以运行工作流程。工作流程将运行并提供两个输出:
让在这张图像上运行工作流程:
工作流程返回一个包含GPT-4模型数据的JSON响应,以及显示YOLO-World检测到的边界框区域的视觉响应。
{
"structured_output": {
"烘焙日期": "2020年8月9日",
"国家": "秘鲁,哥伦比亚",
"风味笔记": "巧克力,焦糖,柑橘"
}
}
工作流程可以在Roboflow云中部署,也可以在边缘设备上部署,如NVIDIA Jetson或Raspberry Pi。要部署工作流程,请点击工作流程构建器中的“部署工作流程”。然后,可以选择想要部署工作流程的方式。
可以使用计算机视觉构建复杂的包装理解系统。在本指南中,使用Roboflow Workflows构建了一个工具,该工具可以识别咖啡袋并从咖啡袋中提取数据。然后,这些数据以JSON形式返回,可以保存在包装索引系统中。