1.本技术涉及动作识别技术领域,具体而言,涉及一种骨架匹配方法及装置。
背景技术:2.随着3d技术的发展,越来越多的场景中需要应用到3d点匹配,例如:在动作识别的场景中,需要将人的动作对应的3d点与初始骨架进行匹配。在现有技术中,在进行3d点的骨架匹配时,通常是通过计算距离实现3d点与初始骨架之间的匹配,但是采用该种匹配方式的效率较低且容易出现匹配错误的情况,例如:在偏斜头部的照片中,肩部点离头部点很近,因此会将肩部点匹配给头部。因此,现有技术中的3d点和初始骨架的匹配效率以及精度均较低。
技术实现要素:3.本技术实施例的目的在于提供一种骨架匹配方法及装置,用以解决现有技术中的3d点和初始骨架的匹配效率以及精度均较低的技术问题。
4.第一方面,本技术实施例提供一种骨架匹配方法,包括:对待分类动作对应的一组待分类3d点进行分类,得到第一分类结果;依次将所述第一分类结果中每个类别中的待分类3d点与所述初始骨架进行匹配,得到与所述待分类动作对应的标准骨架。在上述方案中,在对3d点以及初始骨架进行匹配之前,可以先对3d点进行分类,然后分别对每个类别中的3d点进行匹配。由于分别对每个类别的3d点进行匹配,避免了每个3d点的全局匹配,因此,可以提高匹配的效率;同时,在对每个类别的3d点进行匹配的过程中,不会出现匹配错误的情况,因此,可以提高匹配的精度。
5.在可选的实施方式中,所述对待分类动作对应的一组待分类3d点进行分类,包括:根据标准动作对应的一组标准3d点对应的第二分类结果以及标准距离,并按照预设顺序,对所述待分类3d点进行分类。在上述方案中,可以基于标准3d点对应的第二分类结果以及标准距离,按照预设顺序对待分类3d点进行分类。由于按照预设顺序对每个类别的待分类3d点进行分类,因此,避免了每个待分类3d点的全局分类,因此,可以提高分类的效率。
6.在可选的实施方式中,所述标准距离包括全部直线距离以及单向闭合直线距离;在所述根据标准动作对应的一组标准3d点对应的第二分类结果以及标准距离,对所述待分类3d点进行分类之前,所述方法还包括:利用分类算法对所述标准3d点进行分类,得到所述第二分类结果;针对所述第二分类结果中每一类别中的多个标准3d点,计算所述多个标准3d点之间的多个全部直线距离,并从多个全部直线距离中确定所述多个标准3d点之间的多个单向闭合直线距离。在上述方案中,在对待分类3d点进行分类之前,可以先对标准动作对应的标准3d点进行分类并计算标准3d点之间的标准距离,从而可以基于第二分类结果以及标准距离对待分类3d点进行分类。
7.在可选的实施方式中,所述根据标准动作对应的一组标准3d点对应的第二分类结果以及标准距离,并按照预设顺序,对所述待分类3d点进行分类,包括:针对所述待分类3d
点中的当前3d点,根据多个单向闭合直线距离搜索所述当前3d点中的至少一组第一3d点;其中,每组第一3d点均满足第一类别对应的多个单向闭合直线距离,所述第一类别为所述第二分类结果中的一个分类类别;根据多个全部直线距离从多组第一3d点中筛选一组第二3d点,并将所述第二3d点分类为所述第一类别;其中,所述第二3d点满足所述第一类别对应的多个全部直线距离;删除所述当前3d点中的所述第二3d点得到新的当前3d点,并按照预设顺序更新所述第一类别。在上述方案中,可以先基于单向闭合直线距离从多个当前3d点中筛选出可能属于第一类别的部分第一3d点,并基于全部直线距离确定属于第一类别的第二3d点,实现对待分类3d点进行分类。由于按照预设顺序对每个类别的待分类3d点进行分类,因此,避免了每个待分类3d点的全局分类,因此,可以提高分类的效率。
8.在可选的实施方式中,所述根据多个全部直线距离从多组第一3d点中筛选一组第二3d点,包括:根据多个全部直线距离从多组第一3d点中筛选多组第三3d点;基于最近原则从多组第三3d点中筛选所述第二3d点。在上述方案中,当基于全部直线距离仍不能确定属于第一类别的第二3d点时,可以基于最近原则确定属于第一类别的第二3d点。由于引入了最近原则,因此,可以提高分类的精度。
9.在可选的实施方式中,所述预设顺序为:头、胸、腰、左肩膀、左大臂、左小臂、左手、右肩膀、右大臂、右小臂、右手、左大腿、左小腿、左脚、右大腿、右小腿、右脚。在上述方案中,先对3d点数量较多的类别开始分类,再对3d点数量较少的类别开始进行分类。由于在对3d点数量较少的类别进行分类时,当前3d点的数量已经减少了一部分,因此,可以提高分类的效率;同时,由于先将面积较大的区域确定下来,再确定面积较小的区域,因此,可以提高分类的精度。
10.第二方面,本技术实施例提供一种骨架匹配装置,包括:第一分类模块,用于对待分类动作对应的一组待分类3d点进行分类,得到第一分类结果;匹配模块,用于依次将所述第一分类结果中每个类别中的待分类3d点与所述初始骨架进行匹配,得到与所述待分类动作对应的标准骨架。在上述方案中,在对3d点以及初始骨架进行匹配之前,可以先对3d点进行分类,然后分别对每个类别中的3d点进行匹配。由于分别对每个类别的3d点进行匹配,避免了每个3d点的全局匹配,因此,可以提高匹配的效率;同时,在对每个类别的3d点进行匹配的过程中,不会出现匹配错误的情况,因此,可以提高匹配的精度。
11.在可选的实施方式中,所述第一分类模块具体用于:根据标准动作对应的一组标准3d点对应的第二分类结果以及标准距离,并按照预设顺序,对所述待分类3d点进行分类。在上述方案中,可以基于标准3d点对应的第二分类结果以及标准距离,按照预设顺序对待分类3d点进行分类。由于按照预设顺序对每个类别的待分类3d点进行分类,因此,避免了每个待分类3d点的全局分类,因此,可以提高分类的效率。
12.在可选的实施方式中,所述标准距离包括全部直线距离以及单向闭合直线距离;所述骨架匹配装置还包括:第二分类模块,用于利用分类算法对所述标准3d点进行分类,得到所述第二分类结果;计算模块,用于针对所述第二分类结果中每一类别中的多个标准3d点,计算所述多个标准3d点之间的多个全部直线距离,并从多个全部直线距离中确定所述多个标准3d点之间的多个单向闭合直线距离。在上述方案中,在对待分类3d点进行分类之前,可以先对标准动作对应的标准3d点进行分类并计算标准3d点之间的标准距离,从而可以基于第二分类结果以及标准距离对待分类3d点进行分类。
13.在可选的实施方式中,所述第一分类模块具体用于:针对所述待分类3d点中的当前3d点,根据多个单向闭合直线距离搜索所述当前3d点中的至少一组第一3d点;其中,每组第一3d点均满足第一类别对应的多个单向闭合直线距离,所述第一类别为所述第二分类结果中的一个分类类别;根据多个全部直线距离从多组第一3d点中筛选一组第二3d点,并将所述第二3d点分类为所述第一类别;其中,所述第二3d点满足所述第一类别对应的多个全部直线距离;删除所述当前3d点中的所述第二3d点得到新的当前3d点,并按照预设顺序更新所述第一类别。在上述方案中,可以先基于单向闭合直线距离从多个当前3d点中筛选出可能属于第一类别的部分第一3d点,并基于全部直线距离确定属于第一类别的第二3d点,实现对待分类3d点进行分类。由于按照预设顺序对每个类别的待分类3d点进行分类,因此,避免了每个待分类3d点的全局分类,因此,可以提高分类的效率。
14.在可选的实施方式中,所述第一分类模块具体用于:根据多个全部直线距离从多组第一3d点中筛选多组第三3d点;基于最近原则从多组第三3d点中筛选所述第二3d点。在上述方案中,当基于全部直线距离仍不能确定属于第一类别的第二3d点时,可以基于最近原则确定属于第一类别的第二3d点。由于引入了最近原则,因此,可以提高分类的精度。
15.在可选的实施方式中,所述预设顺序为:头、胸、腰、左肩膀、左大臂、左小臂、左手、右肩膀、右大臂、右小臂、右手、左大腿、左小腿、左脚、右大腿、右小腿、右脚。在上述方案中,先对3d点数量较多的类别开始分类,再对3d点数量较少的类别开始进行分类。由于在对3d点数量较少的类别进行分类时,当前3d点的数量已经减少了一部分,因此,可以提高分类的效率;同时,由于先将面积较大的区域确定下来,再确定面积较小的区域,因此,可以提高分类的精度。
16.第三方面,本技术实施例提供一种计算机程序产品,包括计算机程序指令,所述计算机程序指令被处理器读取并运行时,执行如第一方面所述的骨架匹配方法。
17.第四方面,本技术实施例提供一种电子设备,包括:处理器、存储器和总线;所述处理器和所述存储器通过所述总线完成相互间的通信;所述存储器存储有可被所述处理器执行的计算机程序指令,所述处理器调用所述计算机程序指令能够执行如第一方面所述的骨架匹配方法。
18.第五方面,本技术实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储计算机程序指令,所述计算机程序指令被计算机运行时,使所述计算机执行如第一方面所述的骨架匹配方法。
19.为使本技术的上述目的、特征和优点能更明显易懂,下文特举本技术实施例,并配合所附附图,作详细说明如下。
附图说明
20.为了更清楚地说明本技术实施例的技术方案,下面将对本技术实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本技术的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
21.图1为本技术实施例提供的一种骨架匹配方法的流程图;
22.图2为本技术实施例提供的一种骨架匹配装置的结构框图;
23.图3为本技术实施例提供的一种电子设备的结构框图。
具体实施方式
24.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行描述。
25.在介绍本技术实施例提供的骨架匹配方法之前,先对该骨架匹配方法的应用场景进行简要的介绍。
26.本技术实施例提供的骨架匹配方法主要应用于动作识别。在一种应用场景中,演员可以身着动捕服,并在动捕服上贴出多个反光点(即mark点),然后使用多个红外相机从多个不同的角度对演员进行图像采集。在图像采集的过程中,演员可以做出多个动作,对于每个动作,均可以得到多个红外相机拍摄的多张动作图像,其中,每张动作图像中包括多个2d点。将多张动作图像中的2d点进行重构,可以得到该动作对应的一组3d点。其中,在本技术实施例提供的骨架匹配方法中,需要进行分类的即为上述一组3d点。
27.可以理解的,由于在图像采集时存在的遮挡问题,每张动作图像中包括的2d点的数量小于反光点的总数量,而基于上述2d点重构得到的一组3d点的数量小于或者等于反光点的总数量。举例来说,假设反光点的总数量为53,多张动作图像中2d点的数量分布在40-50之间,重构得到的3d点的数量为52。
28.其中,在采集的过程中,作为一种实施方式,可以将其中任意一个动作确定为标准动作,其他动作确定为待分类动作;作为另一种实施方式,也可以先将任意一个动作确定为标准动作,在采集图像和对3d点进行分类的过程中,可以对标准动作进行更新。
29.可以理解的是,由于待分类动作需要以标准动作为基础进行3d点的分类,因此标准动作对应的标准3d点的数量应该等于反光点的总数,否则需要重新确定标准3d点。
30.而对于待分类动作对应的待分类3d点的数量,作为一种实施方式,可以不对待分类3d点的数量进行限定,即无论待分类3d点的数量为多少,均会对该组待分类3d点进行分类;作为另一种实施方式,可以对待分类3d点的数量进行限定,即当待分类3d点的数量大于一个预设数值时,才会对该组待分类3d点进行分类,否则不会对该组待分类3d点进行分类。
31.以反光点的总数量为53为例,标准3d点的数量应该为53,而待分类3d点的数量应该大于43。
32.请参照图1,图1为本技术实施例提供的一种骨架匹配方法的流程图,该骨架匹配方法可以包括如下内容:
33.步骤s101:对待分类动作对应的一组待分类3d点进行分类,得到第一分类结果。
34.步骤s102:依次将第一分类结果中每个类别中的待分类3d点与初始骨架进行匹配,得到与待分类动作对应的标准骨架。
35.具体的,在对待分类动作对应的一组待分类3d点与初始骨架进行匹配之前,可以先对待分类3d点进行分类,得到第一分类结果;然后,再依次将第一分类结果中每个类别中的待分类3d点与初始骨架进行匹配,得到标准骨架。其中,匹配完成的标准骨架应该具有与待分类动作一致的动作。
36.举例来说,假设在步骤s101中,将待分类3d点分为了两类:躯干以及四肢,那么,在步骤s102中,可以先将躯干类别中的待分类3d点与初始骨架进行匹配,匹配完成后,再将四肢类别中的待分类3d点与初始骨架进行匹配,最终得到匹配完成的标准骨架。
37.可以理解的是,上述对待分类3d点进行分类的分类类别仅为本技术实施例提供的一个示例,本领域技术人员可以根据实际情况调整分类的具体方式。例如:可以将待分类3d点分为四类:头、胸、腰以及四肢等,本技术实施例对此不作具体的限定。
38.需要说明的是,本技术实施例对步骤s101中的具体分类方法也不作具体的限定,本领域技术人员可以结合实际情况采用合适的分类方法,例如:可以采用分类模型对待分类3d点进行分类;或者,可以采用人为标注的方式对待分类3d点进行分类等。
39.在执行上述步骤s101之前,本技术实施例提供的骨架匹配方法还可以包括获取待分类3d点的步骤,其中,获取待分类3d点的步骤可以有多种实现方式。作为一种实施方式,可以从云端或者本地读取实现存储的待分类3d点;作为另一种实施方式,可以接收其他设备发送的待分类3d点;作为又一种实施方式,可以基于红外相机采集的动作图像,重构得到待分类3d点。
40.在上述方案中,在对3d点以及初始骨架进行匹配之前,可以先对3d点进行分类,然后分别对每个类别中的3d点进行匹配。由于分别对每个类别的3d点进行匹配,避免了每个3d点的全局匹配,因此,可以提高匹配的效率;同时,在对每个类别的3d点进行匹配的过程中,不会出现匹配错误的情况,因此,可以提高匹配的精度。
41.进一步的,下面对本技术实施例提供的一种对待分类3d点进行分类的具体实施方式进行详细的介绍。在该种实施方式中,上述步骤s101具体可以包括如下内容:
42.根据标准动作对应的一组标准3d点对应的第二分类结果以及标准距离,并按照预设顺序,对待分类3d点进行分类。
43.具体的,可以基于标准动作中的标准3d点对待分类3d点进行分类,其中,在分类的具体实施过程中,可以基于标准3d点的第二分类结果以及标准距离对待分类3d点进行分类。
44.第二分类结果即对标准3d点进行分类的结果,此处分类的方式同样有多种,例如:可以采用分类模型对标准3d点进行分类;或者,可以采用人为标注的方式对标准3d点进行分类等。而标准距离为多个标准3d点之间的距离,根据应用场景的不同,其同样有多种实现方式,例如:标准距离可以包括全部直线距离,即多个标准3d点两两之间的所有直线距离;或者,标准距离可以包括单向闭合直线距离,即在多个标准3d点围成一个闭合的图形时,该图形的所有边的直线距离等。
45.在基于标准3d点的第二分类结果以及标准距离对待分类3d点进行分类的基础上,还可以按照预设顺序对待分类3d点进行分类。其中,本技术实施例对预设顺序的具体实现方式不作具体的限定,针对一种分类类别,预设顺序可以有多种实现方式。例如:当分类类别包括躯干以及四肢时,预设顺序可以为躯干、四肢或者以及四肢、躯干;当分类类别包括头、胸、腰以及四肢时,预设顺序可以为头、胸、腰、四肢或者头、四肢、胸、腰等。
46.以分类类别包括头、胸、腰以及四肢,预设顺序为头、胸、腰、四肢为例,其具体的分类步骤为:根据第二分类结果以及标准距离将头类别的3d点从待分类3d点中分出来;根据第二分类结果以及标准距离将胸类别的3d点从除头类别外的待分类3d点中分出来;根据第二分类结果以及标准距离将腰类别的3d点从除头类别以及胸类别外的待分类3d点中分出来;根据第二分类结果以及标准距离将四肢类别的3d点从除头类别、胸类别以及腰类别外的待分类3d点中分出来;完成所有待分类3d点的分类,且待分类3d点被分为头、胸、腰、四肢
四个类别。
47.需要说明的是,根据第二分类结果以及标准距离对待分类3d点进行分类的具体实施方式将在后续实施例中进行详细的说明,此处暂不介绍。
48.在执行上述步骤之前,本技术实施例提供的骨架匹配方法还可以包括获取标准3d点的步骤,其中,与获取待分类3d点的方式类似,获取标准3d点的步骤同样可以有多种实现方式。作为一种实施方式,可以从云端或者本地读取实现存储的标准3d点;作为另一种实施方式,可以接收其他设备发送的标准3d点;作为又一种实施方式,可以基于红外相机采集的动作图像,重构得到标准3d点。
49.此外,在多次执行骨架匹配方法的过程中,作为一种实施方式,标准3d点可以是恒定不变,例如:将第一个动作作为标准动作,之后的动作均以此为基础进行待分类3d点的分类。
50.作为另一种实施方式,标准动作可以是实时更新的。举例来说,先将第一个动作作为标准动作,基于标准动作对第二以及第三个动作进行待分类3d点的分类,然后将第三个动作作为标准动作,基于标准动作对第四个动作以及第五个动作进行待分类3d点的分类,依次类推。
51.再如,先将第一个动作作为标准动作,基于标准动作对第二个动作进行待分类3d点的分类,然后判断第二个动作是否符合预设规则;如果符合则将第二个动作作为标准动作,并基于标准动作对第三个动作进行待分类3d点的分类;如果不符合则仍然将第一个动作作为标准动作,基于标准动作对第三个动作进行待分类3d点的分类,依次类推。
52.其中,本技术实施例对上述预设规则的具体实施方式不作具体的限定,例如:预设规则可以为第三个动作对应的待分类3d点的数量大于预设数值;或者,预设规则可以为第三个动作对应的躯干类别的待分类3d点的数量大于另一预设数值等。
53.在上述方案中,可以基于标准3d点对应的第二分类结果以及标准距离,按照预设顺序对待分类3d点进行分类。由于按照预设顺序对每个类别的待分类3d点进行分类,因此,避免了每个待分类3d点的全局分类,因此,可以提高分类的效率。
54.进一步的,在上述根据标准动作对应的一组标准3d点对应的第二分类结果以及标准距离,对待分类3d点进行分类之前,本技术实施例提供的骨架匹配方法还可以包括如下内容:
55.步骤1),利用分类算法对标准3d点进行分类,得到第二分类结果。
56.步骤2),针对第二分类结果中每一类别中的多个标准3d点,计算多个标准3d点之间的多个全部直线距离,并从多个全部直线距离中确定多个标准3d点之间的多个单向闭合直线距离。
57.具体的,在本技术实施例中,利用分类算法对标准3d点进行分类。其中,本技术实施例对上述分类算法同样不作具体的限定,例如:分类算法可以采用自组织迁移算法(self organizing migrating algorithm,soma)。
58.此外,在本技术实施例中,标准距离包括全部直线距离以及单向闭合直线距离,其中,上述全部直线距离以及单向闭合直线距离均是针对一个类别中的标准3d点。
59.以分类类别包括躯干以及四肢,标准3d点的数量为53为例,假设第二分类结果为:其中20个标准3d点属于躯干类别,33个标准点属于四肢类别,那么,在上述步骤2)中,计算
属于躯干类别中的20个标准3d点两两之间的全部直线距离,即共190个全部直线距离,然后从上述190条全部直线距离中确定能够使上述20个标准3d点形成一个封闭图形的20个单向闭合直线距离;同时,计算属于四肢类别中的33个标准3d点两两之间的全部直线距离,即共528个全部直线距离,然后从上述528条全部直线距离中确定能够使上述33个标准3d点形成一个封闭图形的33个单向闭合直线距离。
60.在上述方案中,在对待分类3d点进行分类之前,可以先对标准动作对应的标准3d点进行分类并计算标准3d点之间的标准距离,从而可以基于第二分类结果以及标准距离对待分类3d点进行分类。
61.进一步的,下面对根据第二分类结果以及标准距离对待分类3d点进行分类的具体实施方式进行详细的介绍。在该种实施方式中,上述根据标准动作对应的一组标准3d点对应的第二分类结果以及标准距离,并按照预设顺序,对待分类3d点进行分类的步骤具体可以包括如下内容:
62.步骤1),针对待分类3d点中的当前3d点,根据多个单向闭合直线距离搜索当前3d点中的至少一组第一3d点。
63.步骤2),根据多个全部直线距离从多组第一3d点中筛选一组第二3d点,并将第二3d点分类为第一类别。
64.步骤3),删除当前3d点中的第二3d点得到新的当前3d点,并按照预设顺序更新第一类别。
65.具体的,上述步骤1)-步骤3)为一个循环的过程。首先,所有待分类3d点均为当前3d点,此时,根据多个单向闭合直线距离以及多个全部直线距离筛选得到一组第二3d点,并将第二3d点分类为预设顺序中的第一个类别;然后,将上述第二3d点从待分类3d点中删除,剩下的待分类3d点即为当前3d点,此时,根据多个单向闭合直线距离以及多个全部直线距离筛选得到一组第二3d点,并将第二3d点分类为预设顺序中的第二个类别;依次类推,直至将所有的待分类3d点均分类完成。
66.以将第二3d点分类为预设顺序中的第一个类别这一次的循环过程为例,对上述步骤1)及上述步骤2)的具体实施方式进行详细的介绍。
67.在上述步骤1)中,需要用到第二分类结果中第一类别对应的标准3d点之间的多个单向闭合直线距离。基于上述多个单向闭合直线距离,可以从当前3d点中搜索到至少一组满足上述多个单向闭合直线距离的第一3d点。其中,上述搜索到的每一组第一3d点均满足第一类别对应的多个单向闭合直线距离。
68.假设第二分类结果中第一个类别对应的标准3d点的数量为5个,这5个标准3d点之间存在5个单向闭合直线距离;基于这5个单向闭合直线距离,可以从当前3d点中筛选出3组第一3d点,且每一组第一3d点均包括5个标准3d点,这5个标准3d点形成的封闭图形的5条边长中的每一条边长都对应满足5个单向闭合直线距离中的一个。
69.需要说明的是,一条边长满足一个单向闭合直线距离,可以表示该边长的长度等于该单向闭合直线距离;或者,也可以表示该边长的长度与该单向闭合直线距离之间的差值小于预设阈值(例如:1.5cm、2cm等)。
70.其中,在上述步骤1)中,如果更加注重搜索精度,则可以使用广度优先算法进行搜索;而如果更加注重搜索速度,则可以使用深度优先算法进行搜索。
71.在上述步骤2)中,需要用到第二分类结果中第一类别对应的标准3d点之间的多个全部直线距离,以及上述步骤1)中筛选出来的至少一组第一3d点。针对其中一组3d点,将该组3d点两两之前的直线距离与第一类别对应的标准3d点之间的多个全部直线距离进行比对,判断该组3d点是否满足上述多个全部直线距离,如果满足,则该组3d点确定为一组第二3d点,且该组3d点的类别为第一类别。其中,上述确定的第二3d点满足第一类别对应的多个全部直线距离。
72.假设第二分类结果中第一个类别对应的标准3d点的数量为5个,这5个标准3d点之间存在10个全部直线距离,步骤1)中从当前3d点中筛选出3组第一3d点;基于这10个全部直线距离,可以对每一组第一3d点两两之间的直线距离进行比对,如果该组第一3d点中两两之间的直线距离均对应满足10个全部直线距离中的一个,则将该组第一3d点确定为第一类别。
73.需要说明的是,两两之间的直线距离满足一个全部直线距离,可以表示该直线距离等于该全部直线距离;或者,也可以表示该直线距离与该全部直线距离之间的差值小于预设阈值(例如:1.5cm、2cm等)。
74.这样,经过上述步骤1)及步骤2),则将当前3d点中属于预设顺序中第一个类别的待分类3d点筛选出来了;然后再对当前3d点以及第一类别进行更新,重复执行上述步骤1)-步骤2),将当前3d点中属于预设顺序中第二个类别的待分类3d点筛选出来;依次类推,将待分类3d点划分至预设顺序中的所有类别中。
75.在上述方案中,可以先基于单向闭合直线距离从多个当前3d点中筛选出可能属于第一类别的部分第一3d点,并基于全部直线距离确定属于第一类别的第二3d点,实现对待分类3d点进行分类。由于按照预设顺序对每个类别的待分类3d点进行分类,因此,避免了每个待分类3d点的全局分类,因此,可以提高分类的效率。
76.进一步的,在上述实施例的步骤2)中,可能存在根据多个全部直线距离筛选出多组第三3d点的情况,因此,下面介绍如何从多组第三3d点中筛选出一组第二3d点。在该种实施方式中,上述根据多个全部直线距离从多组第一3d点中筛选一组第二3d点的步骤具体可以包括如下内容:
77.步骤1),根据多个全部直线距离从多组第一3d点中筛选多组第三3d点。
78.步骤2),基于最近原则从多组第三3d点中筛选第二3d点。
79.具体的,当根据多个全部直线距离筛选出多组第三3d点时,可以基于最近原则从多组第三3d点中筛选第二3d点。其中,最近原则是指对于某一个类别,其中的待分类3d点应该与已经分类好的一个类别中的3d点距离较近,因此,可以计算每一组第三3d点与该类别中的一个3d点之间的距离之和,并将上述距离之和最小的一组第三3d点确定为第二3d点。
80.举例来说,对于左大腿这一个类别来说,其中的待分类3d点应该与腰这一类别中的3d点距离较近。假设在对左大腿进行分类的过程中,筛选得到了两组第三3d点,其中一组第三3d点与腰类别中一个3d点之间的距离和为100cm,另外一组第三3d点与腰类别中该3d点之间的距离和为90cm,因此可以将第二组第三3d点确定为第二3d点。
81.需要说明的是,上述最近原则仅为本技术实施例提供的一个实例,根据分类类别的不同,最近原则应该有多种实现方式,且最近原则中可以包括多个原则,本技术实施例对此不作具体的限定。
82.此外,在一些应用场景中,在确定第二3d点的类别之后,还可以使用ek算法对第二3d点的分类结果的空间位置信息进行角度约束。例如:大腿类别中的3d点不可能与头类别中的3d点距离较近等。
83.在上述方案中,当基于全部直线距离仍不能确定属于第一类别的第二3d点时,可以基于最近原则确定属于第一类别的第二3d点。由于引入了最近原则,因此,可以提高分类的精度。
84.进一步的,在本技术实施例中,上述预设顺序可以为:头、胸、腰、左肩膀、左大臂、左小臂、左手、右肩膀、右大臂、右小臂、右手、左大腿、左小腿、左脚、右大腿、右小腿、右脚。
85.具体的,在该种预设顺序下,分类类别包括:头、胸、腰、左肩膀、左大臂、左小臂、左手、右肩膀、右大臂、右小臂、右手、左大腿、左小腿、左脚、右大腿、右小腿以及右脚;最近原则包括:左右大腿遵守最接近腰的原则、左右小腿遵守最接近左右大腿的原则、左右脚遵守最原理左右小腿的原则、左右肩膀遵守最接近胸的原则、左右大臂遵守最接近肩膀的原则,左右小臂遵守最接近大臂的原则以及左右手遵守最接近左右小臂的原则。
86.在上述方案中,先对3d点数量较多的类别开始分类,再对3d点数量较少的类别开始进行分类。由于在对3d点数量较少的类别进行分类时,当前3d点的数量已经减少了一部分,因此,可以提高分类的效率;同时,由于先将面积较大的区域确定下来,再确定面积较小的区域,因此,可以提高分类的精度。
87.进一步的,在上述步骤s101之后,本技术实施例提供的骨架匹配方法还可以包括对分类结果进行测试的步骤。
88.其中,在对分类结果进行测试的过程中,不需要按照预设顺序进行测试,只需要测试每个类别中的3d点是否满足对应标准动作中同一类别中的3d点。如果满足,则可以执行步骤s102;如果不满足,则可以重新对待分类3d点进行分类。举例来说,当根据第二分类结果以及标准距离对待分类3d点进行分类时,可以通过调整预设阈值,重新对待分类点进行分类。
89.请参照图2,图2为本技术实施例提供的一种骨架匹配装置的结构框图,该骨架匹配装置200包括:第一分类模块201,用于对待分类动作对应的一组待分类3d点进行分类,得到第一分类结果;匹配模块202,用于依次将所述第一分类结果中每个类别中的待分类3d点与所述初始骨架进行匹配,得到与所述待分类动作对应的标准骨架。
90.在本技术实施例中,在对3d点以及初始骨架进行匹配之前,可以先对3d点进行分类,然后分别对每个类别中的3d点进行匹配。由于分别对每个类别的3d点进行匹配,避免了每个3d点的全局匹配,因此,可以提高匹配的效率;同时,在对每个类别的3d点进行匹配的过程中,不会出现匹配错误的情况,因此,可以提高匹配的精度。
91.进一步的,所述第一分类模块201具体用于:根据标准动作对应的一组标准3d点对应的第二分类结果以及标准距离,并按照预设顺序,对所述待分类3d点进行分类。
92.在本技术实施例中,可以基于标准3d点对应的第二分类结果以及标准距离,按照预设顺序对待分类3d点进行分类。由于按照预设顺序对每个类别的待分类3d点进行分类,因此,避免了每个待分类3d点的全局分类,因此,可以提高分类的效率。
93.进一步的,所述标准距离包括全部直线距离以及单向闭合直线距离;所述骨架匹配装置200还包括:第二分类模块,用于利用分类算法对所述标准3d点进行分类,得到所述
第二分类结果;计算模块,用于针对所述第二分类结果中每一类别中的多个标准3d点,计算所述多个标准3d点之间的多个全部直线距离,并从多个全部直线距离中确定所述多个标准3d点之间的多个单向闭合直线距离。
94.在本技术实施例中,在对待分类3d点进行分类之前,可以先对标准动作对应的标准3d点进行分类并计算标准3d点之间的标准距离,从而可以基于第二分类结果以及标准距离对待分类3d点进行分类。
95.进一步的,所述第一分类模块201具体用于:针对所述待分类3d点中的当前3d点,根据多个单向闭合直线距离搜索所述当前3d点中的至少一组第一3d点;其中,每组第一3d点均满足第一类别对应的多个单向闭合直线距离,所述第一类别为所述第二分类结果中的一个分类类别;根据多个全部直线距离从多组第一3d点中筛选一组第二3d点,并将所述第二3d点分类为所述第一类别;其中,所述第二3d点满足所述第一类别对应的多个全部直线距离;删除所述当前3d点中的所述第二3d点得到新的当前3d点,并按照预设顺序更新所述第一类别。
96.在本技术实施例中,可以先基于单向闭合直线距离从多个当前3d点中筛选出可能属于第一类别的部分第一3d点,并基于全部直线距离确定属于第一类别的第二3d点,实现对待分类3d点进行分类。由于按照预设顺序对每个类别的待分类3d点进行分类,因此,避免了每个待分类3d点的全局分类,因此,可以提高分类的效率。
97.进一步的,所述第一分类模块201具体用于:根据多个全部直线距离从多组第一3d点中筛选多组第三3d点;基于最近原则从多组第三3d点中筛选所述第二3d点。
98.在本技术实施例中,当基于全部直线距离仍不能确定属于第一类别的第二3d点时,可以基于最近原则确定属于第一类别的第二3d点。由于引入了最近原则,因此,可以提高分类的精度。
99.进一步的,所述预设顺序为:头、胸、腰、左肩膀、左大臂、左小臂、左手、右肩膀、右大臂、右小臂、右手、左大腿、左小腿、左脚、右大腿、右小腿、右脚。
100.在本技术实施例中,先对3d点数量较多的类别开始分类,再对3d点数量较少的类别开始进行分类。由于在对3d点数量较少的类别进行分类时,当前3d点的数量已经减少了一部分,因此,可以提高分类的效率;同时,由于先将面积较大的区域确定下来,再确定面积较小的区域,因此,可以提高分类的精度。
101.请参照图3,图3为本技术实施例提供的一种电子设备的结构框图,该电子设备300包括:至少一个处理器301,至少一个通信接口302,至少一个存储器303和至少一个通信总线304。其中,通信总线304用于实现这些组件直接的连接通信,通信接口302用于与其他节点设备进行信令或数据的通信,存储器303存储有处理器301可执行的机器可读指令。当电子设备300运行时,处理器301与存储器303之间通过通信总线304通信,机器可读指令被处理器301调用时执行上述骨架匹配方法。
102.例如,本技术实施例的处理器301通过通信总线304从存储器303读取计算机程序并执行该计算机程序可以实现如下方法:对待分类动作对应的一组待分类3d点进行分类,得到第一分类结果;依次将所述第一分类结果中每个类别中的待分类3d点与所述初始骨架进行匹配,得到与所述待分类动作对应的标准骨架。
103.其中,处理器301包括一个或多个,其可以是一种集成电路芯片,具有信号的处理
能力。上述的处理器301可以是通用处理器,包括中央处理器(central processing unit,简称cpu)、微控制单元(micro controller unit,简称mcu)、网络处理器(network processor,简称np)或者其他常规处理器;还可以是专用处理器,包括神经网络处理器(neural-network processing unit,简称npu)、图形处理器(graphics processing unit,简称gpu)、数字信号处理器(digital signal processor,简称dsp)、专用集成电路(application specific integrated circuits,简称asic)、现场可编程门阵列(field programmable gate array,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。并且,在处理器301为多个时,其中的一部分可以是通用处理器,另一部分可以是专用处理器。
104.存储器303包括一个或多个,其可以是,但不限于,随机存取存储器(random access memory,简称ram),只读存储器(read only memory,简称rom),可编程只读存储器(programmable read-only memory,简称prom),可擦除可编程只读存储器(erasable programmable read-only memory,简称eprom),电可擦除可编程只读存储器(electric erasable programmable read-only memory,简称eeprom)等。
105.可以理解,图3所示的结构仅为示意,电子设备300还可包括比图3中所示更多或者更少的组件,或者具有与图3所示不同的配置。图3中所示的各组件可以采用硬件、软件或其组合实现。于本技术实施例中,电子设备300可以是,但不限于台式机、笔记本电脑、智能手机、智能穿戴设备、车载设备等实体设备,还可以是虚拟机等虚拟设备。另外,电子设备300也不一定是单台设备,还可以是多台设备的组合,例如服务器集群,等等。
106.本技术实施例还提供一种计算机程序产品,包括存储在计算机可读存储介质上的计算机程序,计算机程序包括计算机程序指令,当计算机程序指令被计算机执行时,计算机能够执行上述实施例中骨架匹配方法的步骤,例如包括:步骤s101:对待分类动作对应的一组待分类3d点进行分类,得到第一分类结果。步骤s102:依次将第一分类结果中每个类别中的待分类3d点与初始骨架进行匹配,得到与待分类动作对应的标准骨架。
107.在本技术所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
108.另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
109.再者,在本技术各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
110.需要说明的是,功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现
出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
111.在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
112.以上所述仅为本技术的实施例而已,并不用于限制本技术的保护范围,对于本领域的技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
技术特征:1.一种骨架匹配方法,其特征在于,包括:对待分类动作对应的一组待分类3d点进行分类,得到第一分类结果;依次将所述第一分类结果中每个类别中的待分类3d点与初始骨架进行匹配,得到与所述待分类动作对应的标准骨架。2.根据权利要求1所述的骨架匹配方法,其特征在于,所述对待分类动作对应的一组待分类3d点进行分类,包括:根据标准动作对应的一组标准3d点对应的第二分类结果以及标准距离,并按照预设顺序,对所述待分类3d点进行分类。3.根据权利要求2所述的骨架匹配方法,其特征在于,所述标准距离包括全部直线距离以及单向闭合直线距离;在所述根据标准动作对应的一组标准3d点对应的第二分类结果以及标准距离,对所述待分类3d点进行分类之前,所述方法还包括:利用分类算法对所述标准3d点进行分类,得到所述第二分类结果;针对所述第二分类结果中每一类别中的多个标准3d点,计算所述多个标准3d点之间的多个全部直线距离,并从多个全部直线距离中确定所述多个标准3d点之间的多个单向闭合直线距离。4.根据权利要求3所述的骨架匹配方法,其特征在于,所述根据标准动作对应的一组标准3d点对应的第二分类结果以及标准距离,并按照预设顺序,对所述待分类3d点进行分类,包括:针对所述待分类3d点中的当前3d点,根据多个单向闭合直线距离搜索所述当前3d点中的至少一组第一3d点;其中,每组第一3d点均满足第一类别对应的多个单向闭合直线距离,所述第一类别为所述第二分类结果中的一个分类类别;根据多个全部直线距离从多组第一3d点中筛选一组第二3d点,并将所述第二3d点分类为所述第一类别;其中,所述第二3d点满足所述第一类别对应的多个全部直线距离;删除所述当前3d点中的所述第二3d点得到新的当前3d点,并按照预设顺序更新所述第一类别。5.根据权利要求4所述的骨架匹配方法,其特征在于,所述根据多个全部直线距离从多组第一3d点中筛选一组第二3d点,包括:根据多个全部直线距离从多组第一3d点中筛选多组第三3d点;基于最近原则从多组第三3d点中筛选所述第二3d点。6.根据权利要求2-5任一项所述的骨架匹配方法,其特征在于,所述预设顺序为:头、胸、腰、左肩膀、左大臂、左小臂、左手、右肩膀、右大臂、右小臂、右手、左大腿、左小腿、左脚、右大腿、右小腿、右脚。7.一种骨架匹配装置,其特征在于,包括:第一分类模块,用于对待分类动作对应的一组待分类3d点进行分类,得到第一分类结果;匹配模块,用于依次将所述第一分类结果中每个类别中的待分类3d点与初始骨架进行匹配,得到与所述待分类动作对应的标准骨架。8.一种计算机程序产品,其特征在于,包括计算机程序指令,所述计算机程序指令被处
理器读取并运行时,执行如权利要求1-6中任一项所述的方法。9.一种电子设备,其特征在于,包括:处理器、存储器和总线;所述处理器和所述存储器通过所述总线完成相互间的通信;所述存储器存储有可被所述处理器执行的计算机程序指令,所述处理器调用所述计算机程序指令能够执行如权利要求1-6任一项所述的方法。10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储计算机程序指令,所述计算机程序指令被计算机运行时,使所述计算机执行如权利要求1-6任一项所述的方法。
技术总结本申请提供一种骨架匹配方法及装置,应用于动作识别领域,其中,骨架匹配方法包括:对待分类动作对应的一组待分类3D点进行分类,得到第一分类结果;依次将第一分类结果中每个类别中的待分类3D点与初始骨架进行匹配,得到与待分类动作对应的标准骨架。在上述方案中,在对3D点以及初始骨架进行匹配之前,可以先对3D点进行分类,然后分别对每个类别中的3D点进行匹配。由于分别对每个类别的3D点进行匹配,避免了每个3D点的全局匹配,因此,可以提高匹配的效率;同时,在对每个类别的3D点进行匹配的过程中,不会出现匹配错误的情况,因此,可以提高匹配的精度。匹配的精度。匹配的精度。
技术研发人员:黄洋杰
受保护的技术使用者:成都数字天空科技有限公司
技术研发日:2022.04.22
技术公布日:2022/7/5