CN114998812A - 关键点的位置更新方法、装置、计算机设备及存储介质 - Google Patents
关键点的位置更新方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN114998812A CN114998812A CN202210898993.3A CN202210898993A CN114998812A CN 114998812 A CN114998812 A CN 114998812A CN 202210898993 A CN202210898993 A CN 202210898993A CN 114998812 A CN114998812 A CN 114998812A
- Authority
- CN
- China
- Prior art keywords
- target
- dimensional structure
- video frame
- point
- key point
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/40—Scenes; Scene-specific elements in video content
- G06V20/41—Higher-level, semantic clustering, classification or understanding of video scenes, e.g. detection, labelling or Markovian modelling of sport events or news items
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/40—Scenes; Scene-specific elements in video content
- G06V20/46—Extracting features or characteristics from the video content, e.g. video fingerprints, representative shots or key frames
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V2201/00—Indexing scheme relating to image or video recognition or understanding
- G06V2201/07—Target detection
Abstract
本公开关于一种关键点的位置更新方法、装置、计算机设备及存储介质,属于图像技术领域。本公开通过先检测出目标对象的多个关键点在第一视频帧中的位置,基于目标对象的第一三维结构,确定在第一视频帧和第一视频帧的前一帧中的位置不同的目标关键点,确定在第一视频帧中与目标关键点的距离符合距离条件的目标像素点,由于目标像素点在第一视频帧中的位置与目标关键点在前一帧中的位置符合距离条件,因此,相对于前一帧中目标关键点的位置,将该目标关键点在第一视频帧中的位置更新为目标像素点在第一视频帧中的位置,能够降低第一视频帧中目标关键点位置的抖动,相应地,在播放视频流时,能够提高目标对象的显示效果。
Description
技术领域
本公开涉及图像技术领域,特别涉及一种关键点的位置更新方法、装置、计算机设备及存储介质。
背景技术
目标对象的关键点检测是目标对象识别以及分析领域中的关键一步,以目标对象为人脸为例,人脸关键点检测是自动人脸识别、表情分析以及等其它人脸相关问题的前提和突破口。
相关技术中,目标对象的关键点检测过程包括:计算机设备对目标视频中的每个视频帧,进行关键点检测,得到目标对象的多个关键点在每个视频帧中的位置。
在上述目标对象的关键点检测过程中,每个视频帧所显示的目标对象的姿态可能不同,导致相邻视频帧内关键点的位置出现抖动,使得播放目标视频时目标对象的显示效果不佳。
发明内容
本公开提供一种关键点的位置更新方法、装置、计算机设备及存储介质,解决了因关键点位置出现抖动导致目标对象显示效果不佳的问题。本公开的技术方案包括以下方面。
根据本公开实施例的一方面,提供一种关键点的位置更新方法,所述方法包括:
对目标视频中的第一视频帧进行关键点检测,得到目标对象的多个关键点在所述第一视频帧中的位置;
基于所述多个关键点在所述第一视频帧中的位置以及所述目标对象的第一三维结构,从所述多个关键点中确定目标关键点,所述目标关键点在所述第一视频帧和所述第一视频帧的前一帧中的位置不同;
基于所述目标关键点在所述第一视频帧中的位置,确定在所述第一视频帧中与所述目标关键点的距离符合距离条件的目标像素点;
将所述目标关键点在所述第一视频帧中的位置更新为所述目标像素点在第一视频帧中的位置。
在一种可能的实施方式中,所述基于所述多个关键点在所述第一视频帧中的位置以及所述目标对象的第一三维结构,从所述多个关键点中确定目标关键点包括:
基于所述多个关键点在所述第一视频帧中的位置,确定所述多个关键点在所述第一三维结构中的位置以及所述多个关键点在所述目标对象的第二三维结构中的位置,所述第一三维结构以及所述第二三维结构分别基于所述第一视频帧以及所述第一视频帧的前一帧得到;
基于所述多个关键点在所述第一三维结构中的位置以及所述多个关键点在所述第二三维结构中的位置,从所述多个关键点中确定所述目标关键点。
在一种可能的实施方式中,所述目标关键点包括第一目标关键点,所述第一目标关键点在所述第一三维结构以及所述第二三维结构中的可见性不同,所述基于所述多个关键点在所述第一三维结构中的位置以及所述多个关键点在所述第二三维结构中的位置,从所述多个关键点中确定所述目标关键点包括:
对于所述多个关键点中的任一关键点,若所述任一关键点在所述第一三维结构中的位置处有像素点,且所述任一关键点在所述第二三维结构中的位置处没有像素点,则将所述任一关键点确定为所述第一目标关键点;
或者,若所述任一关键点在所述第一三维结构中的位置处没有像素点,且所述任一关键点在所述第二三维结构中的位置处有像素点,则将所述任一关键点确定为所述第一目标关键点。
在一种可能的实施方式中,所述目标关键点包括第二目标关键点,所述第二目标关键点在所述第一三维结构中的位置与在所述第二三维结构中的位置之间的偏移距离大于第一阈值,所述基于所述多个关键点在所述第一三维结构中的位置以及所述多个关键点在所述第二三维结构中的位置,从所述多个关键点中确定所述目标关键点包括:
对于所述多个关键点中的任一关键点,若所述任一关键点在所述第一三维结构中的位置与在所述第二三维结构中的位置之间的偏移距离大于所述第一阈值,将所述任一关键点确定为所述第二目标关键点。
在一种可能的实施方式中,所述目标对象包括至少一个部位,每个部位对应所述多个关键点中的至少一个关键点,所述目标关键点包括所述至少一个部位中目标部位对应的所有关键点;
其中,所述目标部位对应的所有关键点中第一目标关键点和第二目标关键点的总占比大于第二阈值,所述第一目标关键点在所述第一三维结构以及所述第二三维结构中的可见性不同,所述第二目标关键点在所述第一三维结构以及所述第二三维结构中的位置之间的偏移距离大于第一阈值。
在一种可能的实施方式中,所述至少一个部位中的任一部位对应所述多个关键点中的至少一个关键点,所述方法还包括:
若所述任一部位为非刚性部位,且所述至少一个关键点中所述第一目标关键点和所述第二目标关键点的总占比大于第二阈值,将所述任一部位作为所述目标部位,将所述至少一个关键点作为所述目标关键点;
若所述任一部位为刚性部位,且所述至少一个关键点中所述第一目标关键点和所述第二目标关键点的总占比大于第三阈值,将所述任一部位作为所述目标部位,将所述至少一个关键点作为所述目标关键点,其中,所述第三阈值大于所述第二阈值。
在一种可能的实施方式中,所述目标像素点为在所述第一视频帧中与所述目标关键点距离最近的像素点。
在一种可能的实施方式中,所述第一三维结构中存在至少一个消隐点,所述至少一个消隐点对应所述第一视频帧中的至少一个第一像素点,所述目标像素点为所述第一视频帧中除所述至少一个第一像素点以外的且与所述目标关键点距离最近的像素点,所述基于所述目标关键点在所述第一视频帧中的位置,确定在所述第一视频帧中与所述目标关键点的距离符合距离条件的目标像素点包括:
基于所述目标关键点在所述第一视频帧中的位置,从所述第一视频帧中的像素点,确定k个第二像素点,所述k个第二像素点为所述第一视频帧中与所述目标关键点距离最近的k个像素点,所述k为正整数;
基于所述第一三维结构中的所述至少一个消隐点,从所述k个第二像素点中确定s个第三像素点,每个第三像素点均不是与消隐点对应的第一像素点,所述s为小于或等于k的正整数;
将所述第一视频帧中与所述目标关键点距离最近的第三像素点确定为所述目标像素点。
在一种可能的实施方式中,所述方法还包括:
若所述第一三维结构与所述第二三维结构所示的目标对象的姿态不同,执行所述基于所述多个关键点在所述第一视频帧中的位置以及所述目标对象的第一三维结构,从所述多个关键点中确定目标关键点的步骤;
若所述第一三维结构与第二三维结构所示的目标对象的姿态相同,将所述多个关键点在第一视频帧的前一帧中的位置确定为所述多个关键点在所述第一视频帧中的位置。
在一种可能的实施方式中,所述若所述第一三维结构与所述第二三维结构所示的目标对象的姿态不同,执行所述基于所述多个关键点在所述第一视频帧中的位置以及所述目标对象的第一三维结构,从所述多个关键点中确定目标关键点的步骤包括:
若所述第一三维结构与所述第二三维结构所示的目标对象的姿态不同,获取所述第一三维结构与所述二三维结构所示的目标对象之间的姿态变化幅度;
若所述姿态变化幅度大于第四阈值,执行所述基于所述多个关键点在所述第一视频帧中的位置以及所述目标对象的第一三维结构,从所述多个关键点中确定目标关键点的步骤。
在一种可能的实施方式中,所述前一帧的索引信息包括所述多个关键点在所述前一帧中的位置,所述基于所述目标关键点在所述第一视频帧中的位置,确定在所述第一视频帧中与所述目标关键点的距离符合距离条件的目标像素点之后,所述方法还包括:
将所述索引信息中所述目标关键点在所述前一帧中的位置更新为所述目标像素点在第一视频帧中的位置,得到所述第一视频帧的索引信息。
在一种可能的实施方式中,所述基于所述多个关键点在所述第一视频帧中的位置以及所述目标对象的第一三维结构,从所述多个关键点中确定目标关键点之前,所述方法还包括:
基于所述第一视频帧,对所述目标对象进行三维重建,得到所述第一三维结构。
根据本公开实施例的另一方面,提供一种关键点的位置更新装置,在一种可能的实施方式中,所述装置包括:
检测单元,被配置为执行对目标视频中的第一视频帧进行关键点检测,得到目标对象的多个关键点在所述第一视频帧中的位置;
第一确定单元,被配置为执行基于所述多个关键点在所述第一视频帧中的位置以及所述目标对象的第一三维结构,从所述多个关键点中确定目标关键点,所述目标关键点在所述第一视频帧和所述第一视频帧的前一帧中的位置不同;
第二确定单元,被配置为执行基于所述目标关键点在所述第一视频帧中的位置,确定在所述第一视频帧中与所述目标关键点的距离符合距离条件的目标像素点;
更新单元,被配置为执行将所述目标关键点在所述第一视频帧中的位置更新为所述目标像素点在第一视频帧中的位置。
在一种可能的实施方式中,所述第一确定单元包括:
第一确定子单元,被配置为执行基于所述多个关键点在所述第一视频帧中的位置,确定所述多个关键点在所述第一三维结构中的位置以及所述多个关键点在所述目标对象的第二三维结构中的位置,所述第一三维结构以及所述第二三维结构分别基于所述第一视频帧以及所述第一视频帧的前一帧得到;
第二确定子单元,被配置为执行基于所述多个关键点在所述第一三维结构中的位置以及所述多个关键点在所述第二三维结构中的位置,从所述多个关键点中确定所述目标关键点。
在一种可能的实施方式中,所述目标关键点包括第一目标关键点,所述第一目标关键点在所述第一三维结构以及所述第二三维结构中的可见性不同,所述第二确定子单元被配置为执行:
对于所述多个关键点中的任一关键点,若所述任一关键点在所述第一三维结构中的位置处有像素点,且所述任一关键点在所述第二三维结构中的位置处没有像素点,则将所述任一关键点确定为所述第一目标关键点;
或者,若所述任一关键点在所述第一三维结构中的位置处没有像素点,且所述任一关键点在所述第二三维结构中的位置处有像素点,则将所述任一关键点确定为所述第一目标关键点。
在一种可能的实施方式中,所述目标关键点包括第二目标关键点,所述第二目标关键点在所述第一三维结构中的位置与在所述第二三维结构中的位置之间的偏移距离大于第一阈值,所述第二确定子单元被配置为执行:
对于所述多个关键点中的任一关键点,若所述任一关键点在所述第一三维结构中的位置与在所述第二三维结构中的位置之间的偏移距离大于所述第一阈值,将所述任一关键点确定为所述第二目标关键点。
在一种可能的实施方式中,所述目标对象包括至少一个部位,每个部位对应所述多个关键点中的至少一个关键点,所述目标关键点包括所述至少一个部位中目标部位对应的所有关键点;
其中,所述目标部位对应的所有关键点中第一目标关键点和第二目标关键点的总占比大于第二阈值,所述第一目标关键点在所述第一三维结构以及所述第二三维结构中的可见性不同,所述第二目标关键点在所述第一三维结构以及所述第二三维结构中的位置之间的偏移距离大于第一阈值。
在一种可能的实施方式中,所述至少一个部位中的任一部位对应所述多个关键点中的至少一个关键点,所述第一确定单元还被配置为执行:
若所述任一部位为非刚性部位,且所述至少一个关键点中所述第一目标关键点和所述第二目标关键点的总占比大于第二阈值,将所述任一部位作为所述目标部位,将所述至少一个关键点作为所述目标关键点;
若所述任一部位为刚性部位,且所述至少一个关键点中所述第一目标关键点和所述第二目标关键点的总占比大于第三阈值,将所述任一部位作为所述目标部位,将所述至少一个关键点作为所述目标关键点,其中,所述第三阈值大于所述第二阈值。
在一种可能的实施方式中,所述目标像素点为在所述第一视频帧中与所述目标关键点距离最近的像素点。
在一种可能的实施方式中,所述第一三维结构中存在至少一个消隐点,所述至少一个消隐点对应所述第一视频帧中的至少一个第一像素点,所述目标像素点为所述第一视频帧中除所述至少一个第一像素点以外的且与所述目标关键点距离最近的像素点,所述第二确定单元被配置为执行:
基于所述目标关键点在所述第一视频帧中的位置,从所述第一视频帧中的像素点,确定k个第二像素点,所述k个第二像素点为所述第一视频帧中与所述目标关键点距离最近的k个像素点,所述k为正整数;
基于所述第一三维结构中的所述至少一个消隐点,从所述k个第二像素点中确定s个第三像素点,每个第三像素点均不是与消隐点对应的第一像素点,所述s为小于或等于k的正整数;
将所述第一视频帧中与所述目标关键点距离最近的第三像素点确定为所述目标像素点。
在一种可能的实施方式中,所述第一确定单元还被配置为执行:
若所述第一三维结构与所述第二三维结构所示的目标对象的姿态不同,执行所述基于所述多个关键点在所述第一视频帧中的位置以及所述目标对象的第一三维结构,从所述多个关键点中确定目标关键点的步骤;
若所述第一三维结构与第二三维结构所示的目标对象的姿态相同,将所述多个关键点在第一视频帧的前一帧中的位置确定为所述多个关键点在所述第一视频帧中的位置。
在一种可能的实施方式中,所述第一确定单元还被配置为执行:
若所述第一三维结构与所述第二三维结构所示的目标对象的姿态不同,获取所述第一三维结构与所述二三维结构所示的目标对象之间的姿态变化幅度;
若所述姿态变化幅度大于第四阈值,执行所述基于所述多个关键点在所述第一视频帧中的位置以及所述目标对象的第一三维结构,从所述多个关键点中确定目标关键点的步骤。
在一种可能的实施方式中,所述前一帧的索引信息包括所述多个关键点在所述前一帧中的位置,所述更新单元还被配置为执行:
将所述索引信息中所述目标关键点在所述前一帧中的位置更新为所述目标像素点在第一视频帧中的位置,得到所述第一视频帧的索引信息。
在一种可能的实施方式中,所述装置还包括:
建模单元,被配置为执行基于所述第一视频帧,对所述目标对象进行三维重建,得到所述第一三维结构。
根据本公开实施例的另一方面,提供一种计算机设备,包括:
一个或多个处理器;
用于存储所述一个或多个处理器可执行指令的一个或多个存储器;
其中,所述一个或多个处理器被配置为执行上述一方面的任一种可能实施方式中的关键点的位置更新方法。
根据本公开实施例的另一方面,提供一种计算机可读存储介质,当所述计算机可读存储介质中的至少一条指令由计算机设备的一个或多个处理器执行时,使得所述计算机设备能够执行上述一方面的任一种可能实施方式中的关键点的位置更新方法。
根据本公开实施例的另一方面,提供一种计算机程序产品,包括至少一条指令,所述至少一条指令可以由计算机设备的一个或多个处理器执行,使得所述计算机设备能够执行上述一方面的任一种可能实施方式中的关键点的位置更新方法。
本公开的实施例提供的技术方案至少带来以下有益效果:
通过先检测出目标对象的多个关键点在第一视频帧中的位置,基于目标对象的第一三维结构,确定在第一视频帧和第一视频帧的前一帧中的位置不同的目标关键点,确定在第一视频帧中与目标关键点的距离符合距离条件的目标像素点,由于目标像素点在第一视频帧中的位置与目标关键点在前一帧中的位置符合距离条件,因此,相对于前一帧中目标关键点的位置,将该目标关键点在第一视频帧中的位置更新为目标像素点在第一视频帧中的位置,能够降低第一视频帧中目标关键点位置的抖动,相应地,在播放视频流时,能够提高目标对象的显示效果。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1是根据一示例性实施例示出的一种关键点的位置更新方法的流程图;
图2是根据一示例性实施例示出的又一种关键点的位置更新方法的流程图;
图3是根据一示例性实施例示出的一种三维人脸重建以及k-d树构建的示意图;
图4是根据一示例性实施例示出的一种确定目标关键点的流程图;
图5是根据一示例性实施例示出的一种对目标关键点进行位置更新的流程图;
图6是根据一示例性实施例示出的再一种关键点的位置更新方法的流程图;
图7是根据一示例性实施例示出的一种关键点的位置更新装置的结构框图;
图8是根据一示例性实施例示出的一种计算机设备的结构框图。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
本公开所涉及的目标对象为支持关键点检测的任一对象,例如人脸、人体或者特定类别物体等,其中,特定类别物体例如人体中的特定部位、车辆、动物肢体或动物肢体的特定部位等。
本公开提供一种关键点的位置更新方法,该方法由计算机设备执行,其中,该计算机设备包括终端或者服务器。该终端包括智能手机、平板电脑、笔记本电脑以及台式计算机中的至少一种,但该终端的类型不局限于此。
该服务器包括一台服务器、多台服务器、云计算平台以及虚拟化中心中的至少一种。在一些实施例中,该服务器是独立的物理服务器,或者是多个物理服务器构成的服务器集群或者分布式系统,或者是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)以及大数据和人工智能平台等基础云计算服务的云服务器。
下面结合具体方法实施例,对关键点的位置更新方法作如下介绍。
参见图1,图1是根据一示例性实施例示出的一种关键点的位置更新方法的流程图,该方法由计算机设备执行,该方法包括如下步骤。
在步骤101中,计算机设备对目标视频中的第一视频帧进行关键点检测,得到目标对象的多个关键点在所述第一视频帧中的位置。
在步骤102中,计算机设备基于所述多个关键点在所述第一视频帧中的位置以及所述目标对象的第一三维结构,从所述多个关键点中确定目标关键点,所述目标关键点在所述第一视频帧和所述第一视频帧的前一帧中的位置不同。
在步骤103中,计算机设备基于所述目标关键点在所述第一视频帧中的位置,确定在所述第一视频帧中与所述目标关键点的距离符合距离条件的目标像素点。
在步骤104中,计算机设备将所述目标关键点在所述第一视频帧中的位置更新为所述目标像素点在第一视频帧中的位置。
本公开实施例提供的方法,通过先检测出目标对象的多个关键点在第一视频帧中的位置,基于目标对象的第一三维结构,确定在第一视频帧和第一视频帧的前一帧中的位置不同的目标关键点,确定在第一视频帧中与目标关键点的距离符合距离条件的目标像素点,由于目标像素点在第一视频帧中的位置与目标关键点在前一帧中的位置符合距离条件,因此,相对于前一帧中目标关键点的位置,将该目标关键点在第一视频帧中的位置更新为目标像素点在第一视频帧中的位置,能够降低第一视频帧中目标关键点位置的抖动,相应地,在播放视频流时,能够提高目标对象的显示效果。
在一种可能的实施方式中,所述基于所述多个关键点在所述第一视频帧中的位置以及所述目标对象的第一三维结构,从所述多个关键点中确定目标关键点包括:
基于所述多个关键点在所述第一视频帧中的位置,确定所述多个关键点在所述第一三维结构中的位置以及所述多个关键点在所述目标对象的第二三维结构中的位置,所述第一三维结构以及所述第二三维结构分别基于所述第一视频帧以及所述第一视频帧的前一帧得到;
基于所述多个关键点在所述第一三维结构中的位置以及所述多个关键点在所述第二三维结构中的位置,从所述多个关键点中确定所述目标关键点。
在一种可能的实施方式中,所述目标关键点包括第一目标关键点,所述第一目标关键点在所述第一三维结构以及所述第二三维结构中的可见性不同,所述基于所述多个关键点在所述第一三维结构中的位置以及所述多个关键点在所述第二三维结构中的位置,从所述多个关键点中确定所述目标关键点包括:
对于所述多个关键点中的任一关键点,若所述任一关键点在所述第一三维结构中的位置处有像素点,且所述任一关键点在所述第二三维结构中的位置处没有像素点,则将所述任一关键点确定为所述第一目标关键点;
或者,若所述任一关键点在所述第一三维结构中的位置处没有像素点,且所述任一关键点在所述第二三维结构中的位置处有像素点,则将所述任一关键点确定为所述第一目标关键点。
在一种可能的实施方式中,所述目标关键点包括第二目标关键点,所述第二目标关键点在所述第一三维结构中的位置与在所述第二三维结构中的位置之间的偏移距离大于第一阈值,所述基于所述多个关键点在所述第一三维结构中的位置以及所述多个关键点在所述第二三维结构中的位置,从所述多个关键点中确定所述目标关键点包括:
对于所述多个关键点中的任一关键点,若所述任一关键点在所述第一三维结构中的位置与在所述第二三维结构中的位置之间的偏移距离大于所述第一阈值,将所述任一关键点确定为所述第二目标关键点。
在一种可能的实施方式中,所述目标对象包括至少一个部位,每个部位对应所述多个关键点中的至少一个关键点,所述目标关键点包括所述至少一个部位中目标部位对应的所有关键点;
其中,所述目标部位对应的所有关键点中第一目标关键点和第二目标关键点的总占比大于第二阈值,所述第一目标关键点在所述第一三维结构以及所述第二三维结构中的可见性不同,所述第二目标关键点在所述第一三维结构以及所述第二三维结构中的位置之间的偏移距离大于第一阈值。
在一种可能的实施方式中,所述至少一个部位中的任一部位对应所述多个关键点中的至少一个关键点,所述方法还包括:
若所述任一部位为非刚性部位,且所述至少一个关键点中所述第一目标关键点和所述第二目标关键点的总占比大于第二阈值,将所述任一部位作为所述目标部位,将所述至少一个关键点作为所述目标关键点;
若所述任一部位为刚性部位,且所述至少一个关键点中所述第一目标关键点和所述第二目标关键点的总占比大于第三阈值,将所述任一部位作为所述目标部位,将所述至少一个关键点作为所述目标关键点,其中,所述第三阈值大于所述第二阈值。
在一种可能的实施方式中,所述目标像素点为在所述第一视频帧中与所述目标关键点距离最近的像素点。
在一种可能的实施方式中,所述第一三维结构中存在至少一个消隐点,所述至少一个消隐点对应所述第一视频帧中的至少一个第一像素点,所述目标像素点为所述第一视频帧中除所述至少一个第一像素点以外的且与所述目标关键点距离最近的像素点,所述基于所述目标关键点在所述第一视频帧中的位置,确定在所述第一视频帧中与所述目标关键点的距离符合距离条件的目标像素点包括:
基于所述目标关键点在所述第一视频帧中的位置,从所述第一视频帧中的像素点,确定k个第二像素点,所述k个第二像素点为所述第一视频帧中与所述目标关键点距离最近的k个像素点,所述k为正整数;
基于所述第一三维结构中的所述至少一个消隐点,从所述k个第二像素点中确定s个第三像素点,每个第三像素点均不是与消隐点对应的第一像素点,所述s为小于或等于k的正整数;
将所述第一视频帧中与所述目标关键点距离最近的第三像素点确定为所述目标像素点。
在一种可能的实施方式中,所述方法还包括:
若所述第一三维结构与所述第二三维结构所示的目标对象的姿态不同,执行所述基于所述多个关键点在所述第一视频帧中的位置以及所述目标对象的第一三维结构,从所述多个关键点中确定目标关键点的步骤;
若所述第一三维结构与第二三维结构所示的目标对象的姿态相同,将所述多个关键点在第一视频帧的前一帧中的位置确定为所述多个关键点在所述第一视频帧中的位置。
在一种可能的实施方式中,所述若所述第一三维结构与所述第二三维结构所示的目标对象的姿态不同,执行所述基于所述多个关键点在所述第一视频帧中的位置以及所述目标对象的第一三维结构,从所述多个关键点中确定目标关键点的步骤包括:
若所述第一三维结构与所述第二三维结构所示的目标对象的姿态不同,获取所述第一三维结构与所述二三维结构所示的目标对象之间的姿态变化幅度;
若所述姿态变化幅度大于第四阈值,执行所述基于所述多个关键点在所述第一视频帧中的位置以及所述目标对象的第一三维结构,从所述多个关键点中确定目标关键点的步骤。
在一种可能的实施方式中,所述前一帧的索引信息包括所述多个关键点在所述前一帧中的位置,所述基于所述目标关键点在所述第一视频帧中的位置,确定在所述第一视频帧中与所述目标关键点的距离符合距离条件的目标像素点之后,所述方法还包括:
将所述索引信息中所述目标关键点在所述前一帧中的位置更新为所述目标像素点在第一视频帧中的位置,得到所述第一视频帧的索引信息。
在一种可能的实施方式中,所述基于所述多个关键点在所述第一视频帧中的位置以及所述目标对象的第一三维结构,从所述多个关键点中确定目标关键点之前,所述方法还包括:
基于所述第一视频帧,对所述目标对象进行三维重建,得到所述第一三维结构。
上述所有可选技术方案,可以采用任意结合形成本公开的可选实施例,在此不再一一赘述。
为进一步说明上述的可选技术方案,参见图2,图2是根据一示例性实施例示出的又一种关键点的位置更新方法的流程图,该方法由计算机设备执行,该方法包括如下步骤。
在步骤201中,计算机设备获取目标视频,该目标视频包括多个视频帧。
其中,该目标视频为待处理的任一视频,目标视频的每个视频帧均为二维图像。该目标视频是拍摄至少一个检测对象所得到的视频,该至少一个检测对象支持目标对象的关键点检测,该至少一个检测对象包括至少一个人、至少一个车辆、至少一个动物或者至少一个虚拟对象等。每个检测对象均包括目标对象,以检测对象为人为例,目标对象为人脸或人的躯体等,以检测对象为车辆为例,目标对象为车辆的车身。
该目标视频中连续的多个视频帧均包括同一检测对象的目标对象。连续的多个视频帧中目标对象的姿态可能相同,也可能不同。以检测对象为人为例,连续的10个视频帧均包括同一个人的人脸,其中,前5个视频帧中的人脸为正脸,后5个视频帧中的人脸为侧脸。
该目标对象对应多个关键点,在一种可能的实施方式中,该目标对象包括至少一个部位,每个部位分别对应该多个关键点中的至少一个关键点,其中,每个部位的关键点可能用于描述对应部位的形状,也可能用于指示对应部位的特定位置。
在一种可能的实施方式中,用户向计算机设备上传视频,对上传的视频进行关键点检测操作。其中,该关键点检测操作用于指示对该视频帧中的目标对象进行关键点检测。
计算机设备获取用户上传的视频,响应于对该视频的关键点检测操作,将用户上传的视频作为目标视频,按照目标视频中视频帧的排列顺序,从该目标视频中的第一个视频帧开始,依次读取该目标视频中的各个视频帧。每个读取到一个视频帧后,计算机设备对读取到的视频帧执行下述步骤202。
在步骤202中,计算机设备对目标视频中的当前帧进行目标对象识别。
其中,该目标视频的当前帧为当前从该目标视频中读取到的视频帧。
在一种可能的实施方式中,计算机设备对当前帧进行目标对象识别,若在当前帧中识别到目标对象,则将当前帧中目标对象所在的区域作为目标区域,对该目标区域进行特征提取,得到当前帧中目标对象的描述信息,该描述信息用于描述该目标区域中显示的目标对象。
其中,该描述信息包括该目标对象的形状数据以及姿态数据,该形状数据用于描述该目标对象的形状。以人脸为例,人脸的形状例如圆脸、长脸、瓜子脸、胖脸或瘦脸等。姿态数据用于描述当前帧中该目标对象的姿态。以人脸为例,脸的姿态例如人脸正视前方、左转、右转、上仰或者下俯等。
在一种可能的实施方式中,若该目标对象为人脸,该描述信息还包括表情数据,该表情数据用于指示该当前帧中目标对象的表情。表情例如开心、哭泣以及悲伤等。在另一种可能的实施方式中,该描述信息还包括该目标对象的光照数据以及纹理数据,其中,光照数据用于指示该当前帧中目标对象上的光照情况。纹理数据用于指示当前帧中目标对象的纹理。
若在当前帧未识别到目标对象,则不对该当前帧进行202之后的步骤,计算机设备读取当前帧的后一帧,并将当前帧的后一帧作为新的当前帧,再次执行本步骤202。
需要说明的是,本公开实施例对当前帧进行目标对象识别的方式不做限定,在当前帧包括目标对象的情况下,能够在当前帧中识别出目标对象即可。
在步骤203中,若在当前帧中识别到目标对象,计算机设备对当前帧进行关键点检测,得到目标对象的多个关键点在当前帧中的位置。
其中,由于当前帧为二维图像,则每个关键点的在当前帧中的位置表示为(x,y),该计算机设备以当前帧中的任一点为二维坐标轴的原点,对于检测出的一个关键点而言,x为该关键点在二维坐标轴的x轴上对应的位置,y为该关键点在二维坐标轴的y轴上对应的位置。
在一种可能的实施方式中,计算机设备基于该目标对象的描述信息,对当前帧进行关键点检测,得到该多个关键点在当前帧中的位置。
例如,该计算机设备将该描述信息作为输入数据,输入关键点检测模型,该关键点检测模型基于输入的描述信息,对当前帧进行关键点检测,输出多个关键点在当前帧中的位置。
其中,该关键点检测模型包括神经网络模型或机器学习模型,该关键点检测模型具有对目标对象的关键点进行检测的功能。在此,本公开实施例对关键点检测模型的类型不做限定,在视频帧包括目标对象的情况下,能够对检测出视频帧中目标对象的关键点即可。
在步骤204中,计算机设备基于该当前帧,对该目标对象进行三维建模,得到该目标对象的三维结构。
其中,该三维结构为该当前帧中的该目标对象在三维空间上的模型。该三维结构中的像素点与当前帧中目标区域内的像素点一一对应,可以理解的是,三维结构中的每个像素点为三维空间中的一个像素点,而当前帧内的每个像素点为二维空间中的一个像素点。为了便于描述将三维结构中的像素点称为三维像素点,将该当前帧中的像素点称为二维像素点。
在一种可能的实施方式中,计算机设备将该目标对象的描述信息作为输入数据,输入三维建模模型,三维建模模型基于输入的描述信息,对当前帧中的目标对象进行三维建模,输出该目标对象的三维结构。
其中,该三维建模模型为神经网络模型或机器学习模型,该三维模型具有对目标对象进行三维建模的功能。例如,若该目标对象为人脸,该三维建模模型包括3DMM(3D FaceMorphable Modes,三维可变形人脸模型)、PCA (Principal Component Analysis,主成分分析)人脸模型或者其他三维人脸建模模型。
需要说明的是,该目标对象的描述信息包括该三维建模模型在对目标对象进行三维建模时所需要的各种数据,对于不同的三维建模模型,输入至三维建模模型中的描述信息的内容可能有所不同。在此,本公开实施例对该三维建模模型的类型不做限定,能够对目标对象进行三维建模即可。
在另一种可能的实施方式中,在获取到目标对象的三维结构后,该计算机设备对该三维结构进行消隐,得到消隐后的三维结构。
其中,该三维结构中的部分三维像素点可能被遮挡,被遮挡的原因包括目标对象的自遮挡以及其他遮挡原因。以目标对象为人脸为例,由于人脸左转导致人脸左侧的面部区域中的部分像素点被鼻子遮挡,从而出现人脸自遮挡。通过对三维结构进行消隐,以消除三维结构中被遮挡的像素点,以提高三维结构的显示效果,同时使得建立的三维结构所示的目标对象的姿态更加准确以及立体。
在一种可能的实施方式中,计算机设备将该三维结构作为输入数据,输入消隐模型,消隐模型基于输入的三维结构,对三维结构中被遮挡的三维像素点进行消隐,输出消隐后的三维结构。
该消隐模型为深度缓冲器(Z-buffer)算法模型或其他消隐算法模型,本公开实施例对该消隐模型的类型不做限定,能够对三维结构进行消隐即可。
由于通过消隐,三维结构中被遮挡的三维像素点被消除,而未被遮挡的三维像素点不会被消除,为了便于描述将三维结构中被遮挡的三维像素点称为消隐点,未被遮挡的三维像素点称为非消隐点。若当前帧中的目标对象出现自遮挡的情况,该三维结构中存在至少一个消隐点。
在另一种可能的实施方式中,消隐模型还能够输出至少一个消隐点在该三维结构中的位置。若消隐模型不输出至少一个消隐点在三维结构中的位置,则计算机设备将该三维结构中的三维像素点与消隐后的三维结构中的三维像素点进行比较,将该三维结构中存在且消隐后的三维结构不存在的三维像素点作为消隐点,并获取各个消隐点在该三维结构中的位置。
需要说明的是,本步骤204所示的过程为获取当前帧中目标对象的三维结构一种方式。
在步骤205中,计算机设备基于当前帧中的目标对象以及该目标对象的三维结构,生成当前帧对应的第一索引信息,该第一索引信息用于指示三维结构中每个三维像素点与当前帧中目标区域内每个二维像素点之间的对应关系。
其中,该第一索引信息包括当前帧中目标区域内的每个二维像素点的位置以及该三维结构中每个三维像素点的位置,且每个二维像素点的位置分别对应一个三维像素点的位置。
在另一种可能的实施方式中,若三维结构中存在至少一个消隐点,该第一索引信息还包括至少一个消隐标识,每个消隐标识对应一个三维像素点在三维结构中的位置以及该三维像素点对应的二维像素点在当前帧中的位置。每个消隐标识指示对应的三维像素点为消隐点。在另一种可能的实施方式中,第一索引信息还包括当前帧的标识以及三维结构的标识,其中,当前帧的标识用于指示该当前帧,三维结构的标识用于指示该三维结构。
例如,该计算机设备将该三维结构中的每个三维像素点映射至当前帧中的目标区域内,以确定目标区域内每个三维像素点所对应的二维像素点,将每个三维像素点在三维结构中的位置与对应的二维像素点在当前帧中的位置关联存储在第一索引信息中。
在一种可能的实施方式中,若某一三维像素点为消隐点,计算机设备在第一索引信息中与该三维像素点的关联位置添加消隐标识。或者,计算机设备还在第一索引信息中添加当前帧以及三维结构的标识。
在一种可能的实施方式中,第一索引信息以表格的形式存在,如下述表1所示,以当前帧为视频帧1为例,视频帧1对应三维结构11,视频帧1中的目标区域包括n个二维像素点,三维结构11包括n个三维像素点,n个二维像素与n个三维像素点一一对应。其中,n为正整数。
表1
在另一种可能的实施方式中,计算机设备基于当前帧中目标区域内各个二维像素点的位置,构建与当前帧对应的k-d树(k-dimensional tree,k-维树),该k-d树包括多个节点,该多个节点与该目标区域中的二维像素点一一对应,每个节点包括对应二维像素点在当前帧中的位置,以便在后续在k-d树中搜索目标区域内的二维像素点的位置。
为了进一步说明步骤201-205所示的过程,以目标对象为人脸为例,参见图3根据一示例性实施例示出的一种三维人脸重建以及k-d树构建的示意图,如图3所示,向计算机设备输入的目标视频为人脸视频,计算机设备对视频帧中的人脸进行三维人脸重建,得到三维人脸结构(即三维结构),对三维人脸结构进行消隐,以消除三维人脸结构中被遮挡的三维像素点,将三维人脸结构投影至视频帧中的人脸,得到人脸上的二像素点与三维人脸结构中三维像素点之间的映射关系。另外,计算机设备基于人脸上的各个二维像素点在视频帧中的坐标(即位置),构建k-d树,如图3中的k-d树包括节点P1-P8,每个节点包括人脸上一个二维像素点的坐标,其中,节点P3为节点P1和P2的父节点,节点P3为P4的子节点,节点P5为节点P6和P7的父节点,节点P5为节点P4的子节点,节点P8为节点P6的子节点。
当步骤205执行完成后,计算机设备判定当前帧是否为包括同一目标对象的多个视频帧中的第一个视频帧。其中,同一目标对象是指同一检测对象的目标对象,以目标对象为人脸为例,同一目标对象是指同一个人的人脸。
若当前帧是包括同一目标对象的多个视频帧中的第一个视频帧,则计算机设备执行下述步骤206,若当前帧不是包括同一目标对象的多个视频帧中的第一个视频帧,则计算机设备执行下述步骤207-211。
在此,对计算机设备判定当前帧是否为包括同一目标对象的多个视频帧中的第一个视频帧作如下介绍。
例如,若当前帧为目标视频的第一个视频帧,且当前帧包括目标对象,则目标视频帧中当前帧之后的至少一个视频帧也可能均包括和该目标对象,则当前帧为包括同一目标对象的多个视频帧中的第一个视频帧。
再例如,若当前帧不是目标视频的第一个视频帧,目标视频中当前帧的前一帧不包括目标对象,且当前帧包括目标对象,则当前帧之后的至少一个视频帧也可能均包括该目标对象,则当前帧为包括同一目标对象的多个视频帧中的第一个视频帧。
再例如,若当前帧的前一帧包括目标对象且当前帧也包括目标对象,则该计算机设备基于前一帧中的目标对象所对应的三维结构以及当前帧中的目标对象所对应的三维结构,确定前一帧中的目标对象和当前帧中的目标对象是否为同一目标对象。若前一帧中的目标对象和当前帧中的目标对象是同一目标对象,则说明当前帧不是包括同一目标对象的多个视频帧中的第一个视频帧,若前一帧中的目标对象和当前帧中的目标对象不是同一目标对象,则当前帧为包括同一目标对象的多个视频帧中的第一个视频帧。
在步骤206中,若当前帧是包括同一目标对象的多个视频帧中的第一个视频帧,计算机设备基于多个关键点在当前帧中的位置,生成第二索引信息,第二索引信息包括该多个关键点在当前帧中的位置以及该多个关键点在该三维结构中的位置。
其中,在该第二索引信息中,每个关键点在当前帧中的位置与对应关键点在该三维结构中的位置对应。在一种可能的实施方式中,第二索引信息以表格的形式存在。如下述的表2所示的第二索引信息,若目标对象对应m个关键点,每个关键点的标识分别对应该关键点在当前帧中的位置以及该关键点在三维结构中的位置,其中,m为正整数。
表2
例如,对于该多个关键点中的任一关键点,该计算机设备将该任一关键点在当前帧中的位置与在三维结构中的位置,关联存储在第二索引信息中。
在一种可能的实施方式中,对于该多个关键点中的任一关键点,计算机设备基于任一关键点在当前帧中的位置,查询当前帧中与该任一关键点距离最近的像素点。例如,计算机设备基于当前帧中该任一关键点的位置以及当前帧对应的k-d树中各个节点所包括的位置,在该k-d树中查询与该任一关键点的位置最近的节点,将该节点所对应的二维像素点作为当前帧中与该任一关键点距离最近的像素点。
当查询出当前帧中与该任一关键点距离最近的像素点后,计算机设备确定该像素点对应的三维像素点是否为消隐点。例如,计算机设备在该第一索引信息中,查询该像素点对应的三维像素点的位置是否对应消隐标识,若对应消隐标识,说明该像素点与三维结构中的消隐点对应。若不对应消隐标识,说明该像素点与三维结构中的非消隐点对应。
如果查询出的像素点对应的三维像素点为消隐点,则计算机设备再次查询当前帧中与该任一关键点距离次近的二维像素点,依此类推,直至查询出的二维像素点所对应的三维像素点为非消隐点为止,则将最后查询出的二维像素点确定为当前帧中与该任一关键点距离最近的像素点。
或者,计算机设备从三维结构中各个非消隐点对应的二维像素点中,查询在当前帧中与任一关键点距离最近的二维像素点。
可以理解的是,最终确定出的当前帧中与该任一关键点距离最近的像素点所对应的三维像素点是非消隐点,而不是消隐点。
当确定出当前帧中与该任一关键点距离最近的像素点之后,计算机设备将该像素点在当前帧中的位置作为该任一关键点在当前帧中的最新位置。计算机设备还能够基于该像素点在当前帧中的位置,从第一索引信息中,查询该像素点对应的三维像素点在三维结构中的位置,将该三维像素点在三维结构中的位置作为该任一关键点在三维结构中的最新位置。之后,计算机设备将第二索引信息中该任一关键在当前帧中的位置更新为该任一关键点在当前帧中的最新位置,将该任一关键在三维结构中的位置更新为该任一关键点在三维结构中的最新位置。
需要说明的是,若当前帧中与该任一关键点距离最近的像素点与该任一关键点在当前帧中的位置相同,该计算机设备不更新第二索引信息中该任一关键点在当前帧中的位置以及在三维结构中的位置。第二索引信息可以理解为目标对象的多个关键点的全局拓扑索引。当生成第一索引信息和第二索引信息后,计算机设备存储第一索引信息和第二索引信息。
在另一种可能的实施方式中,该计算机设备可能没有提前在第二索引信息中存储该任一关键点在当前帧以及该三维结构中的位置,而是在确定出当前帧中与该任一关键点距离最近的像素点之后,该计算机设备将该像素点在当前帧中的位置作为该任一关键点在当前帧中的最新位置,将该像素点对应的三维像素点在该三维结构中的位置作为该任一关键在该三维结构中的最新位置,将这两个最新位置关联存储在第二索引信息中。
在步骤207中,若当前帧不是包括同一目标对象的多个视频帧中的第一个视频帧,则计算机设备将当前帧作为第一视频帧,获取该目标对象的第二三维结构,该第二三维结构基于该第一视频帧的前一帧得到。
为了区分基于第一视频帧得到的三维结构和基于第一视频帧的前一帧得到的三维结构,将基于第一视频帧得到的三维结构称为第一三维结构,将基于第一视频帧的前一帧得到的三维结构称为第二三维结构。
若当前帧不是包括同一目标对象的多个视频帧中的第一个视频帧,计算机设备将当前帧作为第一视频帧,则步骤204中得到的三维结构也即是第一三维结构。
若当前帧不是包括同一目标对象的多个视频帧中的第一个视频帧,则目标视频中当前帧的前一帧包括目标对象。相应地,在步骤202之前,该计算机设备基于第一视频帧的前一帧,对目标对象进行三维建模,得到的三维结构为第二三维结构,并存储第二三维结构。之后,在处理第一视频帧时,该计算机设备能够从存储的三维结构中,获取该第二三维结构。
其中,计算机设备基于第一视频帧的前一帧,对目标对象进行三维建模过程与步骤204同理,在此,本公开实施例对计算机设备基于第一视频帧的前一帧,对目标对象进行三维建模过程不再赘述。
在步骤208中,计算机设备基于该多个关键点在该第一视频帧中的位置,确定该多个关键点在该第一三维结构中的位置以及该多个关键点在该第二三维结构中的位置,该第一三维结构以及该第二三维结构分别基于第一视频帧以及第一视频帧的前一帧得到。
其中,第一三维结构中的每个位置分别对应第一视频帧中目标区域中的一个位置,第二三维结构中的每个位置分别对应第二视频帧中目标区域中的一个位置。
对于该多个关键点中的任一关键点,计算机设备基于第一三维结构与第一视频帧中目标区域内各个位置之间的对应关系以及该任一关键点在第一视频帧中的位置,确定任一关键点在该第一三维结构中的位置。例如,若任一关键点在第一视频帧中的位置为位置1,位置1对应第一三维结构中的位置2,则位置2为该任一关键点在第一三维结构中的位置。
类似地,该计算机设备基于第二三维结构与第二视频帧中目标区域内各个位置之间的对应关系以及任一关键点在第二视频帧中的位置,确定任一关键点在该第二三维结构中的位置。
若第一三维结构与第二三维结构所示的目标对象的姿态不同,相应地,第一视频帧与前一帧中所示的目标对象的姿态不同,可能导致该多个关键点中的至少一个关键点在第一视频帧与前一帧中的位置不同,从而相对于至少一个关键点在前一帧中的位置,该至少一个关键点在第一视频帧的位置出现抖动。为了区分该至少一个关键点以及该多个关键点中的其他关键点,将该至少一个关键点中的每个关键点均称为目标关键点。本公开实施例将每个目标关键点作为第一视频帧中位置待更新的关键点,通过更新目标关键点在第一视频帧中的位置,来降低目标关键点在第一视频帧中位置的抖动幅度。
若第一三维结构与第二三维结构所示的目标对象的姿态相同,相应地,该多个关键点在第一视频帧与前一帧中的位置相同,从而相对于该多个关键点在前一帧中的位置,该多个关键点在第一视频帧的位置不会出现抖动,也就无需确定第一视频帧中的目标关键点。
下述步骤209用于确定目标关键点,因此,在步骤209执行之前,计算机设备基于第一三维结构与第二三维结构所示的目标对象的姿态,来判断是否需要执行下述步骤209。
在一种可能的实施方式中,若第一三维结构与第二三维结构所示的目标对象的姿态不同,执行下述步骤209以及209之后的步骤。若第一三维结构与第二三维结构所示的目标对象的姿态相同,则不执行下述步骤209以及209之后的步骤,而是将多个关键点在前一帧中的位置确定为该多个关键点在该第一视频帧中的位置。例如,计算机设备不对当前存储的第二索引信息进行更新,将第二索引信息中的多个关键点在前一帧中的位置,确定为该多个关键点在该第一视频帧中的位置,将第二索引信息中的多个关键点在第二三维结构中的位置,确定为该多个关键点在第一三维结构中的位置。
计算机设备获取第一三维结构的第一姿态数据以及第二三维结构的第二姿态数据,基于该第一姿态数据以及该第二姿态数据,确定该第一三维结构与第二三维结构所示的目标对象的姿态是否相同,其中,第一姿态数据用于指示第一三维结构所示的目标对象的姿态,第二姿态数据用于指示第二三维结构所示的目标对象的姿态。
例如,该计算机设备对该第一姿态数据与第二姿态数据进行比较,若第一姿态数据与第二姿态数据相同,则该第一三维结构与第二三维结构所示的目标对象的姿态相同,否则,该第一三维结构与第二三维结构所示的目标对象的姿态不同。
需要说明的是,本公开实施例对获取第一姿态数据和第二姿态数据的方式不做限定,能够获取到即可。
在另一种可能的实施方式中,若第一三维结构与第二三维结构所示的目标对象的姿态不同,计算机设备获取第一三维结构与第二三维结构所示的目标对象的姿态变化幅度,该姿态变化幅度用于指示第一三维结构与第二三维结构所示的目标对象之间的姿态变化情况。若该姿态变化幅度小于或等于第四阈值,则认为该多个关键点在第一视频帧以及前一帧中的位置相同,计算机设备不执行下述步骤209以及209之后的步骤,从而无须对第二索引信息进行更新,减少了第二索引信息更新的次数。其中,第四阈值可根据实际应用场景进行设置,在此,本公开实施例对第四阈值的取值范围不做限定。
若该姿态变化幅度大于第四阈值,对于第一视频帧而言,该多个关键点中可能存在目标关键点。则计算机设备执行下述步骤209以及209之后的步骤。
在一种可能的实施方式中,该姿态变化幅度等于该第一三维结构与第二三维结构之间的航偏角差值。例如,第一姿态数据包括该第一三维结构的第一航偏角,第一航偏角为第一三维结构所示的目标对象相对于正面的偏转角度。第二姿态数据包括该第二三维结构的第二航偏角,第二航偏角为第二三维结构所示的目标对象相对于正面的偏转角度。该计算机设备将该第一航偏角和第二航偏角之间差值作为该第一三维结构与第二三维结构之间的航偏角差值,将该航偏角差值作为该姿态变化幅度。
在步骤209中,计算机设备基于该多个关键点在第一三维结构中的位置以及该多个关键点在第二三维结构中的位置,从该多个关键点中确定目标关键点,该目标关键点在第一视频帧和第一视频帧的前一帧中的位置不同。
其中,该目标关键点包括第一目标关键点和第二目标关键点中的至少一种。该第一目标关键点在第一三维结构以及第二三维结构中的可见性不同。第二目标关键点在第一三维结构中的位置与在第二三维结构中的位置之间的偏移距离大于第一阈值。
以第一目标关键点为例,对本步骤209作如下介绍。
对于第一三维结构以及第二三维结构中的任一三维结构,该第一目标关键点在任一三维结构可见性是指该第一目标关键点在该任一三维结构中的位置是否有像素点。
对于前后视频帧语义一致的关键点,由于视角畸变可能导致对应的三维结构中的可见性发生改变,因此,该计算机设备将第一目标关键点作为待更新的目标关键点。
对于该多个关键点中的任一关键点,若该任一关键点在该第一三维结构中的位置处有像素点,且该任一关键点在该第二三维结构中的位置处没有像素点,说明该任一关键点在该第一三维结构和第二三维结构中的可见性不同,该任一关键点在第一视频帧以及第一视频帧的前一帧中的位置可能不同,则计算机设备将该任一关键点确定为第一目标关键点。
或者,若该任一关键点在该第一三维结构中的位置处没有像素点,且该任一关键点在该第二三维结构中的位置处有像素点,说明该任一关键点在该第一三维结构和第二三维结构中的可见性不同,该任一关键点在第一视频帧以及第一视频帧的前一帧中的位置可能不同,则计算机设备将该任一关键点确定为第一目标关键点。
以第二目标关键点为例,对本步骤209作如下介绍。
由于相机畸变,即使关键点在第一三维结构和第二三维结构中的可见性相同,目标对象的姿态变化可能使得检测出的关键点的位置不准确,因此,将第二目标关键点作为待更新的目标关键点。
在一种可能的实施方式中,对于该多个关键点中的任一关键点,计算机设备对该任一关键点在该第一三维结构中的位置与在该第二三维结构中的位置进行归一化,得到两个目标位置,这两个目标位置分别对应该任一关键点在该第一三维结构中的位置与在该第二三维结构中的位置。计算机设备计算这两个目标位置之间的欧式距离,将该欧式距离作为该任一关键点在该第一三维结构中的位置与在该第二三维结构中的位置之间的偏移距离。若该偏移距离大于该第一阈值,计算机设备将该任一关键点确定为该第二目标关键点。
在一种可能的实施方式中,计算机设备从目标对象对应的除第一目标关键点之外的各个关键点中选取第二目标关键点。例如,对于该多个关键点中的任一关键点,若该第一关键点不是第一目标关键点,且该任一关键点在该第一三维结构中的位置与在该第二三维结构中的位置之间的偏移距离大于该第一阈值,则计算机设备将该任一关键点确定为该第二目标关键点。
为了进一步说明第一目标关键点和第二目标关键的确定过程,参见图4根据一示例性实施例示出的一种确定目标关键点的流程图,如图4所示,以目标对象为人脸为例,计算机设备计算前后视频帧对应的两个三维人脸结构的人脸姿态是否发生变化。若发生变化,计算机设备确定两个三维人脸结构之间的航偏角差值是否大于第四阈值。若大于第四阈值,对于目标对象对应的多个关键点中的每个关键点,计算机设备将每个关键点在这两个三维人脸结构中的可见性进行比较,以确定关键点是否满足可见性条件,将满足可见性条件的各个关键点作为第一目标关键点,加入更新队列。对于多个关键点中剩余的每个关键点,计算机设备在第二索引信息中,查询关键点在前帧对应的三维人脸结构中的位置,对关键点在前帧对应的三维人脸结构中的位置以及在后帧对应的三维人脸结构中的位置进行归一化,根据归一化结果,计算这两个位置之间的欧式距离。判断欧式距离是否大于第一阈值,如果大于第一阈值,则该关键点满足距离条件,计算机设备将该满足距离条件的关键点作为第二目标关键点,加入更新队列。
目标对象的自遮挡,可能导致同一部位对应的关键点中的部分关键点为第一目标关键点,若只更新该部位对应的第一目标关键点的位置,则导致该部位的整体感被破坏。为了避免出现这种情况,若同一部位对应的所有关键点中第一目标关键点和第二目标关键点的总占比较高,计算机设备还能将同一部位对应的所有关键点作为目标关键点,加入更新队列,以便对同一部位对应的所有关键点的位置进行同步更新。
在一种可能的实施方式中,该目标对象包括至少一个部位,每个部位对应该多个关键点中的至少一个关键点,该目标对象的目标关键点包括该至少一个部位中目标部位对应的所有关键点。其中,该目标部位对应的所有关键点中第一目标关键点和第二目标关键点的总占比大于第二阈值。
例如,对于该至少一个部位中的任一部位,若该任一部位对应的所有关键点中第一目标关键点和第二目标关键点的总占比大于第二阈值,则该计算机设备将该任一部位作为该目标部位,将该任一部位对应的关键点作为目标关键点。
再例如,该至少一个部位中的任一部位对应该多个关键点中的至少一个关键点,若该任一部位为非刚性部位,且该至少一个关键点中第一目标关键点和第二目标关键点的总占比大于第二阈值,该计算机设备将该任一部位作为目标部位,将该至少一个关键点作为该目标关键点。若该任一部位为刚性部位,且该至少一个关键点中该第一目标关键点和该第二目标关键点的总占比大于第三阈值,该计算机设备将该任一部位作为目标部位,将该至少一个关键点作为目标关键点。
考虑到非刚性部位对应的关键点的位置更新频率高于刚性部位对应的关键点的位置更新频率,则第三阈值大于第二阈值。第二阈值和第三阈值可根据实际应用场景配置,在此,本公开实施例对第二阈值以及第三阈值的取值范围不做限定。
以目标对象为人脸为例,非刚性部位包括眼睛和嘴巴等,刚性部位包括人脸部位,在第二阈值为1/5,第三阈值为1/3的情况下,若眼睛对应的至少一个关键点中第一目标关键点和第二目标关键的总占比大于1/5,则将眼睛对应的各个关键点作为目标关键点,若人脸部位对应的至少一个关键点中第一目标关键点和第二目标关键的总占比大于1/3,则将人脸部位对应的各个关键点作为目标关键点。
需要说明的是,上述步骤208-209所示过程也即是计算机设备基于该多个关键点在该第一视频帧中的位置以及该目标对象的第一三维结构,从该多个关键点中确定目标关键点的过程。
在步骤210中,计算机设备基于该目标关键点在该第一视频帧中的位置,确定在该第一视频帧中与该目标关键点的距离符合距离条件的目标像素点。
其中,目标像素点为在该第一视频帧中与该目标关键点的距离符合距离条件的二维像素点。该多个关键点中的目标关键点有至少一个,计算机设备对每个目标关键点均执行210以及步骤210,为了便于描述,以一个目标关键点为例,对本步骤210作如下介绍。
在一种可能的实施方式中,该目标像素点为在第一视频帧中与目标关键点距离最近的像素点。对于这种可能的实施方式,对本步骤210作如下介绍。
计算机设备基于第一视频帧中该目标关键点的位置以及第一视频帧对应的k-d树中各个节点所包括的位置,在该k-d树中查询与该目标关键点的位置最近的节点,将查询到的节点所对应的二维像素点作为目标像素点。例如,计算机设备基于第一视频帧中该目标关键点的位置,查询将该k-d树中是否存在包括该目标关键点的位置的节点,若存在,则该节点所对应的二维像素点为目标像素点,若不存在,再查询该k-d树中与该位置最近的节点,将查询到的该节点所对应的二维像素点作为目标像素点。
另外,若第一三维结构中存在至少一个消隐点,将第一视频帧中与每个消隐点对应的二维像素点称为第一像素点,也即是,该至少一个消隐点对应第一视频帧中的至少一个第一像素点。考虑到第一视频帧中与目标关键点距离最近的像素点所对应的三维像素点为消隐点,在另一种可能的实施方式中,目标像素点为第一视频帧中除至少一个第一像素点的以外且与目标关键点距离最近的像素点。对于这种可能的情况,本步骤210包括下述步骤1-3。
在步骤1中,计算机设备基于该目标关键点在第一视频帧中的位置,从第一视频帧中的像素点,确定k个第二像素点,该k个第二像素点为该第一视频帧中与该目标关键点距离最近的k个像素点,k为正整数。
例如,计算机设备基于第一视频帧中该目标关键点的位置以及第一视频帧对应的k-d树中各个节点所包括的位置,在该k-d树中查询与该目标关键点的位置最近的k个节点,将k个节点对应的二维像素点作为第二像素点。
在步骤2中,计算机设备基于该第一三维结构中的至少一个消隐点,从k个第二像素点中确定s个第三像素点,每个第三像素点均不是与消隐点对应的第一像素点,s为小于或等于k的正整数。
对于该k个第二像素点中的任一像素点,计算机设备基于任一像素点在第一视频帧中的位置,从第一索引信息中查询该位置是否对应消隐标识。若该位置对应消隐标识,说明该任一像素点对应该第一三维结构中的一个消隐点,该任一像素点为第一像素点,该计算机设备舍弃该任一像素点。若该位置不对应消隐标识,说明该任一像素点对应该第一三维结构中的一个非消隐点,该任一像素点不是第一像素点,计算机设备将该任一像素点作为第三像素点。
需要说明的是,若k个第二像素点均为第一像素点,说明该k个第二像素点中不存在第三像素点,则计算机设备扩大搜索范围,以第一视频帧中目标像素点的位置为中心,以k个第二像素点为边界,从该边界向与目标像素点相反的位置搜索与第一视频帧中目标像素点距离最近的r个第四像素点,确定r个第四像素点中是否存在第三像素点,若存在,则r个第四像素点中存在的第三像素点的个数为s,计算机设备执行下述步骤3,否则,计算机设备再次扩大搜索范围,直至搜索到第三像素点为止。其中,r为正整数。
其中,计算机设备搜索第四像素点的方式与计算机设备搜索第二像素点的方式同理,计算机设备从第四像素点中确定第三像素点的方式与从第二像素点中确定第三像素点的方式同理,在此,本公开实施例对计算机设备搜索第四像素点的方式以及从第四像素点中确定第三像素点的方式,不再赘述。
在步骤3中,计算机设备将该第一视频帧中与该目标关键点距离最近的第三像素点确定为该目标像素点。
该计算机设备基于目标像素点在第一视频帧中的位置以及s个第三像素点在第一视频帧中的位置,获取s个数值,s个数值分别对应一个第三像素点,s个数值中的每个数值用于指示在第一视频帧中目标像素点与对应第三像素点之间的距离。计算机设备将s个数值中最小数值对应的第三像素点作为目标像素点。
对于这种可能的实施方式,目标像素点为三维结构中的非消隐点对应的二维像素点中,与该目标关键点在第一视频帧中距离最近的二维像素点。
在步骤211中,计算机设备将该目标关键点在该第一视频帧中的位置更新为目标像素点在第一视频帧中的位置。
在一种可能的实施方式中,该计算机设备生成第一视频帧的关键点位置信息,该关键点位置信息包括检测出的该多个关键点在第一视频帧中的位置,该计算机设备将该关键点位置信息中该目标关键点在第一视频帧中的位置更新为目标像素点在第一视频帧中的位置。
该计算机设备将该目标关键点在该第一视频帧中的位置更新为目标像素点在第一视频帧中的位置,则目标像素点在第一视频帧中的位置也即是目标关键点在该第一视频帧中的最新位置。或者,该计算机设备将前一帧的索引信息中该目标关键点在该前一帧中的位置更新为目标像素点在第一视频帧中的位置,得到该第一视频帧的索引信息。
例如,该计算机设备获取当前存储的第二索引信息,此时该第二索引信息记录的是该多个关键点在第一视频帧的前一帧中的位置。该计算机设备将该第二索引信息内该目标关键点在前一帧中的位置更新为目标像素点在第一视频帧中的位置,将该目标关键点在第二三维结构中的位置更新为在第一维结构中目标像素点对应的三维像素点的位置。
由于目标像素点为第一视频帧中与目标关键点距离最近的像素点,或者是三维结构中的非消隐点对应的二维像素点中,与该目标关键点在第一视频帧中距离最近的二维像素点,总之,目标像素点与目标关键点的距离比较近,因此,相对于前一帧中目标关键点的位置,将该目标关键点在第一视频帧中的位置更新为目标像素点在第一视频帧中的位置,能够降低第一视频帧中目标关键点位置的抖动。
当将第二索引信息中每个关键点的位置都更新完成后,更新后的第二索引信息也即是该第一视频帧对应的全局拓扑索引,更新后的第二索引信息中记录的各个关键点的位置也即是多个关键点在第一视频帧中的位置以及在第一三维结构中的位置,则更新后的第二索引信息也即是第一视频帧的索引信息。
由于第二索引信息在更新之前为第一视频帧的前一帧的索引信息,在对第二索引信息进行更新的过程中,将每个关键点在前一帧中的位置更新为每个关键点对应的目标像素点在第一视频帧中的位置,且在第一视频帧中每个关键点与对应目标像素点之间的距离符合距离条件,使得每个关键点在前一帧的位置与在第一视频帧的位置之间的差值较小,降低了每个关键点在前一帧与第一视频帧之间的位置抖动,从而实现了在相邻视频帧上对各个关键点位置的平滑处理。
在一种可能的实施方式中,当第二索引信息更新完成后,该计算机设备还能够输出该第二索引信息。
在一种可能的实施方式中,当第二索引信息更新完成后,该计算机设备基于更新后的第二索引信息中各个关键点对应的位置,在第一视频帧中各个关键点对应的位置分别标注目标标记,每个目标标记用于指示一个关键点。
为进一步说明步骤210-211所示的过程,参见图5根据一示例性实施例示出的一种对目标关键点进行位置更新的流程图,如图5所示,对于每个目标关键点,计算机设备在第一视频帧中搜索与目标关键点最近的k个像素点,确定k个像素点中是否存在非消隐点对应的像素点。若不存在,则扩大最邻近的搜索范围,直至搜索到非消隐点对应的且距离目标关键点最近的像素点。若存在,则计算机设备从k个像素点中非消隐点对应的像素点内,查询与目标关键点最近的像素点。当查询到最近的像素点后,计算机设备获取最近像素点在第一三维结构中的位置以及在第一视频帧中的位置,将第二索引信息中目标关键点在第二三维结构中的位置更新为该像素点在第一三维结构中的位置,将第二索引信息中目标关键点在第二视频帧中的位置更新为该像素点在第一视频帧中的位置。
当本步骤211执行完成后,计算机设备读取目标视频中第一视频帧的后一帧,将该视频帧的后一帧作为当前帧,跳转执行202-211所示过程,依此类推,直至处理完该目标视频中的每一个视频帧。
本公开实施例提供的方法,通过先检测出目标对象的多个关键点在第一视频帧中的位置,基于目标对象的第一三维结构,确定在第一视频帧和第一视频帧的前一帧中的位置不同的目标关键点,确定在第一视频帧中与目标关键点的距离符合距离条件的目标像素点,由于目标像素点在第一视频帧中的位置与目标关键点在前一帧中的位置符合距离条件,因此,相对于前一帧中目标关键点的位置,将该目标关键点在第一视频帧中的位置更新为目标像素点在第一视频帧中的位置,能够降低第一视频帧中目标关键点位置的抖动,相应地,在播放视频流时,能够提高目标对象的显示效果。
为了进一步说明图2所示的过程,参见图6根据一示例性实施例示出的再一种关键点的位置更新方法的流程图,如图6所示,当计算机设备中输入目标视频后,对于目标视频中的当前帧,计算机设备检测当前帧中目标对象所在的目标区域,并剪裁当前帧中的目标区域,并基于目标区域获取目标对象的描述信息。计算机设备根据目标对象的描述信息,对目标对象进行三维建模,得到三维结构,对三维结构进行消隐。计算机设备将三维结构投影至目标区域,得到三维结构中各个三维像素点与目标区域内各个二维像素点之间的映射关系。计算机设备基于各个二维像素点在当前帧中的位置,构建k-d树。同时,计算机设备对目标区域中的目标对象进行关键点检测,以确定多个关键点在当前帧中位置。计算机设备确定当前帧是否为目标视频帧,其中,目标视频帧为包括同一目标对象的多个视频帧中的第一个视频帧。若当前帧是目标视频帧,则计算机设备从当前帧中搜索与每个关键点最近的二维像素点以及与最近的二维像素点所对应的三维像素点。计算机设备将与每个关键点最近的二维像素点在当前帧中的位置、最近的二维像素点所对应的三维像素点在三维结构中的位置,添加至全局拓扑索引中,并读取当前帧的后一帧,将后一帧作为当前帧继续执行。若当前帧不是目标视频帧,对于当前帧,计算机设备确定多个关键点中是否存在位置待更新的目标关键点。若多个关键点中存在目标关键点,计算机设备查询在当前帧与目标关键点的距离符合条件的目标像素点,计算机设备使用目标像素点在当前帧中的位置,对全局拓扑索引中目标关键点在前一帧中的位置进行更新,使用目标像素点对应的三维像素点在三维结构中的位置,对全局拓扑索引中目标关键点在前一帧对应的三维结构中的位置进行更新。当全局拓扑索引更新完成后,计算机设备读取当前帧的后一帧,将后一帧作为当前帧继续执行。若多个关键点中不存在目标关键点,计算机设备不更新全局拓扑索引,而是读取当前帧的后一帧,将后一帧作为当前帧继续执行。
图7根据一示例性实施例示出的一种关键点的位置更新装置的结构框图。参照图7,该装置700包括:
检测单元701,被配置为执行对目标视频中的第一视频帧进行关键点检测,得到目标对象的多个关键点在所述第一视频帧中的位置;
第一确定单元702,被配置为执行基于所述多个关键点在所述第一视频帧中的位置以及所述目标对象的第一三维结构,从所述多个关键点中确定目标关键点,所述目标关键点在所述第一视频帧和所述第一视频帧的前一帧中的位置不同;
第二确定单元703,被配置为执行基于所述目标关键点在所述第一视频帧中的位置,确定在所述第一视频帧中与所述目标关键点的距离符合距离条件的目标像素点;
更新单元704,被配置为执行将所述目标关键点在所述第一视频帧中的位置更新为所述目标像素点在第一视频帧中的位置。
在一种可能的实施方式中,所述第一确定单元702包括:
第一确定子单元,被配置为执行基于所述多个关键点在所述第一视频帧中的位置,确定所述多个关键点在所述第一三维结构中的位置以及所述多个关键点在所述目标对象的第二三维结构中的位置,所述第一三维结构以及所述第二三维结构分别基于所述第一视频帧以及所述第一视频帧的前一帧得到;
第二确定子单元,被配置为执行基于所述多个关键点在所述第一三维结构中的位置以及所述多个关键点在所述第二三维结构中的位置,从所述多个关键点中确定所述目标关键点。
在一种可能的实施方式中,所述目标关键点包括第一目标关键点,所述第一目标关键点在所述第一三维结构以及所述第二三维结构中的可见性不同,所述第二确定子单元被配置为执行:
对于所述多个关键点中的任一关键点,若所述任一关键点在所述第一三维结构中的位置处有像素点,且所述任一关键点在所述第二三维结构中的位置处没有像素点,则将所述任一关键点确定为所述第一目标关键点;
或者,若所述任一关键点在所述第一三维结构中的位置处没有像素点,且所述任一关键点在所述第二三维结构中的位置处有像素点,则将所述任一关键点确定为所述第一目标关键点。
在一种可能的实施方式中,所述目标关键点包括第二目标关键点,所述第二目标关键点在所述第一三维结构中的位置与在所述第二三维结构中的位置之间的偏移距离大于第一阈值,所述第二确定子单元被配置为执行:
对于所述多个关键点中的任一关键点,若所述任一关键点在所述第一三维结构中的位置与在所述第二三维结构中的位置之间的偏移距离大于所述第一阈值,将所述任一关键点确定为所述第二目标关键点。
在一种可能的实施方式中,所述目标对象包括至少一个部位,每个部位对应所述多个关键点中的至少一个关键点,所述目标关键点包括所述至少一个部位中目标部位对应的所有关键点;
其中,所述目标部位对应的所有关键点中第一目标关键点和第二目标关键点的总占比大于第二阈值,所述第一目标关键点在所述第一三维结构以及所述第二三维结构中的可见性不同,所述第二目标关键点在所述第一三维结构以及所述第二三维结构中的位置之间的偏移距离大于第一阈值。
在一种可能的实施方式中,所述至少一个部位中的任一部位对应所述多个关键点中的至少一个关键点,所述第一确定单元702还被配置为执行:
若所述任一部位为非刚性部位,且所述至少一个关键点中所述第一目标关键点和所述第二目标关键点的总占比大于第二阈值,将所述任一部位作为所述目标部位,将所述至少一个关键点作为所述目标关键点;
若所述任一部位为刚性部位,且所述至少一个关键点中所述第一目标关键点和所述第二目标关键点的总占比大于第三阈值,将所述任一部位作为所述目标部位,将所述至少一个关键点作为所述目标关键点,其中,所述第三阈值大于所述第二阈值。
在一种可能的实施方式中,所述目标像素点为在所述第一视频帧中与所述目标关键点距离最近的像素点。
在一种可能的实施方式中,所述第一三维结构中存在至少一个消隐点,所述至少一个消隐点对应所述第一视频帧中的至少一个第一像素点,所述目标像素点为所述第一视频帧中除所述至少一个第一像素点以外的且与所述目标关键点距离最近的像素点,所述第二确定单元703被配置为执行:
基于所述目标关键点在所述第一视频帧中的位置,从所述第一视频帧中的像素点,确定k个第二像素点,所述k个第二像素点为所述第一视频帧中与所述目标关键点距离最近的k个像素点,所述k为正整数;
基于所述第一三维结构中的所述至少一个消隐点,从所述k个第二像素点中确定s个第三像素点,每个第三像素点均不是与消隐点对应的第一像素点,所述s为小于或等于k的正整数;
将所述第一视频帧中与所述目标关键点距离最近的第三像素点确定为所述目标像素点。
在一种可能的实施方式中,所述第一确定单元702还被配置为执行:
若所述第一三维结构与所述第二三维结构所示的目标对象的姿态不同,执行所述基于所述多个关键点在所述第一视频帧中的位置以及所述目标对象的第一三维结构,从所述多个关键点中确定目标关键点的步骤;
若所述第一三维结构与第二三维结构所示的目标对象的姿态相同,将所述多个关键点在第一视频帧的前一帧中的位置确定为所述多个关键点在所述第一视频帧中的位置。
在一种可能的实施方式中,所述第一确定单元702还被配置为执行:
若所述第一三维结构与所述第二三维结构所示的目标对象的姿态不同,获取所述第一三维结构与所述二三维结构所示的目标对象之间的姿态变化幅度;
若所述姿态变化幅度大于第四阈值,执行所述基于所述多个关键点在所述第一视频帧中的位置以及所述目标对象的第一三维结构,从所述多个关键点中确定目标关键点的步骤。
在一种可能的实施方式中,所述前一帧的索引信息包括所述多个关键点在所述前一帧中的位置,所述更新单元704还被配置为执行:
将所述索引信息中所述目标关键点在所述前一帧中的位置更新为所述目标像素点在第一视频帧中的位置,得到所述第一视频帧的索引信息。
在一种可能的实施方式中,所述装置700还包括:
建模单元,被配置为执行基于所述第一视频帧,对所述目标对象进行三维重建,得到所述第一三维结构。
关于上述实施例中的装置,其中各个单元执行操作的具体方式已经在有关关键点的位置更新方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图8是根据一示例性实施例示出的一种计算机设备的结构示框图,该计算机设备800可因配置或性能不同而产生比较大的差异,可以包括一个或多个处理器801和一个或多个存储器802,其中,所述存储器802中存储有一个或多个处理器80可执行的指令,所述指令由所述处理器801加载并执行以实现上述各个方法实施例提供的方法。当然,该计算机设备800还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该计算机设备800还可以包括其他用于实现设备功能的部件,在此不做赘述。
在示例性实施例中,还提供了一种包括至少一条指令的计算机可读存储介质,例如包括至少一条指令的存储器,上述至少一条指令可由计算机设备中的处理器执行以完成上述实施例中的关键点的位置更新方法。可选地,上述计算机可读存储介质可以是非临时性计算机可读存储介质,例如,该非临时性计算机可读存储介质可以包括ROM(Read-OnlyMemory,只读存储器)、RAM(Random-Access Memory,随机存取存储器)、CD-ROM(CompactDisc Read-Only Memory,只读光盘)、磁带、软盘和光数据存储设备等。
在示例性实施例中,还提供了一种计算机程序产品,包括至少一条指令,该至少一条指令可以由计算机设备的处理器执行,以完成上述各个实施例提供的关键点的位置更新方法。
需要说明的是,本公开所涉及的信息(包括但不限于用户设备信息、用户个人信息等)、数据(包括但不限于用于分析的数据、存储的数据、展示的数据等)以及信号,均为经用户授权或者经过各方充分授权的,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。例如,本公开中涉及的目标视频以及根据目标视频所得到的各种信息都是在充分授权的情况下获取的。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (15)
1.一种关键点的位置更新方法,其特征在于,所述方法包括:
对目标视频中的第一视频帧进行关键点检测,得到目标对象的多个关键点在所述第一视频帧中的位置;
基于所述多个关键点在所述第一视频帧中的位置以及所述目标对象的第一三维结构,从所述多个关键点中确定目标关键点,所述目标关键点在所述第一视频帧和所述第一视频帧的前一帧中的位置不同;
基于所述目标关键点在所述第一视频帧中的位置,确定在所述第一视频帧中与所述目标关键点的距离符合距离条件的目标像素点;
将所述目标关键点在所述第一视频帧中的位置更新为所述目标像素点在第一视频帧中的位置。
2.根据权利要求1所述的关键点的位置更新方法,其特征在于,所述基于所述多个关键点在所述第一视频帧中的位置以及所述目标对象的第一三维结构,从所述多个关键点中确定目标关键点包括:
基于所述多个关键点在所述第一视频帧中的位置,确定所述多个关键点在所述第一三维结构中的位置以及所述多个关键点在所述目标对象的第二三维结构中的位置,所述第一三维结构以及所述第二三维结构分别基于所述第一视频帧以及所述第一视频帧的前一帧得到;
基于所述多个关键点在所述第一三维结构中的位置以及所述多个关键点在所述第二三维结构中的位置,从所述多个关键点中确定所述目标关键点。
3.根据权利要求2所述的关键点的位置更新方法,其特征在于,所述目标关键点包括第一目标关键点,所述第一目标关键点在所述第一三维结构以及所述第二三维结构中的可见性不同,所述基于所述多个关键点在所述第一三维结构中的位置以及所述多个关键点在所述第二三维结构中的位置,从所述多个关键点中确定所述目标关键点包括:
对于所述多个关键点中的任一关键点,若所述任一关键点在所述第一三维结构中的位置处有像素点,且所述任一关键点在所述第二三维结构中的位置处没有像素点,则将所述任一关键点确定为所述第一目标关键点;
或者,若所述任一关键点在所述第一三维结构中的位置处没有像素点,且所述任一关键点在所述第二三维结构中的位置处有像素点,则将所述任一关键点确定为所述第一目标关键点。
4.根据权利要求2所述的关键点的位置更新方法,其特征在于,所述目标关键点包括第二目标关键点,所述第二目标关键点在所述第一三维结构中的位置与在所述第二三维结构中的位置之间的偏移距离大于第一阈值,所述基于所述多个关键点在所述第一三维结构中的位置以及所述多个关键点在所述第二三维结构中的位置,从所述多个关键点中确定所述目标关键点包括:
对于所述多个关键点中的任一关键点,若所述任一关键点在所述第一三维结构中的位置与在所述第二三维结构中的位置之间的偏移距离大于所述第一阈值,将所述任一关键点确定为所述第二目标关键点。
5.根据权利要求2所述的关键点的位置更新方法,其特征在于,所述目标对象包括至少一个部位,每个部位对应所述多个关键点中的至少一个关键点,所述目标关键点包括所述至少一个部位中目标部位对应的所有关键点;
其中,所述目标部位对应的所有关键点中第一目标关键点和第二目标关键点的总占比大于第二阈值,所述第一目标关键点在所述第一三维结构以及所述第二三维结构中的可见性不同,所述第二目标关键点在所述第一三维结构以及所述第二三维结构中的位置之间的偏移距离大于第一阈值。
6.根据权利要求5所述的关键点的位置更新方法,其特征在于,所述至少一个部位中的任一部位对应所述多个关键点中的至少一个关键点,所述方法还包括:
若所述任一部位为非刚性部位,且所述至少一个关键点中所述第一目标关键点和所述第二目标关键点的总占比大于第二阈值,将所述任一部位作为所述目标部位,将所述至少一个关键点作为所述目标关键点;
若所述任一部位为刚性部位,且所述至少一个关键点中所述第一目标关键点和所述第二目标关键点的总占比大于第三阈值,将所述任一部位作为所述目标部位,将所述至少一个关键点作为所述目标关键点,其中,所述第三阈值大于所述第二阈值。
7.根据权利要求1-6中任一项所述的关键点的位置更新方法,其特征在于,所述目标像素点为在所述第一视频帧中与所述目标关键点距离最近的像素点。
8.根据权利要求1-6中任一项所述的关键点的位置更新方法,其特征在于,所述第一三维结构中存在至少一个消隐点,所述至少一个消隐点对应所述第一视频帧中的至少一个第一像素点,所述目标像素点为所述第一视频帧中除所述至少一个第一像素点以外的且与所述目标关键点距离最近的像素点,所述基于所述目标关键点在所述第一视频帧中的位置,确定在所述第一视频帧中与所述目标关键点的距离符合距离条件的目标像素点包括:
基于所述目标关键点在所述第一视频帧中的位置,从所述第一视频帧中的像素点,确定k个第二像素点,所述k个第二像素点为所述第一视频帧中与所述目标关键点距离最近的k个像素点,所述k为正整数;
基于所述第一三维结构中的所述至少一个消隐点,从所述k个第二像素点中确定s个第三像素点,每个第三像素点均不是与消隐点对应的第一像素点,所述s为小于或等于k的正整数;
将所述第一视频帧中与所述目标关键点距离最近的第三像素点确定为所述目标像素点。
9.根据权利要求2-6中任一项所述的关键点的位置更新方法,其特征在于,所述方法还包括:
若所述第一三维结构与所述第二三维结构所示的目标对象的姿态不同,执行所述基于所述多个关键点在所述第一视频帧中的位置以及所述目标对象的第一三维结构,从所述多个关键点中确定目标关键点的步骤;
若所述第一三维结构与第二三维结构所示的目标对象的姿态相同,将所述多个关键点在第一视频帧的前一帧中的位置确定为所述多个关键点在所述第一视频帧中的位置。
10.根据权利要求9所述的关键点的位置更新方法,其特征在于,所述若所述第一三维结构与所述第二三维结构所示的目标对象的姿态不同,执行所述基于所述多个关键点在所述第一视频帧中的位置以及所述目标对象的第一三维结构,从所述多个关键点中确定目标关键点的步骤包括:
若所述第一三维结构与所述第二三维结构所示的目标对象的姿态不同,获取所述第一三维结构与所述二三维结构所示的目标对象之间的姿态变化幅度;
若所述姿态变化幅度大于第四阈值,执行所述基于所述多个关键点在所述第一视频帧中的位置以及所述目标对象的第一三维结构,从所述多个关键点中确定目标关键点的步骤。
11.根据权利要求1-6中任一项所述的关键点的位置更新方法,其特征在于,所述前一帧的索引信息包括所述多个关键点在所述前一帧中的位置,所述基于所述目标关键点在所述第一视频帧中的位置,确定在所述第一视频帧中与所述目标关键点的距离符合距离条件的目标像素点之后,所述方法还包括:
将所述索引信息中所述目标关键点在所述前一帧中的位置更新为所述目标像素点在第一视频帧中的位置,得到所述第一视频帧的索引信息。
12.根据权利要求1-6中任一项所述的关键点的位置更新方法,其特征在于,所述基于所述多个关键点在所述第一视频帧中的位置以及所述目标对象的第一三维结构,从所述多个关键点中确定目标关键点之前,所述方法还包括:
基于所述第一视频帧,对所述目标对象进行三维重建,得到所述第一三维结构。
13.一种关键点的位置更新装置,其特征在于,所述装置包括:
检测单元,被配置为执行对目标视频中的第一视频帧进行关键点检测,得到目标对象的多个关键点在所述第一视频帧中的位置;
第一确定单元,被配置为执行基于所述多个关键点在所述第一视频帧中的位置以及所述目标对象的第一三维结构,从所述多个关键点中确定目标关键点,所述目标关键点在所述第一视频帧和所述第一视频帧的前一帧中的位置不同;
第二确定单元,被配置为执行基于所述目标关键点在所述第一视频帧中的位置,确定在所述第一视频帧中与所述目标关键点的距离符合距离条件的目标像素点;
更新单元,被配置为执行将所述目标关键点在所述第一视频帧中的位置更新为所述目标像素点在第一视频帧中的位置。
14.一种计算机设备,其特征在于,包括:
一个或多个处理器;
用于存储所述一个或多个处理器可执行指令的一个或多个存储器;
其中,所述一个或多个处理器被配置为执行所述指令,以实现如权利要求1至权利要求12中任一项所述的关键点的位置更新方法。
15.一种计算机可读存储介质,其特征在于,当所述计算机可读存储介质中的至少一条指令由计算机设备的一个或多个处理器执行时,使得所述计算机设备能够执行如权利要求1至权利要求12中任一项所述的关键点的位置更新方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210898993.3A CN114998812B (zh) | 2022-07-28 | 2022-07-28 | 关键点的位置更新方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210898993.3A CN114998812B (zh) | 2022-07-28 | 2022-07-28 | 关键点的位置更新方法、装置、计算机设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114998812A true CN114998812A (zh) | 2022-09-02 |
CN114998812B CN114998812B (zh) | 2022-12-09 |
Family
ID=83021490
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210898993.3A Active CN114998812B (zh) | 2022-07-28 | 2022-07-28 | 关键点的位置更新方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114998812B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108830900A (zh) * | 2018-06-15 | 2018-11-16 | 北京字节跳动网络技术有限公司 | 关键点的抖动处理方法和装置 |
US20210049353A1 (en) * | 2019-08-17 | 2021-02-18 | Nightingale.ai Corp. | Ai-based physical function assessment system |
CN113627306A (zh) * | 2021-08-03 | 2021-11-09 | 展讯通信(上海)有限公司 | 关键点处理方法及装置、可读存储介质、终端 |
CN114549646A (zh) * | 2022-02-28 | 2022-05-27 | 阿里巴巴(中国)有限公司 | 关键点位置确定方法及装置 |
-
2022
- 2022-07-28 CN CN202210898993.3A patent/CN114998812B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108830900A (zh) * | 2018-06-15 | 2018-11-16 | 北京字节跳动网络技术有限公司 | 关键点的抖动处理方法和装置 |
US20210049353A1 (en) * | 2019-08-17 | 2021-02-18 | Nightingale.ai Corp. | Ai-based physical function assessment system |
CN113627306A (zh) * | 2021-08-03 | 2021-11-09 | 展讯通信(上海)有限公司 | 关键点处理方法及装置、可读存储介质、终端 |
CN114549646A (zh) * | 2022-02-28 | 2022-05-27 | 阿里巴巴(中国)有限公司 | 关键点位置确定方法及装置 |
Non-Patent Citations (1)
Title |
---|
徐奔等: "基于BRISK的实时视频抖动检测算法", 《计算机工程与设计》 * |
Also Published As
Publication number | Publication date |
---|---|
CN114998812B (zh) | 2022-12-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101994316B1 (ko) | 객체 포즈 추정을 위한 장치 및 방법 | |
EP3798801A1 (en) | Image processing method and apparatus, storage medium, and computer device | |
CN110648397B (zh) | 场景地图生成方法、装置、存储介质及电子设备 | |
US20210279967A1 (en) | Object centric scanning | |
CN104781849B (zh) | 单眼视觉同时定位与建图(slam)的快速初始化 | |
JP5721233B2 (ja) | 画像認識システム | |
US11574424B2 (en) | Augmented reality map curation | |
KR20190080702A (ko) | 3차원 탄성 모델 렌더링 방법, 장치 및 프로그램 | |
CN111710035B (zh) | 人脸重建方法、装置、计算机设备及存储介质 | |
JP2013025490A (ja) | 情報処理装置、物体追跡方法および情報処理プログラム | |
Wang et al. | Point linking network for object detection | |
CN112927363A (zh) | 体素地图构建方法及装置、计算机可读介质和电子设备 | |
CN112907569B (zh) | 头部图像区域的分割方法、装置、电子设备和存储介质 | |
CN113408566A (zh) | 目标检测方法及相关设备 | |
CN111815768B (zh) | 三维人脸重建方法和装置 | |
WO2021178366A1 (en) | Efficient localization based on multiple feature types | |
CN115131437A (zh) | 位姿估计方法及相关模型的训练方法、装置、设备、介质 | |
CN109858402B (zh) | 一种图像检测方法、装置、终端以及存储介质 | |
KR20160046399A (ko) | 텍스쳐 맵 생성 방법 및 장치와 데이터 베이스 생성 방법 | |
CN114998812B (zh) | 关键点的位置更新方法、装置、计算机设备及存储介质 | |
CN109299777B (zh) | 一种基于人工智能的数据处理方法及其系统 | |
JP2011232845A (ja) | 特徴点抽出装置および方法 | |
US20220130069A1 (en) | Method for indoor localization using deep learning | |
US20220103891A1 (en) | Live broadcast interaction method and apparatus, live broadcast system and electronic device | |
Han et al. | 3D human model reconstruction from sparse uncalibrated views |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |