掌桥专利:专业的专利平台
掌桥专利
首页

基于改进PnP的用户面部位姿检测方法、设备、介质

文献发布时间:2024-04-18 19:53:33


基于改进PnP的用户面部位姿检测方法、设备、介质

技术领域

本发明涉及位姿识别技术领域,尤其是涉及一种基于改进PnP(Perspective-n-Point)的用户面部位姿检测方法、设备、介质。

背景技术

位姿估计方法可以分为两种,一种是深度学习方法,另一种是基于关键点2D投影到3D的方法;

最近的FSA-NET算法就是基于深度学习来实现位姿估计的,通过使用给定的数据集以及与每张数据集图相对应的欧拉角,最小化平均绝对误差(Mean Absolute Error,MAE)。FSA-NET算法借鉴了SSR-Net思想把回归问题转为软分段回归。通过这样的方法解决了将姿势估计转化为回归问题所带来的样本的分布不均衡以及随机性造成的过拟合现象。FSA-NET算法性能很优,实验中通过侧脸可以估计出头部的姿态。然而即使FSA-NET虽然拥有较小的模型,可是在显存性能和运行的时间上相比于其他模型没有做出明显的改进。

另一种是基于关键点投影的方法,例如比较经典的PnP(Perspective-n-Point)方法。简单讲就是将二维点投射到一个三维人脸模型上,接着在进行角度计算,这种方法的优点是不会受到检测器中检测点数量的制约,比如5点、6点的投影都可以,当然点数越多拟合的效果也越好,不过也会降低检测的速度;

对于n点透视问题,传统直接线性变换法使用空间参考点与图像间映射关系求解线性方程组,这种方法效率很高但是它并未考虑成像过程中存在的非线性约束关系,因此直接线性变换法求解n点透视问题存在精度不高、抗噪能力弱的缺点。

发明内容

本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种基于改进PnP的用户面部位姿检测方法、设备、介质,以提高面部位姿检测准确性。

本发明的目的可以通过以下技术方案来实现:

本发明的一个方面,提供了一种基于改进PnP的用户面部位姿检测方法,包括如下步骤:

获取用户头部的扫描数据并构建三维模型,得到相机坐标系下的多个三维关键点坐标,以及对应的相机拍摄平面下的二维关键点的坐标,形成多个三维-二维点对;

基于所述多个三维-二维点对,得到点与点之间的投影成像约束信息,基于所述投影成像约束信息,得到世界坐标系与相机坐标系之间的转换矩阵;

基于所述世界坐标系与相机坐标系之间的转换矩阵对用户面部位姿进行检测。

作为优选的技术方案,所述的点与点之间的投影成像约束信息的计算过程包括:

基于小孔成像,建立所述三维关键点与所述二维关键点的关系表达式;

基于所述关系表达式,以第一平面和第二平面共面为限制条件,得到点与点之间的投影成像约束信息,其中,所述第一平面为任意两个三维关键点与相机光心形成的平面,所述第二平面为第一平面中两个三维关键点对应的二维关键点与相机光心形成的平面;

基于所述投影成像约束信息以及所述多个三维-二维点对,计算得到所述世界坐标系与相机坐标系之间的转换矩阵。

作为优选的技术方案,所述的投影成像约束信息基于下式获取:

α

其中,α

作为优选的技术方案,所述的关系表达式为:

λ

其中,λ

作为优选的技术方案,所述的用户面部位姿的获取包括如下步骤:

利用所述转换矩阵得到相机拍摄平面下的实际二维坐标,实现面部位姿检测。

作为优选的技术方案,所述的关键点包括鼻尖、下巴、左眼左侧、右眼右侧、左嘴角、右嘴角以及嘴部中心。

作为优选的技术方案,通过将Dlib库中的ID号与所述三维模型对应,得到与所述三维关键点对应的二维关键点的坐标。

作为优选的技术方案,通过平移和旋转对所述三维模型进行对齐,对齐后通过标定得到所述三维关键点,其中,所述的三维模型为Mesh模型。

本发明的另一个方面,提供了一种电子设备,包括:一个或多个处理器以及存储器,所述存储器内储存有一个或多个程序,所述一个或多个程序包括用于执行上述基于改进PnP的用户面部位姿检测方法的指令。

本发明的另一个方面,提供了一种计算机可读存储介质,包括供电子设备的一个或多个处理器执行的一个或多个程序,所述一个或多个程序包括用于执行上述基于改进PnP的用户面部位姿检测方法的指令。

与现有技术相比,本发明具有以下优点:

(1)提高面部位姿检测准确性:本发明针对用户头部构建三维模型并得到面部特征的三维-二维点对,以此求解世界坐标系与相机坐标系的转换矩阵,基于转换矩阵得到相机坐标下的坐标,完成相机坐标系的位姿检测。本发明通过在求解转换矩阵的过程中加入点与点之间的投影成像约束信息(即构建投影成像约束模型),相较于传统的求解的方法增加了额外的约束条件,提高了检测准确性。

(2)性能良好:本发明使用深度相机扫描建模头部产生三维坐标点,并结合Python中的Dlib库实现对应二维关键点识别,经过在ROS环境中位姿检测项目实际部署,可视化结果表明该位姿检测方法具有良好的性能。本方法也可以用于其他领域的位姿检测中。

附图说明

图1为实施例中基于改进PnP的用户面部位姿检测方法的流程图;

图2为n点透视视觉测量原理图;

图3为本申请采用的添加点与点约束的n点透视视觉测量原理图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。

实施例1

如图1所示,本申请针对前述现有技术存在的缺点,提供了一种基于改进PnP的用户面部位姿检测方法、设备、介质,流程具体如下:

