【AI数字人-论文】DINet论文解读

DINet

    • 方法
      • 形变
      • 修补
      • 损失函数
        • perception loss
        • GAN loss
        • Lip-sync loss
    • 实现细节
    • 参考

如下图所示,人脸视觉配音(Face visually dubbing)旨在根据输入的驱动音频同步源视频中的嘴型,同时保持身份和头部姿势与源视频帧一致。然而在少样本条件下,实现高分辨率视频下的高质量人脸视觉配音仍然是一项挑战。一个主要原因是,在少数样本的条件下,嘴部纹理细节与驱动音频的相关性很小,因此直接生成高频纹理细节是比较困难的。为了解决这个问题,形变修复网路DINet通过对参考人脸图像进行空间形变来保留更多的嘴部纹理细节。具体地,首先对参考人脸图像的特征图做空间形变,形变后的特征包含与语音同步和头部姿态对齐的口型特征;然后使用空间形变后的特征修补嘴部区域,空间形变是将像素移动,而不是重新生成,因此能够保存足够多的纹理信息。
在这里插入图片描述

方法

DINet网络架构由两部分组成,形变网络 P D P^{D} PD和修补网路 P I P^{I} PI。形变部分对五张参考图像的特征进行空间形变,创建每帧嘴部形状的变形特征图,以便于对齐输入驱动音频和输入源图像的头部姿态。修复部分则侧重于利用形变结果修复源面部的嘴部区域。
DINet模型架构

形变

自适应仿射变换算子(Adaptive Affine Transformation, AdaAT)解决人脸驱动前后空间不对齐的问题。AdaAT使用仿射变换来模拟和约束空间形变,它直接在特征通道空间中进行仿射变换。

给定一个源图像 I s ∈ R 3 × H × W I_{s} \in R^{3 \times H \times W} IsR3×H×W,一个驱动音频 A d ∈ R T × 29 A_{d} \in R^{T \times 29} AdRT×29和五个参考图像 I r e f ∈ R 15 × H × W I_{ref} \in R^{15 \times H \times W} IrefR15×H×W,形变网络 P D P^{D} PD的任务就是输出与 A d A_{d} Ad同步的嘴型且与 I s I_{s} Is头部姿态对齐的形变特征 F d ∈ R 256 × H 4 × W 4 F_{d} \in R^{256 \times \frac{H}{4} \times \frac{W}{4}} FdR256×4H×4W

  1. 首先, A d A_{d} Ad被喂入到一个语音编码器中,提取语音特征 F a u d i o ∈ R 128 F_{audio} \in R^{128} FaudioR128
  2. 然后, I s I_{s} Is I r e f I_{ref} Iref分别作为两个不同的特征提取的输入,提取256维的源图像特征 F s ∈ R 256 × H × W F_{s} \in R^{256 \times H \times W} FsR256×H×W和256维的参考图像特征 F r e f ∈ R 256 × H × W F_{ref} \in R^{256 \times H \times W} FrefR256×H×W
  3. 接下来,合并 F s F_{s} Fs F r e f F_{ref} Fref,将其喂入到一个对齐编码器中计算得到对齐特征 F a l i g n ∈ R 128 F_{align} \in R^{128} FalignR128
  4. 最后,合并语音特征 F a u d i o F_{audio} Faudio和对齐特征 F a l i g n F_{align} Falign,喂入一个全连接层后输出 [ R , T , S ] [R,T,S] [R,T,S]系数,然后传递给AdaAT算子,将特征 F r e f F_{ref} Fref形变为 F d F_{d} Fd

注: 第四步的全连接网络被用于计算rotation R = { θ c } c = 1 256 R=\{\theta^{c}\}_{c=1}^{256} R={θc}c=1256、translation T x = { t x c } c = 1 256 / T y = { t y c } c = 1 256 T_{x} = \{t_{x}^{c}\}_{c=1}^{256} / T_{y} = \{t_{y}^{c}\}_{c=1}^{256} Tx={txc}c=1256/Ty={tyc}c=1256和Scale S = { s c } c = 1 256 S=\{s^{c}\}_{c=1}^{256} S={sc}c=1256的系数。然后这些仿射系数与 F r e f F_{ref} Fref做仿射变换。

