一种从深度图像中获取手部三维参数化模型的方法

文档序号:26142846发布日期:2021-08-03 14:27阅读:736来源:国知局
一种从深度图像中获取手部三维参数化模型的方法

本发明属于计算机视觉领域,尤其涉及一种从深度图像中获取手部三维参数化模型的方法。



背景技术:

传统的基于计算机视觉的无模型手势姿态估计中经常会遇到遮挡(包括自遮挡)、分辨率低、噪声等问题,这些问题对最终的姿态估计结果会产生较大影响。相对于传统的无模型方法,基于手部参数化模型的手势姿态估计方法给手势姿态估计任务提供了较强的先验知识,使之能够最大限度在有遮挡、低分辨率等条件下提供较为优秀的性能。目前使用最广泛的手部参数化模型即为mano模型(handmodelwitharticulatedandnon-rigiddeformations)。mano模型是javierromero等人于2017年公开发表的一种参数化手部模型。根据2018年以来国内外手部姿态估计的相关研究工作表明:使用mano参数化模型,对于估计出一个合理且准确的手势姿态,有着至关重要的作用。

mano模型用一组参数来定义三角化的手部三维网格其中为手部的形状参数,为手部的姿态参数,代表通过轴角表示的16个手部关节角。具体来说,mano模型首先由一个平均模版定义,模版中有778个顶点。形状混合函数作为输入,输出描述手部模型的混合形状。姿态混合函数作为输入,输出因手部姿态造成的模型变化。形状混合函数和姿态混合函数的输出结果被施加在平均模版为了得到最后的手部三维网格模型通过混合皮肤函数w(·),对每一个手指部分的顶点根据混合权重计算旋转量,对每个关键点进行旋转操作。

对于特定模型的形状混合参数bs,其本身是通过主成分分析从一组平放动作手型的形状空间中提取出主成分向量sn的线性组合。主成分向量依次乘以线性系数并累加即可以得到个人定制化的手部形状混合参数bs,对应的线性系数即为形状参数



技术实现要素:

本发明的目的在于针对获取手部参数化模型的需求,提供一种从深度图像中获取手部三维参数化模型的方法。

本发明的目的是通过以下技术方案来实现的:一种从深度图像中获取手部三维参数化模型的方法,该方法包括以下步骤:

(1)获取深度图像序列和深度相机内参,包括以下子步骤:

(1.1)使用结构光深度相机拍摄用户平放于平整桌面的双手,得到手部深度图像序列;

(1.2)读取深度相机的相机内参,包括焦距和中心点偏移;

(2)由步骤(1)得到的手部深度图像序列和对应的深度相机内参,重建粗略的手部三维点云,包括以下子步骤:

(2.1)根据第一帧深度图像和深度相机内参获得三维点云,并将第一帧的相机坐标系作为世界坐标系构建三维网格模型,对于之后的深度图像序列,执行步骤(2.2);

(2.2)根据单帧深度图像和相机内参获得三维点云并计算点云中每一点的法向量;

(2.3)将当前帧的三维点云和通过光线投影根据上一帧相机位姿从三维网格模型投影得到的点云进行配准,计算当前帧的相机位姿;

(2.4)根据计算得到的相机位姿,将当前帧的点云与三维网格模型进行融合,更新三维网格模型;

(2.5)根据当前帧的相机位姿,通过光线投影从更新后的三维网格模型投影得到当前视角下的点云,并计算点云中每一点的法向量,用来对下一帧的输入深度图像进行配准;重复执行步骤(2.2)-(2.5)直到完成对深度图像序列的处理;

(2.6)将三维网格模型转换为点云,得到粗略的手部三维点云(该手部三维点云通常会包含周边环境与噪声);

(3)由步骤(2)得到粗略的手部三维点云,人工去除非手部点云与噪声点云,得到精细的手部三维点云,包括以下子步骤:

(3.1)剔除与手部三维点云不相连的点云;

(3.2)选择步骤(3.1)处理后的三维点云中属于所述桌面平面的非共线的三个点,根据三个点计算桌面的平面表示;

(3.3)根据桌面的平面表示,剔除远离手部点云一侧空间的三维点云;

(3.4)剔除步骤(3.3)处理后的三维点云中与手部三维点云不相连的点云,得到精细的手部三维点云;

(4)通过精细的手部三维点云获取用户个性化的手部三维参数化模型,包括以下子步骤:

(4.1)基于精细的手部三维点云及其投影到图像平面的指尖二维位置,优化求解手部三维参数化模型的全局旋转和平移参数;

(4.2)固定步骤(4.1)得到的全局旋转和平移参数,基于精细的手部三维点云及其投影到图像平面的指尖位置,优化求解手部三维参数化模型的形状和姿态参数;

(4.3)为了平衡手指部分点云密集带来的影响,主动剔除一部分手指部分的点云,并基于处理后的手部三维点云进一步优化求解手部三维参数化模型的形状参数,最终得到用户个性化的手部三维参数化模型。

