CookGAN: Causality based Text-to-Image Synthesis

作者:Bin Zhu、Chong-Wah Ngo

会议:2020 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)

为什么要提出CookGAN:

  • 这篇论文从一个新的角度,即图像生成中的因果链,来解决文本到图像的合成问题。因果关系是烹饪中常见的现象。菜肴的外观取决于烹饪动作和配料。CookGAN模拟了因果链中的视觉效果,保留了细粒度的细节,并逐步上采样图像。
  • 在此之前,网络多是强调图像质量,但是忽略了图像生成过程中的因果视觉场景。比如很难生成与“切鸡肉切成丁,拌烤花生”文本对应的图像。这是因为这句话是行动导向的。预期的图像细节是像“鸡丁”和“烤花生”这样的实体,以及搅拌这两个实体的视觉效果,以往的网络依赖于文本和视觉实体之间的映射,无法处理这种因果逼真的图像生成。该文研究的是菜谱-图像的合成,从烹饪菜谱中生成食物图像。与描述图像中所期望的视觉内容的视觉叙事句子不同,菜谱提供了作为实体的原料和烹饪步骤,从文字上指导菜肴的准备工作。

CookGAN解决的问题:

  1. 网络允许烹饪步骤和配料之间的明确互动
  2. 进地学习菜肴在不同步骤中的演变,这样,即时修改食材和说明就有可能将菜肴的新效果可视化。
  3. 成分作用的捆绑效应可以被建模。例如,鸡蛋的形状会根据动作是煮、煎还是蒸而变化。
  4. 了解食材对菜肴的可见性和影响。例如,“糖”可能是看不见的,而“番茄酱”可以显著改变一道菜的外观
  5. 当然除了上面的问题,CookGAN还考虑了照片和语义真实感图像的生成。逐步将图像从低分辨率提升到高分辨率。计算每个成分(ingredients,也就是食物原材料)对生成图像的子区域的相对重要性,以表示细粒度的成分细节。还可以使用现有的配料编码器对生成的食物图像的配料进行语义解释。

CookGAN:

1.模型结构:

  • CookGAN包含三对生成器和鉴别器。首先将嵌入的特征φr\varphi_rφr​与高斯分布的随机噪声ZZZ进行拼接,将结果输入上采样,上采样时一个多层前馈网络,将受扰动的特征转化为隐藏的图像特征V0V_0V0​。CookGAN最关键的组件时Cooking Simulator(橘黄色区域)。

  • 目标函数为:

    L=∑i=02LGi+λLCAL=\sum_{i=0}^{2}L_{G_i}+\lambda L_{CA}L=∑i=02​LGi​​+λLCA​

    这里的LGiL_{G_i}LGi​​为第iii个generator loss,LCAL_{CA}LCA​是CA(StackGAN++中的条件作用增强)模块的loss,该损失被用作正则化器,以避免过拟合,并从配方嵌入流形中强制平滑采样。而λ\lambdaλ参数是平衡这两种loss的权衡超参数。

2. Cooking Simulator:

*

  • 该组件是模仿真实的烹饪场景,随着时间的推移,不同的切割和烹饪动作会组件施加在食材上。每一个动作都将一些成分转变成新的形式,改变成分、颜色或形状。比如,“胡萝卜”被切成片,“意大利面”与“鱿鱼酱”炒成黑色。接下来的后续操作可以沿着烹饪过程对表单进行附加更改。

  • 图中φing\varphi_{ing}φing​代表成分表,第iii个尺度的图像特征表示为ViV_iVi​,首先将图像特征ViV_iVi​与成分特征表φing\varphi_{ing}φing​进行融合,得到图像中各成分特征图的大小为C×LC \times LC×L。计算FiattendF_{i_{attend}}Fiattend​​的第jjj个通道(图片中的蓝色区域表示为多个通道)为:

    Fiattendj=∑m=0M−1σ(vjT⋅f(φingm))f(φingm)F_{i_{attend_{j}}}=\sum_{m=0}^{M-1}\sigma(v_j^T \cdot f(\varphi_{ing_m}))f(\varphi_{ing_m})Fiattendj​​​=∑m=0M−1​σ(vjT​⋅f(φingm​​))f(φingm​​)

    这里的f(⋅)f(\cdot)f(⋅)是一个1x1的卷积,将成分特征映射到与第iii个尺度的隐藏图像特征ViV_iVi​相同的维度。通过σ(⋅)\sigma(\cdot)σ(⋅)(softmax函数)得到各成分的注意图。即σ(vjT⋅f(φingm))\sigma(v_j^T \cdot f(\varphi_{ing_m}))σ(vjT​⋅f(φingm​​))。通过将图谱与相应的成分特征向量f(φingm)f(\varphi_{ing_m})f(φingm​​)相乘,来确定成分的空间位置。再对每个成分结果进行线性加权求和,得到第jjj个通道图像有成分特征图。

  • 在此之后,用GRU对烹饪步骤进行顺序编码。在初始阶段使用FiattendF_{i_{attend}}Fiattend​​,该设计的目的是模仿烹饪的过程(因为一步一步的将Instruction特征加进去,就像烹饪做菜一样,有步骤的把菜放入锅中),每一个烹饪的结果显然易见的是GRU的隐藏状态,这里将φins\varphi_{ins}φins​表示为一个烹饪步骤序列。第jjj个通道GRU的最后一个隐藏状态表示为:

    Ficookj=GRU(Fiattendj,φins)F_{i_{cook_j}}=GRU(F_{i_{attend_j}},\varphi_{ins})Ficookj​​​=GRU(Fiattendj​​​,φins​)

    也就是说FiattendF_{i_{attend}}Fiattend​​中的每个通道都需要与GRU和φins\varphi_{ins}φins​进行编码。其中FicookjF_{i_{cook_j}}Ficookj​​​为第iii个scale“cooked”特征图的第jjj个通道。最终cooked feature maps与ViV_iVi​有相同的维数,然后将ViV_iVi​、FiattendF_{i_{attend}}Fiattend​​和FicookF_{i_{cook}}Ficook​​三组feature map串联之后接入残差块中,然后得到的特征映射成为下一轮图像上采样的输入。

