关键点检测方法、装置、设备及可读存储介质与流程

文档序号:18107316发布日期:2019-07-06 11:45阅读:169来源:国知局
关键点检测方法、装置、设备及可读存储介质与流程

本申请实施例涉及人脸识别领域,特别涉及一种关键点检测方法、装置、设备及可读存储介质。



背景技术:

人脸关键点检测技术是一种对图像中人脸的眉毛周侧、眼睛周侧、鼻子周侧、嘴周侧以及脸部轮廓上的关键点中的至少一种进行检测的技术,根据检测得到的关键点对图像中的人脸进行进一步处理。而由于人脸关键点检测过程中,人脸关键点检测算法检测由于检测过程的不稳定性存在抖动问题,如:第k帧图像中的人脸关键点检测较为准确,而第k+1帧图像中的人脸关键点检测偏上时,会产生人脸关键点向上抖动的问题。

相关技术中,在对人脸关键点抖动问题的解决方案中,通常采用滤波器算法对检测得到的人脸关键点进行滤波,如:在检测得到人脸关键点后,为每个人脸关键点设置一个滤波器,通过滤波器调整每个关键点的位置,得到防抖之后的关键点,滤波器的调节参数是预先设置的,且所有人脸关键点的滤波器共享同一个调节参数。

然而,由于在人脸关键点抖动过程中,每个部分的抖动程度可能是不同的,如:眼部关键点的抖动较为明显,而嘴部的关键点抖动较小,而脸部整体轮廓的关键点抖动也较为明显,由于滤波器的调节参数是共享的,针对不同的部位关键点的调节无法根据不同部位抖动程度的不同而对应调节,故调节结果不准确,人脸关键点抖动问题无法缓解。



技术实现要素:

本申请实施例提供了一种关键点检测方法、装置、设备及可读存储介质,可以解决关键点调节结果不准确,人脸关键点抖动问题无法缓解的问题。所述技术方案如下:

一方面,提供了一种关键点检测方法,所述方法包括:

获取视频图像组,所述视频图像组中包括n帧视频图像,n≥2;

对所述视频图像组中第k-1帧视频图像进行检测,得到第一关键点集合,1<k≤n;

对所述视频图像组中第k帧视频图像进行检测,得到第二关键点集合;

通过所述第一关键点集合、所述第二关键点集合、所述第一关键点集合对应的第一向量集合以及所述第二关键点集合对应的第二向量集合,确定所述第k帧视频图像的防抖关键点集合,所述第一向量集合中包括所述第一关键点集合中的关键点之间的向量,所述第二向量集合中包括所述第二关键点集合中的关键点之间的向量。

另一方面,提供了一种关键点检测装置,所述装置包括:

获取模块,用于获取视频图像组,所述视频图像组中包括n帧视频图像,n≥2;

检测模块,用于对所述视频图像组中第k-1帧视频图像进行检测,得到第一关键点集合,1<k≤n;

所述检测模块,还用于对所述视频图像组中第k帧视频图像进行检测,得到第二关键点集合;

确定模块,用于通过所述第一关键点集合、所述第二关键点集合、所述第一关键点集合对应的第一向量集合以及所述第二关键点集合对应的第二向量集合,确定所述第k帧视频图像的防抖关键点集合,所述第一向量集合中包括所述第一关键点集合中的关键点之间的向量,所述第二向量集合中包括所述第二关键点集合中的关键点之间的向量。

另一方面,提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如上述本申请实施例中提供的关键点检测方法。

另一方面,提供了一种计算机可读存储介质,所述可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如上述本申请实施例中提供的关键点检测方法。

另一方面,提供了一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得计算机执行如上述本申请实施例中提供的关键点检测方法。

本申请实施例提供的技术方案带来的有益效果至少包括:

在对第k帧视频图像的关键点进行检测时,通过根据第k-1帧视频图像的关键点、第k帧视频图像的关键点、第k-1帧视频图像的关键点对应的向量以及第k帧视频图像的关键点对应的向量对第k帧视频图像的关键点进行调整,得到第k帧视频图像的防抖关键点,结合关键点和向量对关键点进行防抖处理,即,将根据局部关键点进行调整以及根据整体关键点进行全局调整结合起来,避免由于不同部位关键点的抖动程度不同而导致的抖动调节不准确问题,提高防抖处理的准确度,减缓视频图像中关键点的抖动程度。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本申请一个示例性实施例提供的人脸关键点检测结果示意图;

图2是本申请一个示例性实施例提供的关键点检测方法的流程图;

图3是基于图2示出的实施例提供的关键点检测方法的过程示意图;

图4是基于图2示出的实施例提供的另一个关键点检测方法的过程示意图;

图5是本申请另一个示例性实施例提供的关键点检测方法的流程图;

图6是本申请一个示例性实施例提供的关键点之间的向量的示意图;

图7是本申请另一个示例性实施例提供的关键点检测方法的流程图;

图8是基于如图7所示的实施例提供的关键点检测方法的过程示意图;

图9是本申请一个示例性实施例提供的关键点检测装置的结构框图;

图10是本申请另一个示例性实施例提供的关键点检测装置的结构框图;

图11是本申请一个示例性实施例提供的终端的结构框图。

具体实施方式

为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。

首先,对本申请实施例中涉及的名词进行简单介绍:

