编者按:唐代诗人王维在《画》一诗中,曾写道:
“远看山有色,近看水无声。
春去花还在,人来鸟不惊。”
这首他在赏画时所作的诗,是人类从视觉到语言最高水平映射的表现。然而,如果我们来读这首诗,是否能浮现出他所欣赏的画作呢?显然还不能。
因此,对于人类而言,相较于视觉到语言的映射,语言到视觉的映射似乎是一个更大的挑战。而对机器而言,深度学习构建了语言与视觉之间的联系,也让机器在吟诗作画方面取得了超过普通人的成绩。
1958年,鼠标的发明者Douglas Engelbart,在麻省理工学院见到了人工智能先驱Marvin Minsky,据说他们之间曾发生过这样一段对话,Minsky说我们要让机器变得更加智能,我们要让它们拥有意识,而Engelbart则这样回应:你要为机器做这些事,那你又打算为人类做些什么呢?
今天,我们通过回答“机器能为人类做些什么”这个问题,来间接回答后者的问题。来自京东AI平台与研究部的张炜博士,将为大家介绍,从语言到视觉,机器能为人类做些什么。
文末提供文中提到参考文献的下载链接。



经过 50多年的发展,今生的CV已经成了比较大的领域,我做了一张表格来概括CV领域的多个任务。现在CV任务大都是从输入域(视觉:图像/视频)往输出域(描述)的映射。输入大部分都是图像和视频,而输出比较多样,比如标签,区域,还有句子,甚至是图像。每一种输出的大小是不一样的,十年前侧重于用标签描述图像,CV领域多是一些图像分类任务,比如物体、场景、动作分类。如果是二分类,输出就只有一个比特,如果有10个比特,就能用二的十次方种标签描述,区分出1000+类的场景或物体。如果把输出变大一点,就有了物体、动作检测问题,它的输出是边框坐标。如果输出更大一些,对应的任务就是图像或视频描述(image/video captioning)。如果段落非常大,输出有可能到1KB以上。现在还有一部分以图片做为输出的研究,比如说语义分割、图像转换等,其实我们可以把这个问题看成一个从图像到图像的描述问题。
传统做得比较多的方向是从左向右,最近几年因为计算机视觉领域的发展和深度模型的盛行,也开始有了一些从传统输出到输入域的反向映射。跟我们今天主题相关的,一个是标签,一个是句子,都跟语言非常相关。今天我也会着重讲讲从标签和句子生成图像和视频。
先定义一下视觉和语言,视觉指的是图像和视频,而语言的种类多一些,从传统的标签、标题、评论、诗歌,到对视频的语言描述,同时还包括VQA、情感等新语言。这种映射不仅可以从左到右,从右向左也越来越多。








现在StackGAN也出了V2版本,这篇文章里面有一个新的扩展叫StackGAN++,引入了多个生成器和分类器,产生多个尺度的图像中间结果,效果进一步提升。

另外一篇比较有代表性的文章,Deep Attention GAN (DA-GAN),主要的贡献在于引入了注意力机制到GAN网络里。



这篇文章发表在 NIPS’16,虽然和语言到视频没有什么关系,但还是值得提一下,因为这个是开创性的一个工作。它是从一个随机噪声生成视频:从噪声z开始分了两条线,一个产生前景,另一个生成背景。背景通道只有3,就是一张静止的图片,而前景是一个具有时间动态的视频。通过mask把这两条线做融合,最终产生一个视频。虽然当时结果不是特别好,但是非常有代表性。
接下来讲一讲真正的由语言转视频:给一段话,产生一个视频。现在有的方法,比如GAN、VAE,只有一些初步的探索,还没有比较完整的数据集和工作。

这篇文章To Create What You Tell: Generating Videos from Captions做得比较前沿。中间有三个例子,分别是三句话对应三个视频,一个比较简单,一个数字8从左到右移动。中间这个稍微难了一点,两个数字一个从上往下,一个从左往右,中间有重合。第三个更难,因为更贴近现实生活中的cooking视频。











如果把中间输出都画出来,可以看到随着训练过程从1000轮到10000轮,网络产生的每一帧更像真实的图像,而且帧和帧之间的运动也更流畅。


还有一些真实视频的例子,可以看到如果跟以前的方法比,TGAN-Cs目前是做得最好的。
GAN评价一直是比较头疼的问题,我们也做了一些用人评测的工作,判断要评测视频是不是真实,跟输入的文本是不是一致,同时还要看一下时间连续性,运动是不是比较流畅。实验发现结果还是非常好的。


比赛链接为:
https://fashion-challenge.github.io/
文中提到参考文献的下载链接为:
密码:2ood