一种基于人体点云与测量参数的参数化人体模型拟合方法

文档序号:35131825发布日期:2023-08-15 06:19阅读:91来源:国知局
一种基于人体点云与测量参数的参数化人体模型拟合方法

本发明涉及计算机视觉,具体涉及一种基于人体点云与测量参数的参数化人体模型拟合方法。


背景技术:

1、近年来,捕捉非结构化的三维点云的传感技术变得无处不在且更加准确,并推动了三维人体重建技术的发展。其中,将参数化人体模型拟合到穿着紧身衣的人体点云上是计算机视觉中的一项具有挑战性的任务,因为这需要去定位人体点云中的各个关节点位置,并且让网格顶点与人体点云尽可能地对齐、贴近。在基于学习的方法中,smpl(-x)模型的拟合可以分为两类:(1)使用深度神经网络去预测smpl(-x)的姿势和体型参数;(2)通过梯度下降的迭代优化方法搜索smpl(-x)的参数,优化一个目标函数以尽可能与人体点云匹配。这两种方法各有优劣,前者需要带有三维标注的数据集进行训练,但其非线性表示能力较强;后者虽然不需要额外的数据集,但需要寻找到合适的优化项和各种先验知识进行约束。

2、现有技术1《humman:multi-modal 4d human dataset for versatile sensingand modeling》中搭建了一个多视角相机阵列,在采集了紧身着装的人体不同视角的点云数据后融合得到高精度的人体点云。为了注册到smpl网格模型,采用多视角下2d关节点的预测,通过三角测量得到3d关节点,再通过最小化目标函数来优化smpl的姿势和体型参数。但所提供的数据集缺乏紧身着装的扫描数据,因此难以评判注册后的smpl模型在体型上的准度。此外,该方法对扫描数据的质量要求较高,否则重建出的smpl模型与人体点云仍有一定差距;

3、现有技术2《3d human body reshaping with anthropometric modeling》中提出了一个利用部分人体测量参数生成特定体型的参数化人体模型方法。在训练阶段,根据数据集中的人体网格模型和测量参数,通过基于特征选择的局部映射技术去学习相关性掩码,而顶点映射矩阵则通过线性回归从相关性掩码选出的参数进一步学习得到。在推理阶段,用户输入有限测量参数,通过多重插补处理缺失值,并在映射阶段通过采用相关性掩码和映射矩阵生成人体模型。然而该方法不能应用到smpl(-x)的人体模型上,且重建出的三维人体测量参数与输入参数的误差相对较高;

4、现有技术3《accurate 3d body shape regression using metric and semanticattributes》中着重于从单幅图像预测更准确的smpl体型参数。首先通过现有回归器去预测smpl的姿势和体型参数,然后通过一个简单的神经网络输入体型参数来预测语义化体型特征,预测出的smpl人体通过虚拟测量技术得到部分人体测量参数,最后结合语义化体型和测量参数来约束smpl的体型参数。然而其运用的语义化体型特征是建立在多位标注员的主观评价上的,难以准确客观地表示人的体型特征,虽然有效提升了体型预测的准度,但其误差依然较大。

5、现有smpl(-x)模型的拟合方法大多难以恢复出准确的体型,或需要通过额外的顶点偏移实现。基于深度神经网络的方法需要预先构建好的3d数据集进行训练,对体型的重建结果依然较差。


技术实现思路

1、本发明的目的是为了解决现有技术中的上述缺陷,提供一种基于人体点云与测量参数的参数化人体模型拟合方法,该方法能够通过引入测量参数的约束实现对smpl(-x)体型的精确控制,不仅能够在拟合流程中提供体型的强约束,还能够直接通过测量参数生成目标体型的smpl(-x)模型。

2、本发明的目的可以通过采取如下技术方案达到:

3、一种基于人体点云与测量参数的参数化人体模型拟合方法,所述拟合方法包括以下步骤:

4、s1、将人体点云以固定距离与多个不同的视角渲染得到在每个不同视角下的全身人体图像;

5、s2、对每个视角下的全身人体图像,通过深度神经网络openpose预测出每个视角下的2d关节点集以及与各个关节点相对应的置信度;

6、s3、对所有视角下的2d关节点集,通过视角筛选与低置信度2d关节点排除,得到2d关节点筛选集,然后采用三角测量算法重建得到3d关节点,对重投影损失超过第一阈值的3d关节点通过排除噪声视角的方法进行优化;