人脸关键点:是指在人脸检测过程中,检测得到的关键部位的标识点,可选地,该关键部位包括人脸五官所在的部位,该人脸关键点标识于待检测图像中人脸整体轮廓周侧、眉眼周侧、鼻部周侧、以及唇部周侧。可选地,该人脸关键点中包括脸部轮廓关键点、眉眼关键点、鼻部关键点、唇部关键点、耳朵关键点中的至少一种,可选地,眉眼关键点中包括眉毛关键点和眼睛关键点,眼睛关键点包括上眼睑关键点和下眼睑关键点,唇部关键点包括上唇关键点和下唇关键点。可选地,该人脸关键点中每个关键点对应的关键点标识,其中,预设标识的关键点对应预设器官,如:关键点1至关键点20为脸部轮廓关键点,关键点21至关键点26为左眉毛关键点,关键点27至关键点37为左眼关键点等。可选地,该人脸关键点可以通过关键点检测算法进行检测,如:人脸特征点训练方法(superviseddescentmethod,sdm)、基于卷积神经网络(convolutionalneuralnetworks,cnn)的关键点回归方法等。可选地,该人脸关键点的个数为68点标准、106点标准,该人脸关键点的个数还可以由设计人员进行设置。可选地,该人脸关键点在实际应用中,可以用于人脸美颜、脸部挂件、三维重建等应用,其中,人脸美颜包括瘦脸、眼部放大、眉毛调整等,脸部挂件用于根据各器官所在的位置将挂件附在器官周侧,如:将猫耳朵附在脸部轮廓上方,三维重建用于根据脸部轮廓、脸部器官构建三维模型。示意性的,请参考图1,人脸图像100中包括人脸110,该人脸110中包括眼睛111、眉毛112、鼻子113以及嘴唇114,该人脸110轮廓周侧、眼睛111周侧、眉毛112周侧、鼻子113周侧以及嘴唇114周侧分布有检测得到的关键点120。

可选地,本申请实施例提供的关键点检测方法的应用场景包括如下场景中的至少一种:

第一,该关键点检测方法可以应用于趣味相机应用程序中,该趣味相机应用程序通过检测人脸关键点,在摄像头采集的图像中的人脸周侧或人脸上附加挂件,并通过拍摄的方式生成照片;

第二,该关键点检测方法可以应用于直播视频应用程序中,该直播视频应用程序通过检测人脸关键点,在摄像头采集的视频流的每一帧视频图像中,对人脸进行美颜、添加脸部挂件等处理,并将处理后的视频流作为直播视频流进行发布;

第三,该关键点检测方法可以应用于即时通讯应用程序中,该即时通讯应用程序通过检测人脸关键点,在摄像头采集的视频流的每一帧视频图像中,对人脸进行美颜、添加脸部挂件等处理,并将处理后的视频流作为视频通话中的视频流进行发送;或,该即时通讯应用程序通过检测人脸关键点,在摄像头采集的图像中,对人脸进行美颜、添加脸部挂件等处理,并在接收拍摄操作后,将拍摄得到的处理后的图像作为待发送图像进行发送。

结合上述名词简介以及应用场景,对本申请实施例提供的关键点检测方法进行说明,该方法可以应用于终端中,也可以应用于服务器中,如图2所示,该方法包括:

步骤201,获取视频图像组,视频图像组中包括n帧视频图像,n≥2。

可选地,当该关键点检测方法应用于终端,且终端中包括摄像头时,该终端接收摄像头采集得到的视频图像组,其中,第k帧视频图像为摄像头当前采集得到的视频图像,或,第k帧视频图像为摄像头采集后当前传递至图像处理模块进行处理的最近一帧图像。

可选地,该视频图像组还可以是终端或服务器中待处理的一段视频流,第k帧视频图像为当前待处理的视频图像,即最近一帧进行上述关键点检测的视频图像为第k-1帧视频图像,其中,由于视频图像组中的第一帧图像仅能通过普通检测方式进行关键点检测,故,k为大于1的正整数,即,1<k≤n。

可选地,该视频图像组还可以是终端或服务器接收到的其他终端或服务器发送的一段视频流,其中,第k帧视频图像为当前接收的视频图像,或,第k帧视频图像为图像处理模块当前处理的图像。

步骤202,对视频图像组中第k-1帧视频图像进行检测,得到第一关键点集合。

可选地,对该第k-1帧视频图像进行检测,得到第一关键点集合的方式包括如下方式中的至少一种:

第一,通过关键点检测算法进行检测,如:sdm、基于cnn的关键点回归方法,根据该关键点检测算法检测得到第一关键点集合;

第二,该第一关键点集合是通过本申请中提供的关键点检测方法检测得到的,即,该第k-1帧图像第一关键点集合是通过第k-2帧视频图像的关键点集合和第k-1帧图像通过关键点检测算法检测的关键点集合确定得到的。可选地,对该第k-1帧视频图像进行检测,得到第一检测关键点集合,其中,该检测过程是通过上述关键点检测算法进行的(如:sdm、基于cnn的关键点回归方法),对第k-2帧视频图像进行检测,得到第三关键点集合,可选地,该第三关键点集合可以是通过关键点检测算法得到的,也可以是通过第k-3帧视频图像的关键点集合第k-2帧视频图像的关键点集合确定得到的,通过第一检测关键点集合、第三关键点集合、第一检测关键点集合对应的向量以及第三关键点集合对应的向量,确定第k-1帧视频图像的第一关键点集合。

