第十七周周报

文章目录

  • 摘要
  • 目标检测
    • 锚框
    • 交并比
    • NMS 非极大值抑制输出
  • 文献阅读:SMPL: A Skinned Multi-Person Linear Model
    • Introduction
    • Related Work
    • Model Formulation
    • Training
    • 评估
    • 动态SMPL
    • 讨论
    • 结论
  • 总结

摘要

本周看了三维人体重建的领域,看了一篇SMPL的文章:A Skinned Multi-Person Linear Model,提出的一种人体建模方法,该方法可以进行任意的人体建模和动画驱动。模型的参数从数据中学习,包括静止姿势模板、混合权重、姿势相关的混合变形、身份相关的混合变形以及从顶点到关节位置的回归。与以前的模型不同,姿势相关的混合变形是姿势旋转矩阵元素的线性函数。

This week, I explored the field of three-dimensional human body reconstruction and read an article on SMPL (Skinned Multi-Person Linear Model) titled “A Skinned Multi-Person Linear Model.” The article proposes a method for human body modeling that allows for arbitrary body modeling and animation driving. The model parameters are learned from data, including static pose templates, blend weights, pose-dependent blend shapes, identity-dependent blend shapes, and regression from vertices to joint positions. Unlike previous models, the pose-dependent blend shapes are linear functions of pose rotation matrix elements.

目标检测

边缘框与坐标轴有点区别:y轴有点区别
左上右下的点来定义
物体识别和目标识别的数据集通常比分类数据集小很多,因为标注的成本很高。
听李沐的课,有一节讲到,自动驾驶的,除了特斯拉是用的纯摄像头完成的

锚框

一类目标检测算法
提出多个被称为锚框的区域
预测每个锚框是否含有关注的物体
如果是,预测从这个锚框到真实边缘框的偏移

在这里插入图片描述以同一像素为中心的锚框的数量是 n + m − 1 n+m-1 n+m1
对于整个输入图像,将共生成 w h ( n + m − 1 ) wh(n+m-1) wh(n+m1)个锚框。

交并比

在这里插入图片描述
在这里插入图片描述
比较两个框之间的相似度

NMS 非极大值抑制输出

step1:先将所有的边界框按照类别进行区分;
step2:把每个类别中的边界框,按照置信度从高到低进行降序排列;
step3:选择某类别所有边界框中置信度最高的边界框bbox1,然后从该类别的所有边界框列表中将该置信度最高的边界框bbox1移除并同时添加到输出列表中;
step4:依次计算该bbox1和该类别边界框列表中剩余的bbox计算IOU;
step5:将IOU与NMS预设阈值Thre进行比较,若某bbox与bbox1的IOU大于Thre,即视为bbox1的“邻域”,则在该类别边界框列表中移除该bbox,即去除冗余边界框;
step6:重复step3~step5,直至该类别的所有边界框列表为空,此时即为完成了一个物体类别的遍历;
step7:重复step2~step6,依次完成所有物体类别的NMS后处理过程;
step8:输出列表即为想要输出的检测框,NMS流程结束。

文献阅读:SMPL: A Skinned Multi-Person Linear Model

SMPL模型是一种参数化人体模型,是马普所提出的一种人体建模方法,该方法可以进行任意的人体建模和动画驱动。这种方法与传统的LBS的最大的不同在于其提出的人体姿态影像体表形貌的方法,这种方法可以模拟人的肌肉在肢体运动过程中的凸起和凹陷。因此可以避免人体在运动过程中的表面失真,可以精准的刻画人的肌肉拉伸以及收缩运动的形貌。

作者提出了一种学习人体形状和位置依赖的形状变化模型,模型的参数从数据中学习,包括静止姿势模板、混合权重、姿势相关的混合变形、身份相关的混合变形以及从顶点到关节位置的回归。与以前的模型不同,姿势相关的混合变形是姿势旋转矩阵元素的线性函数。这个简单的公式能够从相对大量的不同姿势的不同人的对齐3D网格中训练整个模型。

Introduction