实验结果:

  • 可以看到与基线相比,CookGAN的表现明显由于StackGAN++等其他方法。而在图三中可以看出,通过CookGAN模拟得到的图像与真实样本图像的成分组成模式类似,在制作不同食材时,更能模拟菜肴的颜色和纹理分布。

语义解释(Semantic Interpretation):

作者认为,生成的图像不仅应该在视觉上吸引人,而且在语义上也应该可以解释,因此,设计了三个任务来衡量生成图像的可解释性。

任务1 Ingredient recognition(成分识别):

  • 成分识别是指对食品图像中的成分进行多重标注。

  • 结果基本验证了CookGAN合成的图像与真实图像一样具有可解释性,上图列出了由CookGAN生成的两个示例图像的可识别成分,不仅可以辨认出可见的配料,也可以辨认出不可见的配料。结果与原始图像的结果基本一致。但受解码器精度的限制,无论是真实图像还是合成图像,都无法区分“鸡肉”、“土豆”等成分。同样,饼干食谱中常见的“鸡蛋”和“小苏打”,在这两种图像中都被错误地检测出来。

任务2 Image-to-recipe retrieval (I2R 图像到食谱的检索):

  • 这是一个反向工程任务,其中生成的图像被视为一个查询。作者们使用R2GAN来提取图像和菜谱的交叉模态特征。在实验结果这一节中的表的第三列可以看出CookGAN编码食物语义的能力优于StackGAN++,但是与使用原始图像作为查询相比,使用真实图像和合成图像进行检索之间仍然存在性能差距。

任务3 Image-to-image retrieval (I2I 图像到图像的检索):

  • 这个任务是使用生成的图像检索真实的食物图像。结果在实验结果这一节中的表的第四列。下图显示了由CookGAN生成的查询检索到的前5个图像。

  • 检索到的图像不仅在视觉上相似,而且在语义上也相似。

Content Manipulability(内容可操纵性):

  • CookGAN的一个优点是,可以通过对菜谱的增量操作事实生成图像,比如,通过语义更改配料列表(这点和Control GAN类似)

  • 在上图中显示了添加“胡萝卜”,移除“胡萝卜”或使用“生菜”代替“胡罗卜”的例子。在添加的情况下可以看到胡萝卜(或橙色的东西)分布在整道菜中。而去掉胡萝卜,这道菜的橙色就会少很多,而令人印象深刻的是,CookGAN成功地掌握了菜肴中配料的可见性。

  • 在上图a)中,添加“糖”,菜的外观没有多大变化,而b)展示了针对食材成分采用不同的烹饪方法所得到的图像,可以看到,鸡蛋的外观因为方法的改变而千差万别。

总结:

  • CookGAN在T2I方法中提出了一个新颖的角度(R2GAN也是从菜谱生成图像,但是CookGAN是从因果关系出发,而R2GAN是从跨模态的角度出发)。但是CookGAN没有考虑配料的数量和烹饪风格(家常菜、糖醋)。

