在Erasmus Brussels的研究生应用人工智能课程中,小组开发了一个物体检测模型,用于识别冰箱中的食材。这个项目的核心是AICook,一个烹饪应用,它能够识别冰箱中的食材,并查找包含这些食材的食谱。最后,为选定的食谱生成了与葡萄酒搭配的品酒师语音文本。听起来是不是很酷?继续阅读,将向介绍食材检测部分。
获取数据的过程相当困难,因为现有的公共数据集并不符合需求,所以决定自己创建数据集。从使用的食谱数据集中提取了前50种食材,并从中随机选取了30种来填充冰箱。这个数据集由Karel Cornelis创建,包括516张开源食材图片以及一个预训练的AICook模型和API。
使用一个固定位置的相机拍摄了所有图片(尺寸在1424-2144像素之间,ISO 400-300,sRGB色彩空间)。通过移动/更换食材,拍照,重复这个过程,总共拍摄了516张图片。这个过程非常枯燥,但幸运的是孩子们帮助完成了这项工作。
尽管市面上有许多标记工具,但选择了Roboflow,原因如下:这是一个在线工具,无需安装,易于使用;数据是私有的(即使是Roboflow的工作人员也需要许可才能查看),或者可以选择公开;支持多用户/团队协作;提供各种有用的工具、数据集版本和多种输出格式;标记图片非常简单。
发现标记是一个繁琐的任务,但Roboflow的团队已经意识到了这一点,并提供了两个非常有用的功能来显著加快标记速度:复制/粘贴前一张图片的标签;Label-Assist。标记了一半的图片,并用这些标记的图片生成了一个“助手”AI模型。然后,这个模型帮助标记了剩下的一半图片。
使用健康检查功能来评估工作。通过简单的鼠标点击,检查了类别平衡、每张图片中的对象数量和注释热图。正如所知道的,AI模型需要大量的数据,最好是有足够的变化,以便模型能够很好地泛化,并能够应对现实生活情况。大多数模型对输入大小有一定的限制。使用了YOLOv5,它需要32像素的倍数的正方形图片。
Roboflow平台提供了图像预处理和增强功能,并且可以以非常声明式的方式进行选择。可以挑选所需的增强功能,并选择想要多少版本的基本图片。
尝试并探索了几种不同的增强方式,最终选择了上述设置。所有数据集版本都被保留,并通过URL公开,可以轻松地在笔记本或应用程序中使用。当导出数据集时,有多种注释格式可供选择。这在想切换或比较模型时非常方便,无需额外的工作。只需指向正确的URL即可!
一旦设置好了数据集,并且添加了所需的增强功能,就可以开始在数据上训练视觉模型了。注意,数据集可以被分割成所需的三个部分(训练、验证、测试)。通常按照70%、20%、10%的比例分割,但也可以选择自己的数据集大小。
Roboflow还可以根据数据集生成模型,并将这些模型方便地暴露为网络服务端点。还有一些其他的即开即用部署选项。没有使用这些部署功能,因为想构建自己的应用程序。然而,确实使用了模型库中提供的YOLOv5笔记本来进行模型探索、设置训练等。