示意性的,上述两种方式的检测过程请参考图3和图4,首先,如图3所示,第k帧视频图像的防抖关键点31由第k-1帧视频图像的检测关键点32、第k帧视频图像的检测关键点33、第k-1帧视频图像的关键点向量34以及第k帧图像的关键点向量35确定得到的,其中,第k-1帧视频图像的检测关键点32和第k帧视频图像的检测关键点33都是通过关键点检测算法(如:sdm、基于cnn的关键点回归方法)检测得到的。

其次,请参考图4,第k帧视频图像的防抖关键点41是由第k-1帧视频图像的防抖关键点42、第k帧视频图像的检测关键点43、第k-1帧视频图像的关键点向量44(第k-1帧视频图像的防抖关键点42之间的向量)以及第k帧视频图像的关键点向量45(第k帧视频图像的检测关键点43之间的向量)确定得到的,其中,第k-1帧视频图像的防抖关键点42是由第k-2帧视频图像的防抖关键点46、第k-1帧视频图像的检测关键点47、第k-2帧视频图像的关键点向量48(第k-2帧视频图像的防抖关键点46之间的向量)以及第k-1帧视频图像的关键点向量49(第k-1帧视频图像的检测关键点46之间的向量)确定得到的,以此类推,直至第2帧视频图像的防抖关键点410是由第1帧视频图像的检测关键点411、第2帧视频图像的检测关键点412、第1帧视频图像的关键点向量413(第1帧视频图像的检测关键点411之间的向量)以及第2帧视频图像的关键点向量414(第2帧视频图像的检测关键点412之间的向量)确定得到的。

步骤203,对视频图像组中第k帧视频图像进行检测,得到第二关键点集合。

可选地,对该第k帧视频图像进行检测时,是通过关键点检测算法(如:sdm、基于cnn的关键点回归方法)直接进行检测,根据该关键点检测算法检测得到第二关键点集合。

可选地,上述关键点检测算法可以是对固定物体的关键点进行检测,如:对桌子上的杯子关键点进行检测、对路上的车辆关键点进行检测等,该关键点检测算法也可以是对面部的关键点进行检测,其中,该面部可以是动物面部、人脸、动画人物面部等,上述第一关键点集合和第二关键点集合中的关键点一一对应,示意性的,以人脸识别为例进行说明,第一关键点集合中第20个至第30个关键点为眼部关键点,第二关键点集合中第20个至第30个关键点也为眼部关键点,且第一关键点集合中的第20个关键点与第二关键点集合中第20个关键点对应,依次类推。可选地,当第一关键点集合和第二关键点集合为人脸关键点集合时,第一关键点集合和第二关键点集合中包括脸部轮廓关键点、眉眼关键点、鼻部关键点以及唇部关键点中的至少一种。

值得注意的是,上述步骤202和步骤203,可以先执行步骤202再执行步骤203,也可以先执行步骤203,再执行步骤202,还可以同时执行步骤202和步骤203,本申请实施例对此不加以限定。

步骤204,通过第一关键点集合、第二关键点集合、第一关键点集合对应的第一向量集合以及第二关键点集合对应的第二向量集合,确定第k帧视频图像的防抖关键点集合。

可选地,第一向量集合中包括第一关键点集合中的关键点之间的向量,第二向量集合中包括第二关键点集合中的关键点之间的向量。

可选地,上述第一关键点集合中的关键点和第二关键点集合中的关键点一一对应,且第一向量集合中的向量与第二向量集合中的向量一一对应,示意性的,第一向量集合中包括第一关键点集合中关键点1和关键点3之间的双向向量,则第二向量集合中包括第二关键点集合中关键点1和关键点3之间的双向向量。

可选地,根据第一关键点集合、第二关键点集合、第一关键点集合对应的第一向量集合和第二关键点集合对应的第二向量集合,确定第k帧视频图像的防抖关键点集合时,包括如下情况中的任意一种:

第一,将上述第一关键点集合、第二关键点集合、第一向量集合以及第二向量集合输入预设损失函数,计算得到第k帧视频图像的防抖关键点集合;

第二,将上述第一关键点集合、第二关键点集合、第一向量集合以及第二向量集合输入神经网络模型,并输出得到第k帧视频图像的防抖关键点集合。

可选地,上述第一关键点集合对应的第一向量集合包括如下情况中的任意一种:

第一,该第一向量集合中包括第一关键点集合中每两个关键点之间的双向向量;

可选地,该双向向量为两个关键点之间的一组方向相反的向量。可选地,当该第一向量集合为人脸关键点集合时,该指定关键点中包括脸部轮廓关键点、眉眼关键点、鼻部关键点、唇部关键点、耳朵关键点中的至少两种。示意性的,第一关键点集合中包括关键点1、关键点2以及关键点3,以关键点1为眼部关键点,关键点2为鼻部关键点,以及关键点3为唇部关键点为例,该第一向量集合中包括由关键点1指向关键点2的向量、由关键点2指向关键点1的向量、由关键点1指向关键点3的向量、由关键点3指向关键点1的向量、由关键点2指向关键点3的向量以及由关键点3指向关键点2的向量,其中,由关键点1指向关键点2的向量和由关键点2指向关键点1的向量为一组双向向量,由关键点1指向关键点3的向量和由关键点3指向关键点1的向量为一组双向向量,由关键点2指向关键点3的向量和由关键点3指向关键点2的向量为一组双向向量。

第二,该第一向量集合中包括第一关键点集合中每两个关键点之间的单向向量;

