一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

关键点平滑方法和装置与流程

2022-12-13 20:51:27 来源:中国专利 TAG:


1.本技术涉及图像处理领域,尤其涉及一种关键点平滑方法和装置。


背景技术:

2.人脸关键点检测可以定位出面部的关键区域位置,包括眉毛、眼睛、鼻子、嘴巴、脸部轮廓等。人脸关键点检测可以应用在很多场景下,比如:自动人脸识别、表情分析、三维人脸重建及三维动画等。人脸关键点检测包括如下几种方法:参数化方法和非参数化方法。参数化方法包括基于局部的方法和基于全局的方法。非参数化方法包括基于图模型方法、基于级联回归方法以及基于深度学习方法。然而,不论是哪种方法,检测出来的关键点的位置都会存在不同程序的偏离。
3.现有技术中,对于严重偏离的关键点,结合该关键点所在区域内所有关键点的位置,通过各种样条曲线对该关键点的位置进行矫正。然而,这种方法矫正后的位置准确度依然不高。


技术实现要素:

4.本技术提供一种关键点平滑方法和装置,用于提升人脸关键点位置准确度。
5.第一方面,本技术提供一种平滑处理方法,包括:获取待处理图像上目标对象的关键点;根据所述目标对象的关键点,构建所述目标对象对应的关键点向量;获取重构矩阵;根据所述关键点向量和所述重构矩阵,获取重构系数;根据所述重构系数和所述重构矩阵,确定平滑处理后的关键点向量。
6.第二方面,本技术提供一种平滑处理装置,包括:构建模块,用于获取待处理图像上目标对象的关键点;根据所述目标对象的关键点,构建所述目标对象对应的关键点向量;获取重构矩阵;根据所述关键点向量和所述重构矩阵,获取重构系数;处理模块,用于根据所述重构系数和所述重构矩阵,确定平滑处理后的关键点向量。
7.本技术提供的平滑处理方法和装置,获取待处理图像上目标对象的关键点;根据所述目标对象的关键点,构建所述目标对象对应的关键点向量;获取重构矩阵;根据所述关键点向量和所述重构矩阵,获取重构系数;根据所述重构系数和所述重构矩阵,确定平滑处理后的关键点向量。本技术的方法利用主成分分析对人脸形状进行分析,然后使用求解出来的几个主要成分对关键点位置进行重构,使得矫正后的关键点的坐标更加贴近真实人脸,提升了关键点位置准确度。
附图说明
8.图1为本技术提供的人脸关键点示意图;
9.图2为本技术提供的平滑处理方法的实施例一的流程示意图;
10.图3为本技术提供的人脸关键点排序示意图;
11.图4为本技术提供的平滑处理方法的实施例二的流程示意图;
12.图5为本技术提供的平滑处理装置的结构示意图;
13.图6为本技术提供的芯片的硬件结构示意图。
具体实施方式
14.为使本技术的目的、技术方案和优点更加清楚,下面将结合本技术中的附图,对本技术中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
15.在本技术中,需要解释的是,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b的情况,其中a,b可以是单数或者复数。字符“以是一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:单独a,单独b,单独c,a和b的组合,a和c的组合,b和c的组合,或a、b以及c的组合,其中a,b,c可以是单个,也可以是多个。
16.人脸关键点检测可以应用在很多场景下,比如:自动人脸识别、表情分析、三维人脸重建及三维动画等。目前,人脸关键点检测有多种方法,然而,不论是哪种方法,检测出来的关键点的位置都会存在不同程序的偏离。现有技术中,对于严重偏离的关键点,结合该关键点所在区域内所有关键点的位置,通过各种样条曲线对该关键点的位置进行矫正。
17.举例来说,参见图1所示,脸部轮廓上序号为18的关键点的位置出现严重偏离,可结合脸部轮廓上所有关键点的位置,通过各种样条曲线对序号为18的关键点的位置进行矫正。然而,通过样条曲线矫正的方式没有考虑人脸形状的先验信息,矫正后的位置准确度依然不高。
18.为解决上述技术问题,本技术将主成分分析引入到对关键点位置矫正中,具体的,利用主成分分析对人脸形状进行分析,然后使用求解出来的几个主要成分对关键点位置进行重构,从而矫正关键点位置。由于这种方式是建立在对人脸形状进行分析的基础上,因此,和上述通过样条曲线矫正的方式相比,矫正后的位置更加准确。
19.下面以具体地实施例对本技术的技术方案以及本技术的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本技术的实施例进行描述。
20.实施例一
21.图2为本技术提供的平滑处理方法的实施例一的流程示意图。如图2所示,本实施例提供的平滑处理方法,包括:
22.s201、获取待处理图像上目标对象的关键点。
23.可选的,本实施例中目标对象可以是人脸,也可是人体其他部分,本技术对此不限制。本实施例以人脸为例说明本实施例的方案。
24.可选的,可使用基于局部的方法、基于全局的方法、基于图模型方法、基于级联回归方法以及基于深度学习方法来获取目标对象的关键点,详细过程参照现有技术,本技术
在此不再赘述。
25.s202、根据目标对象的关键点,构建目标对象对应的关键点向量。
26.具体的,可对所有关键点进行排序,按照排序结果构建关键点向量。示例性的,可先排脸部轮廓的关键点,再排眉毛的关键点,再排鼻子的关键点,再排眼睛的关键点,再排嘴巴的关键点。针对每个部分,可按照一定的方向进行排序,比如从左边开始、从右边开始、从上边开始或者从下边开始等。图3示出了一种排序的示例。
27.需要说明的是:每个关键点都有横坐标和纵坐标。排序结果中第一个关键点的横坐标作为关键点向量第一个元素,第一个关键点的纵坐标作为关键点向量第二个元素。排序结果中第二个关键点的横坐标作为关键点向量第三个元素,第二个关键点的纵坐标作为关键点向量第四个元素,以此类推。
28.结合图3所示示例,序号为0的关键点的横坐标作为关键点向量第一个元素,序号为0的关键点的纵坐标作为关键点向量第二个元素,序号为1的关键点的横坐标作为关键点向量第三个元素,序号为1的关键点的纵坐标作为关键点向量第四个元素,以此类推。由于图3所示人脸包括83个关键点,每个关键点都有横坐标和纵坐标,则构建的关键点向量共有83
×
2个元素。
29.s203、获取重构矩阵。
30.一种可能的实现方式中,可通过如下方式获取重构矩阵:
31.首先根据图像集,构建关键点矩阵,该图像集中每张图像上目标对象的关键点构成关键点矩阵的一行;然后根据关键点矩阵,获取目标矩阵;然后根据目标矩阵和图像集中图像数量,获取协方差矩阵;最后根据协方差矩阵,获取重构矩阵。
32.为方便说明,本实施例中关键点矩阵使用xn×k表示,目标矩阵使用x
′n×k表示,协方差矩阵使用ck×k表示,重构矩阵使用ak′×k表示,重构系数使用ck′
表示。
33.需要说明的是:获取重构矩阵ak′×k这一步骤可以在s201之前执行,在获取到重构矩阵ak′×k后,可将该重构矩阵ak′×k保存在文件中,在需要使用时直接从文件中读取即可。
34.需要说明的是:图像集中的图像包括不同人的图像。
35.下面介绍根据图像集构建关键点矩阵xn×k的可实现方式:
36.针对图像集中的每一张图像,获取该图像上人脸的关键点的坐标,然后使用s202相同的方法构建人脸对应的关键点向量,所有图像均做此处理得到每张图像对应的关键点向量,将每张图像对应的关键点向量作为关键点矩阵xn×k的一行,n为图像集图像的数量,k为关键点数量乘以2。比如:图像集中有10000张图像,每张图像有83个关键点,每个关键点有横坐标和纵坐标,那个构建的关键点矩阵xn×k有10000
×
166个元素。
37.下面介绍根据关键点矩阵xn×k获取目标矩阵x
′n×k的可实现方式:
38.可获取图像集中所有图像上关键点的坐标的均值,将关键点矩阵xn×k中关键点的坐标减去该均值,便可得到目标矩阵x
′n×k。
39.具体的,可计算所有图像上关键点的横坐标的均值,将关键点矩阵x
′n×k中的横坐标减去该均值,同样的,计算所有图像上关键点的纵坐标的均值,将关键点矩阵x
′n×k中的纵坐标减去该均值,得到目标矩阵x
′n×k。结合上文例子,计算10000张图像上所有关键点的横坐标的均值,将关键点矩阵x
′n×k中的横坐标减去该均值,计算10000张图像上所有关键点的纵坐标的均值,将关键点矩阵x
′n×k中的纵坐标减去该均值,便可得到目标矩阵x
′n×k。
40.下面介绍根据目标矩阵x
′n×k和图像集中图像数量获取协方差矩阵ck×k的可实现方式:
41.可通过如下公式获取协方差矩阵ck×k:
[0042][0043]
其中,n表示图像集中图像数量。
[0044]
下面介绍根据根据协方差矩阵ck×k获取重构矩阵ak′×k的可实现方式:
[0045]
首先对协方差向量矩ck×k阵进行特征值分解,得到至少一个特征值;然后将至少一个特征值按照从大到小排序,并获取前预设数量个特征值对应的特征向量;根据该预设数量个特征值对应的特征向量,构建重构矩阵ak′×k。
[0046]
可选的,将至少一个特征值按照从大到小排序后,可获取前50%的特征值对应的特征向量,使用前50%的特征值对应的特征向量组成重构矩阵ak′×k。
[0047]
s204、根据s202得到的关键点向量和s203得到的重构矩阵,获取重构系数。
[0048]
一种可能的实现方式中,可通过如下公式获取重构系数ck′

