计算机视觉
听听这个故事,…
你有没有拍过一张美丽的风景照片,后来你发现它看起来不像你在那里时那么好。这可能是因为你不能只是冻结这样一个现实生活中的景观,然后期望它看起来一样好。在这种情况下,让这张照片动画一下,正常运动的粒子会持续运动,就像你拍照片的那一刻一样,怎么样?观察水流或看到烟雾在空气中消散。
你有没有拍过一张美丽的风景照片,后来你发现它看起来不像你在那里时那么好。这可能是因为你不能只是冻结这样一个现实生活中的景观,然后期望它看起来一样好。在这种情况下,让这张照片动画一下,正常运动的粒子会持续运动,就像你拍照片的那一刻一样,怎么样?观察水流或看到烟雾在空气中消散。嗯,这就是Facebook和华盛顿大学的一种新算法所做的事情。它拍摄一张照片,了解哪些粒子应该在移动,并逼真地在无限循环中为它们设置动画,同时完全保留照片的睡觉,仍然可以创建像这样令人惊叹的视频。老实说,我不知道为什么,但我喜欢它的样子,并想分享他们的作品。您如何看待这些结果,您将如何使用它们?就个人而言,一旦代码发布,我将使用这些作为桌面背景。
现在我们已经看到了它能达到的效果,我希望你能像我一样兴奋地发现这篇论文。让我们来看看更有趣的事情吧。那就是:他们如何拍摄一张照片,并从中制作出逼真的动画循环视频?这分三个重要步骤来完成。第一步是从需要保持静止的内容中找出需要设置动画的内容。换句话说,找到要设置动画的水、烟或云。
当然,探测这些移动的粒子对人类来说是极其容易的,因为我们可以想象真实的场景和实际情况,但是一台只看到图片而不知道世界的计算机怎么能做到这一点呢?好的,答案就在这个问题里:我们需要教它更多关于这个世界以及它是如何运作的,或者在这种情况下,它是如何运动的。这是通过在真实景观场景的视频而不是图片上训练人工智能模型来实现的。通过这种方式,它可以了解水、烟和云在流场形式下通常是如何表现的。该流场是输入图像的一个版本,其中每个像素值都是它们在冻结时间的方向和速度的近似值。它被称为欧拉流场。欧拉流场研究的是流体如何在固定的位置上运动,而不是跟随流体的颗粒运动。
你可以把这看作是坐在瀑布前,看着同样的位置,观察那里的水是如何变化的,而不是跟着水顺着瀑布往下走。这正是我们在这种情况下所需要的,因为这张图像准确地代表了这一点:静止状态下的流水。
因此,通过使用许多景观视频,他们首先确定了每个视频的这些字段。这很容易做到,因为它在视频中实际移动,我们可以使用广为人知的技术来识别每一帧中的移动粒子。然后使用每个帧的该标识流作为地标来训练它们的算法。培训从使用视频帧作为输入的图像到图像转换网络开始。这些已识别的流场用于比较输出,以指导网络实现我们想要实现的目标。这是通过基于生成的图像和我们已知的流场之间的差异迭代地校正和改进网络来实现的。在这样的训练之后,对于接收到的任何风景图像,网络可以在没有任何外部帮助的情况下生成该流场。这就像任何其他GAN架构一样工作,或者更准确地说,就像任何与解码器耦合的编码器一样。它首先对输入帧(景观图像)进行编码,然后对其进行解码以生成同一图像的新版本,从而保留空间特征并更改图像的样式。在这种情况下,更改的样式是标识运动场的像素值,而不是图像的实际颜色。一旦网络经过训练,它就可以生成一个看起来像这样的贴图,该贴图将用于整个动画,因为该欧拉流场表示在视频期间不需要随时间改变,因为它显示了每个像素在下一帧中的行为方式。
第二步是将图像的这些部分制作成动画,并且逼真地进行。为此,我们只需要两样东西:输入图像和我们刚刚为该图像找到的欧拉流或静电流估计。使用此信息,我们可以根据像素的速度和方向知道像素下一步的去向,但直接应用此信息会导致一些问题,因为某些像素在转换后可能没有任何值,从而导致黑洞从图片中运动开始的位置开始。这是因为:
这意味着它将随着时间的推移变得更糟,并产生类似这样的东西。
那么,我们如何才能让它变得更智能呢?同样,这是使用编码器和解码器,并在两者之间再做一个步骤来完成的。因此,他们使用针对此特定任务训练的不同编码器对输入帧进行第二次编码,产生他们在这里称之为深度特征的东西。这些深层特征是输入图像的编码,这意味着它是关于图片的这项任务的重要信息的集中。这里被判断为“重要信息”的是他们在培训期间优化模型所要做的事情。通过使用这些由指示下一帧外观的位移场控制的深度特征,它们使用经过训练的解码器,从关于该帧和我们给出的流场的压缩信息中生成下一帧。
请注意,在训练期间,他们使用了两个不同的帧,第一帧和最后一帧,以了解流体的真实流动,并试图避免此类黑洞的发生。现在是第三步也是最后一步:循环部分。使用与开始帧相同的帧,它们在两个方向上生成动画,向前移动和向后移动,直到到达第二帧。这使他们能够通过合并两个视频来产生循环效果,因为其中一个视频在另一个视频结束时开始,并在中心相遇。然后,在推断时,或者换句话说,当您实际使用模型时,它只用一个起始帧(即您为模型提供的图像)执行相同的操作。瞧,你有你的动画形象了!
我希望您喜欢这篇文章,就像我喜欢发现这项技术一样。如果是这样的话,我也邀请你阅读他们的报纸,了解更多关于这款超级酷型号的技术细节。做得非常好!
感谢您的阅读!
观看视频
来我们的不和谐社区和我们聊天吧:一起学习人工智能,分享你的项目,论文,最好的课程,寻找Kaggle队友,等等!Discord community: Learn AI Together
如果你喜欢我的工作,想要了解最新的AI,你绝对应该在我的其他社交媒体账号(LinkedIn,Twitter)上关注我,订阅我的每周AI时事通讯!LinkedIn Twitter newsletter
来支持我:
- 支持我的最好方式是成为这个网站的成员,或者如果你喜欢我在YouTube上的频道,就订阅它。
- 在财务上支持我在Patreon上的工作
- 请在Medium上跟我来这里
参考文献
- 论文:Holynski,Aleksander等人。“使用欧拉运动场制作图片动画。”IEEE/CVF计算机视觉和模式识别会议论文集。2021年,https://arxiv.org/abs/2011.15128
- 项目链接(代码即将发布):https://eulerian.cs.washington.edu/
原创文章,作者:fendouai,如若转载,请注明出处:https://panchuang.net/2021/07/04/%e4%bb%8e%e5%9b%be%e7%89%87%e5%88%9b%e5%bb%ba%e9%80%bc%e7%9c%9f%e7%9a%84%e5%8a%a8%e7%94%bb%e5%be%aa%e7%8e%af%e8%a7%86%e9%a2%91/