可选地,该单向向量的方向为预设方向,示意性的,该单向向量的方向为由关键点标识小的关键点指向关键点标识大的关键点,如:由关键点1指向关键点2、由关键点1指向关键点3,由关键点2指向关键点3,以此类推,可选地,该单向向量的方向还可以由关键点标识大的关键点指向关键点标识小的关键点;

第三,该第一向量集合中包括第一关键点集合中指定关键点之间的双向向量;

可选地,当该第一向量集合为人脸关键点集合时,该指定关键点中包括脸部轮廓关键点、眉眼关键点、鼻部关键点、唇部关键点、耳朵关键点中的至少两种,该第一向量集合中包括第一类关键点与第二类关键点之间的双向向量,如:脸部轮廓关键点与眉眼关键点之间的双向向量。可选地,该指定关键点为预设的构建向量的关键点,示意性的,检测得到的第一关键点集合中的关键点依次被标识为1、2、3、…、100,其中,关键点1至10和关键点40至50为预设的用于构建向量的关键点,则第一向量集合中包括上述关键点1至10和关键点40至50中每两个关键点之间的双向向量。

第四,该第一向量集合中包括第一关键点集合中指定关键点之间的单向向量。

与上述第一向量集合对应,第二向量集合包括如下情况中的任意一种:

第一,该第二向量集合中包括第二关键点集合中每两个关键点之间的双向向量;

第二,该第二向量集合中包括第二关键点集合中每两个关键点之间的单向向量,该单向向量的方向为预设方向,示意性的,由关键点标识小的关键点指向关键点标识大的关键点,如:由关键点1指向关键点2、由关键点1指向关键点3,以此类推;

第三,该第二向量集合中包括第二关键点集合中指定关键点之间的双向向量;

第四,该第二向量集合中包括第二关键点集合中指定关键点之间的单向向量。

值得注意的是,由于第一向量集合和第二向量集合对应,故,当第一向量集合对应上述第一种方式时,第二向量集合也对应第一种方式;当第一向量集合对应上述第二种方式时,第二向量集合也对应第二种方式,以此类推。

综上所述,本实施例提供的关键点检测方法,在对第k帧视频图像的关键点进行检测时,通过根据第k-1帧视频图像的关键点、第k帧视频图像的关键点、第k-1帧视频图像的关键点对应的向量以及第k帧视频图像的关键点对应的向量对第k帧视频图像的关键点进行调整,得到第k帧视频图像的防抖关键点,结合关键点和向量对关键点进行防抖处理,避免由于不同部位关键点的抖动程度不同而导致的抖动调节不准确问题,提高防抖处理的准确度,减缓视频图像中关键点的抖动程度。

本实施例提供的方法,通过防抖后的第k-1帧图像的关键点确定第k帧图像的关键点,提高了调整后的第k帧图像的关键点的检测结果的准确度,避免由于第k-1帧图像的关键点检测结果不准确而影响第k帧图像的关键点检测结果。

在一个可选的实施例中,上述第k帧视频图像的防抖关键点是通过预设损失函数计算得到的,图5是本申请另一个示例性实施例提供的关键点检测方法的流程图,该方法可以应用于终端中,也可以应用于服务器中,该方法包括:

步骤501,获取视频图像组,视频图像组中包括n帧视频图像,n≥2。

可选地,当该关键点检测方法应用于终端,且终端中包括摄像头时,该终端接收摄像头采集得到的视频图像组,其中,第k帧视频图像为摄像头当前采集得到的视频图像,或,第k帧视频图像为摄像头采集后当前传递至图像处理模块进行处理的最近一帧图像。

步骤502,对视频图像组中第k-1帧视频图像进行检测,得到第一关键点集合。

可选地,对该第k-1帧视频图像进行检测,得到第一关键点集合的方式包括如下方式中的至少一种:

第一,通过关键点检测算法进行检测,如:sdm、基于cnn的关键点回归方法,根据该关键点检测算法检测得到第一关键点集合;

第二,该第一关键点集合是通过本申请中提供的关键点检测方法检测得到的,即,该第k-1帧图像第一关键点集合是通过第k-2帧视频图像的关键点集合和第k-1帧图像通过关键点检测算法检测的关键点集合确定得到的。

步骤503,对视频图像组中第k帧视频图像进行检测,得到第二关键点集合。

可选地,对该第k帧视频图像进行检测时,是通过关键点检测算法(如:sdm、基于cnn的关键点回归方法)直接进行检测,根据该关键点检测算法检测得到第二关键点集合。

步骤504,确定第一关键点集合对应的第一矩阵以及第二关键点集合对应的第二矩阵。

可选地,该第一矩阵为2n×1的矩阵,其中,n为第一关键点集合中关键点的数量;第二矩阵也为2n×1的矩阵,其中,n为第二关键点集合中的关键点的数量,且第一关键点集合中关键点的数量与第二关键点集合中关键点的数量一致都为n。可选地,该第一矩阵中包括每个关键点对应的元素,可选地,每个关键点在该第一矩阵中对应一个或两个元素,可选地,第一矩阵中的元素与第一关键点集合中的关键点按照关键点标识从小到大依次排列,或从大到小依次排列。

步骤505,将第一矩阵和第二矩阵输入预设损失函数,计算得到第三矩阵,其中,第三矩阵为第k帧视频图像的防抖关键点集合对应的矩阵。

可选地,该损失函数中包括转换矩阵,该转换矩阵用于与第一矩阵相乘得到第一向量集合对应的第一向量矩阵,该转换矩阵还用于与第二矩阵相乘得到第二向量集合对应的第二向量矩阵。

