在这篇文章中,将探讨如何利用计算机视觉模型来检测美国节日中常见的美食,例如墨西哥卷饼和啤酒。不仅关注这些美食,还想向用户简要介绍相关的节日背景。每年的5月5日,人们庆祝的Cinco de Mayo是为了纪念1862年墨西哥在普埃布拉战役中战胜法国帝国的周年纪念。尽管这个节日常被误认为是墨西哥的独立日,但实际上它们是两个不同的节日,分别纪念墨西哥历史上不同的事件。
多标签分类是一种机器学习技术,它允许模型为给定的图像学习并预测多个类别,而不仅仅是一个(如单标签分类)。当需要识别难以通过边界框标注的场景,如夜晚、白天、派对、婚礼、葬礼、艺术类型等,或者当只关心识别对象而非其绝对位置时,多标签分类尤为有用。尽管数据集可以是一个边界框目标检测或实例分割项目,但选择了多标签分类作为本教程的主题。
为了创建计算机视觉项目,可以访问Roboflow知识库,了解更多关于如何在Roboflow上创建第一个计算机视觉项目。
为了收集足够的墨西哥卷饼、啤酒和空(希望模型能够识别出寻找的对象不在那里)的图像,使用了多个不同的数据集上传到Roboflow。还确保通过这些来源使数据集多样化,以创建一个不会因为缺乏多样性而过度拟合的数据集。还包含了许多空图像,并将它们标记为“空”类别。
选择的数据集类别名称包括:
用于此模型的数据集包括:
可以查看指南,了解如何上传分类数据集,以及如何将目标检测项目转换为分类项目。
首先,使用Roboflow的新Roboflow推理小部件工具,或称为rfWidget,来测试模型。rfWidget使得执行推理测试变得简单,可以可视化模型在完全部署到生产环境中时可能的表现。要开始使用,只需将图像拖放到rfWidget上,或点击“浏览设备”从计算机中选择文件。rfWidget接受JPEG、PNG和WEBP等格式的图像文件。
还可以使用Roboflow的托管推理API进行推理。一些人可能会好奇:“为什么API和小部件返回的都是JSON值,原本期待的是高级代码用于检测?”秘密在于,这些JSON值是在使用部署在网络摄像头、Jetson、Luxonis OAK、Google Coral、Raspberry Pi或服务器上的模型进行推理时收到的输出。
Roboflow多标签分类(MLC)JSON输出包括:
{
"predictions": {
"beer": {
"confidence": 0.5030962824821472
},
"taco": {
"confidence": 0.5743188858032227
}
},
"predicted_classes": [
"beer",
"taco"
]
}
JSON格式足够灵活,不仅可以与JavaScript一起使用,还可以与其他编程语言如Python一起使用。这种格式还使得与API交互以及数据库存储和数据检索变得容易。