进一步地,所述三维网格模型通过名为tsdf(truncatedsigneddistancefunction)的三维重建算法进行构建和更新。

进一步地,所述三维点云之间均通过名为icp(iterativeclosestpoint)的点云匹配算法进行配准,并依据配准后的点云计算相机位姿。

进一步地,所述步骤(3)中,三维点云的选择和剔除使用能够直观表示的三维网格可视化软件处理,可以采用meshlab、openscad。

进一步地,所述步骤(4.1)和(4.2)中,手部三维点云在固定相机内参下投影成图像,通过指尖检测算法得到手指指尖的二维位置,所述指尖检测算法可以通过opencv工具的轮廓检测方法进行。

进一步地,所述步骤(4)中,用于优化求解最优参数的目标函数包含三个部分,分别是:衡量手部三维参数化模型的上的三维网格面片q与三维点云中的点p整体匹配程度的点云匹配误差、衡量手部三维参数化模型指尖二维投影ftq,j与点云指尖二维投影ftp,j距离的指尖投影误差以及衡量作为最终结果的手部三维参数化模型形状参数与“平均手”形状参数之间距离的先验误差,点云匹配误差、指尖投影误差和先验误差的计算公式分别为:

其中指尖投影误差公式中的j表示5个指尖。

进一步地,所述步骤(4.3)中手部三维参数化模型的形状参数指,通过主成分分析从一组平放动作手型的形状空间中提取出主成分向量sn,定制化的手型可以视为主成分向量sn的线性组合,对应的线性系数即为形状参数

进一步地,所述步骤(4)中,用于求解的优化算法为adam梯度下降算法。

进一步地,所述步骤(4.3)中,手指部分的点云剔除规则是将投影二维平面上距离手部三维参数化模型根部节点投影的二维点距离超过80像素的点剔除。

进一步地,根据步骤(4)得到的用户个性化的手部三维参数化模型,由于用户个性化的手部三维参数化模型相比传统无模型或通用手部模型提供了更多基于用户的先验信息,因此本发明可以在进行手势姿态估计时具有更高的精度和适配性,在人机交互,康复医疗等具体场景下具有应用前景。

本发明的有益效果是:本发明提出了一种从深度图像序列中获取用户个性化手部三维参数化模型的方法。本方法通过结构光深度相机获得用户手部三维点云,将用户手部三维点云与标准参数化手部模型进行匹配,从而获得用户个性化的手部三维参数化模型。由于用户个性化的手部三维参数化模型相比传统无模型或通用手部模型提供了更多基于用户的先验信息,因此本发明可以在进行手势姿态估计时具有更高的精度和适配性,在人机交互,康复医疗等具体场景下具有应用前景。

附图说明

图1为本发明实施例提供的从深度图像中获取手部三维参数化模型的方法流程图。

具体实施方式

下面结合附图和具体实施方式对本发明作进一步详细说明。

如图1所示,本发明实施例提供的一种从深度图像中获取手部三维参数化模型的方法,具体实施步骤如下:

步骤(1)从深度相机中获取深度图像序列和深度相机内参,深度相机选用应用结构光原理的深度相机,可以采用intelrealsensed435i,使用深度相机在0.6米距离环绕拍摄的手部深度图像序列,并读取包括焦距和中心点偏移在内的深度相机内部参数,拍摄时需要保证手部始终在深度相机视野范围内;

步骤(2)在步骤(1)获取的深度图像序列和深度相机内部参数的基础上,获得粗略的手部三维重建点云。根据第一帧深度图像和深度相机内参获得三维点云,并将第一帧的相机坐标系作为世界坐标系构建三维网格模型,构建三维网络模型使用名为tsdf(truncatedsigneddistancefunction)的三维重建算法进行。对于之后的每一帧深度图像,从该帧深度图像和相机内参计算得到相机坐标系下的三维点云,并计算三维点云中每一点的法向量;将当前帧的三维点云与通过光线投影算法根据上一帧相机位姿从三维网格模型投影计算得到点云进行点云配准,进行点云配准使用名为icp(iterativeclosestpoint)的点云匹配算法进行。点云配准后,基于上一帧相机位姿计算当前帧的相机位姿;根据计算得到当前帧的相机位姿,使用名为tsdf的三维重建算法将当前帧的点云与三维网格模型进行融合,并更新三维网格模型;同时根据当前帧的相机位姿,通过光线投影算法从更新后的网格模型投影得到当前视角下的点云,并计算点云中每一点的法向量,用来对下一帧的输入深度图像进行配准;重复执行以上步骤,直到处理完成全部的深度图像序列,获得粗略的手部三维点云。粗略的手部三维点云通常会包含周边环境点云与噪声。