CookGAN Causality based Text-to-Image Synthesis相关推荐

  1. 论文笔记之:Generative Adversarial Text to Image Synthesis

    Generative Adversarial Text to Image Synthesis ICML 2016  摘要:本文将文本和图像练习起来,根据文本生成图像,结合 CNN 和 GAN 来有效的 ...

  2. Generative Adversarial Text to Image Synthesis 论文翻译精校版

    生成对抗性文本图像生成方法的研究 Generative Adversarial Text to Image Synthesis 美国密歇根大学.德国萨尔布鲁肯马克斯普朗克信息学研究所 摘    要 基 ...

  3. 综述:基于深度学习的文本分类 --《Deep Learning Based Text Classification: A Comprehensive Review》总结(一)

    文章目录 综述:基于深度学习的文本分类 <Deep Learning Based Text Classification: A Comprehensive Review>论文总结(一) 总 ...

  4. Generative Adversarial Text to Image Synthesis --- 根据文字描述生成对应的图片

    简单的说就是根据文字进行生成相应的图片.  先看效果: 架构 这里首先用一个 text embedding网络来将文字转换为向量,ϕ(t)ϕ(t)是1024维的向量,然后投影成128.并将这128向量 ...

  5. 深度学习文本分类文献综述(翻译自Deep Learning Based Text Classification: A Comprehensive Review)

    深度学习文本分类文献综述 摘要 介绍 1. 文本分类任务 2.文本分类中的深度模型 2.1 Feed-Forward Neural Networks 2.2 RNN-Based Models 2.3 ...

  6. Description Based Text Classification with Reinforcement Learning

    论文连接 文本分类通常分为两个阶段 文本特征提取 文本分类 在标准化形式中,类别仅代表了标签词汇表中的索引,模型缺乏关于分类内容的描述. 论文方法概述 论文提出了一个新的文本分类框架,其中每个类别标签 ...

  7. 2016~2022 文字生成图像 Text to image(T2I)论文整理 阅读路线和阅读指南

    2016~2021 文字生成图像 Text to image(T2I)论文汇总 阅读路线和阅读指南 综述类 部分最新重要研究成果 发展与往年经典模型 综述类 1.Adversarial Text-to ...

  8. cvpr2020 人脸检测与识别_就CVPR2020的来看,目前人工智能的研究热点有哪些进展?未来的研究趋势会有什么变化?...

    CVPR 主打视觉CV吧,从趋势来看,越来越的"红"方向,比如,自监督/半监督/弱监督/无监督.少样本/单样本/零样本.可解释性.对抗样本/安全.多模态.3D等等~ 个人对GAN比 ...

  9. 超100篇!CVPR 2020最全GAN论文梳理汇总!

    点击上方"机器学习与生成对抗网络",关注"星标" 获取有趣.好玩的前沿干货!  戳我,查看GAN的系列专辑~! 下述论文已分类打包好!共116篇,事实上仍有一些 ...

最新文章

  1. PTA团体程序设计天梯赛-L2-019 悄悄关注
  2. mysql报错:Reading table information for completion of table and column names
  3. 遇到MapStruct后,再也不手写PO,DTO,VO对象之间的转换了
  4. HDU - 6315 Naive Operations(线段树+思维)
  5. 程序员!别逼自己买课了,每天花10分钟做这件事,写代码能力暴增......
  6. mysql 快速插入(insert)多条记录
  7. 【转】非常道-中小软件公司项目管理
  8. GUI开发和JDBC编程实现员工管理
  9. hysys动态模拟教程_(转载)HYSYS-过程模拟软件-稳态模拟-第一部分(一)
  10. 舍得网-开发问题(学习别人经验)
  11. 《逻辑学概论》mooc
  12. 汉字转拼音函数SQLSERVER数据库
  13. 计算标准累积正态分布_正态分布在用户等级划分的应用
  14. 2021智源大会AI TIME|大规模预训练模型离通用人工智能还有多远?
  15. VirtualBox 安装虚拟机步骤
  16. ff15测试软件翻译,最终幻想15数据详细分析 FF15详细的数值参数测试
  17. oppo reno4se和vivos7 哪个好
  18. python工具类-sql操作封装
  19. c#设计一个Windows应用程序,模拟一个简单的银行账户管理系统。完成“创建账A款”“存款”和“查询余额”的模拟操作。程序功能如下:
  20. Zigbee入网流程

热门文章

  1. 前端项目 - 论坛信息管理系统(纯页面)
  2. Android应用测速组件实现原理,这篇看完还不懂跟我去摆地摊,全网首发
  3. python爬虫教程下载-Python网络爬虫从入门到精通 PDF 下载
  4. 快添加用用户并添加指定目录和家目录
  5. 董宝珍:巴菲特是如何选股的?——从底层逻辑看巴菲特核心重仓股的思路、原则和条件...
  6. python1到100奇数相加_如何使用while语句求1到100的奇数和
  7. 琪琪的果园{青龙面板可跑项目之一}保姆教程
  8. win10打开热点的时候提示我们无法设置热点
  9. 华为在HDC2021发布全新HMS Core 6 宣布跨OS能力开放
  10. fx5u怎么与计算机通讯,两个FX5U系列PLC如何用RS485进行通信幻灯片