⌈ 传知代码 ⌋ 无监督动画中关节动画的运动表示

news2024/10/21 21:27:18

💛前情提要💛

本文是传知代码平台中的相关前沿知识与技术的分享~

接下来我们即将进入一个全新的空间,对技术有一个全新的视角~

本文所涉及所有资源均在传知代码平台可获取

以下的内容一定会让你对AI 赋能时代有一个颠覆性的认识哦!!!

以下内容干货满满,跟上步伐吧~


📌导航小助手📌

  • 💡本章重点
  • 🍞一. 引言
  • 🍞二. 动画技术的演进
  • 🍞三.论文的贡献
  • 🍞四.方法介绍
  • 🫓总结


💡本章重点

  • 无监督动画中关节动画的运动表示

🍞一. 引言

动画在教育和娱乐等领域的广泛应用,并指出了动画对内容创意、故事叙述的清晰度以及用户体验的提升。以前,实现这些效果的动画技术通常需要经过专业培训的专业人员、专用硬件、软件以及大量的工作。虽然现在仍然需要一定的专业知识和努力,但视觉和图形领域通过对一些已知对象类别进行数据驱动方法的训练,试图解决其中一些限制。

最近的一些工作尝试通过无监督的运动转移来避免对真实数据的需求。通过使用图像重建作为损失函数以及解耦运动和外观,已经在训练中取得了显著进展。这为在没有领域知识或标记数据的情况下,仅需使用对象在运动中的视频进行训练,从而有望实现对更广泛对象类别的动画。然而,两个关键问题仍然存在。首先是如何表示关节或非刚性运动对象的各个部分,包括它们的形状和姿态。其次,给定对象的各个部分,如何使用驱动视频中的运动序列对它们进行动画。先前的尝试使用端到端的框架首先提取无监督的关键点,然后通过将源图像的特征嵌入对齐到驱动视频的关键点。后续工作进一步对每个关键点周围的运动进行建模,并引入了一个生成模块,既合成了经过变形的源图像区域又修复了被遮挡的区域,以渲染最终图像。这使得可以进行各种创意应用,例如只需一个源脸部图像就能生成由不同脸部的视频驱动的近乎照片逼真的动画。尽管边缘上的点更容易识别,但在帧之间跟踪这些关键点却很困难,因为边界上的任何点都是有效的候选点,很难建立帧之间的对应关系。此外,这些无监督生成的关键点并不对应语义上有意义的物体部分,仅表示位置和方向,而不是形状。由于这些限制,动画化关节对象(如人体)仍然具有挑战性。而且,这些方法假设背景是静态的,即没有相机运动,导致背景运动信息泄漏到检测到的关键点之一或多个。最后,绝对运动转移将驱动对象的形状转移到生成的序列中,降低了源身份的保真度。这些问题限制了先前工作在处理更复杂对象类别和动作,尤其是在对象关节运动时的适用范围。

为了解决这些挑战,这项工作提出了三个贡献。首先,重新定义基础的运动表示,使用区域来测量一阶运动,而不是进行回归。这使得收敛更加有效,对象和运动表示更加稳定、健壮,还在经验上捕捉了底层物体部分的形状,从而实现更好的运动分割。其次,通过预测全局仿射变换的参数来明确建模训练帧之间的背景或相机运动,解释与非对象相关的运动。这使得模型能够专注于前景对象,使识别的点更加稳定,并进一步提高了收敛性。最后,为了防止形状转移并改善动画效果,在无监督区域的空间中解耦对象的形状和姿态。该框架是自监督的,不需要任何标签,并使用重建损失进行优化。

这些贡献进一步改进了无监督运动转移方法,特别是在关节对象的高保真度动画方面。为了创建更具挑战性的基准测试,作者提出了一个新收集的 TED 演讲演讲者的数据集。他们的框架在无监督区域的数量上更具可扩展性,产生了更详细的运动。该方法在各种数据集上的性能均优于以前的无监督动画方法,包括对话面部、太极视频和动画像素艺术。


