你有什么端菜小妙招吗?怎么晃都不撒的那种!
如果没有的话,不妨看看这个:无论怎么动,盘子和食物都安然无恙。
Emmm……其实细看的话应该还是能发现,这并不是什么端菜妙招(对不起~),这个盘子和热狗也没有被粘起来,而是后期合成的。
这群把AI合成图像玩出花来的研究者们,分别来自香港中文大学、浙江大学,和英伟达。
除了“空降”一盘热狗,他们还把宫崎骏的《龙猫》搬到了一张白纸上,而且任意弯折、移动都不影响播放。
而这张白纸其实并没有经过特殊处理,我们看到的“画中画”也是AI合成的。
不过——“众所周知,视频不能P,所以这是真的!”(手动狗头)
此外,这些人还给哔哩哔哩小电视的眼睛和嘴巴换了个色儿。
现在,相关论文已被图形学顶会SIGGRAPH Asia 2022收录。
下面就来看看他们具体是如何实现这些神操作的。
要弄清楚怎么在纸上放连续动画,不妨先从简单点儿的一张图说起:
如何将抖动纸张上的一幅画换成另一幅画,并且让人基本看不出P图痕迹?
第一步是收集各种素材。就拿梵高的《星空》来举例子,首先要在不同的角度、光照条件、抖动情况下拍摄这幅图。
然后就到了关键一步:需要一个AI来预测《星空》在各视频画面中的光流,并将其替换成其他的图片。
这里简单说下光流是个什么东西:在计算机视觉中,光流就是个关于物体运动的概念,可表示为连续两帧图像中,代表同一目标的像素点的位移量。
为了达到丝滑逼真的视觉效果,研究者们提出了一个新框架NeuralMarker,来捕捉标志物到参考图像的密集对应关系。
从这个框架名字里的Neural就可以看出,它和神经网络有一定关系。
此前,其他AI模型大都是通过特征匹配和指定图像来建立稀疏的对应关系。不过这些稀疏的特征标记只能支持平面中的简单变化,而当图片动起来后,这些标记就无法识别了。
比如说,把动态的《星空》变成日本名画《神奈川冲浪里》,就是酱紫的:
这里面,只有NeuralMarker成功了,而这个模型成功的关键因素在于它的两个组件和一个标记评估方法:
其一,要处理好像素点级别的密集对应关系,运动调节器(motion regressor)就得能够实时捕捉各种几何变化。
研究者以拍摄的素材、一些人为标记,以及合成的参考图像作为数据集,训练出一个叫FlyingMarkers的工具。
在FlyingMarkers的辅助下,运动调节器就能可以为各种形变编码,从了捕捉到绝大多数几何变化了。
除了几何变化外,颜色和亮度变化也是至关重要的。
研究者指出,在训练模型的数据集中,连续的动画外观变化并不算大;而最终是要求把一张图换成另一张图,这是外观差异就很明显了。
所以,他们提出了一个对称极距损失 (Symmetric Epipolar Distance ,SED)的概念,并结合运动结构(Structure-from-Motion,SfM)技术,根据相机的拍摄角度来约束密集对应关系的预测。
这样,即使原图是在较暗光线下拍摄的,也可以有不错的生成效果。(虽然还达不到环境光渐变的效果)
此外,研究人员还提出了一种新的标记对应评估方法:DVL-Markers,用来评估真实拍摄图片中的像素块与模型包含的标记之间的对应关系。
并从几何形变、相机视角,和光照三个方向进行评估。
研究者们测试后发现,有了DVL-Markers,这个AI模型的图像质量评估指标:SSIM(结构相似性)和PSNR(峰值信噪比)表现都优于同类模型,并且任务成功率达到了100%。
有了这些工具的加持,NeuralMarker也可以搞定在纸上播放视频这种事了。
(话说,既然都能在纸上放视频了,那之后投影仪对不准的问题是不是也有望解决了?)
看到这里,大伙儿应该觉得这个AI挺溜了吧,不过这还没完——
前文提到的“端盘子妙招”,其实是这群研究者把NeuralMarker和NeRF结合起来了,直接在二维的图片上加了一个三维物体。
当然,研究人员也坦言,NeuralMarker还有一些局限性和发展空间,比如图片前面有遮挡物时,这个AI就不再这么智能了。
对此,他们表示,将在训练的数据集中随机加入遮挡物,来让这个AI变得更聪明。
论文地址:
https://arxiv.org/abs/2209.08896
参考链接:
[1]https://drinkingcoder.github.io/publication/neuralmarker/
[2]https://drinkingcoder.github.io/publication/life/
[3]https://nanonets.com/blog/optical-flow/