步骤(3)人工处理由步骤(2)得到的粗略的手部三维点云。人工对三维点云进行选择和剔除时需要使用能够直观表示点云文件的三维网格可视化软件处理,可以采用meshlab、openscad。首先选中与手部三维点云不相连的点云,并将其剔除,经过本操作,获得的三维点云包括手型点云与桌面点云;之后选择属于桌面平面的三个非共线的点,根据三点计算桌面的平面表示,剔除远离手部点云的平面一侧空间的三维点云,经过本操作,获得的三维点云包括手型点云及一部分与手部不相连的点云碎片;再一次剔除与手部三维点云不相连的点云,得到精细的手部三维点云。

(4)通过精细的手部三维点云获取用户个性化的手部三维参数化模型,包括以下子步骤:

(4.1)基于精细的手部三维点云及其投影到图像平面的指尖二维位置,优化求解手部三维参数化模型的全局旋转和平移参数;

(4.2)固定步骤(4.1)得到的全局旋转和平移参数,基于精细的手部三维点云及其投影到图像平面的指尖位置,优化求解手部三维参数化模型的形状和姿态参数;

(4.3)剔除一部分手指部分的点云,并基于处理后的手部三维点云进一步优化求解手部三维参数化模型的形状参数,最终得到用户个性化的手部三维参数化模型。

步骤(4)通过精细的手部三维点云获取用户个性化的手部三维参数化模型。本步骤分为三个阶段进行,每个阶段迭代优化均采用以下目标函数:

e(θ,β,r,t)=wepointcloud+αefingertip+γeprior

其中,点云匹配误差损失epointcloud指,对于手部三维点云上的每个点p,找到手部三维参数化模型的三维网格上的最近面片q,计算其距离;并对每个手部三维参数化模型的三维网格上的每个面片q,找到手部三维点云中最近点p,计算其距离。

点云匹配误差用于衡量手部三维参数化模型的上的三维网格面片与三维点云整体匹配程度,最终需要满足三维点云到手部三维参数化模型整体距离最近,损失函数epointcloud公式为:

指尖关节点的投影误差efingertip指,对于五指指尖集合j中的每个指尖,分别计算手部三维参数化模型指尖的二维投影ftq,j与点云指尖二维投影ftp,j的二维距离,损失函数efingertip公式为:

手部三维参数化模型形状参数的先验误差公式为:

手部三维参数化模型形状参数的先验误差衡量作为最终结果的手部三维参数化模型形状参数与“平均手”形状参数之间的欧拉距离。其中“平均手”被定义为形状参数中所有元素全为0的特殊情况。

手部三维参数化模型的形状参数指,通过主成分分析从一组平放动作手型的形状空间中提取出主成分向量sn的线性组合。对于特定模型的手部形状混合参数bs,对应的线性系数即为形状参数其计算公式为:

第一阶段基于精细的手部三维点云及其投影到图像平面的指尖二维位置,迭代优化求解手部三维参数化模型的全局旋转和平移参数。所述指尖检测算法可以通过opencv工具的轮廓检测方法进行。在本阶段,手部姿态参数默认为标准的五指平伸动作,指定其姿态参数。本阶段将使用点云匹配误差的权重w设置为300,指尖匹配误差的权重α设置为1,手部形状参数的先验误差γ设置为2,点云配准使用名为icp(iterativeclosestpoint)的点云匹配算法进行,对目标函数的迭代优化使用名为adam的梯度下降优化算法进行。本阶段估计出手部三维参数化模型与三维点云所在的世界坐标系之间的旋转和平移,作为r和t的初始参数。

第二阶段基于精细的手部三维点云及其投影到图像平面的指尖二维位置,迭代优化求解手部三维参数化模型的形状参数和姿态参数。所述指尖检测算法与第一阶段一致。在本阶段,进行手部参数迭代优化时不再假定手部姿态参数,但是固定使用上阶段得到的r和t的初始参数,避免模型整体位移及旋转对点云拟合造成影响。本阶段将使用点云匹配误差的权重w设置为5000,指尖匹配误差的权重α设置为1,手部形状参数的先验误差γ设置为2,点云配准与对目标函数的迭代优化的算法与第一阶段一致。本阶段估计出手部三维参数化模型的形状参数及姿态参数初始值。

第三阶段首先为了平衡手指部分点云密集对模型拟合带来的影响,而主动剔除一部分手指部分的点云,剔除规则是将精细的手部三维点云投影二维平面上距离手部三维参数化模型根部截点投影的二维点距离超过80像素的点剔除。基于处理后的手部三维点云迭代优化求解手部三维参数化模型的形状参数,最终得到用户个性化的手部三维参数化模型。本阶段将使用点云匹配误差的权重w设置为6000,指尖匹配误差的权重α设置为1,手部形状参数的先验误差γ设置为2,点云配准与对目标函数的迭代优化的算法与第一阶段一致。本阶段估计出手部三维参数化模型的形状参数,并得到用户个性化的手部三维参数化模型。

以上所述,仅为较佳实施样例,本发明并不局限于上述实施方式,只要以相同手段达到本发明的技术效果,都应属于本发明的保护范围。在本发明的保护范围内,其技术方案和/或实施方式可以有各种不同的修改和变化。

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