可选地,该损失函数的确定过程中,需要先设置第三变量矩阵作为预设损失函数中的未知变量,该预设损失函数中的变换矩阵还用于与第三变量矩阵相乘得到第三变量矩阵对应第三矩阵,确定第一矩阵与第三变量矩阵的第一距离差子公式、第二矩阵与第三变量矩阵之间的第二距离差子公式、第一向量矩阵与第三向量矩阵之间的第三距离差子公式以及第二向量矩阵与第三向量矩阵的第四距离差子公式,其中,第一距离差子公式、第二距离差子公式、第三距离差子公式以及第四距离差子公式之和即为该损失函数内容。

示意性的,该损失函数如下公式一所示:

公式一:loss=||a-x||l2+λ1||b-x||l2+λ2||pa-px||l2+λ3||pb-px||l2

其中,loss表示该损失函数,a对应上述第二矩阵,b对应上述第一矩阵,x为第三变量矩阵,该第三变量矩阵在该loss函数中为未知变量,将a和b代入该loss函数后计算得到第三矩阵作为第k帧视频图像的防抖关键点集合对应的第三矩阵。可选地,上述p即为变换矩阵,pa为第二向量矩阵,pb为第一向量矩阵,px为第三向量矩阵,下标l2用于表示距离,可选地,该距离为欧氏距离,如:||a-x||l2表示第二矩阵和第三变换矩阵之间的距离,则||a-x||l2表示防抖关键点与第k-1帧关键点之间的误差,即||a-x||l2为第二距离差子公式,||b-x||l2表示防抖关键点与第k帧检测的关键点之间的误差,即||b-x||l2为第一距离差子公式,||pa-px||l2表示防抖关键点之间的边向量与第k-1帧关键点之间的边向量的误差,即||pa-px||l2为第四距离差子公式,||pb-px||l2表示防抖关键点之间的边向量与第k帧关键点之间的边向量的误差,即||pb-px||l2为第三距离差子公式。可选地,上述误差为关键点在图像欧氏坐标系上的误差。可选地,上述公式一中的λ1、λ2以及λ3为预设权重参数,其中,通过调节权重参数λ1、λ2、λ3的比值可以调整延时,如:增大λ2、λ3的数值可以缩短延时时长。

可选地,上述转换矩阵在损失函数中,通过与关键点矩阵相乘,得到基于关键点的边向量的矩阵,示意性的,pa即为将第二矩阵转换为第二关键点集合中的每两个关键点之间的边向量矩阵。示意性的,如图6所示,在关键点61、关键点62以及关键点63之间,可以形成六条向量,包括向量64、向量64的反向量65、向量66、向量66的反向量67、向量68以及向量68的反向量69,则将向量以矩阵形式表示时,需要将该三个点表示的矩阵与p矩阵相乘,该p矩阵的形式如下所示:

p矩阵:

可选地,根据上述损失函数计算第三矩阵x时,包括如下方式中的任意一种:

第一,对损失函数求偏导,并对偏导函数进行求解,计算得到第三变量矩阵的解作为第三矩阵;

第二,通过梯度下降法对该损失函数进行最优化求解,计算得到第三变量矩阵的解作为第三矩阵;

第三,通过高斯-牛顿法对损失函数进行最优化求解,计算得到第三变量矩阵的解作为第三矩阵。

综上所述,本实施例提供的关键点检测方法,在对第k帧视频图像的关键点进行检测时,通过根据第k-1帧视频图像的关键点、第k帧视频图像的关键点、第k-1帧视频图像的关键点对应的向量以及第k帧视频图像的关键点对应的向量对第k帧视频图像的关键点进行调整,得到第k帧视频图像的防抖关键点,结合关键点和向量对关键点进行防抖处理,避免由于不同部位关键点的抖动程度不同而导致的抖动调节不准确问题,提高防抖处理的准确度,减缓视频图像中关键点的抖动程度。

本实施例提供的方法,通过损失函数对防抖关键点集合进行计算,仅需要将第一关键点集合和第二关键点集合转换为矩阵的形式代入该损失函数,即可实现对第三矩阵也即防抖关键点集合的计算,防抖关键点集合的计算效率较高,计算过程较为便捷。

在一个可选的实施例中,上述第三矩阵是通过对损失函数进行计算偏导数的方式进行计算的,图7是本申请一个示例性实施例提供的关键点检测方法的流程图,如图7所示,该方法包括:

步骤701,获取视频图像组,视频图像组中包括n帧视频图像,n≥2。

可选地,当该关键点检测方法应用于终端,且终端中包括摄像头时,该终端接收摄像头采集得到的视频图像组,其中,第k帧视频图像为摄像头当前采集得到的视频图像,或,第k帧视频图像为摄像头采集后当前传递至图像处理模块进行处理的最近一帧图像。

步骤702,对视频图像组中第k-1帧视频图像进行检测,得到第一关键点集合。

可选地,对该第k-1帧视频图像进行检测,得到第一关键点集合的方式包括如下方式中的至少一种:

第一,通过关键点检测算法进行检测,如:sdm、基于cnn的关键点回归方法,根据该关键点检测算法检测得到第一关键点集合;

第二,该第一关键点集合是通过本申请中提供的关键点检测方法检测得到的,即,该第k-1帧图像第一关键点集合是通过第k-2帧视频图像的关键点集合和第k-1帧图像通过关键点检测算法检测的关键点集合确定得到的。

步骤703,对视频图像组中第k帧视频图像进行检测,得到第二关键点集合。

