本
文
摘
要
幻影栗 发自 航天桥
古人云,捕风捉影。
捕风或许不那么容易,毕竟,能停下来的,就不是风了。
捉影的话,可以把神经网络放出来,它们的视觉可以很灵敏。
不过,这次神经网络要追的,是反光表面映照出来的倒影。
加州大学伯克利分校的研究人员,不喜欢在水族馆拍鱼的时候,照到一个灵异的自己。
于是,他们就利用神经网络强大的感知能力,来除灵了。还登上了CVPR。
把反光层 (影子) 和透射层 (实体) ,分离开来,何者为实何者为虚,一目了然。
这,也是目前计算机视觉领域里面,一个非常美好的问题。
不过,这个除灵过程,没有灰飞烟灭的环境,实景和虚影都会好好地活着,且互不干扰。
现实主义表达方式
△ 左为input,中为CEILNet,右为伯克利阴郁的街景,和阴郁的大叔,被神经网络的如炬目光,明明白白地洞察了。
并且,两者都保留了它们最纯粹的样子,没有交叠。
不过,漫长的旅途中,视角并非从一开始就那么清晰。
追影这个浪漫的问题,用数学符号来表示,是这样——
I∈ℝm×n×3,就是输入的含着倒影的图像。
△ 不是正确示范图像(I),可以被建模成,透射层(T)与反光层 (R) 之和,即I = T + R。
目标是,把T层修复好,让原本想要的景色,不要受到R层的打扰。
这不是一个稳定、有唯一解 (well-posed question) 的问题,需要给一些额外的条件,才能更好地解决。
用几张图
以往的研究中,要去掉一幅图里的倒影,大多要输入好多幅图,或者需要得到人类清晰的指点。
可是,用几幅图来处理一幅图,很多时候是不现实的;需要人类的话,听起来也并不是那么厉害。
用一张图
最近,也有研究人员,实现了只需要单张图就能完成的除影术。
CEILNet,拿深度神经网络训练模型,是用色彩和边缘的低层损失来训练的。但这种方法,不能直接让模型直接学习高层语义,这对捉影师来说,还是很遗憾的。
光有低层信息是不够的,特别是涉及到颜色模糊 (color ambiguity) ,或者是模型需要识别物体的时候。
本文的技术,就会识别灯啊,人脸啊这些物体的表征,并开心地除掉了它们的虚像。
疗效明显不同。
模型结构长这样
一个优秀的模型需要理解图像里的内容。
为了语义理解,团队用了hypercolumn特征——从一个用ImageNet数据集训练好的VGG-19网络上提取特征。
这样做的优点是,有用的特征,可以对输入的数据进行扩增。
另外,这个神经网络的感受野 (Receptive Fields) 很大,有513×513个像素,可以有效地聚集起五湖四海的图像信息。
神经网络的第一层,是个1×1的卷积,给特征降维用的,从(1472+3) 维降到64维。
后面跟着8层,都是3×3的扩张卷积 (Dilated Convolutions) ,扩张率从1到128不等。
所有的中间层,都有64个特征通道。
最后一层,用了一个线性变换,在RGB空间里,生成两幅图像。
损失函数很丰盛
这里的损失函数分为三项,一是特征损失 (Feature Loss) ,二是对抗损失 (Adversarial Loss) ,三是团队引入的Exclusion Loss。
特征损失
这项损失,测量的是特征空间中,预测的透射层 (T) 和参考标准 (Ground Truth) 之间的距离。
低层高层信息结合起来,语义推理有助于分割图层。
把透射层(T) 跟参考标准都喂给VGG-19神经网络。
对抗损失
团队发现透射层的图像会受到色彩失真和残差的影响,才在损失函数里加上了这一项。
本环节的主角是CGAN,其中的判别模型,会识别真实透射图和生成透射层之间的差别。
通过训练,判别器会学到一个最适宜的损失函数,为下一步的分层优化打好基础,也让生成器的预测结果,更加接近真实。
Exclusion Loss
团队探索了一下透射层 (T) 和反光层 (R) 之间的差异——
研究人员发现,透射层和反光层的边缘,通常都不会重叠。
也就是说,一个边缘可能是T的,可能是R的,但不大会是它们共同所有的。
于是,团队把梯度域 (Gradient Domain) 里面,T层和R层的相关性降到最低,写出一个Exlusion Loss的函数。
其中,λT和λR这两个归一化因子 (Normalization Factors) 很重要,因为T层和R层之间,梯度幅值可能会不平衡——
R层如果比较模糊,梯度就小一些。
R层如果反射了强光,图上就会有一个非常亮的点,梯度则会很大。
数据集也虚实结合
训练数据,里面有5000幅合成图像,是用Flickr上随机找的10000张图两两合并,一为T层,一为R层。
假设两层处在不同的焦平面 (Focal Plane) 上,模糊度就有明显的差异。
还有,团队从90幅真实图像中提取了500个小块 (Patch) ,分辨率在256p-480p之间。
然后,要用无微不至的眼光观察图像——
·在室内还是户外
·光照条件,是日光还是白炽灯还是其他
·拍摄角度,是前视还是斜位照
·相机光圈,f/2.0— f/16
为了扩增数据,研究人员还随机调整了小块的尺寸,不过横纵比保持不变。
数据集建好之后,神经网络就要开始修行了。
训练过程中,数据跑了250次 (Epoch) ,批尺寸为1。
看看成绩
骄人的数据
来到测试阶段,团队先用PSNR和SSIM两套图像质量评价方法,来对比了一下自家神经网络,和前人算法生成的图像。
可喜可贺,伯克利的AI在两项比赛里,都获得了最高分。
另外,研究人员还在MTurk上搜集了人类观众的评价。
在两两对抗赛中,他们的图像先后战胜了只需输入一幅图的CEILNet,还有需要输入多幅图的Li and Brown。
这不是险胜,是80%以上的压倒性优势。
碾压了对手之后,就要感受一下损失函数里面,三项损失的表现如何——
又是经过SSIM和PRNS的鉴定,证实三者缺一不可,合体才能爆发最强的能量。
数据之外
比起数据,各位还是亲自审阅一下生成的图片,来得更实在。
先和CEILNet比一下,看T层,伯克利的小黄鸭坐的垫子上面,并没有灵异的影子了,因为影子比较完好地搬去了R层。
相比而言,对手的R层黑漆漆,该属于R层的部分,还以半透明的样子存在于T层。
后来,Li and Brown也加入了比赛,不过还是受到了伯克利AI的碾压。
毕竟,这两位选手拿到的是半透明图像,吐出的还是半透明图像。
虽然,那两位对手包包上印花,还是挺美的。
需要注意的是,伯克利的方法适用于各种环境下拍摄的图像,没有太多的限制条件,便于推广,这也是这只AI与其他选手之间,一个重要的不同。
One More Thing
最后,介绍下三位作者的履历,其中陈启峰博士,可能量子位的读者早已很熟悉。
张璇儿
一作:张璇儿(Cecilia Zhang),人大附中出品,本科毕业于莱斯大学,其后入学UC伯克利,师从吴义仁 (Ren NG) 教授,主攻计算机视觉方向,目前是博士三年级学生。
张璇儿先后在Adobe、Facebook实习,现在则在英特尔实习——与陈启峰一起工作。
吴义仁
二作:Ren Ng(吴义仁),加州大学伯克利分校的助理教授,璇儿就是在他的实验室里做研究。
Ren Ng出生在马来西亚,8岁移民澳大利亚。2006年斯坦福大学博士毕业,还获得了当年ACM的博士论文奖。
Ren Ng教授的主要研究方向是数字光场摄影技术,还创办了光场相机公司Lytro,把这项技术引入消费级电子产品。
陈启峰
三作:陈启峰,经历颇为传奇,1989年生于广东。
2006年,17岁的陈奇峰发表论文,提出数据结构Size Balanced Tree(SBT)。2008年,以中学生身份获得中山“十大杰出青年”称号。
2011年,陈启峰在ACM国际大学生程序设计竞赛获得金牌(全球第二,北美冠军)。同年还获得香港大学生编程比赛冠军。
2017年,陈启峰从斯坦福博士毕业。如今已是英特尔实验室研究员。
今年,陈启峰还成为了无人车明星创业公司Pony.ai研究院的访问教授,与之前他在IOI旅程中的楼天城等竞争对手,有了一段新故事。
CVPR论文在这里了:
Single Image Reflection Separation with Perceptual Losses
http://cn.arxiv.org/pdf/1806.05376
预祝大家,端午节除灵愉快。
— 完 —
诚挚招聘
量子位 QbitAI · 头条号签约作者
վᴗ ի 追踪AI技术和产品新动态