🍞二. 动画技术的演进

图像动画方法相关工作总结

图像动画方法可以大致分为监督和无监督两类,每种方法都有其独特的挑战和局限性。这篇总结概述了这两类方法中的已有工作,为论文关注的无监督方法提供背景。

在这里插入图片描述

监督图像动画:

监督方法在训练期间需要关于动画对象的先验知识,通常以地标、语义分割或参数化的3D模型的形式存在。这些方法受到标记数据的需求的限制,仅适用于具有丰富标记数据集的少数对象类别,例如面部和人体。早期的面部再现工作利用3D可塑模型,使用图形技术进行动画和渲染。神经网络后来被引入以提高渲染质量,有时需要每个身份的多个图像 。

监督方法的重要部分将动画视为图像到图像或视频到视频的转换问题,将问题限制为对单个对象实例进行动画处理,无论是面部还是人体。尽管这些方法取得了一些有希望的结果,但在更广泛的对象类别范围内进行泛化仍然具有挑战性。此外,它们往往不仅传递了运动,还传递了驱动对象的形状 。

无监督图像动画:

无监督方法旨在克服监督方法的局限性,通过消除对动画对象形状或地标的标记数据的需求。这一类别包括基于视频生成的动画方法,其根据初始帧和动画类别标签预测未来帧 。值得注意的是,Menapace等人引入了可玩的视频生成,允许在每个时间戳选择动作 。

另一组无监督方法专注于将动画从驱动视频重新定向到源帧。X2Face构建了输入面的规范表示,生成了一个基于驱动视频的变形场 。Monkey-Net学习无监督关键点以生成动画,随后的工作,包括第一阶段运动模型(FOMM),通过考虑每个关键点的局部仿射变换来增强动画质量。

从经验上看,这些无监督方法通常在动画对象的边界上提取关键点,对于人体等关节对象,内部运动建模不足,导致动画不自然。


🍞三.论文的贡献

该论文提出了一种新颖的无监督方法,旨在解决以往方法在对关节对象进行动画处理时的局限性。主要关注的是克服内部表示无法捕捉完整对象部分、形状和姿态的问题。值得注意的是,提出的区域运动表示灵感来自于运动历史图像的构建,利用主要成分进行形状分析。总的来说,该论文通过引入一种新的表示法,增强了对关节对象的理解,特别是解决了与形状和姿态捕捉相关的挑战。这种创新的方法为更为逼真和通用的无监督动画技术打开了新的可能性。

PCA-based Motion Estimation: 提出了一种基于PCA的运动估计方法,相比于先前的回归方法,更好地捕捉了物体部分的运动。
Background Motion Representation: 明确建模了背景或相机运动,使得系统能够更专注于前景物体,提高了动画效果的稳定性。
Animation via Disentanglement: 通过对形状和姿势进行解耦,进一步提升了动画的质量。


🍞四.方法介绍

在这里插入图片描述

  • 一阶运动模型

FOMM 主要包括两个部分:运动估计和图像生成,其中运动估计进一步包含粗糙运动估计和密集运动预测。粗糙运动被建模为分离对象部分之间的稀疏运动,而密集运动则生成整个图像的光流和置信度图。我们用S和D分别表示源帧和驱动帧,这两者来自同一视频。

首先从S和D估计各个对象部分的粗糙运动。每个对象部分的运动由仿射变换表示,Ak ∈ R^2x3,到一个抽象的共同参考帧R;X可以是S或D。针对K个不同的部分估计运动。编码器-解码器关键点预测网络输出K个热图,M1到MK,这些热图对输入图像进行建模,然后经过softmax,使得Mk ∈ [0,1]^HW,满足∑Mk(z) = 1,其中z是图像中的像素位置。这样,仿射变换的平移分量(即Ak的最后一列)可以使用softargmax进行估计。