可选地,对该第k帧视频图像进行检测时,是通过关键点检测算法(如:sdm、基于cnn的关键点回归方法)直接进行检测,根据该关键点检测算法检测得到第二关键点集合。

步骤704,确定第一关键点集合对应的第一矩阵以及第二关键点集合对应的第二矩阵。

可选地,该第一矩阵为2n×1的矩阵,其中,n为第一关键点集合中关键点的数量;第二矩阵也为2n×1的矩阵,其中,n为第二关键点集合中的关键点的数量,且第一关键点集合中关键点的数量与第二关键点集合中关键点的数量一致都为n。

步骤705,设置第三变量矩阵作为预设损失函数中的未知变量。

可选地,该预设损失函数中包括转换矩阵,该转换矩阵用于与第一矩阵相乘得到第一向量集合对应的第一向量矩阵,转换矩阵还用于与第二矩阵相乘得到第二向量集合对应的第二向量矩阵,可选地,该预设损失函数中的变换矩阵还用于与第三变量矩阵相乘得到第三变量矩阵对应的第三向量矩阵。

可选地,该预设损失函数的函数形式如上述公式一所示。

步骤706,确定第一矩阵与第三变量矩阵的第一距离差子公式、第二矩阵与第三变量矩阵之间的第二距离差子公式、第一向量矩阵与第三向量矩阵之间的第三距离差子公式以及第二向量矩阵与第三向量矩阵的第四距离差子公式。

步骤707,对第一距离差子公式、第二距离差子公式、第三距离差子公式以及第四距离差子公式之和相对于第三变量矩阵求偏导,得到偏导公式。

可选地,对上述公式一中的loss函数求解对于第三变量矩阵x的偏导后,令该偏导公式等于0,得到的偏导公式如下公式二所示:

公式二:(x-a)+λ1(x-b)+λ2pt(px-pa)+λ3pt(px-pb)=0

其中,pt表示p矩阵的转置,对上述公式二进行化简后,得到如下公式三:

公式三:x=[1+λ1+(λ2+λ3)ptp]-1[a+λ1b+pt(λ2pa+λ3pb)]

步骤708,对偏导公式进行求解,计算得到第三矩阵。

可选地,将上述第一矩阵以及第二矩阵作为矩阵b和矩阵a代入上述公式三,求解得到矩阵x作为第三矩阵。

可选地,本实施例中,仅需要对第k-1帧视频图像的第一人脸关键点集合进行检测和对第k帧视频图像的第二人脸关键点集合进行检测,并将检测得到得第一人脸关键点集合和第二人脸关键点集合输入关键点防抖模块,在该关键点防抖模块中通过损失函数结合第一人脸关键点集合、第二人脸关键点集合、第一人脸关键点集合对应的第一向量集合以及第二人脸关键点集合对应的第二向量集合进行计算,即可确定得到第k帧视频图像的防抖关键点集合。示意性的,请参考图8,第k-1帧视频图像81通过人脸关键点检测算法82检测得到第k-1帧视频图像的预测关键点83,第k帧视频图像84通过人脸关键点检测算法82检测得到第k帧视频图像的预测关键点85,将第k-1帧视频图像的预测关键点83和第k帧视频图像的预测关键点85输入关键点防抖模块86后,得到第k帧视频图像的防抖关键点87。

综上所述,本实施例提供的关键点检测方法,在对第k帧视频图像的关键点进行检测时,通过根据第k-1帧视频图像的关键点、第k帧视频图像的关键点、第k-1帧视频图像的关键点对应的向量以及第k帧视频图像的关键点对应的向量对第k帧视频图像的关键点进行调整,得到第k帧视频图像的防抖关键点,结合关键点和向量对关键点进行防抖处理,避免由于不同部位关键点的抖动程度不同而导致的抖动调节不准确问题,提高防抖处理的准确度,减缓视频图像中关键点的抖动程度。

本实施例提供的方法,通过损失函数对防抖关键点集合进行计算,仅需要将第一关键点集合和第二关键点集合转换为矩阵的形式代入该损失函数,即可实现对第三矩阵也即防抖关键点集合的计算,防抖关键点集合的计算效率较高,计算过程较为便捷。

图9是本申请一个示例性实施例提供的关键点检测装置的结构框图,该装置可以应用于终端中,也可以应用于服务器中,该装置包括:获取模块910、检测模块920以及确定模块930;

获取模块910,用于获取视频图像组,所述视频图像组中包括n帧视频图像,n≥2;

检测模块920,用于对所述视频图像组中第k-1帧视频图像进行检测,得到第一关键点集合,1<k≤n;

所述检测模块920,还用于对所述视频图像组中第k帧视频图像进行检测,得到第二关键点集合;

确定模块930,用于通过所述第一关键点集合、所述第二关键点集合、所述第一关键点集合对应的第一向量集合以及所述第二关键点集合对应的第二向量集合,确定所述第k帧视频图像的防抖关键点集合,所述第一向量集合中包括所述第一关键点集合中的关键点之间的向量,所述第二向量集合中包括所述第二关键点集合中的关键点之间的向量。

在一个可选的实施例中,所述确定模块930,还用于确定所述第一关键点集合对应的第一矩阵以及所述第二关键点集合对应的第二矩阵;将所述第一矩阵和所述第二矩阵输入预设损失函数,计算得到第三矩阵,所述第三矩阵为所述第k帧视频图像的所述防抖关键点集合对应的矩阵;