步骤S1,采用深度相机扫描生成三维人头部模型,使用三维几何处理系统来导入扫描后得到的Mesh模型,通过平移和旋转对扫描后模型进行对齐以及标定三维关键点;

步骤S2,在获得人脸三维关键点坐标后,位姿估计算法还需要与之对应相机平面的二维关键点坐标,使用Python中的Dlib库以获取对应二维关键点坐标,得到用于预测位姿的三维和二维点;

步骤S3,建立世界坐标系O

C

步骤S4,已知相机内参数K的情况下,基于空间参考点{P

为了方便后续推导令

步骤S5,P

α

α

将式(1)代入式(5)得:

α

通过叉乘的运算规律,合并同类项最终化简为:

α

设q

步骤S6,添加n个约束信息与k个约束条件继续进行线性求解,令式中n

r

h

r

h

并令w

为了更加详细地说明位姿检测过程,在具体的实施过程中,方法包括如下步骤:

采用Intel RealSense D415深度相机以及RecFusion Pro软件扫描生成三维人头部Mesh模型;

使用MeshLab三维几何处理系统来导入扫描后得到的Mesh模型,通过平移和旋转对扫描后模型进行对齐以及标定三维关键点;

使用Python的Dlib库中68个人脸关键点的ID号来对应三维模型标注的鼻尖、下巴、左眼左侧、右眼右侧、左嘴角、右嘴角以及嘴部中心,以获取人脸三维关键点坐标对应的二维关键点坐标;

传统PnP问题中n点透视视觉测量原理如图2所示,建立世界坐标系O

假设P

C

式中R是一个3×3的矩阵,表示世界坐标系与相机坐标系之间的旋转关系;t是一个3×1的向量,表示世界坐标系与相机坐标系之间的平移关系。根据小孔成像原理,P

λ

等式中K表示相机内部参数,λ

将图像坐标归一化得到P

在实际的应用场景中,相机拍摄的物体位于镜头前方,以此t

s

则得到关于s=[s

A

其中

对于空间中每个特征点都满足式(5),因此空间中n个特征点可以得到

当空间特征点数目大于等于6个时,可以通过最小二乘法求解得到:

s=(A

因为旋转矩阵R符合单位正交,因此

将s

将t

本发明基于改进的PnP求解方法实时获取用户嘴部位姿检测方法视觉测量原理如图3所示,P

α

α

将式(1)代入式(11)得:

α

通过叉乘的运算规律,合并同类项得到:

α

式中:p

α

设q

α

式(16)为推算出的点与点间的成像约束模型;

将空间中的n个特征点两两组合可以得到k=n(n-1)/2种可能。因此,对于PnP问题的线性求解不仅可以使用式(1)中的n个约束信息,而且可以使用式(5)中的k个约束条件;

令式(16)中n

并令w

则式(5)变为:

根据式(20),式(6)可以改写为

通过新定义的

因为式(22)满足空间中k个点间的组合,因此得到

由式(21)和(23)可以得出:

式(24)中加入了点与点特征间存在的成像约束信息。使用最小二乘法可以得出

得出

在求出真实的R和t后可以对用户面部位姿进行检测。姿态估计任务涉及世界坐标系、相机坐标系和图像坐标系三个坐标系统。

Step1,首先获取相机坐标系下的人脸特征点的三维坐标

Step2,将相机坐标系下的三维点投射到图像平面中得到二维数据,

Step3,已知相机内在的参数K,可计算相机的内参矩阵,利用本申请提供的改进的直接线性变换法,以提取的三维-二维点对以及相机内参矩阵作为算法的输入,预先求得更加真实的R和t,由式(1)进行相机坐标系与世界坐标系的转换,最终得到世界坐标系中(机械臂基座为世界坐标系)用户嘴的位姿。

本发明具有如下优点:

(1)本发明创新地使用深度相机扫描建模头部产生三维坐标点,并结合Python中的Dlib库实现对应二维关键点识别;

(2)本发明在传统直接线性变换法求解的基础上增加了点与点之间的投影成像约束模型,传统直接线性变换法使用空间参考点与图像间映射关系求解线性方程组,这种方法效率高但并未考虑成像过程中存在的非线性约束关系,因此直接线性变换法求解PnP问题存在精度不高、抗噪能力弱的缺点,改进后的直接线性变换法显著提高了姿态估计精度;

(3)本发明经过在ROS环境中位姿检测项目实际部署,可视化结果表明该位姿检测方法具有良好的性能。

本实施例提供的一种基于改进的PnP(Perspective-n-Point)地用户面部位姿检测方法,基于传统PnP求解方法,包括如下步骤:采用深度相机生成三维人头部模型并使用软件对扫描得到的头部模型进行对齐以及标定三维关键点;使用Python中的Dlib库以获取对应二维关键点坐标,得到用于预测位姿的三维和二维点;使用改进的直接线性变换法对提取的三维-二维点对转换得到(机械臂基座为世界坐标系)用户嘴的位姿,最终在ROS环境中部署位姿检测项目。本发明算法步骤简单明了,检测精度高,稳定性也更强,可实时准确获取用户嘴部位姿。

实施例2

本实施例提供了一种电子设备,包括:一个或多个处理器以及存储器,所述存储器内储存有一个或多个程序,所述一个或多个程序包括用于执行如实施例1所述基于改进PnP的用户面部位姿检测方法的指令。

实施例3

本实施例提供了一种计算机可读存储介质,包括供电子设备的一个或多个处理器执行的一个或多个程序,所述一个或多个程序包括用于执行如实施例1所述基于改进PnP的用户面部位姿检测方法的指令。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

相关技术
  • 一种专用于喷涂铝合金板的涂料喷涂器
  • 一种美术品颜色着色喷涂器
  • 一种美术品颜料着色喷涂器
技术分类

06120116336276