Facebook用AI看图识菜谱是怎么实现的?

2023-10-18 19:59

本文主要是介绍Facebook用AI看图识菜谱是怎么实现的?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

640?wx_fmt=gif


硅谷Live / 实地探访 / 热点探秘 / 深度探讨



还记得上周我们说的Facebook的AI识菜谱,把皮卡丘认成了煎蛋吗?硅谷洞察专门翻译了 Facebook AI 的官方说法,看看它的工作原理是什么,到底重要性又如何。




研究内容是什么:


根据人类的判断,一种直接从食物图像中生成菜谱的新方法,可以生成比基于检索的方法更吸引人的菜谱。通过在大规模菜谱数据集上进行的评估,该方法提高了与以前的成分预测方法基线相比的性能。通过这项工作,我们旨在通过输入食物图像来提供准备一顿饭的途径。(简单说就是:你不再需要搜做什么的菜谱如何,给 AI 一张食物图片,它就能给你判断食材和制作过程有哪些,然后生成菜谱)


工作原理:


从图像生成菜谱需要同时了解构成菜谱的配料以及它们所经过的任何加工,例如切片或与其他配料混合。传统上,图像到菜谱的问题被表述为一个检索任务,菜谱是根据嵌入空间中的图像相似度评分从一个固定的数据集检索出来的。这些系统的性能在很大程度上取决于数据集的大小和多样性,以及所学的嵌入的质量。毫不奇怪,当静态数据集中不存在用于图像查询的匹配菜谱时,这些系统就会失效。


克服检索系统数据集约束的另一种方法是将图像到菜谱的问题表示为条件生成问题。我们认为,与直接从图像中获取菜谱不同,生成菜谱的管道将受益于中间步骤:预测配料列表。然后根据图像及其对应的配料列表将会生成指令序列,其中图像和配料之间的相互作用可以提供关于后者是如何加工成最终菜肴的额外见解。


我们的图像到菜谱的生成系统将食物图像作为输入,并输出包含标题、配料和烹饪说明的配方。我们的方法首先对图像编码器和成分解码器进行预训练,它们利用从输入图像和成分共现中提取的视觉特征来预测一组成分。


然后,我们训练成分编码器和指令解码器,它们通过提取图像的视觉特征和预测的成分,并将它们输入一个最先进的序列生成模型,从而生成标题和指令。


为什么重要:


食品识别挑战了当前的计算机视觉系统,使其不仅仅是可见的。与自然图像理解相比,视觉成分预测需要高级推理和先验知识(例如,羊角面包可能含有黄油)。这带来了额外的挑战,因为食物成分具有很高的类内变异性,在烹饪过程中会发生严重的变形,而且成分经常在烹饪的菜肴中被掩盖。我们的系统是迈向更广泛的食品理解系统的第一步,如卡路里估算和菜谱创建。


此外,此类培训可用于需要从图像和预测关键字预测长结构化文本的任何问题。管道的第一部分(成分预测)可用于解决更广泛的问题,如图像到集合预测。


感兴趣的可以点击官方原文阅读:

https://ai.facebook.com/blog/inverse-cooking/


此前硅谷洞察的文章:

Facebook的AI识菜谱,把皮卡丘认成了煎蛋……|技术前沿洞察



推荐阅读

640?wx_fmt=jpeg

区块链报告 | 脑机接口报告 

硅谷人工智能 | 斯坦福校长

卫哲 | 姚劲波 | 胡海泉 

垂直种植 | 无人车

王者荣耀 | 返老还童 



640?wx_fmt=jpeg


这篇关于Facebook用AI看图识菜谱是怎么实现的?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/234829

相关文章

Python实现AVIF图片与其他图片格式间的批量转换

《Python实现AVIF图片与其他图片格式间的批量转换》这篇文章主要为大家详细介绍了如何使用Pillow库实现AVIF与其他格式的相互转换,即将AVIF转换为常见的格式,比如JPG或PNG,需要的小... 目录环境配置1.将单个 AVIF 图片转换为 JPG 和 PNG2.批量转换目录下所有 AVIF 图

Pydantic中model_validator的实现

《Pydantic中model_validator的实现》本文主要介绍了Pydantic中model_validator的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价... 目录引言基础知识创建 Pydantic 模型使用 model_validator 装饰器高级用法mo

AJAX请求上传下载进度监控实现方式

《AJAX请求上传下载进度监控实现方式》在日常Web开发中,AJAX(AsynchronousJavaScriptandXML)被广泛用于异步请求数据,而无需刷新整个页面,:本文主要介绍AJAX请... 目录1. 前言2. 基于XMLHttpRequest的进度监控2.1 基础版文件上传监控2.2 增强版多

Redis分片集群的实现

《Redis分片集群的实现》Redis分片集群是一种将Redis数据库分散到多个节点上的方式,以提供更高的性能和可伸缩性,本文主要介绍了Redis分片集群的实现,具有一定的参考价值,感兴趣的可以了解一... 目录1. Redis Cluster的核心概念哈希槽(Hash Slots)主从复制与故障转移2.

springboot+dubbo实现时间轮算法

《springboot+dubbo实现时间轮算法》时间轮是一种高效利用线程资源进行批量化调度的算法,本文主要介绍了springboot+dubbo实现时间轮算法,文中通过示例代码介绍的非常详细,对大家... 目录前言一、参数说明二、具体实现1、HashedwheelTimer2、createWheel3、n

使用Python实现一键隐藏屏幕并锁定输入

《使用Python实现一键隐藏屏幕并锁定输入》本文主要介绍了使用Python编写一个一键隐藏屏幕并锁定输入的黑科技程序,能够在指定热键触发后立即遮挡屏幕,并禁止一切键盘鼠标输入,这样就再也不用担心自己... 目录1. 概述2. 功能亮点3.代码实现4.使用方法5. 展示效果6. 代码优化与拓展7. 总结1.

Mybatis 传参与排序模糊查询功能实现

《Mybatis传参与排序模糊查询功能实现》:本文主要介绍Mybatis传参与排序模糊查询功能实现,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧... 目录一、#{ }和${ }传参的区别二、排序三、like查询四、数据库连接池五、mysql 开发企业规范一、#{ }和${ }传参的

Docker镜像修改hosts及dockerfile修改hosts文件的实现方式

《Docker镜像修改hosts及dockerfile修改hosts文件的实现方式》:本文主要介绍Docker镜像修改hosts及dockerfile修改hosts文件的实现方式,具有很好的参考价... 目录docker镜像修改hosts及dockerfile修改hosts文件准备 dockerfile 文

基于SpringBoot+Mybatis实现Mysql分表

《基于SpringBoot+Mybatis实现Mysql分表》这篇文章主要为大家详细介绍了基于SpringBoot+Mybatis实现Mysql分表的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可... 目录基本思路定义注解创建ThreadLocal创建拦截器业务处理基本思路1.根据创建时间字段按年进

SpringBoot3实现Gzip压缩优化的技术指南

《SpringBoot3实现Gzip压缩优化的技术指南》随着Web应用的用户量和数据量增加,网络带宽和页面加载速度逐渐成为瓶颈,为了减少数据传输量,提高用户体验,我们可以使用Gzip压缩HTTP响应,... 目录1、简述2、配置2.1 添加依赖2.2 配置 Gzip 压缩3、服务端应用4、前端应用4.1 N