[0049]ck

=ak′×k·
x
t
其中,x表示s202得到的关键点向量。
[0050]
s205、根据重构系数和重构矩阵,确定平滑处理后的关键点向量。
[0051]
一种可能的实现方式中,可通过如下公式确定平滑处理后的关键点向量:
[0052][0053]
其中,x

表示平滑处理后的关键点向量。平滑处理后的关键点向量包括平滑处理后各个关键点的坐标。
[0054]
本实施例提供的平滑处理方法,利用主成分分析对人脸形状进行分析,然后使用求解出来的几个主要成分对关键点位置进行重构,使得矫正后的关键点的坐标更加贴近真实人脸,提升了关键点位置准确度。
[0055]
在视频流场景下,由于噪声的随机性以及人脸关键点检测算法鲁棒性一般,经常看到相邻两帧图像的关键点存在抖动的情况。为了提升帧间关键点的稳定性,本技术提出结合当前帧之前若干帧上目标对象的关键点的坐标,对当前帧上目标对象的关键点进行估计,得到关键点估计向量,基于关键点估计向量和平滑处理后的关键点向量,获取防抖处理后的关键点向量。从而提升帧间关键点的稳定性。下面实施例将详细介绍帧间防抖处理的过程。
[0056]
实施例二
[0057]
图4为本技术提供的平滑处理方法的实施例二的流程示意图。视频流中任意一帧图像均可使用本实施例提供的平滑处理方法进行平滑处理,为方便说明,本实施例中将当前帧称为待处理图像。本实施例中防抖处理需要结合当前帧之前至少两帧的关键点进行,因此,若待处理图像是视频流的第一帧或者第二帧,则通过s401-s405对其进行平滑即可。若待处理图像不是视频流的第一帧或者第二帧,在通过s401-s405对其进行平滑的基础上,继续通过s406-s407进一步做防抖处理。参见图4所示,本实施例提供的平滑处理方法,包括:
[0058]
s401、获取待处理图像上目标对象的关键点的坐标。
[0059]
s402、根据目标对象的关键点的坐标,构建目标对象对应的关键点向量。
[0060]
s403、获取重构矩阵。
[0061]
s404、根据s402得到的关键点向量和s403得到的重构矩阵,获取重构系数。
[0062]
s405、根据重构系数和重构矩阵,确定平滑处理后的关键点向量。
[0063]
s401-s405的实现过程可参见上述实施例中s201-s205,本实施例在此不再赘述。
[0064]
s406、根据待处理图像之前至少两帧图像上目标对象对应的关键点向量,获取待处理图像对应的关键点估计向量。
[0065]
一种可能的实现方式中,可根据待处理图像之前至少两帧图像上目标对象对应的关键点向量,计算方差向量;根据方差向量和待处理图像的前一帧图像对应的第一变量,确定待处理图像对应的第二变量;根据待处理图像对应的第二变量,确定待处理图像对应的增益;根据待处理图像对应的增益和待处理图像对应的第二变量,确定待处理图像对应的第一变量;根据待处理图像的前一帧图像对应的关键点估计向量、待处理图像对应的增益以及平滑后的关键点向量,确定待处理图像对应的关键点估计向量。
[0066]
为方便说明,本实施例方差向量使用qk表示,待处理图像的前一帧图像对应的第一变量使用p
k-1
表示,待处理图像对应的第二变量使用p
′k表示,待处理图像对应的增益使用gk表示,待处理图像对应的第一变量使用pk表示,待处理图像的前一帧图像对应的关键点估计向量使用px
k-1
表示,平滑后的关键点向量使用xk表示。
[0067]
下面介绍计算方差向量qk的可实现方式:
[0068]
以待处理图像为第三帧为例,根据第一帧图像上目标对象对应的关键点向量以及第二帧图像上目标对象对应的关键点向量,计算每个元素对应的方差,使用每个元素对应的方差组成方差向量qk。
[0069]
下面介绍确定待处理图像对应的第二变量p
′k的可实现方式:
[0070]
可通过如下公式确定待处理图像对应的第二变量p
′k:
[0071][0072]
其中,δ为经验值。第一帧的第一变量为p1,p1=0。
[0073]
下面介绍确定待处理图像对应的增益gk的可实现方式:
[0074]
可通过如下公式确定待处理图像对应的增益gk:
[0075][0076]
下面介绍确定待处理图像对应的第一变量pk的可实现方式:
[0077]
可通过如下公式确定待处理图像对应的第一变量pk:
[0078]
pk=(1-gk)*p
′k[0079]
下面介绍确定待处理图像对应的关键点估计向量的可实现方式:
[0080]
可通过如下公式确定待处理图像对应的关键点估计向量:
[0081]
pxk=px
k-1
gk*(x
k-px
k-1
)
[0082]
其中,pxk表示待处理图像对应的关键点估计向量,px
k-1
表示待处理图像的前一帧图像对应的关键点估计向量,xk表示平滑后的关键点向量。
[0083]
s407、根据平滑处理后的关键点向量和关键点估计向量,确定待处理图像对应的防抖处理后的关键点向量。
[0084]
具体的,获取平滑处理后的关键点向量和关键点估计向量之间的欧氏距离;若欧氏距离大于预设阈值,认为估计有误,则将平滑处理后的关键点向量确定为防抖处理后的关键点向量;若所述欧氏距离小于或者等于所述预设阈值,则将关键点估计向量确定为防抖处理后的关键点向量,从而提升视频流场景下帧间关键点的稳定性。
[0085]
图5为本技术提供的平滑处理装置的结构示意图。如图5所示,本技术提供的平滑处理装置,包括:
[0086]
构建模块501,用于获取待处理图像上目标对象的关键点;根据所述目标对象的关键点,构建所述目标对象对应的关键点向量;获取重构矩阵;根据所述关键点向量和所述重构矩阵,获取重构系数;;
[0087]
处理模块502,用于根据所述重构系数和所述重构矩阵,确定平滑处理后的关键点向量。
[0088]
可选的,构建模块501具体用于:
[0089]
根据图像集,构建关键点矩阵,所述图像集中每张图像上所述目标对象的关键点构成所述关键点矩阵的一行;
[0090]
根据所述关键点矩阵,获取目标矩阵;
[0091]
根据所述目标矩阵和所述图像集中图像数量,获取协方差矩阵;
[0092]
根据所述协方差矩阵,获取所述重构矩阵。
[0093]
可选的,构建模块501具体用于:
[0094]
获取所述图像集中所有图像上关键点的坐标的均值;
[0095]
将所述关键点矩阵中关键点的坐标减去所述均值,得到所述目标矩阵。
[0096]
可选的,构建模块501具体用于:
[0097]
通过如下公式获取所述协方差矩阵:
[0098][0099]
其中,ck×k表示所述协方差矩阵,x
′n×k表示所述目标矩阵,n表示所述图像集中图像数量。
[0100]
可选的,构建模块501具体用于:
[0101]
对所述协方差矩阵进行特征值分解,得到至少一个特征值;
[0102]
将所述至少一个特征值按照从大到小排序,并获取前预设数量个特征值对应的特征向量;
[0103]
根据所述预设数量个特征值对应的特征向量,构建所述重构矩阵。
[0104]
可选的,构建模块501具体用于:
[0105]
通过如下公式获取所述重构系数:
[0106]ck

