(2024,手部生成,SMPL,MANO,SD,手部参数)HanDiffuser:具有逼真手部外观的文本到图像生成

HanDiffuser: Text-to-Image Generation With Realistic Hand Appearances

公和众和号:EDPJ(进 Q 交流群:922230617 或加 VX:CV_EDPJ 进 V 交流群)

目录

0. 摘要

2. 相关工作

3. HanDiffuser

3.1. 基础

3.2. Text-to-Hand-Params 扩散

3.3. 文本引导的 Hand-Params-to-Image 扩散

4. 实验

4.1. 数据集

4.3. 评估指标

5. 结论与局限性


0. 摘要

文本到图像生成模型可以生成高质量的人物,但在生成手部时会失去真实感。常见的伪影包括手部姿势不规则、形状不正确、手指数量错误以及物理上不合理的手指方向。为了生成具有真实手部的图像,我们提出了一种名为 HanDiffuser 的基于扩散的新架构,通过在生成过程中注入手部嵌入来实现真实感。HanDiffuser 由两个组件组成:一个 Text-to-Hand-Params (T2H) 扩散模型,用于从输入文本提示生成 SMPL-Body 和 MANO-Hand 参数,以及一个 Text-Guided Hand-Params-to-Image (T-H2I) 扩散模型,以先前组件生成的提示和手部参数上为条件合成图像。我们将手部表示的多个方面纳入考虑,包括 3D 形状和关节级别的手指位置、方向和关节动作,以实现稳健学习和可靠性推理。我们进行了大量的定量和定性实验,并进行了用户研究,以证明我们的方法在生成具有高质量手部的图像方面的有效性。 

2. 相关工作

文本到人体生成。除了图像生成外,从文本提示生成人体姿势和动作也取得了相当大的进展。

  • 近期的生成方法通常遵循各种骨骼关节格式,例如 OpenPose [5],或者结合关节和网格格式,如 SMPL [34],来表示人体。它们在各种大规模姿势和动作数据集上进行训练,包括 KIT [46],AMASS [36],BABEL [48] 和 HumanML3D [18]。
  • 为了有效地将文本提示映射到动作序列,文本到动作生成方法使用了从递归神经网络 [2, 29]、分层姿势嵌入 [3, 14]、VQ-VAE transformers [44, 45] 到动作扩散模型 [7, 27, 60, 69] 的各种技术来学习语言和姿势的组合表示。一些方法甚至在姿势运动(pose motion)合成之上生成 3D 网格以合成完全渲染的人体 [23, 65]。
  • 与动作合成分开,还有一些关于从文本生成参数化姿势模型的工作[8, 9, 42]。
  • 然而,这些方法专注于人体,忽略了手部区域。因此,它们无法生成灵活的手部。一项同期工作 [35] 提出了一种修补(inpainting)方法来优化手部。给定一个生成的图像,该方法重建手部的 3D 网格并进一步优化手部区域。因此,重建的手部网格的质量,以及最终优化的手部的质量,取决于最初生成的手部的质量。
  • 相比之下,我们的方法首先从提示生成手部网格参数,并进一步在这种中间手部参数上调整图像生成。此外,[35] 忽略了初始图像中的手部与物体的交互,并在优化手部时可能不会保留手部与物体的遮挡和交互。

手部表示。现有的手部配置、手势和手-物体交互的数据集提供了各种格式的手部表示,包括边界框、轮廓(silhouettes)、深度图 [28, 30, 31]、关键点和参数化模型 [12, 25, 26, 52]。这些表示对于多种以手为中心的任务都是有用的,包括图像检测 [61]、手势和姿势识别 [70]、动作生成 [58, 71] 和手物体交互 [15, 24, 57]。我们的工作将基于关键点和参数模型的表示结合起来,以有效地编码多样的手部形状和高度关节动作。

3. HanDiffuser

3.1. 基础