( x c , y c ) \left(x_{c}, y_{c}\right) (xc,yc) ( x ^ c , y ^ c ) \left(\hat{x}_{c}, \hat{y}_{c}\right) (x^c,y^c)分别为仿射变换前后的像素坐标, c ∈ [ 1 , 256 ] c \in [1,256] c[1,256] F r e f F_{ref} Fref c t h c_{th} cth的通道。
在这里插入图片描述
这也是为什么能选择AdaAT算子的原因,AdaAT算子在不同的特征通道中计算不同的仿射系数。

修补

修补网路 P I P^{I} PI相比于形变网络 P D P^{D} PD而言就简单很多,只包含一个由卷积层组成的特征解码器网络。将源图像特征 F s F_{s} Fs和形变特征 F d F_{d} Fd按通道合并后,送入到特征编码器后输出配音图像 I o ∈ R 3 × H × W I_{o} \in R^{3 \times H \times W} IoR3×H×W

损失函数

在训练阶段,DINet的损失函数由三张不同的损失函数加权组成。
在这里插入图片描述

perception loss

感知损失(perception loss)是一种基于深度学习的图像风格迁移方法中常用的损失函数。感知损失是通过预训练的神经网络(常见是VGG网络)来计算两张图片之间的差异。感知损失的目标是最小化输入图像和目标图像在特征空间的距离。

在这篇论文中,首先对真实图像 I r I_{r} Ir和配音图像 I o I_{o} Io进行降采样分别得到 I ^ r ∈ R 3 × H 2 × W 2 \hat{I}_{r} \in R^{3 \times \frac{H}{2} \times \frac{W}{2}} I^rR3×2H×2W I ^ o ∈ R 3 × H 2 × W 2 \hat{I}_{o} \in R^{3 \times \frac{H}{2} \times \frac{W}{2}} I^oR3×2H×2W,然后一起计算 { I o , I r } \{I_{o}, I_{r}\} {Io,Ir} { I ^ o , I ^ r } \{\hat{I}_{o}, \hat{I}_{r}\} {I^o,I^r}的感知损失值。损失感知公式如下所示:
在这里插入图片描述
预训练模型选用VGG-19网路, V ( ⋅ ) V\left( \cdot \right) V() i t h i_{th} ith层, W i H i C i W_{i}H_{i}C_{i} WiHiCi i t h i_{th} ith层的特征尺寸。

GAN loss

GAN loss使用的是least square GAN,公式为 L G A N = L D + L G L_{GAN} = L_{D} + L_{G} LGAN=LD+LG G G G表示的是DINet网络, D D D为判别器。
在这里插入图片描述
论文中缺少判别器的资料。通过代码理解GAN loss。

# GAN 损失
class GANLoss(nn.Module):
    '''
    GAN loss
    '''
    def __init__(self, use_lsgan=True, target_real_label=1.0, target_fake_label=0.0):
        super(GANLoss, self).__init__()
        self.register_buffer('real_label', torch.tensor(target_real_label))
        self.register_buffer('fake_label', torch.tensor(target_fake_label))
        if use_lsgan:
            self.loss = nn.MSELoss()
        else:
            self.loss = nn.BCELoss()

    def get_target_tensor(self, input, target_is_real):
        if target_is_real:
            target_tensor = self.real_label
        else:
            target_tensor = self.fake_label
        return target_tensor.expand_as(input)

    def forward(self, input, target_is_real):
        target_tensor = self.get_target_tensor(input, target_is_real)
        return self.loss(input, target_tensor)
# train
net_dI = Discriminator(*) # 判别器D
net_g = DINet(*) # DINet网络
criterionGAN = GANLoss().cuda()
fake_out = net_g(*)
# (1) Update D network
optimizer_dI.zero_grad()
# compute fake loss
_,pred_fake_dI = net_dI(fake_out)
loss_dI_fake = criterionGAN(pred_fake_dI, False)
# compute real loss
_,pred_real_dI = net_dI(source_image_data)
loss_dI_real = criterionGAN(pred_real_dI, True)
# Combined DI loss
loss_dI = (loss_dI_fake + loss_dI_real) * 0.5
loss_dI.backward(retain_graph=True)
optimizer_dI.step()
Lip-sync loss

lip-sync损失是为了提高配音视频中的嘴唇的同步性。损失公式定义如下。
在这里插入图片描述