在FOMM 中,剩余的仿射参数通过每个像素进行回归,形成4个附加通道。用于索引仿射矩阵。这个模型被称为基于回归的模型,因为仿射参数由网络预测并进行池化以计算。D和S之间的每个部分k的运动然后通过公共参考帧计算。

  • 基于PCA的运动估计

准确的运动估计是实现高质量图像动画的主要要求。与FOMM不同,我们采用了不同的运动表示方式,即所有运动直接从热图Mk中测量。我们像以前一样计算平移,而x和y方向的平面旋转和缩放则通过热图Mk的主成分分析(PCA)进行计算。

这里使用奇异值分解(SVD)方法来计算PCA,将热图的协方差分解为酉矩阵Uk和V_k以及奇异值的对角矩阵S_k。我们称这种方法为基于PCA的方法,与基于回归的方法相对。尽管这两者在此使用相同的区域表示和编码器,但由于我们创新的前景运动表示,编码的区域之间存在显著的差异,将前景映射到有意义的对象部分,例如关节。

  • 背景运动估计

背景占据图像的大部分。因此,即使在帧之间有微小的背景运动,例如由于摄像机运动引起的运动,也会对动画质量产生负面影响。FOMM未将背景运动单独处理,因此必须使用关键点对其进行建模。这带来了两个负面影响:(i)需要额外的网络容量,因为关键点用于模拟背景而不是前景;(ii)过度拟合训练集,因为这些关键点集中在背景的特定部分上,而这些部分可能在测试集中不存在。因此,我们使用编码器网络额外预测背景仿射变换。由于我们的框架是无监督的,背景网络可能将前景的某些部分包

含到背景运动中。实际上,这并没有发生,因为对于网络来说,使用前景的更适当的基于PCA的运动表示要比使用S和D编码前景运动更简单。从经验上讲,我们证明了所提出的运动表示可以在完全无监督的情况下分离背景和前景。

  • 图像生成

在这里插入图片描述

与FOMM 类似,我们将目标图像分为两个阶段进行渲染:像素级的光流生成器将粗糙运动转换为密集光流,然后根据光流对源的编码特征进行变形,随后对缺失区域进行修补。密集光流预测器的输入是一个HxWx(4K+3)张量,每个区域有四个通道,每个区域有三个用于根据区域的仿射变换变形的源图像通道,一个用于区域的热图的高斯近似,另外三个通道用于根据背景的仿射变换变形的源图像。与FOMM不同,后者使用常数方差,我们从热图中估计协方差。

这种模型在背景运动略有变化时会变得复杂。当有轻微的背景运动时,该模型会自动适应通过将一些可用关键点分配给模拟背景来进行调整。我们还通过使用相同的网络预测置信度图C来处理源图像中缺失的部分。最后,S通过编码器传递,然后通过光流变形生成的特征图乘以置信度图。一个解码器然后重建驱动图像D。在测试时,FOMM 有两种动画模式:标准模式和相对模式。在标准动画中,逐帧计算源和驱动之间的运动。对于相对动画,为了生成帧t,首先计算D1和Dt之间的运动,然后应用于s。

综上:

通过上述改进,我们提出的方法克服了以前方法在处理关节对象时无法捕捉完整对象部分、形状和姿势的局限性。我们的基于PCA的运动表示以及背景运动估计模块提供了更高的稳定性和区域分布的改善,同时能够更好地适应不同数量的区域。我们的方法在多个数据集和任务上都取得了令人满意的定量和定性结果,为未来在这一领域的改进提供了有力的基准。


🫓总结

综上,我们基本了解了“一项全新的技术啦” 🍭 ~~

恭喜你的内功又双叒叕得到了提高!!!

感谢你们的阅读😆

后续还会继续更新💓,欢迎持续关注📌哟~

💫如果有错误❌,欢迎指正呀💫

✨如果觉得收获满满,可以点点赞👍支持一下哟~✨