SMPL-H。我们的 Text-to-Hand-Params 模型从文本输入中生成人体和手部模型的参数。我们分别使用 SMPL [34] 和 MANO [52] 作为我们的人体和手部模型。

  • SMPL 是一个可微函数 M_b(θ_b, β_b),其中 θb ∈ R^69 表示姿势参数,βb ∈ R^10 表示形状参数,返回带有 6890 个顶点的身体网格 Mb ∈ R^(6890×3)。
  • 类似地,MANO 是一个可微函数 M_h(θ_h, β_h, s),其中 θh ∈ R^48 表示手部姿势参数,βh ∈ R^10 表示手部形状参数,s ∈ {left, right} 表示手部的一侧,返回带有 778 个顶点的手部网格 Mh ∈ R^778×3。可以使用预先训练的线性回归器 Wh 从顶点回归出 3D 手部关节位置 Jh ∈ R^(k×3) = Wh·Mh。

SMPL-H 模型将身体、左手和右手模型合并为一个单一的可微分函数 M(θ, β),其中姿势参数 θ = (θ_b, θ_lh, θ_rh),形状参数 β。姿势参数 θb、θlh 和 θrh 分别捕获了相对于根(root)的身体、左手和右手的关节旋转。形状参数 β 捕获了人的尺度。

稳定扩散。我们的 Text-Guided Hand-Params-to-Image 模型建立在稳定扩散 [51] 的基础上。稳定扩散是一个潜在扩散模型,包括一个自动编码器、一个用于噪声估计的 U-Net 和一个 CLIP 文本编码器。编码器 E 将图像 x 编码成在扩散过程操作的潜在表示 z = E(x)。解码器 D 从潜在表示 z 中重构图像,即 ˆx = D(z)。U-Net 以去噪步骤 t 和文本 τ_text(text) 为条件,其中 τ_text(text) 是一个 CLIP [49] 文本编码器,将一系列分词的文本投影到嵌入空间。

为了使图像生成同时以手部参数和文本为条件,我们用一种新颖的 Text+Hand 编码器

替换了文本编码器 τ_text(text),它将文本和手部参数联合嵌入到一个公共的嵌入空间中。

3.2. Text-to-Hand-Params 扩散

Text-to-Hand-Params 扩散模型以文本作为输入,并通过以文本为条件生成 SMPL-H 模型的姿势参数 θ=(θb, θlh, θrh) 和形状参数 β。 我们定义 x := (θ, β),并通过在 T 个时间步骤中将高斯噪声逐步添加到 x 来建模正向扩散过程:

其中 αt ∈ (0, 1) 是常数超参数。我们将基于文本的 SMPL-H 生成分布 p(x0|c) 建模为逐渐去噪 xT 的反向扩散过程。根据 [60],我们通过直接使用模型 G 来预测 ˆx0 = G(xt, t, c) 来学习去噪过程。我们使用以下训练目标来训练反向扩散:

我们通过使用 CLIP [49] 对文本进行编码来获取条件文本嵌入 c。我们使用类似于 MDM [60] 的仅编码器的 Transformer 架构来实现 G。

在推断过程中,给定一个文本,我们有条件地采样 x = (θ, β)。我们利用 MANO-Hand 模型,使用形状和姿势参数来获取左右手的关节 J_lh、J_rh 和顶点 M_lh、M_rh。我们还选择相机参数,并将关节 J_lh、J_rh 投影到图像空间,并获得相应的图像空间关节位置 J^(2D)_lh、J^(2D)_rh。我们使用关节旋转 θlh、θrh、手部顶点 Mlh、Mrh 和空间关节位置 J^(2D)_lh、J^(2D)_rh 作为下一阶段图像生成的条件。

3.3. 文本引导的 Hand-Params-to-Image 扩散

文本引导的 Hand-Params-to-Image 扩散模型建立在稳定扩散 [51] 的基础上,并将图像生成以从 Text-to-Hand-Params 模型生成的手部参数和文本为条件。具体来说,文本引导的 Hand-Params-to-Image 使用了一种新颖的 Text+Hand 编码器 τ_(text+h),首先获得文本和手部参数的联合关节嵌入。然后以手部和文本嵌入作为图像生成的条件。我们在下面提供更多细节。