实现细节

  1. 所有的视频的帧率是25fps
  2. 根据OpenFace的68个面部关键点裁剪脸部区域
  3. 将所有的脸部区域resize为 416 × 320 416 \times 320 416×320大小,其中嘴部区域的大小为 256 × 256 256 \times 256 256×256
  4. 使用deepspeech模型提取29维的语音特征。语音特征与25fps的视频对齐。
  5. 训练视频分辨率为720P或者1080P
  6. Adam 优化器,学习率是0.0001

参考

  1. DINet code
  2. 论文:DINet: Deformation Inpainting Network for Realistic Face Visually Dubbing on High Resolution Video
  3. AAAI 2023 | DINet:实现高分辨率下的人脸视觉配音

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/223014.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

子查询在SQL中的应用和实践

作者:CSDN-川川菜鸟 在SQL中,子查询是一种强大的工具,用于解决复杂的数据查询问题。本文将深入探讨子查询的概念、类型、规则,并通过具体案例展示其在实际应用中的用途。 文章目录 子查询概念子查询的类型子查询的规则实际案例分析…

leetcode 1658. 将 x 减到 0 的最小操作数(优质解法)

代码&#xff1a; class Solution {public int minOperations(int[] nums, int x) {int sum0; // nums 数组中的数据总和int lengthnums.length;for(int i0;i<length;i){sumnums[i];}int targetsum-x; //待查找的子数组的和if(target<0){return -1;}//采用滑动窗口的…

团建策划信息展示服务预约小程序效果如何

团建是中大型企业商家每年举办的员工活动&#xff0c;其形式多样化、具备全部参与的娱乐性。但在实际策划流程及内容时&#xff0c;部分公司便会难以入手&#xff0c;术业有专攻&#xff0c;这个时候团建策划公司便会发挥效果。 如拓展训练、露营、运动会、体育竞技等往往更具…

美格智能亮相中国企业家博鳌论坛:勇立创新潮头,5G+AIoT开启智能新时代

12月2日-5日&#xff0c;由新华社和海南省人民政府、中国品牌建设促进会等联合主办的2023中国企业家博鳌论坛在海南博鳌召开&#xff0c;包括众多世界500强、中国500强和行业领军企业家在内的3500多名社会各界嘉宾汇聚一堂&#xff0c;共谋中国经济高质量发展之道。 会议现场 …

知虾网:帮助卖家优化Shopee店铺运营的数据分析工具

在如今的电商时代&#xff0c;越来越多的卖家选择在Shopee平台上开设店铺。然而&#xff0c;随着竞争的加剧&#xff0c;如何提高店铺的曝光率和销售效果成为了卖家们面临的重要问题。为了帮助Shopee卖家更好地了解市场动态、优化商品策略、提高运营效果&#xff0c;知虾网应运…

LeetCode 每日一题 Day 4

2477. 到达首都的最少油耗 给你一棵 n 个节点的树&#xff08;一个无向、连通、无环图&#xff09;&#xff0c;每个节点表示一个城市&#xff0c;编号从 0 到 n - 1 &#xff0c;且恰好有 n - 1 条路。0 是首都。给你一个二维整数数组 roads &#xff0c;其中 roads[i] [ai,…

二叉树OJ题之三

哈喽伙伴们&#xff0c;有一段时间没更新博客了&#xff0c;主要是这段时间要准备学校的期末考试&#xff0c;所以没有把部分时间分给博客&#xff0c;今天我们一起去接着看二叉树递归有关的OJ题&#xff0c;今天我们要学习的是 判断相同的树&#xff0c;力扣题目--100 &…

2023年度亚太客户中心产业发展论坛——鸿联九五荣获亚太区卓越客服大赛客户运营管理类铂金大奖

11月27-28日&#xff0c; 2023年度亚太客户中心产业发展论坛暨亚太区卓越客服大赛在马来西亚吉隆坡举行。来自中国、澳大利亚、马来西亚、新加坡、中国香港、印度尼西亚和泰国等多个国家及地区的优秀企业代表齐聚吉隆坡。 论坛首日活动以“Experience Excellence, Meet the Cha…

Redis应用-缓存