【传知科技 – 了解更多新知识】

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

PP-ChatOCRv3—文档场景信息抽取v3产线使用教程

文档场景信息抽取v3产线使用教程 1. 文档场景信息抽取v3产线介绍 文档场景信息抽取v3(PP-ChatOCRv3)是飞桨特色的文档和图像智能分析解决方案,结合了 LLM 和 OCR 技术,一站式解决版面分析、生僻字、多页 pdf、表格、印章识别等常…

Spring连接数据库:Mybatis

MyBatis是一款优秀的框架 在数据库中创建表 1.创建项目mybatis 2.在proxml文件中导入必要配置并进行编译 <dependencies><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.33<…

电能表预付费系统-标准传输规范(STS)(15)

6.3.7 CRC: CyclicRedundancyCheck (循环冗余校验) The CRC is a checksum field used to verify the integrity of the data transferred for all tokens, except for Class 0 with SubClass 4 to 7, which uses CRC_C (see 6.3.22). The checksum is derived using the foll…

网络基础知识:交换机关键知识解析

了解交换机的关键知识对网络工程师至关重要。 以下是交换机的基础知识解析&#xff0c;包括其基本概念、工作原理和关键技术点&#xff1a; 01-交换机的基本概念 交换机是一种网络设备&#xff0c;用于在局域网&#xff08;LAN&#xff09;中连接多个设备&#xff0c;如计算机…

如何恢复U盘里格式化数据?别慌,有带图详细步骤!

U盘&#xff0c;这个小巧的存储神器&#xff0c;我们几乎天天都在用。但有时候&#xff0c;一不小心手滑&#xff0c;U盘就被格式化了&#xff0c;里面的东西好像全没了&#xff0c;别急&#xff0c;其实数据恢复没那么难。这篇文章就来告诉你&#xff0c;怎么把格式化的U盘里的…

NVR录像机汇聚管理EasyNVR多品牌NVR管理工具/设备云台接入及控制详解

在当今快速发展的信息化时代&#xff0c;视频监控系统已成为企业管理和安全防范的重要工具。随着技术的不断进步&#xff0c;多品牌NVR&#xff08;网络视频录像机&#xff09;管理工具如海康NVR管理平台/工具EasyNVR多个NVR同时管理凭借其强大的兼容性和智能化管理功能&#x…

【LInux】Shell脚本编写基本语法

文章目录 一、前期准备1、查看本机bash2、编辑脚本 二、 判断结构1、if结构2、if/else结构3、if/elif/else结构4、case结构 三、循环结构1、for循环2、while循环3、until循环 四、谢谢观看&#xff01; 一、前期准备 1、查看本机bash which bash之后编写脚本时&#xff0c;第…

数据同步工具Sqoop原理及场景优化

目录 0 数据同步策略 1 数据同步工具 ​编辑 2 Sqoop同步数据原理分析 2.1 原理分析 2.2 Sqoop基本使用分析 3 切片逻辑 3.1 MR切片逻辑 3.2 Hive CombineInputformat切片逻辑 3.3 实验1:Map任务并行度分析1 3.4 实验2: Map任务并行度分析2 3.5 实验3:Map任务并行…

C++ 类的基础用法与详细说明:简单易懂的入门指南

什么是类&#xff1f; C类_百度百科 类是C中一种用于封装数据和功能的基本结构。你可以将类视为一种自定义的数据类型&#xff0c;它可以包含数据&#xff08;成员变量&#xff09;和操作这些数据的函数&#xff08;成员函数&#xff09;。 创建一个简单的类 让我们通过一个…

Java爬虫:获取商品评论数据的高效工具

在电子商务的激烈竞争中&#xff0c;商品评论作为消费者购买决策的重要参考&#xff0c;对于商家来说具有极高的价值。它不仅能够帮助商家了解消费者的需求和反馈&#xff0c;还能作为改进产品和服务的依据。Java爬虫技术&#xff0c;以其稳健性和高效性&#xff0c;成为了获取…