文本+手部编码器。给定提供的文本,以及手部的空间关节位置 J^(2D)_h、顶点 Mh 和关节旋转 θh,我们的目标是生成 D 维嵌入来编码文本和手部参数。这里 D 表示 CLIP [49] 的标记嵌入维度。为了将手部关节位置编码到图像空间中,我们遵循 [6, 63] 并引入额外的位置标记。我们将图像的高度和宽度均匀量化为 N_bins 个 bin。这使我们能够将任何归一化的空间坐标近似为 N_bins 个标记中的一个。然后,我们使用

将文本标记和手部关节空间标记编码到 D 维度。具体来说,我们通过将一个额外的 N_bins × D 嵌入层引入到现有的 CLIP 标记嵌入器中,并在训练过程中进行微调来构造 f。为了编码手部顶点,我们将它们转换为基点集(basis point set,BPS)[47] 表示,并通过 f_Mh,一个由全连接线性层和 ReLU 层组成的多层感知器(MLP)进行传递。同样,我们使用由全连接线性层和 ReLU 层组成的 MLP f_θh 来编码 6D 手部关节旋转 θh。最后,我们将来自文本、空间手部关节、手部顶点和手部关节旋转的嵌入进行连接,以生成联合文本和手部嵌入。

扩散。我们使用稳定扩散 [51] 实例化文本引导的 Hand-Params-to-Image,并使用以下目标进行训练:

在上述方程中,条件 y = (text, J^(2D)_h, Mh, θh) 表示文本和手部参数的组合,其中包括空间关节位置、顶点和关节旋转。函数 F 是一个去噪 U-Net,用于预测噪声,τ_(text+h) 是可训练的 Text+Hand 编码器。我们建议读者参考 [51],了解方程(3)的更多细节。

在 Text-to-Hand-Params 扩散中生成 SMPL-H v.s. 生成骨架(Skeleton)。我们设计 HanDiffuser 的第一个组件来生成 SMPL-H 的姿势和形状参数,而不是关键点或骨架,因为 SMPL-H 编码了关于人类的拓扑和几何先验,并且编码了比骨架更丰富的信息。此外,与骨架相比,SMPL-H 参数对噪声更稳健:即使在有噪声的情况下,我们仍然可以获得合理的姿势,而有噪声的关节位置会导致不合理的姿势。由于我们正在生成 SMPL-H 网格的参数(51 个关节旋转和 10 个形状参数),与第二个组件 Text-Guided Hand-Params-to-Image 相比,Text-to-Hand-Params 组件的计算量较小。

4. 实验

4.1. 数据集

我们使用我们自己策划的数据集来训练 HanDiffuser 的两个组件。

4.3. 评估指标

我们使用 Frechet Inception Distance(FID)和 Kernel Inception Distance(KID)[19, 43] 评估HanDiffuser 生成的图像质量。

由于 FID 和 KID 度量图像的整体质量,我们还计算了 FID-H 和 KID-H 来衡量仅手部区域图像的质量。我们首先使用手部边界框提取裁剪图像,然后使用这些手部裁剪图像计算 FID 和 KID。

我们还使用平均手部检测置信度分数来衡量手部的质量。具体来说,我们在生成的图像上运行一个现成的手部检测器 [66],并计算检测的置信度分数。较高的置信度分数意味着手部检测器更有信心地判断一个区域是手部,表明生成的手部质量更高。

5. 结论与局限性

我们提出了 HanDiffuser,一个端到端的模型,用于从文本提示生成具有真实手部外观的图像。我们的模型明确学习了基于手部形状、姿势和手指级关节的手部嵌入,并将它们与文本嵌入结合起来,生成具有高质量手部的图像。我们通过多种评估指标的定量分析以及用户研究的定性分析,展示了我们方法在基准 T2I 数据集上的最新性能。

在未来,我们计划将我们的模型扩展到更多未开发的领域,以生成更逼真的手部。这些领域包括由多个人组成的图像、复杂的手部与物体交互、描述高度专业化手部活动(例如,折纸)的提示、同一人在同时处理多个对象、同一图像中两个或更多人的手部交互,以及非拟人化手部(例如,狗使用计算机)。同时,未来的一个方向是使手部生成流水线具有风格和形状感知,以便在要求在不同图像中生成相同人物时,能够一致地生成相同的手部。 

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

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