1)目标是自动学习一个既逼真又与现有图形软件兼容的人体模型。为此,作者描述了一个“皮肤多人线性”(SMPL)人体模型,它可以真实地表示各种人体形状,可以设置姿势相关的自然变形,展示软组织动力学,高效的动画,并与现有的渲染引擎兼容。
2)PCA(主成分分析)法学习男性和女性体型的线性模型。方法分为两步:
对于每一个扫描和姿态注册一个模板mesh
使用PCA,得到的主成分就是身体混合形状(body shape blend shapes)
3)基于顶点的蒙皮模型(如SMPL)实际上比基于变形的模型(如BlendSCAPE)在相同数据上训练的精度更高。

Related Work

在这里插入图片描述

Blend Skinning(混合蒙皮)
骨架子空间变形方法,也称为混合蒙皮,将网格的曲面附加到底层骨架结构。网格曲面中的每个顶点都使用其相邻骨骼的加权影响进行变换。该影响可以像在线性混合蒙皮(LBS)中那样线性定义。LBS的问题已经被广泛发表,文献中有很多试图解决这些问题的通用方法,例如四元数或双四元数蒙皮、球形蒙皮等。

Blend shapes (混合变形)
作者采取了一种更类似于加权姿势空间变形(WPSD)的方法,它定义静止姿势中的校正,然后应用标准蒙皮方程(例如LBS)。其思想是为特定关键姿势定义校正形状(雕刻),以便在添加到基础形状并通过混合蒙皮变换时,生成正确的形状。

Learning pose and shape models(学习姿势和形状模型。)
作者想要的是一个基于顶点的模型,它具有三角形变形模型的表现力,这样它就可以捕捉到一系列自然的形状和姿势。

形状参数(β \betaβ)
一组形状参数有着10个维度的数值去描述一个人的形状,每一个维度的值都可以解释为人体形状的某个指标,比如高矮,胖瘦等

姿态参数(θ \thetaθ)
一组姿态参数有着24 × 3 24\times324×3维度的数字,去描述某个时刻人体的动作姿态,其中的24 2424表示的是24 2424个定义好的人体关节点,其中的3 33并不是如同识别问题里面定义的( x , y , z ) (x,y,z)(x,y,z)空间位置坐标(location),而是指的是该节点针对于其父节点的旋转角度的轴角式表达(axis-angle representation)(对于这24 2424个节点,作者定义了一组关节点树)

Model Formulation

在这里插入图片描述

(1)模板网格,其混合权重由颜色指示,关节显示为白色。
(2)仅具有身份驱动的混合形状贡献;顶点和关节位置在形状向 β中是线性的。
(3) 在准备分割姿势时添加了姿势混合变形;请注意臀部的扩展。
(4)由分割姿势的双四元数蒙皮放置的变形顶点。

Training

一个3D人体mesh由6890个网格顶点和23个关节点组成:
N = 6890 N=6890N=6890,3D人体mesh的网格顶点总数。
K = 23 K=23K=23,3D人体mesh的关节点总数。
同时,作者指出,SMPL将3D人体mesh的状态分为shapepose
shape影响人体mesh的形状(高矮胖瘦)
pose影响人体mesh的姿态(动作姿势)
因为是在三维空间,一个点有三个坐标(x , y , z),一个标准3D人体mesh的6890个mesh顶点可表示为:

T T T,一个 6890 × 3 6890\times36890×3 的矩阵。注意,这个矩阵是常数值(对于单独一种性别的mesh来说)
同理,一个标准3D人体mesh的23个关节点可表示为:

J J J,一个 24 × 3 24\times324×3 的矩阵,23个关节点+1个root orientation。注意,这个矩阵是常数值(对于单独一种性别的mesh来说)
另外,还有blend weight,也就是每一个关节点的坐标变化对每一个mesh顶点坐标变化的影响:

W W W,一个6890 × 24 6890\times246890×24的矩阵。注意,这个矩阵的值需要训练得到
接下来,文章作者定义了影响shape和 pose的两组参数:
shape,影响高矮胖瘦:β,10个参数,值在-1到1之间
pose,影响动作姿势:θ,72个参数,后69个值在-1到1之间,3*23 + 3,影响23个关节点+1个root orientation的旋转。前三个控制root orientation,后面每连续三个控制一个关节点
这10+72个参数,便是以一个标准3D人体mesh为基础,生成不同shape、不同pose的3D人体mesh所需要的参数。

在这里插入图片描述

