本申请涉及图像处理领域,特别是涉及一种位置确定方法及装置。
背景技术:
随着增强现实(augmentedreality,ar)技术和混合现实(mixedreality,mr)技术的发展,用户与虚拟世界的物体进行交互成为可能。用户与虚拟世界的物体进行交互最直接的方式是通过手势交互。因此,确定用户的手势尤为重要。具体地,可以通过用户的手指关节的实际位置,来确定用户的手势。
目前的确定手指关节位置的方案,并不能准确的确定出手指关节的实际位置。因此,急需一种方案,可以解决上述问题。
技术实现要素:
本申请所要解决的技术问题是:传统技术所确定的手指关节的实际位置不准确,提供一种位置确定方法及装置。
第一方面,本申请实施例提供了一种位置确定方法,所述方法包括:
获取包括用户手部的深度图像;
根据所述深度图像得到所述手部的n个关节分别对应的第一坐标和第二坐标,所述第一坐标为在图像坐标系中的二维坐标,所述第二坐标为在世界坐标系中的三维坐标;
根据所述n个关节分别对应的第一坐标和第二坐标,确定所述n个关节的位置,其中,第一关节为所述n个关节中的任意一个关节,所述第一关节的位置为:根据所述第一关节的所述第一坐标和所述第一关节对应的深度值得到的在世界坐标系中的三维坐标,或者,所述第一关节的所述第二坐标。
可选的,所述根据所述深度图像得到所述手部的n个关节分别对应的第一坐标,包括:
根据所述深度图像确定所述n个关节分别对应的热图,其中,所述第一关节的热图包括多个像素和所述多个像素的概率值,所述多个像素的概率值用于指示所述多个像素为第一关节的概率;
根据所述n个关节分别对应的热图计算得到所述n个关节对应的第一坐标;
其中:第一关节对应的第一坐标,通过如下方式计算得到:
根据所述第一关节对应的热图中第一像素对应的概率值、所述第一像素在图像坐标系中的坐标、第一像素的m个邻域像素的概率值以及所述m个邻域像素在图像坐标系中的坐标,计算得到所述第一关节对应的第一坐标,所述第一像素对应的概率值为所述第一关节对应的热图中包括的各个像素的概率值的最大值。
可选的,所述根据所述深度图像确定所述n个关节分别对应的热图,包括:
将所述深度图像输入第一深度学习模型中,得到所述n个关节分别对应的热图,其中,所述第一深度学习模型用于根据包括用户手部的深度图像得到手部的n个关节分别对应的热图。
可选的,所述根据所述深度图像得到所述手部的n个关节分别对应的第二坐标,包括:
将所述深度图像输入第二深度学习模型中,得到所述n个关节分别对应的第二坐标,其中,所述第二深度学习模型用于根据包括用户手部的深度图像得到手部的n个关节分别对应的第二坐标。
可选的,
若第一关节的所述第一坐标符合预设约束条件,则所述第一关节的位置为根据所述第一关节的所述第一坐标和所述第一关节的所述第二坐标指示的深度值得到的三维坐标,若所述第一关节的所述第二坐标符合所述预设约束条件,则所述第一关节的位置为所述第一关节的所述第二坐标。
可选的,若所述第一关节的所述第一坐标满足以下任意一项或者多项,则确定所述第一关节的所述第一坐标符合预设约束条件:
当所述第一关节为手指根关节或者手腕关节时,根据所述第一关节的第一坐标计算得到的手指根关节与手腕关节之间的骨骼满足手掌骨骼约束;或者,根据所述第一关节的第一坐标计算得到的手指骨骼长度在预设长度范围内;或者,根据所述第一关节的第一坐标计算得到的手指骨骼方向与人手的骨骼方向相符;或者,根据所述第一关节的第一坐标计算得到的手指骨骼包括的深度无效像素的数量小于预设数量阈值,所述深度无效像素指的是深度值为无效值的像素;
若所述第一关节的所述第二坐标满足以下任意一项或者多项,则确定所述第一关节的所述第二坐标符合预设约束条件:
当所述第一关节为手指根关节或者手腕关节时,根据所述第一关节的第二坐标计算得到的手指根关节与手腕关节之间的骨骼满足手掌骨骼约束;或者,根据所述第一关节的第二坐标计算得到的手指骨骼长度在预设长度范围内;或者,根据所述第一关节的第二坐标计算得到的手指骨骼方向与人手的骨骼方向相符;或者,根据所述第一关节的第二坐标计算得到的手指骨骼包括的深度无效像素的数量小于所述预设数量阈值。
可选的,根据所述n个关节分别对应的第一坐标和第二坐标,确定所述n个关节的位置,包括:
若第一关节为手腕关节,则将所述手腕关节对应的第一坐标和所述第一关节对应的深度值得到的三维坐标,确定为所述第一关节的位置;或者,
若所述第一关节对应的深度值为无效值,则将所述第一关节对应的第二坐标确定为所述第一关节的位置。
第二方面,本申请实施例提供了一种位置确定装置,所述装置包括:
获取单元,用于获取包括用户手部的深度图像;
第一确定单元,用于根据所述深度图像得到所述手部的n个关节分别对应的第一坐标,所述第一坐标为在图像坐标系中的二维坐标;
第二确定单元,用于根据所述深度图像得到所述手部的n个关节分别对应的第二坐标,所述第二坐标为在世界坐标系中的三维坐标;
第三确定单元,用于根据所述n个关节分别对应的第一坐标和第二坐标,确定所述n个关节的位置,其中,第一关节为所述n个关节中的任意一个关节,所述第一关节的位置为:根据所述第一关节的所述第一坐标和所述第一关节对应的深度值得到的在世界坐标系中的三维坐标,或者,所述第一关节的所述第二坐标。
可选的,所述第一确定单元,包括:
第一确定子单元,用于根据所述深度图像确定所述n个关节分别对应的热图,其中,所述第一关节的热图包括多个像素和所述多个像素的概率值,所述多个像素的概率值用于指示所述多个像素为第一关节的概率;
第二确定子单元,用于根据所述n个关节分别对应的热图计算得到所述n个关节对应的第一坐标;
其中:第一关节对应的第一坐标,通过如下方式计算得到:
根据所述第一关节对应的热图中第一像素对应的概率值、所述第一像素在图像坐标系中的坐标、第一像素的m个邻域像素的概率值以及所述m个邻域像素在图像坐标系中的坐标,计算得到所述第一关节对应的第一坐标,所述第一像素对应的概率值为所述第一关节对应的热图中包括的各个像素的概率值的最大值。
可选的,所述第一确定子单元,具体用于:
将所述深度图像输入第一深度学习模型中,得到所述n个关节分别对应的热图,其中,所述第一深度学习模型用于根据包括用户手部的深度图像得到手部的n个关节分别对应的热图。
可选的,所述第二确定单元,具体用于:
将所述深度图像输入第二深度学习模型中,得到所述n个关节分别对应的第二坐标,其中,所述第二深度学习模型用于根据包括用户手部的深度图像得到手部的n个关节分别对应的第二坐标。
可选的,
若第一关节的所述第一坐标符合预设约束条件,则所述第一关节的位置为根据所述第一关节的所述第一坐标和所述第一关节的所述第二坐标指示的深度值得到的三维坐标,若所述第一关节的所述第二坐标符合所述预设约束条件,则所述第一关节的位置为所述第一关节的所述第二坐标。
可选的,若所述第一关节的所述第一坐标满足以下任意一项或者多项,则确定所述第一关节的所述第一坐标符合预设约束条件:
当所述第一关节为手指根关节或者手腕关节时,根据所述第一关节的第一坐标计算得到的手指根关节与手腕关节之间的骨骼满足手掌骨骼约束;或者,根据所述第一关节的第一坐标计算得到的手指骨骼长度在预设长度范围内;或者,根据所述第一关节的第一坐标计算得到的手指骨骼方向与人手的骨骼方向相符;或者,根据所述第一关节的第一坐标计算得到的手指骨骼包括的深度无效像素的数量小于预设数量阈值,所述深度无效像素指的是深度值为无效值的像素;
若所述第一关节的所述第二坐标满足以下任意一项或者多项,则确定所述第一关节的所述第二坐标符合预设约束条件:
当所述第一关节为手指根关节或者手腕关节时,根据所述第一关节的第二坐标计算得到的手指根关节与手腕关节之间的骨骼满足手掌骨骼约束;或者,根据所述第一关节的第二坐标计算得到的手指骨骼长度在预设长度范围内;或者,根据所述第一关节的第二坐标计算得到的手指骨骼方向与人手的骨骼方向相符;或者,根据所述第一关节的第二坐标计算得到的手指骨骼包括的深度无效像素的数量小于所述预设数量阈值。
可选的,所述第三确定单元,具体用于:
若第一关节为手腕关节,则将所述手腕关节对应的第一坐标和所述第一关节对应的深度值得到的三维坐标,确定为所述第一关节的位置;或者,
若所述第一关节对应的深度值为无效值,则将所述第一关节对应的第二坐标确定为所述第一关节的位置。
与现有技术相比,本申请实施例具有以下优点:
本申请实施例提供了一种位置确定方法及装置,该方法用于根据包括用户手部的深度图像,确定用户手部关节的位置。具体地,该方法包括:获取包括用户手部的深度图像,而后,根据该深度图像得到手部的n个关节分别对应的第一坐标和第二坐标。第一坐标为在图像坐标系中的二维坐标,第二坐标为在世界坐标系中的三维坐标。考虑到在实际应用中,根据深度图像得到的关节的三维坐标可能不太准确,因此,在本申请实施例中,除了计算得到三维坐标之外,还可以计算得到关节的二维坐标。并结合关节的二维坐标和三维坐标来确定关节的位置。具体地,若关节的二维坐标比较准确,则将关节的第一坐标和关节的第二坐标的z值所确定的三维坐标确定为关节的位置,若关节的三维坐标比较准确,则将关节的三维坐标确定为关节的位置。将手部的任意一个关节称为第一关节,则第一关节的位置为:根据所述第一关节的所述第一坐标和所述第一关节对应的第二坐标指示的深度值得到的三维坐标,或者,所述第一关节的所述第二坐标。由此可见,利用本申请实施例的方案,可以使得所确定的关节位置更加准确。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种位置确定方法的流程示意图;
图2为本申请实施例提供的一种5*5邻域像素的示意图;
图3为本申请实施例提供的一种深度学习模型的结构示意图;
图4为本申请实施例提供的一种位置确定装置的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
传统技术中,可以利用深度图计算得到关节的位置。具体方式可以包括手部检测、手部跟踪以及确定关节点三维坐标这三个步骤。其中,手部检测指的是用图像识别技术识别出深度图像中的人手。手部跟踪指的是根据上一帧深度图像中手部的位置,以及当前帧深度图像确定出当前帧深度图像中人手的位置。确定出当前帧度图像中人手的位置之后,则进一步计算得到关节点三维坐标。
但是,发明人通过研究发现,采用这种方式,虽然手部关节间的结构特征保持比较好,但是局部关节点平面的精度不够。换言之,采用这种方式,根据关节三维坐标所确定的人手的形状比较合理,但是关节对应的二维坐标却不是很准确。
为了解决上述问题,在本申请实施例中,本申请实施例提供了一种位置确定方法及装置,可以使得所确定的关节位置更加准确。
下面结合附图,详细说明本申请的各种非限制性实施方式。
示例性方法
参见图1,该图为本申请实施例提供的一种位置确定方法的流程示意图。本申请实施例提供的方法,可以由控制器执行,该控制器可以位于终端设备上,也可以位于其它设备例如智能机器人等设备上,本申请实施例不做具体限定。
在本实施例中,所述方法例如可以通过以下步骤s101-s103实现。
s101:获取包括用户手部的深度图像。
在本申请实施例中,包括用户手部的深度图像,可以为经过前文提及的手部跟踪所得到的深度图像。其中,该深度图像可以携带第一图像的部分信息,其中,第一图像为深度相机或者深度传感器拍摄的图像。具体地,该深度图像中对应用户手部的区域对应的深度值,为第一图像中对应区域的深度值,该深度图像中对应用户手部之外的区域对应的深度值为无效值,例如深度值为0。
s102:根据所述深度图像得到所述手部的n个关节分别对应的第一坐标和第二坐标,所述第一坐标为在图像坐标系中的二维坐标,所述第二坐标为在世界坐标系中的三维坐标,所述第一坐标和所述第二坐标均为世界坐标系中的坐标。
需要说明的是,本申请实施例中提及的世界坐标系的原点为拍摄图像时相机所处的位置。
在本申请实施例中,与传统技术不同,获得包括用户手部的深度图像之后,除了计算n个关节的三维坐标之外,还计算n个关节分别对应的二维坐标。此处提及的n为大于或者等于1的整数,一般来讲,人的每个手指包括4个关节,另外加上1个手腕关节,故而一共可以包括21个关节。因此,n的取值可以为21,当然,也不排除例如断指、增生等情况导致的n取值不为21的其它可能性。
关于s102,以下分别介绍根据深度图像计算n个关节分别对应的第一坐标、以及根据深度图像计算n个关节分别对应的第二坐标的具体实现方式。
在本申请实施例中,计算n个关节分别对应的第一坐标在具体实现时,例如可以通过如下步骤a-b实现。
步骤a:根据所述深度图像确定所述n个关节分别对应的热图。
在本申请实施例中,一个关节可以对应一张热图。热图包括多个像素和多个像素分别对应的概率值。为方便描述,将“n个关节中的任意一个关节”称为“第一关节”。在第一关节对应的热图中,一个像素的概率值用于指示该像素对应第一关节的概率。一般而言,热图的分辨率小于深度图像的分辨率,即热图中一个像素可以对应深度图像中的一个像素区域。
关于步骤a,本申请有多种实现方式,在一种实现方式中,可以利用预先训练的第一深度学习模型得到n个关节分别对应的热图。具体地,该第一深度学习模型是基于第一训练样本训练得到的,第一训练样本包括训练的深度图像和该训练的深度图像对应的n个关节分别对应的热图。训练完成的第一深度学习模型,可以基于输入的包括用户手部的深度图像得到手部的n个关节分别对应的热图。换言之,将s101中提及的深度图像输入第一深度学习模型之后,第一深度学习模型即可输出n个关节分别对应的热图。
关于第一深度学习模型,需要说明的是,在一些实施例中,第一深度学习模型可以为多任务学习模型,该第一深度学习模型可以包括第一网络和第二网络,其中第一网络用于提起深度图像的特征,第二网络用于输出n个关节分别对应的热图。此处提及的第一网络例如可以vgg,res-net,mobile-net,efficient-net等卷积神经网络,也可以采用例如unet和densenet的前端特征网络结构。第二网络也可以为卷积神经网络,此处不一一列举说明。步骤b:根据所述n个关节分别对应的热图计算得到所述n个关节对应的第一坐标。
由于第一关节对应的热图中,像素的概率值用于指示该像素对应第一关节的可能性。因此,得到n个关节分别对应的热图之后,可以根据n个关节分别对应的热图计算得到n个关节对应的第一坐标。以下以计算得到第一关节对应的第一坐标为例进行说明
具体地,将第一关节对应的热图中对应概率值最大的像素称为第一像素。如前文可知,第一像素对应深度图像中的一个像素区域,由于第一像素的概率值最大,因此,第一关节处于第一像素对应的像素区域的可能性较大。为了计算得到第一关节属于前述像素区域的具体位置,在本申请实施例中,可以根据所述第一关节对应的热图中第一像素对应的概率值、所述第一像素在世界坐标系中的坐标、第一像素的m个邻域像素的概率值以及所述m个邻域像素在世界坐标系中的坐标,计算得到所述第一关节对应的第一坐标。其中该m个邻域像素例如可以为以第一像素为中心的(a*b-1)个像素。关于a和b的取值,本申请实施例不做具体限定,a和b可以相等,也可以不相等。例如,a的取值为5,b的取值也为5,一般而言,a和b均为奇数;又如,a的取值为3,b的取值也为3;a的取值为7,b的取值也为7;再如,a的取值为5,b的取值为7,等等。
关于该m个像素,可以结合图2进行理解,图2为本申请实施例提供的一种5*5邻域像素的示意图,其中一个方框代表一个像素,中心带阴影的像素201为第一像素。该m个像素为图2所示的除第一像素之外的其它24个像素。
关于“根据所述第一关节对应的热图中第一像素对应的概率值、所述第一像素在世界坐标系中的坐标、第一像素的m个邻域像素的概率值以及所述m个邻域像素在世界坐标系中的坐标,计算得到所述第一关节对应的第一坐标”的具体实现方式,可以结合公式(1)进行理解。
其中,p为第一关节的第一坐标,ρi代表邻域内像素i对应的概率值,pi代表邻域内像素i在实际坐标系中的坐标。
在本申请实施例中,计算n个关节分别对应的第二坐标在具体实现时,可以通过可以利用预先训练的第二深度学习模型得到n个关节分别对应的第二坐标。具体地,该第二深度学习模型是基于第二训练样本训练得到的,第二训练样本包括训练的深度图像和该训练的深度图像对应的n个关节分别对应的第二坐标。训练完成的第二深度学习模型,可以基于输入的包括用户手部的深度图像得到手部的n个关节分别对应的第二坐标。换言之,将s101中提及的深度图像输入第二深度学习模型之后,第二深度学习模型即可输出n个关节分别对应的第二坐标。
关于第二深度学习模型,需要说明的是,在一些实施例中,第二深度学习模型可以为多任务学习模型,该第二深度学习模型可以包括第一网络和第三网络,其中第一网络用于提起深度图像的特征,第三网络用于输出n个关节分别对应的第二坐标。
需要说明的是,在本申请实施例中,第一深度学习模型和第二深度学习模型可以合二为一。具体地,可以参考图3进行理解,图3为本申请实施例提供的一种深度学习模型的结构示意图。图3所示的深度学习模型300,包括网络301、网络302和网络303,其中,网络301可以对应前文提及的第一网络,网络302可以对应前文的第二网络,网络303可以对应前文的第三网络。换言之,图3所示的深度学习模型,其输入为包括用户手部的深度图像,输出为n个关节分别对应的热图和n个关节分别对应的第二坐标。
s103:根据所述n个关节分别对应的第一坐标和第二坐标,确定所述n个关节的位置。
在本申请实施例中,考虑到根据深度图像得到的关节的三维坐标可能不太准确,因此,在本申请实施例中,可以结合关节的二维坐标和三维坐标来确定关节的位置。具体地,若关节的二维坐标比较准确,则将关节的二维坐标和关节的深度值所确定的三维坐标确定为关节的位置,若关节的三维坐标比较准确,则将关节的三维坐标确定为关节的位置。换言之,对于第一关节而言,第一关节的位置为:根据所述第一关节的所述第一坐标和所述第一关节对应的第二坐标指示的深度值得到的三维坐标,或者,所述第一关节的所述第二坐标,其中,第二坐标指示的深度值,即为第二坐标的z值。
在本申请实施例的一种实现方式中,若第一关节的二维坐标即第一坐标符合预设约束条件,则可以确定第一关节的第一坐标比较准确,故而可以将第一关节的位置确定为根据第一关节的第一坐标和第一关节对应的深度值得到的三维坐标。若第一关节的三维坐标即第二坐标符合前述预设约束条件,则可以确定第一关节的第二坐标比较准确,故而可以将第一关节的位置确定为根据第一关节的第二坐标。
关于根据第一关节的第一坐标和第一关节对应的深度值得到的三维坐标,需要说明的是,若第一关节的第一坐标为(x,y),第一关节的第二坐标的z值为h,则得到的三维坐标为(m,n,h)。其中,m和n可以采用图像坐标系至世界坐标系的转换关系得到,此处不详细说明。
关于预设约束条件,指的是根据人手的结构所确定的约束条件。具体地,当第一关节的第一坐标符合以下条件中的一项或者多项时,可以确定第一关节的第一坐标符合预设约束条件。
条件1:当所述第一关节为手指根关节或者手腕关节时,根据所述第一关节的第一坐标计算得到的手指根关节与手腕关节之间的骨骼满足手掌骨骼约束。
此处提及的手掌骨骼约束,指的是手指根关节与手腕关节之间的距离在正常距离范围内,和/或,手指根关节与手腕关节之间方向符合人手的结构。
当第一关节为手指关节时,可以根据第一关节的第一坐标和手腕关节的第一坐标计算前述距离或者方向;或者,根据第一关节的第一坐标和手腕关节的第二坐标计算前述距离或者方向。并根据计算结果确定手指根关节与手腕关节之间的骨骼满足手掌骨骼约束,若满足,则确定第一关节的第一坐标符合条件1。
条件2:根据所述第一关节的第一坐标计算得到的手指骨骼长度在预设长度范围内。
此处提及的手指骨骼长度,可以是第一关节所属的手指的骨骼长度。具体地,可以根据第一关节的第一坐标和属于第一关节所属的手指的其它关节的第一坐标,计算得到手指骨骼长度;或者,根据第一关节的第一坐标和属于第一关节所属的手指的其它关节的第二坐标,计算得到手指骨骼长度。并确定计算得到的手指骨骼长度是否在预设长度范围内,如果是,则确定第一关节的第一坐标符合条件2。
条件3:根据所述第一关节的第一坐标计算得到的手指骨骼方向与人手的骨骼方向相符。
具体地,可以根据第一关节的第一坐标和属于第一关节所属的手指的其它关节的第一坐标,计算得到手指骨骼方向;或者,根据第一关节的第一坐标和属于第一关节所属的手指的其它关节的第二坐标,计算得到手指骨骼方向。并确定计算得到的手指骨骼方向是否人手的骨骼方向相符,如果是,则确定第一关节的第一坐标符合条件3。
条件4:根据所述第一关节的第一坐标计算得到的手指骨骼包括的深度无效像素的数量小于预设数量阈值,所述深度无效像素指的是深度值为无效值的像素。
可以理解的是,如前所述,该深度图像中对应用户手部的区域对应的深度值,为第一图像中对应区域的深度值,该深度图像中对应用户手部之外的区域对应的深度值为无效值,例如深度值为0。而手指骨骼属于手部,因此,手指骨骼对应的像素应该均为有效像素,即其深度值均为有效值。因此,若根据所述第一关节的第一坐标计算得到的手指骨骼包括的深度无效像素的数量非常小,小于预设数量阈值,故而可以确定第一关节的第一坐标比较准确。
具体地,可以根据第一关节的第一坐标和属于第一关节所属的手指的其它关节的第一坐标或者第二坐标,确定手指骨骼所在的区域,并获取该区域内的像素,进一步确定该区域内各像素的深度值是否为无效值,从而得到手指骨骼包括的深度无效像素的数量。若该数量小于预设数量阈值,则可以确定第一关节的第一坐标符合条件4。
当第一关节的第二坐标符合以下条件中的一项或者多项时,可以确定第一关节的第二坐标符合预设约束条件。
条件1:当所述第一关节为手指根关节或者手腕关节时,根据所述第一关节的第二坐标计算得到的手指根关节与手腕关节之间的骨骼满足手掌骨骼约束。
条件2:根据所述第一关节的第二坐标计算得到的手指骨骼长度在预设长度范围内。
条件3:根据所述第一关节的第二坐标计算得到的手指骨骼方向与人手的骨骼方向相符。
条件4:根据所述第一关节的第二坐标计算得到的手指骨骼包括的深度无效像素的数量小于预设数量阈值,所述深度无效像素指的是深度值为无效值的像素。
第一关节的第二坐标符合预设约束条件与第一关节的第一坐标符合预设约束条件是类似的,相关原理此处不再重复说明。
在本申请的又一种实现方式中,发明人发现对于手腕关节而言,s102计算得到的手腕关节的三维坐标一般不太准确,而根据s102计算得到的手腕关节的二维坐标和手腕关节对于的深度值所得到的三维坐标比较准确,因此,对于手腕关节而言,可以直接将所述手腕关节对应的第一坐标和所述第一关节对应的深度值得到的三维坐标,确定为所述第一关节的位置。
另外,由于s101中的深度图像中包括深度无效像素,若第一关节对应的深度值为无效值,则也无法根据第一关节的第一坐标和第一关节的深度值确定第一关节的位置,对于这种情况,可以直接将第一关节对应的第二坐标确定为所述第一关节的位置。
通过以上描述可知,利用本申请实施例的方案,可以使得所确定的关节位置更加准确。
示例性设备
基于以上实施例提供的方法,本申请实施例还提供了一种装置,以下结合附图介绍该装置。
参见图4,该图为本申请实施例提供的一种位置确定装置的结构示意图。所述装置400例如可以具体包括:获取单元401、第一确定单元402、第二确定单元403和第三确定单元404。
获取单元401用于获取包括用户手部的深度图像;
第一确定单元402用于根据所述深度图像得到所述手部的n个关节分别对应的第一坐标,所述第一坐标为在图像坐标系中的二维坐标;
第二确定单元403用于根据所述深度图像得到所述手部的n个关节分别对应的第二坐标,所述第二坐标为在世界坐标系中的三维坐标;
第三确定单元404用于根据所述n个关节分别对应的第一坐标和第二坐标,确定所述n个关节的位置,其中,第一关节为所述n个关节中的任意一个关节,所述第一关节的位置为:根据所述第一关节的所述第一坐标和所述第一关节对应的深度值得到的在世界坐标系中的三维坐标,或者,所述第一关节的所述第二坐标。
在一种实现方式中,所述第一确定单元402包括第一确定子单元和第二确定子单元。
第一确定子单元用于根据所述深度图像确定所述n个关节分别对应的热图,其中,所述第一关节的热图包括多个像素和所述多个像素的概率值,所述多个像素的概率值用于指示所述多个像素为第一关节的概率;
第二确定子单元用于根据所述n个关节分别对应的热图计算得到所述n个关节对应的第一坐标;
其中:第一关节对应的第一坐标,通过如下方式计算得到:
根据所述第一关节对应的热图中第一像素对应的概率值、所述第一像素在图像坐标系中的坐标、第一像素的m个邻域像素的概率值以及所述m个邻域像素在图像坐标系中的坐标,计算得到所述第一关节对应的第一坐标,所述第一像素对应的概率值为所述第一关节对应的热图中包括的各个像素的概率值的最大值。
在一种实现方式中,所述第一确定子单元,具体用于:
将所述深度图像输入第一深度学习模型中,得到所述n个关节分别对应的热图,其中,所述第一深度学习模型用于根据包括用户手部的深度图像得到手部的n个关节分别对应的热图。
在一种实现方式中,所述第二确定单元403具体用于:
将所述深度图像输入第二深度学习模型中,得到所述n个关节分别对应的第二坐标,其中,所述第二深度学习模型用于根据包括用户手部的深度图像得到手部的n个关节分别对应的第二坐标。
在一种实现方式中,
若第一关节的所述第一坐标符合预设约束条件,则所述第一关节的位置为根据所述第一关节的所述第一坐标和所述第一关节的所述第二坐标指示的深度值得到的三维坐标,若所述第一关节的所述第二坐标符合所述预设约束条件,则所述第一关节的位置为所述第一关节的所述第二坐标。
在一种实现方式中,若所述第一关节的所述第一坐标满足以下任意一项或者多项,则确定所述第一关节的所述第一坐标符合预设约束条件:
当所述第一关节为手指根关节或者手腕关节时,根据所述第一关节的第一坐标计算得到的手指根关节与手腕关节之间的骨骼满足手掌骨骼约束;或者,根据所述第一关节的第一坐标计算得到的手指骨骼长度在预设长度范围内;或者,根据所述第一关节的第一坐标计算得到的手指骨骼方向与人手的骨骼方向相符;或者,根据所述第一关节的第一坐标计算得到的手指骨骼包括的深度无效像素的数量小于预设数量阈值,所述深度无效像素指的是深度值为无效值的像素;
若所述第一关节的所述第二坐标满足以下任意一项或者多项,则确定所述第一关节的所述第二坐标符合预设约束条件:
当所述第一关节为手指根关节或者手腕关节时,根据所述第一关节的第二坐标计算得到的手指根关节与手腕关节之间的骨骼满足手掌骨骼约束;或者,根据所述第一关节的第二坐标计算得到的手指骨骼长度在预设长度范围内;或者,根据所述第一关节的第二坐标计算得到的手指骨骼方向与人手的骨骼方向相符;或者,根据所述第一关节的第二坐标计算得到的手指骨骼包括的深度无效像素的数量小于所述预设数量阈值。
在一种实现方式中,所述第三确定单元404具体用于:
若第一关节为手腕关节,则将所述手腕关节对应的第一坐标和所述第一关节对应的深度值得到的三维坐标,确定为所述第一关节的位置;或者,
若所述第一关节对应的深度值为无效值,则将所述第一关节对应的第二坐标确定为所述第一关节的位置。
由于所述装置400是与以上方法实施例提供的方法对应的装置,所述装置400的各个单元的具体实现,均与以上方法实施例为同一构思,因此,关于所述装置400的各个单元的具体实现,可以参考以上方法实施例的描述部分,此处不再赘述。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制
以上所述仅为本申请的较佳实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。