目录 什么是缓存 使用redis作为缓存 缓存的更新策略 通用的淘汰策略 redis内置的淘汰策略 缓存预热 缓存穿透 缓存雪崩 缓存击穿 什么是缓存 缓存(cache)是计算机中一个经典的概念,在很多的场景中都会涉及到. 核心思路就是把一些常用的数据放到触手可及(访问速度更快…

javascript实现List列表数据结构

书籍推荐 有幸拜读《数据结构与算法Javascript描述》这本书&#xff0c;先强烈安利一波&#xff01;非常感谢作者大大给我们前端领域带来这本书。 全书从javascript的角度出发&#xff0c;简单明了的分析了数据结构在javascript领域的实现过程与实际的应用案例&#xff0c;且…

VA03 凭证流 查看备忘

今天被问到了&#xff0c;为什么这个销售订单 只显示了3 EA 仔细看了一下&#xff0c;前面10 是行项目 看销售订单 最后发现&#xff0c;凭证流跟选择查看的行项目有关系 以前一直没有关注这个细节

QT-在ui界面中给QWidget增加Layout布局的两种方法

QT-在ui界面中给QWidget增加Layout布局的两种方法 方式一 在UI界面&#xff0c;用拖拽的方式加入Layout方式二 用notepad软件打开.ui文件&#xff0c;手动加入Layout代码 目标&#xff1a;去除右下角红标&#xff0c;给tab标签增加Layout属性。 方式一 在UI界面&#xff0c;用…

nodejs+vue+ElementUi小区社区公寓宿舍智能访客预约系统

该系统将采用B/S结构模式&#xff0c;前端部分主要使用html、css、JavaScript等技术&#xff0c;使用Vue和ElementUI框架搭建前端页面&#xff0c;后端部分将使用Nodejs来搭建服务器&#xff0c;并使用MySQL建立后台数据系统&#xff0c;通过axios完成前后端的交互&#xff0c;…

生殖感染对生育的影响有哪些?劲松中西医结合医院专家详细解读

生殖感染是指由细菌、病毒、支原体、衣原体等病原微生物引起的生殖道感染&#xff0c;包括前列腺炎、尿道炎、宫颈炎、盆腔炎等。生殖感染对生育的影响是多方面的&#xff0c;今天劲松中西医结合医院谭巍主任将详细介绍这些影响及相应的预防办法。 一、影响生育能力的因素 1.…

❀My学习Linux命令小记录(14)❀

目录 ❀My学习Linux命令小记录&#xff08;14&#xff09;❀ 56.man指令 57.whatis指令 58.info指令 59.--help指令 60.uname指令 ❀My学习Linux命令小记录&#xff08;14&#xff09;❀ 56.man指令 功能说明&#xff1a;查看Linux中的指令帮助。 &#xff08;ps.man命…

软件工程之需求分析

一、对需求的基本认识 1.需求分析简介 (1)什么是需求 用户需求&#xff1a;由用户提出。原始的用户需求通常是不能直接做成产品的&#xff0c;需要对其进行分析提炼&#xff0c;最终形成产品需求。 产品需求&#xff1a;产品经理针对用户需求提出的解决方案。 (2)为什么要…

电力仪表在工厂车间设备电能管理系统的设计-安科瑞黄安南

摘 要&#xff1a;基于车间用电设备的电能管理系统架构思路及实施方法&#xff0c;从硬件和软件方面对此方法进行了阐述。对车间旧设备改造以及新的电能管理系统提供一种思路和便捷的方法。 关键词&#xff1a;电能管理系统&#xff1b;多功能电力仪表&#xff1b;PLC&#x…

菜鸟驿站寄快递真的能省钱吗?还不如去闪侠惠递快递折扣平台下单!

小伙伴们&#xff0c;你们知道我们平常去寄快递发快递的菜鸟驿站是怎么来的吗&#xff1f;今天小编就来带你一探究竟。 那么到菜鸟驿站寄快递真的能省钱吗&#xff1f;其实也不一定。在菜鸟驿站&#xff0c;工作人员称重之后&#xff0c;工作人员说多少就是多少&#xff0c;没…

测试岗外包干了3个月,技术退步明显。。。。。

先说一下自己的情况&#xff0c;本科生生&#xff0c;21年通过校招进入成都某软件公司&#xff0c;干了接近2年的功能测试&#xff0c;今年年初&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了2年的功能测试…

微型5G网关如何满足智能巡检机器人应用

在规模庞大、设施复杂的炼化厂、钢铁厂、工业园区等大型、巨型区域&#xff0c;时刻需要对各类设施设备巡查监测&#xff0c;保障生产运行安全可控。传统的人工巡检存在着心态松懈、工作低效、工作强度高、工作环境恶劣等问题&#xff0c;仍然存在安全隐患。 而随着物联网、5G、…