相关文章

webrtcP2P通话流程

文章目录 webrtcP2P通话流程webrtc多对多 mesh方案webrtc多对多 mcu方案webrtc多对多 sfu方案webrtc案例测试getUserMediagetUserMedia基础示例-打开摄像头getUserMedia canvas - 截图 打开共享屏幕 webrtcP2P通话流程 在这里,stun服务器包括stun服务和turn转发服…

docker进行jenkins接口自动化测试持续集成实战

文章目录 一、接口功能自动化测试项目源码讲解二、接口功能自动化测试运行环境配置1、下载jdk,maven,git,allure并配置对应的环境变量2、使用docker安装jenkins3、配置接口测试的运行时环境选择对应节点4、jenkins下载插件5、jenkins配置环境…

I2C驱动实验:验证所添加的I2C设备的设备节点

一. 简介 前面一篇文章向设备树中的 I2C1控制器节点下,添加了AP3216C设备节点。文章如下: I2C驱动实验:向设备树添加 I2C设备的设备节点信息-CSDN博客 本文对设备树进行测试,确认设备节点是否成功创建好。 二. I2C驱动实验&a…

算法刷题应用知识补充--基础算法、数据结构篇

这里写目录标题 位运算&#xff08;均是拷贝运算&#xff0c;不会影响原数据&#xff0c;这点要注意&#xff09;&、|、^位运算特性细节知识补充对于n-1的理解异或来实现数字交换找到只出现一次的数据&#xff0c;其余数据出现偶数次 >> 、<<二进制中相邻的位的…

动态多目标优化:动态约束多目标优化测试集DCP1-DCP9的TruePF(提供MATLAB代码)

一、进化动态约束多目标优化测试集DCP1-DCP9 参考文献&#xff1a; [1]G. Chen, Y. Guo, Y. Wang, J. Liang, D. Gong and S. Yang, “Evolutionary Dynamic Constrained Multiobjective Optimization: Test Suite and Algorithm,” in IEEE Transactions on Evolutionary Com…

Web3:数字化社会的下一步

随着技术的不断进步和互联网的发展&#xff0c;我们正逐渐迈入一个全新的数字化社会阶段。在这个新的时代&#xff0c;Web3作为数字化社会的重要组成部分&#xff0c;将发挥着举足轻重的作用。本文将探讨Web3在数字化社会中的意义、特点以及对未来发展的影响。 1. 重新定义数字…

人脸识别:Arcface--loss+code

之前只接触过传统方法的人脸识别算法&#xff0c;本以为基于深度学习的方法会使用对比损失之类的函数进行训练&#xff0c;但是Arcface算法基于softmax进行了创新&#xff0c;本文未深究其详细的loss公式原理&#xff0c;在大致明白其方向下&#xff0c;运行了代码&#xff0c;…

06-kafka及异步通知文章上下架

kafka及异步通知文章上下架 1)自媒体文章上下架 需求分析 2)kafka概述 消息中间件对比 特性ActiveMQRabbitMQRocketMQKafka开发语言javaerlangjavascala单机吞吐量万级万级10万级100万级时效性msusmsms级以内可用性高&#xff08;主从&#xff09;高&#xff08;主从&#…

spring中各种bean加载顺序

具体加载顺序按照罗列的顺序 XXXAware ApplicationContextAware、EnvironmentAware、BeanFactoryAware、BeanClassLoaderAware 顾名思义&#xff0c;用于获取对应的对象&#xff0c;需要在实体类中声明对应的对象且当前类为普通类能被注入。 InitializingBean void afterProp…

下载页面上的视频

引言&#xff1a;有些页面上的视频可以直接右键另存为或者F12检索元素找到视频地址打开后保存&#xff0c;但有些视频页面是转码后的视频&#xff0c;不能直接另存为视频格式&#xff0c;可以参考下本方法 以该页面视频为例&#xff1a;加载中...点击查看详情https://wx.vzan.c…

WindowsPowerShell安装配置Vim的折腾记录