7、s4、已知参数化人体模型smpl(-x)的初始姿势参数θ0与体型参数β0,以下参数化人体模型smpl(-x)简称smpl(-x)模型,在提供0向量姿势参数时,生成的人体模型呈现出t-姿势,且手掌呈伸直展开状态;在smpl(-x)模型上预先定义测量所需的特征点,对特定体型参数生成的t-姿势下smpl(-x)模型测量获取所需的测量参数;然后进行smpl(-x)模型的拟合,在拟合过程中,首先将smpl(-x)模型按臀中点平移到重建出的3d关节点的臀中点完成初步对齐,然后以重建出的3d关节点、人体点云与输入的测量参数作为约束,通过迭代优化的方式最小化目标函数,得到优化后smpl(-x)模型的姿势参数θ与体型参数β。

8、进一步地,所述步骤s1中将人体点云整体按重心平移至以原点为重心的位置,确保渲染得到的人体位于图像的中心,坐标单位为mm,然后将相机距离设置为1200mm,采用宽高比a=1、垂直视场角近平面zn=10mm、远平面zf=10000mm的透视投影,在保证全身人体位于图像中的同时覆盖更多的像素区域,相机正对人体正面开始渲染,然后每次将人体点云绕y轴逆时针旋转30度,一共旋转11次,最终渲染得到12幅不同视角的分辨率为512x512的全身人体图像。

9、进一步地,所述步骤s2中将12幅全身人体图像作为深度神经网络openpose的输入,预测得到每幅全身人体图像的人体2d关节点集以及各个2d关节点对应的置信度,设k为openpose预测出的人体2d关节点数目,openpose可预测25个关节点的body25或18个关节点的coco这两种身体部位的关节点集,并额外支持对42个手掌关节点的预测或对70个脸部关节点的预测,根据全身人体图像的清晰程度,在选择身体部分关节点集的基础上决定是否需要添加手掌关节点或脸部关节点。

10、进一步地,所述步骤s3过程如下:

11、s31、从12幅全身人体图像筛选出n个视角的2d关节点集,部分视角由于存在人体自遮挡的情况,使得openpose预测出的关节点置信度相比其余视角更低,通过筛选的方式排除掉人体自遮挡严重的视角,然后由于低置信度的2d关节点会影响重建出的3d关节点的精度,在这n个视角的2d关节点集中排除掉所有置信度低于第二阈值的2d关节点,得到2d关节点筛选集;

12、s32、在2d关节点筛选集中,通过三角测量方法重建出k个3d关节点:设为当前关节剩余的视角构成的2d关节点集,其中n'表示剩余的视角数,i表示剩余视角中的第i个视角,vi表示对应的视角编号,表示该关节在视角编号vi下的2d关节点,和分别表示的x坐标和y坐标,设定每个视角vi下的3×3相机旋转矩阵和平移向量其中向量和表示旋转矩阵的第1列、第2列和第3列,和分别表示的x坐标、y坐标和z坐标,此外设定12个视角都有相同的4×4透视投影矩阵其中a表示宽高比,表示垂直视场角zn表示近平面位置距离,zf表示远平面位置距离,通过下面的公式对视角vi的2d关节点进行逆图片空间变换与逆投影变换,得到相机视角的3d方向向量:

13、

14、其中表示视角vi下的方向向量,和分别表示的x坐标和y坐标,w和h分别表示全身人体图像的宽和高;

15、对每个视角vi列出下面两个方程:

16、

17、

18、其中x'为待求3d关节点位置;n'个剩余的视角列出2n'个方程,每个视角vi从对应的相机位置出发,根据各自视角对应2d关节点的位置产生一条沿着方向的射线,共产生n'条射线,采用最小二乘法求解出与这n'条射线距离最小的3d关节点x'后,将x'投影到剩余视角的图片空间中,得到重投影2d关节点集通过下面的公式计算重投影2d关节点:

19、

20、其中,是位于投影空间的列向量,和表示的x坐标、y坐标、z坐标和w坐标,对进行透视除法,即整体除以使得其x、y、z分量表示投影空间中的3d坐标,为视角编号vi的重投影2d关节点;

21、最后通过下面的公式计算平均像素误差:

22、其中e为平均像素误差,||·||2用于求向量的欧氏距离,平均像素误差越小,所求3d关节点越准确,这取决于全身人体图像的质量与openpose预测出的2d关节点的置信度高低;