如上图,(a)是一个标准3D人体mesh,也就是由 T、J 生成,而颜色代表 W
(b),是改变了shape后的3D人体mesh,也就是由T、J ,外加β \betaβ的影响生成
©,是改变了shape和pose后的3D人体mesh,也就是由T、J,外加 β 、θ 的影响生成
(d),是在C的基础上,加入了 W 的影响后的结果。

评估

在这里插入图片描述
我们评估了SMPL-LBS和SMPL-DQBS。我们还将其与根据与SMPL模型实际相同的数据训练的BlendSCAPE模型进行了比较。我们评估两种类型的错误。模型泛化是模型适应新人物和新姿势的网格的能力;这将测试形状和姿势混合形状。姿势泛化是将一个人的形状泛化为同一个人的新姿势的能力;这主要测试姿势混合形状校正蒙皮伪影和姿势相关变形的效果。两者都是通过模型和测试注册之间的平均绝对顶点到顶点距离来测量的。在这项评估中,我们使用了来自公共Dyna数据集[Dyn 2015]的四名女性和两名男性的120个注册网格。这些网格包含各种身体形状和姿势。
所有网格都与我们的模板对齐,没有一个用于训练我们的模型。图10(灰色)显示了这些注册网格的四个示例。
在这里插入图片描述

曲线图还显示了标准LBS与测试数据的拟合程度。
这对应于没有姿势混合形状的SMPL-LBS模型。毫不奇怪,LBS产生的误差比BlendSCAPE或SMPL高得多。LBS在图中并没有那么糟糕。11是因为这里的模型可以改变体型参数,有效地利用身份的变化来解释由于姿势引起的变形。图12使用了一个固定的身体形状,从而说明了LBS如何不真实地建模与姿势相关的变形。请注意,这里我们没有专门针对LBS重新训练模型,并期望这样的模型会稍微更准确。

与渲染引擎相比较
在这里插入图片描述
SMPL和BlendSCAPE的性能随着所使用的体型系数的数量而变化。此处显示的性能来自2014款Macbook Pro。
我们已经在Maya、Unity和Blender中测试了动画FBX文件。在给定姿势的情况下,姿势混合权重也可以在飞行中计算~✓t、 为了实现这一点,我们提供了获取关节角度并计算姿势混合权重的脚本。我们已经在Maya 2013、2014和2015中测试了SMPL的加载和动画设置。动画师可以设置t的动画。

动态SMPL

虽然SMPL用姿势来模拟静态软组织变形,但它不模拟由于身体移动和与地面的冲击力而发生的动态变形。给定包含软组织动力学的4D配准,我们通过仅优化具有个性化模板形状的SMPL模型的姿态来拟合它们。SMPL和观察到的网格之间的错位对应于动态软组织运动。为了对这些进行建模,我们引入了一组新的添加混合形状,我们称之为动态混合形状。

讨论

在这里,我们使用了数千个高质量的注册模板网格。
重要的是,姿势训练数据涵盖了一系列体型,使我们能够很好地预测关节位置。其次,训练所有参数(模板形状、混合权重、关节回归器、形状/姿势/动态混合形状)以最大限度地减少顶点重建误差对于获得良好的模型很重要。在这里,模型的简单性是一个优势,因为它可以用大量数据训练每一件事。SMPL是顶点空间中的一个加性模型。相反,虽然SCAPE也将变形分解为形状和姿势变形,但SCAPE会将三角形变形相乘。

SMPL使用207个姿势混合形状。这可能会通过对混合形状执行PCA来减少。这将减少乘法运算的次数,从而提高运算速度。此外,我们的动态模型使用PCA来学习动态混合形状,但我们可以像学习姿势混合形状一样直接学习这些混合形状的元素。最后,在这里,我们将我们的模型拟合到注册的网格,但可以将SMPL拟合到mocap标记数据、深度数据或视频。我们预计,优化SMPL-LBS模型的姿态和形状将比优化类似质量的SCAPE模型快得多

结论

作者的目标是创建一个骨骼驱动的人体模型,该模型可以捕捉体型和姿势的变化,以及或优于以前最好的模型,同时与现有的图形管道和软件兼容。为此,SMPL使用标准蒙皮方程并定义修改基础网格的身体形状和姿势混合形状。作者对不同姿势的不同人群进行数千次对齐扫描,以训练模型。该模型的形式使得可以从大量数据中学习参数,同时直接最小化顶点重建误差。具体来说,作者学习休息模板、关节回归器、体型模型、姿势混合形状和动态混合形状。令人惊讶的结果是,当在完全相同的数据上训练BlendSCAPE和SMPL时,基于顶点的模型比基于变形的模型更准确,渲染效率也高得多。