说明 vim一直以来都被称为编辑器之神一样的存在。但用不用vim完全取决于你自己&#xff0c;但是作为一个学计算机的同学来说&#xff0c;免不了会和Linux打交道&#xff0c;而大部分的Linux操作系统都预装了vim作为编辑器&#xff0c;如果是简单的任务&#xff0c;其实vim只要会…

Java_自定义实体类的列表List<T>调用remove()失败讲解

示例1 前提&#xff1a; 新建一个主类Demo1。 需求&#xff1a; 在一个列表中有三条String的数据&#xff0c;想要使用remove(Object o)删掉其中一条。 结果&#xff1a; remove(Object o)成功把数据删掉。 示例2 前提&#xff1a; 新建一个自定义实体类DataExample和一个主…

爬取学习强国视频小示例

因为需要爬取的视频数量并不是很大&#xff0c;总共需要将131个视频下载下来&#xff0c;所以就直接去手动找找视频的地址和名称保存下来的。由于页面是动态加载的&#xff0c;所以我们无法在网站源码中直接找到视频的超链接。设想是可以用Selenium模拟浏览器点击进行动态加载获…

uni-app如何实现高性能

这篇文章主要讲解uni-app如何实现高性能的问题&#xff1f; 什么是uni-app&#xff1f; 简单说一下什么是uni-app&#xff0c;uni-app是继承自vue.js&#xff0c;对vue做了轻度定制&#xff0c;并且实现了完整的组件化开发&#xff0c;并且支持多端发布的一种架构&#xff0c…

电脑上音频太多,播放速度又不一致,如何批量调节音频播放速度?

批量调节音频速度是现代音频处理中的一个重要环节&#xff0c;尤其在音乐制作、电影剪辑、有声书制作等领域&#xff0c;它能够帮助制作者快速高效地调整音频的播放速度&#xff0c;从而满足特定的制作需求。本文将详细介绍批量调节音频速度的方法、技巧和注意事项&#xff0c;…

移动Web学习04-移动端订单结算页PC端个人中心页面

5、电商结算页面案例 css body{background-color: #F2F2F2; } * {box-sizing: border-box;margin: 0;padding: 0; }.main{padding: 12px 11px 80px; }.pay{display: flex;height: 80px;background-color: #fff;bottom: 0;width: 100%;border-top: 1px solid #ededed;position:…

04-自媒体文章-自动审核

自媒体文章-自动审核 1)自媒体文章自动审核流程 1 自媒体端发布文章后&#xff0c;开始审核文章 2 审核的主要是审核文章的内容&#xff08;文本内容和图片&#xff09; 3 借助第三方提供的接口审核文本 4 借助第三方提供的接口审核图片&#xff0c;由于图片存储到minIO中&…

JAVA毕业设计132—基于Java+Springboot+Vue的自习室座位预约小程序管理系统(源代码+数据库)

毕设所有选题&#xff1a; https://blog.csdn.net/2303_76227485/article/details/131104075 基于JavaSpringbootVue的自习室座位预约小程序管理系统(源代码数据库)132 一、系统介绍 本项目前后端分离带小程序&#xff0c;分为管理员、用户两种角色 1、用户&#xff1a; 注…

【Arthas案例】某应用依赖两个GAV-classifier不同的snakeyaml.jar,引起NoSuchMethodError

多个不同的GAV-classifier依赖冲突&#xff0c;引起NoSuchMethodError Maven依赖的三坐标体系GAV(G-groupId&#xff0c;A-artifactId&#xff0c;V-version) classifier通常用于区分从同一POM构建的具有不同内容的构件物&#xff08;artifact&#xff09;。它是可选的&#xf…

泰坦尼克号幸存者数据分析

泰坦尼克号幸存者数据分析 1、泰坦尼克号数据集2、数据集加载与概览3、泰坦尼克号幸存者数据分析4、哪些人可能成为幸存者&#xff1f; 1、泰坦尼克号数据集 泰坦尼克号的沉没是世界上最严重的海难事故之一&#xff0c;造成了大量的人员伤亡。这是一艘号称当时世界上最大的邮轮…