23、s33、若平均像素误差e小于第一阈值,或剩余视角数n'<4,得到最终预测的3d关节点x',否则需要使用下述方法排除噪声视角直至满足条件:对当前关节剩余视角构成的2d关节点集设qi为排除剩余视角中第i个视角对应的2d关节点得到的点集,对qi进行三角测量重建出3d关节点xi',然后进行重投影并计算出平均像素误差ei,设m为所求平均像素误差构成的集合中的最小值em对应的下标,若em小于第一阈值,或点集qm的剩余视角数小于4,得到最终预测的3d关节点xm',否则将qm作为排除噪声视角方法的输入并继续执行,通过排除噪声视角能够有效降低重建出的3d关节点经过重投影计算得到的平均像素误差,从而有助于后续smpl(-x)模型3d关节点与重建出的3d关节点对齐,以及点云与smpl(-x)模型之间的对齐。

24、进一步地,所述步骤s4中测量方法获取身高、会阴高、臂展、上肢长、胸围、腰围、臀围和大腿围共8项测量参数,然后经过扩展以支持更多的测量参数,包括臀宽、腰宽、大腿长、上臂长和肩宽,由于测量过程是在smpl(-x)模型上进行的,部分测量参数与真实测量参数会不可避免地存在一定差异。

25、进一步地,所述步骤s4中测量方法需要预先从smpl(-x)模型的顶点中定义特征点,包括:头顶点、左脚后跟点、左手中指末端点、右手中指末端点、左肩点、会阴点、右胸点、肚脐点、会阴点和左大腿点,若需要进一步扩充测量类别,在增加定义更多用于测量的特征点,然后在统一的t-姿势下进行长度相关与围长相关的测量,由于smpl在默认t-姿势下手掌呈伸直展开状态,而smpl-x在默认t-姿势下手掌呈弯曲状态,需要将smpl-x的手掌姿势转变为与smpl相同的伸直展开的状态;

26、其中,长度相关的测量包括身高、臂展、上肢长和会阴高,身高通过计算头顶点到左脚后跟点在y轴下的垂直距离得到,臂展通过计算左手中指末端点到右手中指末端点在x轴下的水平距离得到,上肢长通过计算左肩点到左手中指末端点的距离得到,会阴高通过计算会阴点到左脚后跟点在y轴下的垂直距离得到;

27、其中,围长相关的测量包括胸围、腰围、臀围和左大腿围,围长相关的测量首先需要选择一个特征点用于横向切割,结合法向量n=(0,1,0)通过点法式确定出一个能够完整切割smpl(-x)模型的平面网格,然后smpl(-x)模型与平面网格进行相交检测,得到相交顶点集,通过去除重复顶点操作和凸包算法求出凸包顶点集,最后求凸包顶点集的围长,其中相交检测与求凸包顶点集的过程不参与梯度的传导,而由于相交检测的运算量大,在cpu的计算速度很慢,可为smpl(-x)模型构建基于空间的加速结构bvh树,然后在gpu进行相交检测计算,从而大幅提升计算速度,但输出结果的顺序不同会使求出的凸包顶点集不同并导致测量存在多个结果,为了降低这种影响,需要进行多次相交检测和凸包计算,取测量结果的最大值作为最终的围长;

28、胸围、腰围、臀围和左大腿围在测量前需要分别使用右胸点、肚脐点、会阴点和左大腿点进行横向切割,且在测量左大腿围时需要定义一个仅有左半身的smpl(-x)模型与平面网格进行相交检测,以避免出现双腿的顶点自相交影响相交检测结果的情况,如图2所示。

29、进一步地,所述最小化目标函数定义如下:

30、e=λcdecd+λpep+λaea+λmem

31、其中,e为目标函数,ecd为倒角距离损失项,ep为3d关节点的距离损失项、ea为全身骨骼欧拉角先验损失项,em为测量参数约束损失项,λcd、λp、λa和λm表示控制各损失项对应的权重;

32、倒角距离损失项ecd用于计算下采样后的点云到smpl(-x)模型点中最近点的平均距离以及smpl(-x)模型点到下采样后的点云中最近点的平均距离之和,以评估smpl(-x)模型与点云之间的相似程度,通过下面的公式计算:

33、

34、其中,表示smpl(-x)模型的所有顶点,表示中的顶点,表示人体点云中的所有顶点,表示人体点云通过最远点降采样保留预先设置的数目的顶点,相比于均匀采样,采用最远点降采样能够更好地体现出点云的整体轮廓,由于输入的人体点云存在点数过大的可能,会直接影响整体计算的速度,经过降采样能够降低该损失项的计算量,表示中的顶点,表示smpl(-x)模型的顶点数,min表示求单一顶点与点集中所有点的距离的最小值;