总结

人体可以理解为是一个基础模型和在该模型基础上进行形变的总和,在形变基础上进行PCA,得到刻画形状的低维参数——形状参数(shape);同时,使用运动树表示人体的姿势,即运动树每个关节点和父节点的旋转关系,该关系可以表示为三维向量,最终每个关节点的局部旋转向量构成了smpl模型的姿势参数(pose)。考虑到与目前的市面上的渲染器,SMPL模型使用得较多。总结:三维参数化人体模型被广泛使用,它是估计人体三维姿态和形状的有力先验。其主要思想是通过低维参数对三维人体(包括脸、手和身体)的变形进行建模 。

数据集:
ICCV 2023 | SynBody:用于三维人体感知和建模的基于分层人体模型的合成数据集
SynBody的核心是一个分层的参数化人体模型
CAESAR dataset
Dyna dataset

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

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

相关文章

Windows2012部署项目

目录 1.jdk的安装 2.Tomact安装 3.MySQL安装 4.项目部署 ​5.思维导图 1.jdk的安装 将jdk从主机复制到虚拟机里面,然后双击进行安装 安装完JDK之后,在系统的高级系统设置中点击环境变量,进行增加系统变量 变量名 : JAVA_HOME 变量值 : …

【深入挖掘Java技术】「源码原理体系」盲点问题解析之HashMap工作原理全揭秘(下)

盲点问题解析之HashMap工作原理全揭秘 承接上文创建HashMap对象参考容量(capacity)Hashmap内部有一个机制扩容阈值(threshold)负载因子(loadFactor) HashMap存储元素的过程HashMap的put方法JDK8的扩容机制N…

一键批量翻译,文件夹名称翻译器

文件夹名称往往是我们初步了解文件内容的重要窗口。有时,为了更好地与国际合作伙伴交流或是管理个人文件,我们需要对文件夹名称进行翻译。传统的逐一修改方法既费时又费力,还要借助翻译工具。现在有了【文件批量改名高手】,上面的…

OpenAI ChatGPT-4开发笔记2024-06:最简Embedding

Embedding embedding直译是:嵌入。和实际意思有些差距。其实就是把文本转换为向量表示的过程。用“向量化”更直接,但这又和tensor有点儿混。它是变成向量的一个过程。 embedding 的应用领域: 文本分类: 将文本嵌入转换为向量后…

js逆向第20例:猿人学第19题乌拉乌拉乌拉

文章目录 一、前言二、定位关键参数1、JA3/TLS指纹怎么查看2、加密值长度对比三、代码实现四、参考文献一、前言 任务十九:抓取这5页的数字,计算加和并提交结果 此题在以前用python写逆向代码是存在缺陷的,直到今年有个大佬开源了curl_cffi库,并且支持 JA3/TLS 和 http2 指…

提交代码,SVN被锁定,提示:svn is already locked解决方案

今天遇到一个问题,svn 在提交代码的时候出现了svn is already locked,解决方案如下图 点击clean up 点击ok即可 来看官方对clean up的解释:它的作用就是查找工作拷贝中的所有遗留的日志文件,删除进程中工作拷贝的锁。 参考&…

也谈人工智能——AI科普入门