其中,所述预设损失函数中包括转换矩阵,所述转换矩阵用于与所述第一矩阵相乘得到所述第一向量集合对应的第一向量矩阵,所述转换矩阵还用于与所述第二矩阵相乘得到所述第二向量集合对应的第二向量矩阵。

在一个可选的实施例中,请参考图10,确定模块930,包括:

设置子模块931,用于设置第三变量矩阵作为所述预设损失函数中的未知变量,所述预设损失函数中的所述转换矩阵还用于与所述第三变量矩阵相乘得到所述第三变量矩阵对应的第三向量矩阵;

确定子模块932,用于确定所述第一矩阵与所述第三变量矩阵的第一距离差子公式、所述第二矩阵与所述第三变量矩阵的第二距离差子公式、所述第一向量矩阵与所述第三向量矩阵的第三距离差子公式以及所述第二向量矩阵与所述第三向量矩阵的第四距离差子公式;对所述第一距离差子公式、所述第二距离差子公式、所述第三距离差子公式以及所述第四距离差子公式之和相对于所述第三变量矩阵求偏导,得到偏导公式;对所述偏导公式进行求解,计算得到所述第三矩阵。

在一个可选的实施例中,所述检测模块920,还用于对所述第k-1帧视频图像进行检测,得到第一检测关键点集合;

所述检测模块920,还用于对第k-2帧视频图像进行检测,得到第三关键点集合;

所述确定模块930,还用于通过所述第一检测关键点集合、所述第三关键点集合、所述第一检测关键点集合对应的向量以及所述第三关键点集合对应的向量,确定所述第k-1帧视频图像的所述第一关键点集合。

在一个可选的实施例中,所述第一关键点集合对应的所述第一向量集合中包括每两个关键点之间的双向向量,所述第二关键点集合对应的所述第二向量集合中包括每两个关键点之间的双向向量;

或,

所述第一向量集合中包括每两个关键点之间的单向向量,所述第二向量集合中包括每两个关键点之间的单向向量;

或,

所述第一向量集合中包括指定关键点之间的双向向量,所述第二向量集合中包括所述指定关键点之间的双向向量;

或,

所述第一向量集合中包括所述指定关键点之间的单向向量,所述第二向量集合中包括所述指定关键点之间的单向向量。

在一个可选的实施例中,所述装置应用于终端中,所述终端包括摄像头;

所述获取模块910,还用于接收所述摄像头采集得到的所述视频图像组,其中,所述第k帧视频图像为所述摄像头当前采集得到的视频图像。

在一个可选的实施例中,所述第一关键点集合中的关键点和所述第二关键点集合中的关键点一一对应;

所述第一向量集合中的向量与所述第二向量集合中的向量一一对应。

综上所述,本实施例提供的关键点检测装置,在对第k帧视频图像的关键点进行检测时,通过根据第k-1帧视频图像的关键点、第k帧视频图像的关键点、第k-1帧视频图像的关键点对应的向量以及第k帧视频图像的关键点对应的向量对第k帧视频图像的关键点进行调整,得到第k帧视频图像的防抖关键点,结合关键点和向量对关键点进行防抖处理,避免由于不同部位关键点的抖动程度不同而导致的抖动调节不准确问题,提高防抖处理的准确度,减缓视频图像中关键点的抖动程度。

需要说明的是:上述实施例提供的关键点检测装置,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的线型技能的显示装置与线型技能的显示方法的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

图11示出了本发明一个示例性实施例提供的终端1100的结构框图。该终端1100可以是:智能手机、平板电脑、mp3播放器(movingpictureexpertsgroupaudiolayeriii,动态影像专家压缩标准音频层面3)、mp4(movingpictureexpertsgroupaudiolayeriv,动态影像专家压缩标准音频层面4)播放器、笔记本电脑或台式电脑。终端1100还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。

通常,终端1100包括有:处理器1101和存储器1102。