Vue2的依赖注入(跨级通信)基本使用

provide(提供) &#xff0c;inject(注入) 祖先级组件用provide传递数据,它的所有后代都可以通过inject取到数据 使用演示&#xff1a; //祖先组件 <template><div>父组件传的值&#xff1a;{{num}} </div> </template><script> //导入子组件 i…

SourceMonitor,免费代码统计工具,覆盖率,圈复杂度,代码行

SourceMonitor是一款免费的代码度量工具&#xff0c;包含代码行&#xff0c;覆盖率&#xff08;无条件覆盖率&#xff09;&#xff0c;圈复杂度&#xff0c;函数调用深度等指标的测量。 用以下软件安装包&#xff0c;低版本的初始化工程会闪退&#xff0c;工具下载路径&#xf…

Python(numpy库)

numpy基础 NumPy 的全称是“ Numeric Python”&#xff0c;它是 Python 的第三方扩展包&#xff0c;主要用来计算、处理一维或多维数组 ndarray NumPy 定义了一个 n 维数组对象&#xff0c;简称 ndarray 对象&#xff0c;它是一个一系列相同类型元素组成的数组集合。数组中的…

h5页面与小程序页面互相跳转

小程序跳转h5页面 一个home页 /pages/home/home 一个含有点击事件的元素&#xff1a;<button type"primary" bind:tap"toWebView">点击跳转h5页面</button>toWebView(){ wx.navigateTo({ url: /pages/webview/webview }) } 一个webView页 /pa…

springboot二手交易平台

作者&#xff1a;计算机学长阿伟 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、ElementUI等&#xff0c;“文末源码”。 系统展示 【2024最新】基于JavaSpringBootVueMySQL的&#xff0c;前后端分离。 开发语言&#xff1a;Java数据库&#xff1a;MySQL技术&#xff1a;…

电脑上的顽固软件卸载不干净?试试这几款卸载工具,简单几步解决

相信大家日常的工作或学习生活中&#xff0c;都需要使用电脑&#xff0c;而为了完成工作&#xff0c;都会在电脑上安装一些工具。有时候不需要这些工具了&#xff0c;想要卸载时&#xff0c;发现有些软件太顽固了&#xff0c;卸载不掉&#xff0c;或者是卸载不干净。如果您也遇…

uniapp-uniapp + vue3 + pinia 搭建uniapp模板

使用技术 ⚡️uni-app, Vue3, Vite, pnpm &#x1f4e6; 组件自动化引入 &#x1f34d; 使用 Pinia 的状态管理 &#x1f3a8; tailwindcss - 高性能且极具灵活性的即时原子化 CSS 引擎 &#x1f603; 各种图标集为你所用 &#x1f525; 使用 新的 <script setup> …

Excel功能区变灰是什么原因造成?怎么解决?

Microsoft Excel是广泛使用的电子表格软件&#xff0c;但有时用户可能会遇到功能区变灰的问题&#xff0c;这可能导致功能无法使用&#xff0c;影响工作效率和用户体验。本文将深入探讨Excel功能区灰色的原因及解决方案&#xff0c;帮助读者快速解决这一问题。 一、Excel功能区…

Polypyus部署、使用与原理分析

文章目录 前言1、概述2、安装与使用2.1、源码安装2.1.1、部署系统依赖组件2.1.2、使用源码安装系统 2.2、使用方法2.2.1、命令行界面操作方法2.2.2、图形界面操作方法 3、测试用例4、参考文献总结 前言 本博客的主要内容为Polypyus的部署、使用与原理分析。本博文内容较长&…

【Linux】Linux之基础IO

我们先回顾一下C文件接口, #include <stdio.h> #include <string.h>int main() {FILE *fp fopen("myfile", "w");if (!fp){printf("fopen error!\n");}const char *msg "hello world!\n";int count 5;while (count--)…