原来,阿里工程师才是隐藏的“修图高手”!

系统开
• 阅读 3666
摘要: 近些年,深度学习飞速发展,在很多领域(图像、语音、自然语言处理、推荐搜素等)展现出了巨大的优势。多模态表征研究也进行入深度学习时代,各种模态融合策略层出不穷。

原来,阿里工程师才是隐藏的“修图高手”!

阿里妹导读:在现实世界中,信息通常以不同的模态同时出现。这里提到的模态主要指信息的来源或者形式。例如在淘宝场景中,每个商品通常包含标题、商品短视频、主图、附图、各种商品属性(类目,价格,销量,评价信息等)、详情描述等,这里的每一个维度的信息就代表了一个模态。如何将所有模态的信息进行融合,进而获得一个综合的特征表示,这就是多模态表征要解决的问题。今天,我们就来探索多模态表征感知网络,了解这项拿过冠军的技术。

作者 | 越丰、箫疯、裕宏、华棠

摘要

近些年,深度学习飞速发展,在很多领域(图像、语音、自然语言处理、推荐搜素等)展现出了巨大的优势。多模态表征研究也进行入深度学习时代,各种模态融合策略层出不穷。

在这里,我们主要对图像和文本这两个最常见的模型融合进行探索,并在2个多模态融合场景中取得了目前最好的效果。

  1. 在文本编辑图像场景中,我们提出了双线性残差层 ( Bilinear Residual Layer ),对图像和文本两个模态的特征进行双线性表示 ( Bilinear Representation),用来自动学习图像特征和文本特征间更优的融合方式。
  2. 在时尚图像生成场景中(给定文本直接生成对应的图像),我们采用了跨模态注意力机制(Cross Attention)对生成的图像和文本特征进行融合,再生成高清晰度且符合文本描述的时尚图像。最后,在客观评分和主观评分上取得了最好的成绩。

文本编辑图像

图像编辑是指对模拟图像内容的改动或者修饰,使之满足我们的需要,常见的图像处理软件有Photoshop、ImageReady等。随着人们对于图像编辑需求的日益提升,越来越多的图像要经过类似的后处理。但是图像处理软件使用复杂且需要经过专业的培训,这导致图像编辑流程消耗了大量人力以及时间成本,为解决该问题,一种基于文本的图像编辑手段被提出。基于文本的图像编辑方法通过一段文本描述,自动地编辑源图像使其符合给出的文本描述,从而简化图像编辑流程。例如图1所示,通过基于文本的图像编辑技术可以通过文字命令改变模特衣服的颜色,纹理甚至款式。

原来,阿里工程师才是隐藏的“修图高手”!

然而,基于文本的图像编辑技术目前仍然难以实现,原因是文本和图像是跨模态的,要实现一个智能的图像编辑系统则需要同时提取文本和源图像中的关键语义。这使得我们的模型需要很强的表示学习能力。

现有方法

目前已有一些针对基于文本的图像编辑所提出的方法。他们都采用了强大的图像生成模型GAN(Generative adversarial network)作为基本框架。Hao[1]训练了一个conditional GAN,它将提取出来的text embeddings作为conditional vector和图像特征连接在一起,作为两个模态信息的混合表示,然后通过反卷积操作生成目标图像 (如图2)。

原来,阿里工程师才是隐藏的“修图高手”!

Mehmet[2]对以上方法做了改进,他认为特征连接并不是一种好的模态信息融合方式,并用一种可学习参数的特征线性调制方法3去学习图像和文本的联合特征。FiLM减少了模型的参数,同时使得联合特征是可学习的,提高了模型的表示学习能力 (如图3)。

原来,阿里工程师才是隐藏的“修图高手”!

我们的工作

我们的工作从理论角度分析了连接操作和特征线性调制操作间特征表示能力的优劣,并将这两种方法推广到更一般的形式:双线性 (Bilinear representation)。据此,我们提出表示学习能力更加优越的双线性残差层 (Bilinear Residual Layer),用来自动学习图像特征和文本特征间更优的融合方式。

