【AI动画】【备忘】生成更加连贯、流畅的动画【纯思路】

仅简要阐述思路,作备忘和抛砖引玉之用。

目前由AI生成动画的流程是由原本的动画(手书、MMD、Flash等)取每一帧作为源图,以相同的关键字,做IMG2IMG(图生图)。这样做的缺点是:将帧与帧割裂开来,忽视了帧与帧之间的联系。
所以,单抽每一帧画面出来都是精品,但是连续播放时,当前帧的背景和人物,与上一帧的背景和人物实际上没有联系,是不断变化的,造成抖动、闪烁。

目前主流的视频压缩算法,都考虑到一段连续场景中,任意两帧之间变化不大。若仅存储变化的部分,便能节省存储空间。
早到VCD用的MPEG-1,晚到现在最新的H.265、VP9,都有这种思路在里面。
一段视频是由一串帧构成的,可以简要分为关键帧和过渡帧。关键帧是一帧完整的图像。而过渡帧只记录当前帧基于上一帧的变化信息。何时取关键帧、何时取过渡帧,(不严谨的说)可以按如下的策略:
定时产生关键帧。这个时间间隔一般是几秒左右。
画面变化剧烈,如场景的切换,存储画面变化信息的代价大于直接存下这一帧完整图像的代价,此时将该帧存为关键帧。
这也就能解释几个现象:
我们平时看直播如果网络不好、或是看本地损坏的视频,可能会出现马赛克(绿块)。这些马赛克将持续一段时间,还会蠕动(因为这帧被破坏了,之后来的如果还是过渡帧,那就只能在这个破坏的画面上做变化。),当且仅当几秒钟后或主播的画面发生剧烈变化时(关键帧来了),这些马赛克会消失。
看电视剧、电影或动画的华丽复杂的场面(爆炸、还有现在短视频常用的OHOHOH~~等特效)时,画质会突然变模糊变差,因为这些场面下两帧之间差异过于巨大,以至于帧帧都是关键帧,信息量陡增,为了避免给传输、解码造成突发的负担,只好在每个关键帧的压缩上下工夫,使整段视频的码率稳定在平均值附近。
相同时长、分辨率、帧率、码率、编码方式的(A)网课视频、(B)动画、(C)真人电影,大小上A<<B<C。道理也很简单:网课视频,帧与帧变化一般只有黑板上的字迹,以及老师的摄像头图像,过渡帧数量>>关键帧数量;而动画虽没有这么夸张,但是和真人电影比起来画面变化的丰富程度也是要少的。

从源视频的每一帧是关键帧还是过渡帧,就能得到帧与帧之间关联的信息。
对于源视频中的关键帧,直接对该帧进行以图生图即可。这部分可以引入人工干预,保证每个关键帧中,人物是同一个人物,场景是同一个场景。
对于源视频中的过渡帧,则以上一帧为基准,对变化部分进行重绘幅度较低的局部重绘。
之后,还要保证AI生成的若干新帧,帧与帧之间也存在相同的联系。可以将这些帧作为视频编码器的输入(当然,实际操作过程中,不必这么麻烦,这里仅是说思路)。如果原来是过渡帧的,被AI画完变成了关键帧,说明原来变化不大的部分, 画完之后变化大了,显然此时需要重新生成。
下面简要展示up构想的一套流程。