35、3d关节点的距离损失项ep用于计算smpl(-x)的3d关节点与三角测量得到的3d关节点之间的距离误差,通过下面的公式进行计算:

36、

37、其中,m(θ,β)表示通过姿势参数θ和体型参数β生成smpl(-x)模型,jk(·)表示smpl(-x)模型到第k个3d关节点的映射函数,ω表示3×1全局相机旋转欧拉角向量,rot(·)表示从3×1旋转欧拉角到3×3旋转矩阵的映射函数,t表示3×1全局相机平移向量,x′(k)表示三角测量得到的第k个3d关节点,wk为控制第k个关节点的权重,且所有关节点的权重和为1,经过smpl(-x)选取得到的关节点与openpose预测并三角重建出的关节点位置存在一定的偏差(如左臀点和右臀点),也有因为openpose预测出的2d关节点位置不准导致三角测量得到的部分3d关节点位置不准的情况(比如脚跟点和脚趾点),可以将这些影响较大的3d关节点的权重设置为0;此外,双臂的对齐通常较为困难,可以在迭代优化后期增大双臂相关的3d关节点的权重并将部分3d关节点设置为0,并调整权重λp;

38、全身骨骼欧拉角先验损失项ea用于对超出活动范围的骨骼欧拉角进行约束,通过下面的公式进行计算:

39、ea=avg(exp(relu(θ-θu)+relu(θl-θ))-l)

40、其中,θu和θl分别表示姿势参数θ的旋转欧拉角上界和下界,relu(·)用于求矩阵各分量与0的最大值,exp(·)表示矩阵各分量的自然指数函数,l表示与θ相同维度的全1矩阵,avg(·)表示对矩阵所有分量求平均值;

41、测量参数约束损失项em用于进一步约束smpl(-x)的体型参数,使smpl(-x)模型获取到的测量参数与输入的测量参数尽可能接近,该损失项通过对各项输入的测量参数与在smpl(-x)模型上测量获取到的对应测量参数计算差值的平方并求和得到,输入的测量参数是身高、臂展、会阴高、上肢长、胸围、腰围、臀围和大腿围这8项的任意组合,若在拟合过程中仅用到该项损失,则用于从测量参数生成对应体型的smpl(-x)模型,而在向人体点云或模型对齐时,若已知输入测量值,通过大权重的方式在对齐的同时对smpl(-x)的体型进一步优化;

42、由于臂展的变化会同时导致上肢长的变化,若同时输入的臂展和上肢长不合理,会导致测量参数约束损失项难以收敛,建议在臂展和上肢长中选择其中一项作为输入;同理臀围的变化会同时导致大腿围的变化,建议在臀围和大腿围中选择其中一项作为输入;

43、首先需要为姿势参数θ、体型参数β、全局相机旋转欧拉角向量ω和全局相机平移向量t提供初始值,设置θ=θ0,β=β0,ω=(0,π,0),t为smpl(-x)模型臀中点与三角测量重建得到的臀中点的差值向量;

44、在最小化目标函数e时,需要对全局相机旋转欧拉角向量ω、全局相机平移向量t、smpl(-x)模型的姿势参数θ和体型参数β进行优化,采用l-bfgs优化器进行梯度下降,优化器的线搜索方法为strong wolfe,学习率为0.2,权重λcd、λp、λa和λm的推荐值分别为5、100、30000和10000000,迭代次数可取60-100次,损失不再下降时即可提前结束迭代。

45、本发明相对于现有技术具有如下的优点及效果:

46、1、本发明通过对虚拟测量模块的进一步扩展,能够支持对smpl(-x)进行身高、腿长、三围、大腿围、臂展和上肢长的测量。由于该模块是可微的,其同时也能够支持通过提供测量参数生成目标体型的smpl(-x)模型。所生成的模型经过测量能与输入值非常接近,生成的体型参数更为合理,且相比于现有的测量参数生成参数化人体模型方法具有更低的误差。

47、2、本发明在进行smpl(-x)模型拟合的同时能够额外引入基于测量参数的约束,并通过这些测量参数实现可解释的smpl(-x)体型优化与生成。通过引入可微虚拟测量,使其能够在进行迭代优化的同时对体型参数做出更进一步的优化,从而得到体型更优的光滑人体模型。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1