计算机视觉:使用 Open Food Fact 数据集的产品查找器
项目 深网 在实现 赫蒂克 学校硕士 I DATA & AI
作者 : 路易斯·查尔斯 , 昆汀·查洛平 , 马克西姆王子
项目经理: 鲁道夫·勒弗雷
深网铅 : 马克斯·科恩
Git 仓库: 深网
内容
介绍
1.1 公开食品事实
OFF(Open Food Facts)是一个大型的“开源”数据库,允许用户添加与食品行业相关的产品以丰富它。我们可以通过网站看到用户可以添加的内容,因此可以直接告知不同的描述如下
1.1 图片
1.2 产品特点
- 1.3 成分
1.1.4 营养信息
我们在这里列出了我们可以在下面的数据库中拥有的最佳数据之一,尽管其中许多数据被发现不完整或错误。
1.2 目标
使用该数据库和 Python 编程语言,我们希望开发一种能够根据产品图像识别产品的 AI。因此,多亏了一个假设的应用程序,用户可以“只为产品拍照”,它将引导他找到与产品相关的数据。用户也更容易识别消费者研究产品可能需要的所有特征。
1.3 协议
为此,我们必须“清理”数据库,以便只保留包含所有必要信息的产品,正如我们在 1.1 中看到的那样。因此,理想情况下,我们将能够在数据集的“最佳”值上训练模型。选择完成后,我们需要找到用于图像识别的最佳 Python 库。我们将能够根据呈现的图像获得对产品名称的预测。
1.4 导入
以下是用于在 python 中实现该项目的库列表:
打扫
在这个庞大的数据库中丢失超过 3/4 的时间后,我们得出的结论是,在超过 200 万行中,只有少数数据真正有效。
2.1 栏目
DataFrame 由 191 列和 2,148,801 行组成,因此我们必须通过删除所有“NaN”超过 80% 的列进行过滤,实际上我们估计这些列太空而无法利用
在浏览完所有剩余的列之后,我们决定保留最相关的列。
2.2 创作者
在填充这个数据库的创作者中,我们注意到有些创作者并没有完全填满 DataSet 的所有列,因此我们选择无论创作者输入的产品有多受欢迎和多少,我们都将关注那些填满所有列的人。
我们还注意到,一些品牌在这个数据库中更为常见,因此我们找到了一种方法来显示几乎完全出名的前 10 名品牌下方的图表。
2.3 值的验证
删除大部分数据后,我们现在将检查剩余数据是否可用。所以我们制作了一个用 Beautiful-Soup 编码的抓取工具,一个可以根据 HTML 页面的结构从网站检索值的库。
此功能允许我们检查网站上存在的值是否与数据库中的值相同,经过分析,我们意识到许多链接已失效,而其他链接与数据库中的链接不同,但给出了相同的结果。
2.4 图像
在这一部分中,我们将简单地下载与数据库 url 关联的图像。
2.5 标签
恢复的数据需要进行最后的清理,开始训练模型,我们需要在 3 种模型模式之间进行选择:
• 监督
- 半监督
- 无监督
拥有产品名称“product_name”列以及产品图像,我们理论上可以实现监督训练方法。
与产品名称相关联的图像将帮助模型学习并将图像同化为名称。我们将在下一章深入探讨机器学习的主题。
问题是我们处理的是“开源”数据,换句话说,产品的名称很可能因一个相同的产品而不同。所以我们手动重命名了 4800 个值来准备我们项目的最后一部分。
机器学习
3.1 原型
首先,我们决定使用带有基本神经网络的分类器,但是我们没有足够的每个产品的图片,即使我们使用超过 100 个产品的每个产品 10 张图片,我们也没有成功设置正确的神经网络。第二个选择让我们测试解码器和只有一个邻居的 KNN 之间的组合,因为我们每个产品只有一张图片。
3.1.1 调整大小和规范化
我们决定使用 128 的比例,因为我们试图在图片上有足够的信息来识别产品上的品牌。
3.1.2 绑定图片名称
一旦图片被转换为有用的数据,我们可以将类别编号关联到他的标签名称编号。
3.1.3 可视化
3.1.4 型号
初始化
在这里,我们正在修复所有对模型训练部分有用的变量。
编码器和解码器
当所有函数都准备好后,我们可以使用以下代码行来执行它们。
在编译之前,我们可以看到我们为某种指标设置了优化器和损失函数。
3.2 培训
3.2.1 纪元
为了训练模型,我们必须通过修改神经网络中的某些神经元来最小化损失函数。这是一个正
3.3 预测
3.3.1 K-最近邻——KNN
因为我们使用了监督学习技术,KNN 方法将帮助我们确定在所有数据之间创建分类以便更好地预测。
现在我们可以执行下面的所有功能了。
3.4 结论
困难的部分是我们 80% 的时间用于清理所有数据库并创建一个有用的数据集,该数据集被标记以帮助机器学习。 9% 的值的准确性非常低,这可以通过每个产品缺少图像来解释,模型无法识别给定产品的重要内容。通过使用 10 张图像,模型可以识别某些图案,例如具有不同背景的特定形状或颜色。通过使用数据增强,我们可以只用一张图像获得更好的结果。数据增强允许创建具有不同参数(例如颜色、对比度)的图像副本,简而言之,翻转会创建图像的不同情况
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明
本文链接:https://www.qanswer.top/11632/49020311
标签:Food,数据,数据库,3.1,产品,图像,Open,我们,Fact From: https://www.cnblogs.com/amboke/p/16652290.html