=ak′×k·
x
t
[0107]
其中,ck′
表示所述重构系数,ak′×k表示所述重构矩阵,x表示所述关键点向量。
[0108]
可选的,处理模块502具体用于:
[0109]
通过如下公式确定所述平滑处理后的关键点向量:
[0110]
x

=a
t
·ck

[0111]
其中,x

表示所述平滑处理后的关键点向量,a表示所述重构矩阵,ck′
表示所述重构系数。
[0112]
可选的,处理模块502还用于:
[0113]
根据所述待处理图像之前至少两帧图像上所述目标对象对应的关键点向量,获取所述待处理图像对应的关键点估计向量;
[0114]
根据所述平滑处理后的关键点向量和所述关键点估计向量,确定所述待处理图像对应的防抖处理后的关键点向量。
[0115]
可选的,处理模块502具体用于:
[0116]
根据所述至少两帧图像上所述目标对象对应的关键点向量,计算方差向量;
[0117]
根据所述方差向量和所述待处理图像的前一帧图像对应的第一变量,确定所述待处理图像对应的第二变量;
[0118]
根据所述待处理图像对应的所述第二变量,确定所述待处理图像对应的增益;
[0119]
根据所述待处理图像对应的增益和所述待处理图像对应的第二变量,确定所述待处理图像对应的第一变量;
[0120]
根据所述待处理图像的前一帧图像对应的关键点估计向量、所述待处理图像对应的增益以及所述平滑后的关键点向量,确定所述待处理图像对应的关键点估计向量。
[0121]
可选的,处理模块502具体用于:
[0122]
通过如下公式确定所述待处理图像对应的第二变量:
[0123][0124]
其中,p
′k表示所述待处理图像对应的第二变量,qk表示所述方差向量,p
k-1
表示所述待处理图像的前一帧图像对应的第一变量,δ为经验值。
[0125]
可选的,处理模块502具体用于:
[0126]
通过如下公式确定所述待处理图像对应的增益:
[0127][0128]
其中,gk表示所述所述待处理图像对应的增益,p
′k表示所述待处理图像对应的所述第二变量。
[0129]
可选的,处理模块502具体用于:
[0130]
通过如下公式确定所述待处理图像对应的所述第一变量:
[0131]
pk=(1-gk)*p
′k[0132]
其中,pk表示所述待处理图像对应的所述第一变量,gk表示所述待处理图像对应的增益,p
′k表示所述待处理图像对应的第二变量。
[0133]
可选的,处理模块502具体用于:
[0134]
通过如下公式确定所述待处理图像对应的关键点估计向量:
[0135]
pxk=px
k-1
gk*(x
k-px
k-1
)
[0136]
其中,pxk表示所述待处理图像对应的关键点估计向量,px
k-1
表示所述待处理图像
的前一帧图像对应的关键点估计向量,gk表示所述待处理图像对应的增益,xk表示所述平滑后的关键点向量。
[0137]
可选的,处理模块502具体用于:
[0138]
获取所述平滑处理后的关键点向量和所述关键点估计向量之间的欧氏距离;
[0139]
若所述欧氏距离大于预设阈值,则将所述平滑处理后的关键点向量确定为所述防抖处理后的关键点向量;
[0140]
若所述欧氏距离小于或者等于所述预设阈值,则将所述关键点估计向量确定为所述防抖处理后的关键点向量。
[0141]
本实施例提供的关键点平滑装置,可用于执行上述任一方法实施例中的步骤,其实现原理和技术效果类似,在此不再赘述。
[0142]
图6为本技术提供的芯片的硬件结构示意图。如图6所示,本实施例的芯片可以包括:
[0143]
存储器601,用于存储程序指令。
[0144]
处理器602,用于在所述程序指令被执行时实现上述任一实施例描述的关键点平滑方法,具体实现原理可参见上述实施例,本实施例此处不再赘述。
[0145]
本技术提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一实施例描述的关键点平滑方法。
[0146]
本技术还提供一种程序产品,所述程序产品包括计算机程序,所述计算机程序存储在可读存储介质中,至少一个处理器可以从所述可读存储介质读取所述计算机程序,所述至少一个处理器执行所述计算机程序使得芯片实施上述任一实施例描述的关键点平滑方法。
[0147]
在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0148]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0149]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
[0150]
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(英文:processor)执行本技术各个实施例所述方法的部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(英文:read-only memory,简称:rom)、随机存取存储器(英文:random access memory,简
称:ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0151]
应理解,本技术所描述的处理器可以是中央处理单元(英文:central processing unit,简称:cpu),还可以是其他通用处理器、数字信号处理器(英文:digital signal processor,简称:dsp)、专用集成电路(英文:application specific integrated circuit,简称:asic)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本技术所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
[0152]
最后应说明的是:以上各实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述各实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的范围。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献