处理器1101可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器1101可以采用dsp(digitalsignalprocessing,数字信号处理)、fpga(field-programmablegatearray,现场可编程门阵列)、pla(programmablelogicarray,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器1101也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称cpu(centralprocessingunit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器1101可以在集成有gpu(graphicsprocessingunit,图像处理器),gpu用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器1101还可以包括ai(artificialintelligence,人工智能)处理器,该ai处理器用于处理有关机器学习的计算操作。

存储器1102可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器1102还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器1102中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器1101所执行以实现本申请中方法实施例提供的关键点检测方法。

在一些实施例中,终端1100还可选包括有:外围设备接口1103和至少一个外围设备。处理器1101、存储器1102和外围设备接口1103之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口1103相连。具体地,外围设备包括:射频电路1104、触摸显示屏1105、摄像头1106、音频电路1107、定位组件1108和电源1109中的至少一种。

外围设备接口1103可被用于将i/o(input/output,输入/输出)相关的至少一个外围设备连接到处理器1101和存储器1102。在一些实施例中,处理器1101、存储器1102和外围设备接口1103被集成在同一芯片或电路板上;在一些其他实施例中,处理器1101、存储器1102和外围设备接口1103中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。

射频电路1104用于接收和发射rf(radiofrequency,射频)信号,也称电磁信号。射频电路1104通过电磁信号与通信网络以及其他通信设备进行通信。射频电路1104将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路1104包括:天线系统、rf收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路1104可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:万维网、城域网、内联网、各代移动通信网络(2g、3g、4g及5g)、无线局域网和/或wifi(wirelessfidelity,无线保真)网络。在一些实施例中,射频电路1104还可以包括nfc(nearfieldcommunication,近距离无线通信)有关的电路,本申请对此不加以限定。

显示屏1105用于显示ui(userinterface,用户界面)。该ui可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏1105是触摸显示屏时,显示屏1105还具有采集在显示屏1105的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器1101进行处理。此时,显示屏1105还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏1105可以为一个,设置终端1100的前面板;在另一些实施例中,显示屏1105可以为至少两个,分别设置在终端1100的不同表面或呈折叠设计;在再一些实施例中,显示屏1105可以是柔性显示屏,设置在终端1100的弯曲表面上或折叠面上。甚至,显示屏1105还可以设置成非矩形的不规则图形,也即异形屏。显示屏1105可以采用lcd(liquidcrystaldisplay,液晶显示屏)、oled(organiclight-emittingdiode,有机发光二极管)等材质制备。

摄像头组件1106用于采集图像或视频。可选地,摄像头组件1106包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及vr(virtualreality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件1106还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。

音频电路1107可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器1101进行处理,或者输入至射频电路1104以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在终端1100的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器1101或射频电路1104的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路1107还可以包括耳机插孔。

定位组件1108用于定位终端1100的当前地理位置,以实现导航或lbs(locationbasedservice,基于位置的服务)。定位组件1108可以是基于美国的gps(globalpositioningsystem,全球定位系统)、中国的北斗系统或俄罗斯的伽利略系统的定位组件。

电源1109用于为终端1100中的各个组件进行供电。电源1109可以是交流电、直流电、一次性电池或可充电电池。当电源1109包括可充电电池时,该可充电电池可以是有线充电电池或无线充电电池。有线充电电池是通过有线线路充电的电池,无线充电电池是通过无线线圈充电的电池。该可充电电池还可以用于支持快充技术。

在一些实施例中,终端1100还包括有一个或多个传感器1110。该一个或多个传感器1110包括但不限于:加速度传感器1111、陀螺仪传感器1112、压力传感器1113、指纹传感器1114、光学传感器1115以及接近传感器1116。

加速度传感器1111可以检测以终端1100建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器1111可以用于检测重力加速度在三个坐标轴上的分量。处理器1101可以根据加速度传感器1111采集的重力加速度信号,控制触摸显示屏1105以横向视图或纵向视图进行用户界面的显示。加速度传感器1111还可以用于游戏或者用户的运动数据的采集。

陀螺仪传感器1112可以检测终端1100的机体方向及转动角度,陀螺仪传感器1112可以与加速度传感器1111协同采集用户对终端1100的3d动作。处理器1101根据陀螺仪传感器1112采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变ui)、拍摄时的图像稳定、游戏控制以及惯性导航。

压力传感器1113可以设置在终端1100的侧边框和/或触摸显示屏1105的下层。当压力传感器1113设置在终端1100的侧边框时,可以检测用户对终端1100的握持信号,由处理器1101根据压力传感器1113采集的握持信号进行左右手识别或快捷操作。当压力传感器1113设置在触摸显示屏1105的下层时,由处理器1101根据用户对触摸显示屏1105的压力操作,实现对ui界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。

指纹传感器1114用于采集用户的指纹,由处理器1101根据指纹传感器1114采集到的指纹识别用户的身份,或者,由指纹传感器1114根据采集到的指纹识别用户的身份。在识别出用户的身份为可信身份时,由处理器1101授权该用户执行相关的敏感操作,该敏感操作包括解锁屏幕、查看加密信息、下载软件、支付及更改设置等。指纹传感器1114可以被设置终端1100的正面、背面或侧面。当终端1100上设置有物理按键或厂商logo时,指纹传感器1114可以与物理按键或厂商logo集成在一起。

光学传感器1115用于采集环境光强度。在一个实施例中,处理器1101可以根据光学传感器1115采集的环境光强度,控制触摸显示屏1105的显示亮度。具体地,当环境光强度较高时,调高触摸显示屏1105的显示亮度;当环境光强度较低时,调低触摸显示屏1105的显示亮度。在另一个实施例中,处理器1101还可以根据光学传感器1115采集的环境光强度,动态调整摄像头组件1106的拍摄参数。

接近传感器1116,也称距离传感器,通常设置在终端1100的前面板。接近传感器1116用于采集用户与终端1100的正面之间的距离。在一个实施例中,当接近传感器1116检测到用户与终端1100的正面之间的距离逐渐变小时,由处理器1101控制触摸显示屏1105从亮屏状态切换为息屏状态;当接近传感器1116检测到用户与终端1100的正面之间的距离逐渐变大时,由处理器1101控制触摸显示屏1105从息屏状态切换为亮屏状态。

本领域技术人员可以理解,图11中示出的结构并不构成对终端1100的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,该计算机可读存储介质可以是上述实施例中的存储器中所包含的计算机可读存储介质;也可以是单独存在,未装配入终端中的计算机可读存储介质。该计算机可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如图2、图5以及图7任一所述的关键点检测方法。

可选地,该计算机可读存储介质可以包括:只读存储器(rom,readonlymemory)、随机存取记忆体(ram,randomaccessmemory)、固态硬盘(ssd,solidstatedrives)或光盘等。其中,随机存取记忆体可以包括电阻式随机存取记忆体(reram,resistancerandomaccessmemory)和动态随机存取存储器(dram,dynamicrandomaccessmemory)。上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

以上所述仅为本申请的较佳实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

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