Conditioning的原始形式

原来,阿里工程师才是隐藏的“修图高手”!

FiLM形式

FiLM源自于将特征乘以0-1之间的向量来模拟注意力机制的想法,FiLM进行特征维度上的仿射变换,即:

原来,阿里工程师才是隐藏的“修图高手”!

Bilinear形式

原来,阿里工程师才是隐藏的“修图高手”!

经过证明,Bilinear形式可以看做FiLM的进一步推广,它具有更加强大的表示学习能力。证明如下:

原来,阿里工程师才是隐藏的“修图高手”!

以上形式等同于:

原来,阿里工程师才是隐藏的“修图高手”!

Bilinear的Low-rank简化形式

原来,阿里工程师才是隐藏的“修图高手”!

原来,阿里工程师才是隐藏的“修图高手”!

原来,阿里工程师才是隐藏的“修图高手”!

实验结果

我们的方法在Caltech-200 bird[5]、Oxford-102 flower[6]以及Fashion Synthesis[7]三个数据集上进行了验证。定性结果如图5所示,第一列为原图,第二列表示Conditional GAN原始形式的方法,第三列表示基于FiLM的方法,最后一列是论文提出的方法。很明显前两者对于复杂图像的编辑会失败,而论文提出的方法得到的图像质量都较高。

原来,阿里工程师才是隐藏的“修图高手”!

除此之外,实验还进行了定量分析,尽管对于图像生成任务还很难定量评估,但是本工作采用了近期提出的近似评价指标Inception Score (IS)[8]作为度量标准。由表6可见,我们的方法获得了更高的IS得分,同时在矩阵秩设定为256时,IS得分最高。

原来,阿里工程师才是隐藏的“修图高手”!

时尚图像生成

在调研多模态融合技术的时候,有一个难点就是文本的描述其实对应到图像上局部区域的特性。例如图7,Long sleeve对应了图像中衣服袖子的区域,并且是长袖。另外,整个文本描述的特性对应的是整个图像的区域。基于这个考虑,我们认为图像和文本需要全局和局部特征描述,图像全局特征描述对应到整个图像的特征,局部特征对应图像每个区域的特征。文本的全局特征对应整个句子的特征,文本的局部特征对应每个单词的特征。然后文本和图像的全局和局部区域进行特征融合。

针对这种融合策略,我们在时尚图像生成任务上进行了实验。时尚图像生成(FashionGEN)是第一届Workshop On Computer VisionFor Fashion, Art And Design中一个比赛,这个比赛的任务是通过文本的描述生成高清晰度且符合文本描述的商品图像。我们在这个比赛中客观评分和人工评分上均获得的第一,并取得了这个比赛的冠军。

我们的方法

我们方法基于细粒度的跨模态注意力,主要思路是将不同模态的数据(文本、图像)映射到同一特征空间中计算相似度,从而学习文本中每个单词语义和图像局部区域特征的对应关系,辅助生成符合文本描述的细粒度时尚图像,如图7所示。

原来,阿里工程师才是隐藏的“修图高手”!

传统的基于文本的图像生成方法通常只学习句子和图像整体的语义关联,缺乏对服装细节纹理或设计的建模。为了改进这一问题,我们引入了跨模态注意力机制。如图8左边区域,已知图像的局部特征,可以计算句子中不同单词对区域特征的重要性,而句子语义可以视为基于重要性权重的动态表示。跨模态注意力可以将图片与文字的语义关联在更加精细的局部特征层级上建模,有益于细粒度时尚图像的生成。

原来,阿里工程师才是隐藏的“修图高手”!

我们用bi-LSTM作为文本编码器,GAN作为对抗生成模型,并将生成过程分为由粗到精,逐步增加分辨率的两个阶段:

  • 第一阶段利用句子的整体语义和随机输入学习图像在大尺度上的整体结构。
  • 第二阶段利用单词层级的语义在第一阶段低分辨率输出上做局部细节的修正和渲染,得到细粒度的高分辨率时尚图像输出。

原来,阿里工程师才是隐藏的“修图高手”!

对抗生成网络

传统的生成式对抗网络由判别器和生成器两部分组成,判别器的目标是判别生成图像是否在真实数据集的分布中,而生成器的目标是尽可能的骗过判别器生成逼近真实数据集的图像,通过两者的迭代更新,最终达到理论上的纳什均衡点。这个过程被称为对抗训练,对抗训练的提出为建立图像等复杂数据分布建立了可能性。

原来,阿里工程师才是隐藏的“修图高手”!

基于跨模态注意力的相似性

原来,阿里工程师才是隐藏的“修图高手”!

图像-文本相似性

对于第i个单词,我们最终可以建立不同区域特征的加权和(越相似赋予越大的权重):

原来,阿里工程师才是隐藏的“修图高手”!

M为batchsize的大小。

文本-图像相似性

同理的,文本-图像的相似性可以形式化为:

原来,阿里工程师才是隐藏的“修图高手”!

全局相似性

原来,阿里工程师才是隐藏的“修图高手”!

通过优化以上损失函数,我们最终得到的生成的服装图片的效果图如下所示:

附上算法效果图:

原来,阿里工程师才是隐藏的“修图高手”!

总结

我们主要对图像和文本这两个最常见的模型融合进行探索,在文本编辑图像任务上,我们提出基于双线性残差层 (Bilinear Residual Layer)的图文融合策略,并取得了最好的效果,相关工作已经发表在ICASSP 2019上,点击文末“阅读原文”即可查看论文。在时尚图像生成任务上,我们使用了细粒度的跨模态融合策略,并在FashionGen竞赛中取得第一。

关于我们

阿里安全图灵实验室专注于AI在安全和平台治理领域的应用,涵盖风控、知识产权、智能云服务和新零售等商业场景,以及医疗、教育、出行等数亿用户相关的生活场景,已申请专利上百项。2018年12月,阿里安全图灵实验室正式对外推出“安全AI”,并总结其在知识产权保护、新零售、内容安全等领域进行深度应用的成果:2018年全年,内容安全AI调用量达到1.5万亿次;知识产权AI正在为上千个原创商家的3000多个原创商品提供电子“出生证”——线上与全平台商品图片对比,智能化完成原创性校验,作为原创商家电子备案及后续维权的重要依据;新零售场景的防盗损对小偷等识别精准度达到100%。



本文作者:越丰

阅读原文

本文来自云栖社区合作伙伴“ 阿里技术”,如需转载请联系原作者。

点赞
收藏
评论区
推荐文章
blmius blmius
4年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
美凌格栋栋酱 美凌格栋栋酱
7个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Wesley13 Wesley13
3年前
PPDB:今晚老齐直播
【今晚老齐直播】今晚(本周三晚)20:0021:00小白开始“用”飞桨(https://www.oschina.net/action/visit/ad?id1185)由PPDE(飞桨(https://www.oschina.net/action/visit/ad?id1185)开发者专家计划)成员老齐,为深度学习小白指点迷津。
Jacquelyn38 Jacquelyn38
4年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
2020智源
!(https://pic3.zhimg.com/80/v2af9f6637b50b09be60b00a42f3812d5e_1440w.jpg)人机对话系统是自然语言理解领域重要的研究方向之一,图灵测试的核心就是人机多轮交互。目前的人机对话系统局限于语音和文本的交互方式,然而近些年随着语音助手、虚拟数字人、智能服务机器人的普及应用,兼备“视听说”
Stella981 Stella981
3年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
为什么mysql不推荐使用雪花ID作为主键
作者:毛辰飞背景在mysql中设计表的时候,mysql官方推荐不要使用uuid或者不连续不重复的雪花id(long形且唯一),而是推荐连续自增的主键id,官方的推荐是auto_increment,那么为什么不建议采用uuid,使用uuid究
Python进阶者 Python进阶者
1年前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这