文章目录 1. 科普入门人工智能的定义人工智能的类型 - 弱 AI 与强 AI人工智能、深度学习与机器学习人工智能的应用和使用场景语音识别计算机视觉客户服务建议引擎数据分析网络安全 行业应用人工智能发展史![img](https://img-blog.csdnimg.cn/img_convert/66aeaaeac6870f432fc4…

网络安全B模块(笔记详解)- MYSQL信息收集

MYSQL信息收集 1.通过渗透机场景Kali中的渗透测试工具对服务器场景MySQL03进行服务信息扫描渗透测试(使用工具Nmap,使用必须要使用的参数),并将该操作显示结果中数据库版本信息作为Flag提交; Flag:MySQL 5.5.12 2.通过渗透机场景Kali中的渗透测试工具对服务器场景MySQL0…

【RV1126 学习】SDK/ U-Boot/kernel/rootfs 编译学习

文章目录 RV1126芯片介绍rv1126 模块代码目录相关说明 SDK 包下的脚本使用build.sh 脚本使用envsetup.sh 脚本使用mkfirmware.sh 脚本使用rkflash.sh 脚本使用 U-Boot 编译和配置uboot 的配置修改编译操作 kernel 的修改编译rootfs 编译和配置buildroot 配置busybox 配置 固件打…

AI教我学编程之C#变量及实例演示

前言 在AI教我学编程之AI自刀 这篇文章中,我们知道了变量的基础类型,那么变量在C#中有什么作用呢?我们一起来看看吧! 目录 重点先知 变量 变量类型 实例演示 变量声明 实例演示 提出疑问 初始化变量 自动初始化 多变量声明 实…

MySQL 从零开始:05 MySQL 数据类型

文章目录 1、数值类型1.1 整形数值1.2 浮点型数值1.3 布尔值 2、日期和时间类型3、字符串类型3.1 CHAR 和 VARCHAR3.2 BINARY 和 VARBINARY3.3 BLOB 和 TEXT3.4 ENUM 类型3.5 SET 类型 4、空间数据类型5、JSON 数据类型5、JSON 数据类型 前面的讲解中已经接触到了表的创建&…

0基础学习VR全景平台篇第137篇:720VR全景,DJI无人机遥控器调参

上课!全体起立~ 大家好,欢迎观看蛙色官方系列全景摄影课程! 这节课以御2为例 介绍的是无人机调参 步骤一:下载DJI Go 4并注册账号 步骤二:拿下遥杆并装好,展开遥控天线。将无人机与遥控器相连&#xff…

【开源】基于JAVA语言的固始鹅块销售系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 鹅块类型模块2.3 固始鹅块模块2.4 鹅块订单模块2.5 评论管理模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 鹅块类型表3.2.2 鹅块表3.2.3 鹅块订单表3.2.4 鹅块评论表 四、系统展示五、核心代码5.…

Camunda Event Based Gateway

一:bpmn 二:java 如果没有收到信号,超过等待时间,流程进入总经理审批,如果在等待时间内收到信号,流程进入副总经理审批。 示例1:发送信号事件,流程进入副总经理审批。 repository…

【Python机器学习】决策树集成——梯度提升回归树

理论知识: 梯度提升回归树通过合并多个决策树来构建一个更为强大的模型。虽然名字里有“回归”,但这个模型既能用于回归,也能用于分类。与随机森林方法不同,梯度提升采用连续的方式构造树,每棵树都试图纠正前一…

推荐算法常见的评估指标

推荐算法评估指标比较复杂,可以分为离线和在线两部分。召回、粗排、精排和重排由于定位区别,其评估指标也会有一定区别,下面详细讲解。 1 召回评价体系 召回结果并不是最终推荐结果,其本质是为后续排序层服务的,故核…

学习记录10-L6406E报错处理

前言 问题:在编译时报如下错误 ..\OBJ\LCD.axf: Error: L6406E: No space in execution regions with .ANY selector matching main.o(.constdata). ..\OBJ\LCD.axf: Error: L6406E: No space in execution regions with .ANY selector matching lcd_init.o(i.LCD…

rke2 Offline Deploy Rancher v2.8.0 latest (helm 离线部署 rancher v2.8.0)

文章目录 1. 预备条件2. 为什么是三个节点?​3. 配置私有仓库4. 介质清单5. 安装 helm6. 安装 cert-manager6.1 下载介质6.2 镜像入库6.3 helm 部署6.4 cert-manager 卸载 7. 安装 rancher7.1 镜像入库7.2 helm 安装 8. 验证9. 界面预览10. 卸载 1. 预备条件 所有支…

【SAP】如何删除控制范围

经历就是财富,可你终将遗忘。期望文字打败时间。 本周心惊胆战地在配置系统删除了一个控制范围,还是有些收获,特此记录一下。 背景:在删除控制范围之前,我主要做了如下配置。 定义控制范围(自动生成了成本…

层叠布局(Stack)

目录 1、概述 2、开发布局 3、对齐方式 3.1、TopStart 3.2、Top 3.3、TopEnd 3.4、Start 3.5、Center 3.6、End 3.7、BottomStart 3.8、Bottom 3.9、BottomEnd 4、Z序控制 5、场景示例 1、概述 层叠布局(StackLayout)用于在屏幕上预留一…