emo工作原理
从EMO的框架可以看到,利用骨干网络获取多帧噪声潜在输入,并尝试在每个时间步将它们去噪到连续的视频帧,这个骨干网络是类似于SD 1.5的UNet的结构配置。与之前的SD1.5不同的是,本身的SD是使用文本嵌入的,而现在是使用参考特征。
与之前的工作类似,为了确保生成的帧之间的连续性,骨干网络嵌入了时间模块。
为了保持生成帧中肖像的ID一致性,使用了一个与Backbone并行的称为ReferenceNet的UNet结构,它输入参考图像以获得参考特征。
为了驱动角色说话动作,利用音频层对语音特征进行编码。
为了使说话角色的运动可控且稳定,我们使用面部定位器和速度层来提供弱条件。
预训练音频编码器:EMO使用预训练的音频编码器(如wav2vec)来处理输入音频。这些编码器提取音频特征,这些特征随后用于驱动视频中的角色动作,包括口型和面部表情。这里面还是使用附加特征m来解决动作可能会受到未来/过去音频片段的影响,例如说话前张嘴和吸气。
参考网络(ReferenceNet):该网络从单个参考图像中提取特征,这些特征在视频生成过程中用于保持角色的身份一致性。ReferenceNet与生成网络(Backbone Network)并行工作,输入参考图像以获取参考特征。
骨干网络(Backbone Network):Backbone Network接收多帧噪声(来自参考图像和音频特征的结合)并尝试将其去噪为连续的视频帧。这个网络采用了类似于Stable Diffusion的UNet结构,其中包含了用于维持生成帧之间连续性的时间模块。
注意力机制:EMO利用两种形式的注意力机制——参考注意力(Reference-Attention)和音频注意力(Audio-Attention)。参考注意力用于保持角色身份的一致性,而音频注意力则用于调整角色的动作,使之与音频信号相匹配。
时间模块:这些模块用于操纵时间维度并调整动作速度,以生成流畅且连贯的视频序列。时间模块通过自注意力层跨帧捕获动态内容,有效地在不同的视频片段之间维持一致性。
训练策略:EMO的训练分为三个阶段:图像预训练、视频训练和速度层训练。在图像预训练阶段,Backbone Network和ReferenceNet在单帧上进行训练,而在视频训练阶段,引入时间模块和音频层,处理连续帧。速度层的训练在最后阶段进行,以细化角色头部的移动速度和频率。
去噪过程:在生成过程中,Backbone Network尝试去除多帧噪声,生成连续的视频帧。去噪过程中,参考特征和音频特征被结合使用,以生成高度真实和表情丰富的视频内容。
EMO模型通过这种结合使用参考图像、音频信号、和时间信息的方法,能够生成与输入音频同步且在表情和头部姿势上富有表现力的肖像视频,超越了传统技术的限制,创造出更加自然和逼真的动画效果。
emo训练分为三个阶段,图像预训练、视频训练和速度层训练。
 在图像预训练阶段,网络以单帧图像为输入进行训练。此阶段,Backbone 将单个帧作为输入,而 ReferenceNet 处理来自同一帧的不同的、随机选择的帧,从原始 SD 初始化权重
 在视频训练阶段,引入时间模块和音频层,处理连续帧,从视频剪辑中采样n+f个连续帧,开始的n帧是运动帧。时间模块从AnimateDiff初始化权重。
 速度层训练专注于调整角色头部的移动速度和频率。