掌桥专利:专业的专利平台
掌桥专利
首页

图像关键点检测方法、装置、终端和存储介质

文献发布时间:2023-06-19 13:49:36


图像关键点检测方法、装置、终端和存储介质

技术领域

本申请涉及计算机领域,具体涉及图像关键点检测方法、装置、终端和存储介质。

背景技术

近年来,在计算机视觉任务中,采用高斯热度图法以及直接回归法,对图像中的关键点进行检测,得到图像中关键点对应的坐标。高斯热度图法通过卷积神经网络输出一个特征图,特征图上值最大的地方认为是关键点的位置,对特征图求最大值自变量点集(arguments of the maxima,argmax),得到关键点坐标。直接回归法是采用全连接层直接输出需要的坐标数值。

然而,目前对图像中关键点的坐标检测较为复杂,导致图像中关键点的坐标求取效率较低,且求取到的图像中关键点的坐标误差较大。

发明内容

本申请实施例提供图像关键点检测方法、装置、终端和存储介质,可以提升目标图形对应的特征图中关键点的坐标的求取效率以及坐标精度。

本申请实施例提供一种图像关键点检测方法,包括:

获取目标图像,以及预设特征图;

对目标图像进行卷积处理,得到输出矩阵,输出矩阵由多个矩阵元素组成,其中,矩阵元素和预设特征图中的特征图像素一一对应;

根据矩阵元素对特征图像素的坐标进行加权,得到矩阵元素所对应的所述特征图像素的加权像素坐标;

对加权像素坐标进行求和,得到预设特征图中关键点的坐标;

确定预设特征图中关键点的坐标的映射在目标图像中的关键点的坐标。

本申请实施例还提供一种图像关键点检测装置,包括:

获取单元,用于获取目标图像,以及预设特征图;

输出矩阵单元,用于对目标图像进行卷积处理,得到输出矩阵,输出矩阵由多个矩阵元素组成,其中,矩阵元素和预设特征图中的特征图像素一一对应;

坐标加权单元,根据矩阵元素对特征图像素的坐标进行加权,得到矩阵元素所对应的特征图像素的加权坐标;

坐标确定单元,用于对加权像素坐标进行求和,得到预设特征图中关键点的坐标;

坐标映射单元,用于确定预设特征图中关键点的坐标映射在目标图像中的关键点的坐标。

在一些实施例中,基于关键点,确定预设的训练特征图对应的新训练特征图,包括:

获取预设特征图与目标图像之间的分辨率比例;

根据分辨率比例,对关键点的坐标进行放大,得到映射在目标图像中的关键点的坐标。

在一些实施例中,输出矩阵单元,用于:

获取目标图像中每个图像像素对应的颜色参数;

对颜色参数进行卷积处理,得到矩阵元素。

在一些实施例中,在获取目标图像,以及预设特征图之前,包括:

获取多个训练数据集,以及获取关键点检测网络,关键点检测网络用于预测图像中关键点的坐标,训练数据集由多个训练图像组成,训练图像的标注为训练图像中的待处理点的坐标;

利用多个训练数据集对关键点检测网络进行训练,直至关键点检测网络收敛,得到训练完成的关键点检测网络;

对目标图像进行卷积处理,得到输出矩阵,包括:

采用关键点检测网络对目标图像进行卷积处理,得到输出矩阵。

在一些实施例中,利用多个训练数据集对关键点检测网络进行训练,包括:

获取预设训练特征图,预设训练特征图标注有关键点的真实坐标,关键点的真实坐标为训练图像的待处理点的坐标映射在预设训练特征图上的坐标;

基于预设训练特征图的关键点的真实坐标,确定预设训练特征图对应的新训练特征图;

对新训练特征图中所有的像素的坐标进行求和,得到新训练特征图对应的关键点的预测坐标;

采用预设训练特征图的关键点的真实坐标和新训练特征图对应的关键点的预测坐标,确定关键点检测网络的损失参数,并基于损失参数训练关键点检测网络。

在一些实施例中,基于预设训练特征图的关键点的真实坐标,确定预设的训练特征图对应的新训练特征图,包括:

确定关键点对应的候选区域,候选区域中包括关键点;

根据对角顶点集合中一对角顶点的坐标以及关键点的真实坐标,确定对角顶点集合中另一对角顶点的权重,对角顶点集合中包括对角顶点,对角顶点为位于候选区域的同一对角线上的两个顶点,顶点为像素;

根据权重,对候选区域中的像素的坐标进行加权处理,得到加权坐标;

采用候选区域中像素的加权坐标替换对应的候选区域中像素的加权处理前的坐标,得到新训练特征图。

在一些实施例中,获取预设训练特征图,预设训练特征图标注有关键点的真实坐标,关键点的真实坐标为训练图像的待处理点的坐标映射在预设训练特征图上的坐标,包括:

获取目标训练图像中待处理点的坐标和图像分辨率;

根据目标训练图的图像分辨率对待处理点的坐标进行归一化处理,得到待处理点的归一化坐标;

获取预设训练特征图的分辨率;

根据预设训练特征图的分辨率和归一化坐标,计算待处理点映射在预设训练特征图上所对应的坐标,预设训练特征图对应的真实坐标包括待处理点映射在预设训练特征图上所对应的坐标。

在一些实施例中,确定关键点对应的候选区域,候选区域中包括关键点,包括:

对真实坐标的横坐标和纵坐标进行向下取整,得到取整横坐标和取整纵坐标;

对取整横坐标和所述取整纵坐标在预设单位内进行扩大,得到扩大横坐标和扩大纵坐标;

根据取整横坐标、取整纵坐标、扩大横坐标以及扩大纵坐标,将横坐标和纵坐标进行两两组合,得到学习训练像素坐标,横包括取整横坐标或扩大横坐标,纵坐标包括取整纵坐标或扩大纵坐标。

在一些实施例中,根据对角顶点集合中一对角顶点的坐标以及关键点的坐标,确定对角顶点集合中另一对角顶点的权重,包括:

计算一对角顶点横坐标差值,横坐标差值为一对角顶点的横坐标与关键点的横坐标之间的差值;

计算一对角顶点纵坐标差值,纵坐标差值为一对角顶点的纵坐标与关键点的纵坐标之间的差值;

将一对角顶点横坐标差值和纵坐标差值相乘,得到另一对角顶点权重。

本申请实施例还提供一种终端,包括存储器存储有多条指令;所述处理器从所述存储器中加载指令,以执行本申请实施例所提供的任一种图像关键点检测方法中的步骤。

本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有多条指令,所述指令适于处理器进行加载,以执行本申请实施例所提供的任一种图像关键点检测方法中的步骤。

本申请实施例可以获取目标图像,以及预设特征图;对目标图像进行卷积处理,得到输出矩阵,输出矩阵由多个矩阵元素组成,其中,矩阵元素和预设特征图中的特征图像素一一对应;根据矩阵元素对特征图像素的坐标进行加权,得到矩阵元素所对应的特征图像素的加权坐标;对加权像素坐标进行求和,得到预设特征图中关键点的坐标;确定预设特征图中关键点的坐标映射在目标图像中的关键点的坐标。

在本申请中,对目标图形进行卷积处理,得到输出矩阵,用输出矩阵中的矩阵元素对预设特征图中的特征图像素的坐标进行加权,得到矩阵元素所对应的特征图像素的加权坐标,最后将加权像素坐标进行求和,得到预设特征图中的关键点的坐标,从而确定预设特征图中关键点的坐标的映射在目标图像中的关键点的坐标,如此,本申请并不像高斯热图法采用非端到端的方式求取特征图的关键点的坐标,降低了非端到端计算特征图的关键点的坐标时可能产生的误差,同时,本申请也并未像直接回归法在计算特征图的关键的坐标时丢掉了特征图的空间信息,导致空间泛化性较差,以至于影响特征图的关键点的坐标的准确性。本申请只通过少量的运算量就得到了目标图像的关键点的坐标,提升了目标图像中的关键点的坐标的求取效率以及坐标精度。

附图说明

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

图1a是本申请实施例提供的关键点检测方法的场景示意图;

图1b是本申请实施例提供的关键点检测方法的流程示意图;

图2是本申请实施例提供的关键点检测装置的结构示意图;

图3是本申请实施例提供的移动终端的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

本申请实施例提供图像关键点检测方法、装置、终端和存储介质。

其中,该关键点检测具体可以集成在电子设备中,该电子设备可以为终端、服务器等设备。其中,终端可以为手机、平板电脑、智能蓝牙设备、笔记本电脑、或者个人电脑(Personal Computer,PC)等设备;服务器可以是单一服务器,也可以是由多个服务器组成的服务器集群。

在一些实施例中,该图像关键点检测装置还可以集成在多个电子设备中,比如,图像关键点检测装置可以集成在多个服务器中,由多个服务器来实现本申请的图像关键点检测方法。

在一些实施例中,服务器也可以以终端的形式来实现。

目前,高斯热度图法中,从图像输入到关键点输出不是一个全微分的模型。高斯热图到关键点坐标,是通过对特征图求最大值自变量点集(arguments of the maxima,argmax)方式离线得到的,因此,高斯热度图法采用的是非端到端的方式,非端到端相比端到端容易在生成坐标时丢失更多信息。例如,若输出的高斯热图尺寸是输入图像尺寸的1/4,将高斯热图进行还原时,高斯热图中一个像素将还原成4个像素,而这4个像素并未有空间位置信息,导致在对高斯热图还原时,这4个像素难以还原到以前的位置,存在像素坐标误差。同时,高斯热度图法由于要生成高分辨的高斯热图,导致运算量较大,由此内存消耗大。

直接回归法中,二维的特征图经过全连接层转换成一维的向量,从而使特征图丢失了空间信息,导致空间泛化性较差,对数据的分布均衡性要求较高。空间泛化是指模型训练期间获取一个位置的能力,在推理阶段迁移学习到定位另一个位置的能力,空间泛化性差会影响推理的准确性。

例如,由于目前图形对应的特征图的关键点的坐标通过上述方式获取较为复杂且坐标误差较大,因此,本申请实施例提出一种图像关键点检测方法,参考图1a和图1b,在本方案的一个实施例中,该电子设备可以是移动终端,该移动终端可以对图像的关键点进行检测,该移动终端可以获取目标图像,以及预设特征图;对目标图像进行卷积处理,得到输出矩阵,输出矩阵由多个矩阵元素组成,其中,矩阵元素和预设特征图中的特征图像素一一对应;根据矩阵元素对特征图像素的坐标进行加权,得到矩阵元素所对应的特征图像素的加权像素坐标;对加权像素坐标进行求和,得到预设特征图中关键点的坐标;确定预设特征图中关键点的坐标映射在目标图像中的关键点的坐标。

其中,对目标图像进行卷积,得到输出矩阵,用输出矩阵中的矩阵元素对预设特征图中的特征图像素的坐标进行加权,从而得到加权像素坐标,将预设特征图对应的加权像素坐标相加,得到目标图像对应的预设特征图中的关键点的坐标。本申请应用了预设特征图中特征图像素的坐标,并未丢掉特征图像素的空间信息,有利于提升得到目标图像对应的预设特征图的关键点的坐标的精确度,同时,本申请可以直接得到目标图像的关键点的坐标,并未采用非端到端来求取目标图像的关键点的坐标,降低了非端到端计算目标图像中关键点的坐标带来的信息丢失。如此,本申请只通过少量的运算量就得到了目标图像的关键点的坐标,提升了目标图像中关键点的坐标的求取效率以及坐标精度。

以下分别进行详细说明。需说明的是,以下实施例的序号不作为对实施例优选顺序的限定。

在本实施例中,提供了一种图像关键点检测方法,如图1b所示,该图像关键点检测方法的具体流程可以如下:

110、获取目标图像,以及预设特征图。

其中,目标图像可以是包含有待识别特征的电子图片,待识别特征可以是人脸特征、手部姿势特征等。电子图片可以是具有RGB通道的图片,或具有CMYK通道的图片等。例如,目标图像可以是对待识别特征进行关键点位置检测的电子图片,关键点位置检测涉及待识别特征的关键点的坐标。

例如,获取目标图像可以应用在人脸识别、手部姿势识别、图像关键点预测等场景内。

目标图像的获取方法具有多种,例如,根据获取来源的不同,可以从本地获取目标图像,还可以从异地获取目标图像。本地通过目标图像存储在本地,当要对目标图像进行处理时,可以对目标图像进行拉取。异地可以通过向存储有目标图像的存储设备发送获取请求,获取存储设备发送的目标图像。

其中,预设特征图可以是预先设置的特征图,该预设特征图中的像素没有RGB值,可以有像素坐标。

例如,预设特征图可以是5*5的特征图,还可以是9*9的特征图,在此不做特别限定。

在一些实施例中,为了起到训练关键点检测网络的效果,步骤110之前可以包括如下步骤:

获取多个训练数据集,以及获取关键点检测网络,关键点检测网络用于预测图像中关键点的坐标,训练数据集由多个训练图像组成,训练图像的标注为训练图像中的待处理点的坐标;

利用多个训练数据集对关键点检测网络进行训练,直至关键点检测网络收敛,得到训练完成的关键点检测网络;

对目标图像进行卷积处理,得到输出矩阵,包括:

采用关键点检测网络对所述目标图像进行卷积处理,得到输出矩阵。

其中,训练数据集可以是用于训练卷积神经网络的数据集合,训练数据集由训练参数组成。其中,训练数据集可以由训练图像及其标注有训练图像中的待处理点的坐标组成。其中,多个训练数据集可以应用在训练卷积神经网络中。

训练数据集的获取方法具有多种,例如,可以从本地获取训练数据集,还可以从异地获取训练数据集。例如,当终端需要获取多个训练数据集时,终端可以从本地存储上获取,或是终端从服务器中异地调取。本地通过训练数据集存储在本地,当要获取训练数据集中的训练参数时,可以对训练参数进行拉取。异地可以通过向存储有训练数据集的存储设备发送获取请求,获取存储设备发送的训练参数。

其中,关键点检测网络可以是用于预测图像中待识别特征的关键点坐标。例如,预测图像中手部特征的位置坐标,具体可以是预测手部特征处的关键点坐标。

其中,关键点检测网络可以应用于手部位置识别,具体可以应用在短视频、直播等娱乐交互场景中,基于指尖点检测和指骨关键点检测,可实现手部特效、空间作画等多种创意玩法,丰富交互体验。

关键点检测网络的获取方法具有多种,例如,根据获取来源的不同,关键点检测网络可以从本地或异地获取。例如,关键点检测网络存储在本地终端中,终端可以从本地存储获取,关键点检测网络存储在服务器内,终端需要异地访问服务器获取关键点检测网络。

多个数据训练集可以由多种不同类型的训练数据集组成。其中,训练数据集可以包括多种图像内容不同的图片,具体包括需要进行识别特征识别的图片和不需要进行特征识别的图标。

其中,目标训练图像可以是多种类型的图像,其中一部分目标训练图像包含有待识别特征。例如,当要对含有手部特征的图片进行位置预测时,目标训练图像可以包括含有手部特征的图像,还可以包括脸部特征的图像等具有其它特征的图像。

其中,用不同类型的训练数据集训练关键点检测网络,可以提升关键点检测网络的识别能力,当关键点检测网络的多个输出值预测正确时,关键点检测网络收敛,得到训练完成的关键点检测网络。

关键点检测网络的训练方法具有多种,例如,根据获取来源的不同,可以在本地或异地对关键点检测网络进行训练。例如,可以直接在终端中进行本地训练,或是在服务器中进行异地训练。

在一些实施例中,为了起到训练关键点检测网络的效果,该装置还用于:

获取预设训练特征图,预设训练特征图标注有关键点的真实坐标,关键点的真实坐标为训练图像的待处理点的坐标映射在预设训练特征图上的坐标;

基于预设训练特征图的关键点的真实坐标,确定预设训练特征图对应的新训练特征图;

对新训练特征图中所有的像素的坐标进行求和,得到新训练特征图对应的关键点的预测坐标;

采用预设训练特征图的关键点的真实坐标和新训练特征图对应的关键点的预测坐标,确定关键点检测网络的损失参数,并基于损失参数训练关键点检测网络。

其中,预设训练特征图的关键点的真实坐标可以是训练图像的待处理点的坐标映射在预设训练特征图上的坐标。

例如,训练图像上标注有待处理点的坐标,对待处理点的坐标进行预处理,从而使训练图像上待处理点的坐标映射在预设训练特征图上,如此,预设训练特征图标注有关键点的真实坐标。

其中,新训练特征图可以是预设训练特征图中像素的坐标经过加权处理后对应的特征图。

在一些实施例中,为了起到获取新训练特征图的效果,该装置还用于:确定关键点对应的候选区域,候选区域中包括关键点;

根据对角顶点集合中一对角顶点的坐标以及关键点的真实坐标,确定对角顶点集合中另一对角顶点的权重,对角顶点集合中包括对角顶点,对角顶点为位于候选区域的同一对角线上的两个顶点,顶点为像素;

根据权重,对候选区域中的像素的坐标进行加权处理,得到加权坐标;

采用候选区域中像素的加权坐标替换对应的候选区域中像素的加权处理前的坐标,得到新训练特征图。

其中,候选区域可以是训练特征图的局部区域,该局部区域中包含有关键点。例如,候选区域可以距离关键点最近的四个像素围成的区域。

其中,可以通过关键点周围的像素坐标预测出关键点的坐标。

在一些实施例中,为了起到获取候选区域的效果,该装置还用于:

对真实坐标的横坐标和纵坐标进行向下取整,得到取整横坐标和取整纵坐标;

对取整横坐标和取整纵坐标在预设单位内进行扩大,得到扩大横坐标和扩大纵坐标;

根据取整横坐标、取整纵坐标、扩大横坐标以及扩大纵坐标,将横坐标和纵坐标进行两两组合,得到学习训练像素坐标,横包括取整横坐标或扩大横坐标,纵坐标包括取整纵坐标或扩大纵坐标。

其中,候选区域中包含的坐标:

取整横坐标:xf=floor(x);

取整纵坐标:yf=floor(y);

其中,x为真实坐标的横坐标,y为真实坐标的纵坐标,floor()代表向下取整。

扩大横坐标:xc=xf+1;

扩大纵坐标:yc=yf+1;

那么候选区域的关键点的坐标分别为:

左上角坐标:c_tl=(xf,yf);

左下角坐标:c_tr=(xf,yc);

右上角坐标:c_bl=(xc,yf);

右下角坐标:c_br=(xc,yc)。

其中,对角顶点集合可以是左上角坐标和右下角坐标的组合,还可以是右上角坐标和右下角坐标的组合。

在一些实施例中,为了起到获取候选区域中像素的坐标的权重的效果,该装置还用于:

计算一对角顶点横坐标差值,横坐标差值为一对角顶点的横坐标与关键点的横坐标之间的差值;

计算一对角顶点纵坐标差值,纵坐标差值为一对角顶点的纵坐标与关键点的纵坐标之间的差值;

将一对角顶点横坐标差值和纵坐标差值相乘,得到另一对角顶点权重。

其中,对角顶点集合中另一对角顶点的权重:

左上角坐标的权值:Value(c_tl)=(xc-xt)*(yc-yt);

左下角坐标的权值:Value(c_tr)=(xc-xt)*(yt-yf);

右上角坐标的权值:Value(c_bl)=(xt-xf)*(yc-yt);

右下角坐标的权值:Value(c_br)=(xt-xf)*(yt-yf);

其中,Value()为坐标权值。

如表1所示,例如,训练坐标为(1.2,1.2)时,训练网格对应的横向和纵向格子数为5:

表1

在一些实施例中,根据权重,对候选区域中像素的坐标进行加权处理,得到加权坐标。

例如,真实坐标为(1.2,1.2)时,候选区域中的像素坐标为(1,1)、(1,2)、(2,1)、(2,2),候选区域中像素坐标(1,1)对应的权重为0.64,候选区域中像素坐标(1,2)对应的权重为0.16,候选区域中像素坐标(2,1)对应的权重为0.16,候选区域中像素坐标(2,2)对应的权重为0.04,将权重与对应的候选区域中像素的坐标进行加权处理,(1,1)对应的加强坐标为(0.64,0.64)、(1,2)对应的加强坐标为(0.16,0.32)、(2,1)对应的加强坐标为(0.32,0.16)、(2,2)分布对应的加权坐标为(0.08,0.08)。

其中,为了区分和预设训练特征图的不同,将像素加权后的坐标用新训练特征图表示。

在一些实施例中,为了起到预设训练特征图的关键点的真实坐标的效果,该装置还用于:

获取训练图像中待处理点的坐标和图像分辨率;

根据训练图像的图像分辨率对待处理点的坐标进行归一化处理,得到待处理点的归一化坐标;

获取预设训练特征图的分辨率;

根据预设训练特征图的分辨率和归一化坐标,计算待处理点映射在预设训练特征图上所对应的坐标,预设训练特征图对应的真实坐标包括待处理点映射在预设训练特征图上所对应的坐标。

其中,待处理点的坐标可以是训练图像中待识别特征的关键点的坐标。例如,训练图像为包括有手部特征的图形,对手部特征进行识别时,通过手部特征的关键点的坐标进行识别。

比如,不同训练图像的分辨率可能不相同,导致不同训练图像的待处理点的坐标在不同的坐标系上,归一化坐标可以将待处理点的横坐标和纵坐标统一在0-1的范围。

例如,A训练图像的图形尺寸大小为720*720,A待处理点的坐标为(252,252),B训练图像的图形尺寸大小为540*540,B待处理点的坐标为(189,189),其中,A训练图像和B训练图像是具有相同图形内容但分辨率不同的图像,对于同一内容的表示采用了两种坐标,如此,不利于训练关键点检测网络。通过训练图像的分辨率对待处理点的坐标进行归一化处理,有利于训练关键点检测网络。

其中,预设训练特征图对应的真实坐标可以是关键点的坐标,目标训练图像中待处理点的坐标映射在预设训练特征图中关键点的坐标上。

其中,预测坐标可以是训练图像对应的预设训练特征图中关键点的预测坐标。其中,预测坐标可以是用关键点检测网络预测训练图像对应的预设训练特征图的关键点的坐标,预测坐标可以和真实坐标重合,也可以和真实坐标临近,也可以完全偏离真实坐标。

例如,真实坐标为(1.2,1.2),新训练特征图中的加权坐标为(0.64,0.64)、(0.16,0.32)、(0.32,0.16)、(0.08,0.08),对新训练特征图中的像素的坐标进行求和(0.64+0.16+0.32+0.08,0.64+0.32+0.16+0.08),得到预测关键点坐标(1.2,1.2),预测坐标和真实坐标相同。

其中,损失参数可以用于表示预测坐标是否与真实坐标相同。例如,图形中的待识别结果是猫,预测结果为狗,此时,损失参数为100%,当预测结果为猫时,此时的损失参数为0%。

其中,在对卷积神经网路进行训练时,需要根据损失参数训练关键点检测网络,从而使关键点检测网络中用于预测图像的关键点的参数更加精准。

120、对目标图像进行卷积处理,得到输出矩阵,输出矩阵由多个矩阵元素组成,其中,矩阵元素和预设特征图中的特征图像素一一对应输出矩阵。

在一些实施例中,为了起到获取矩阵元素的效果,步骤120可以包括如下步骤:

获取目标图像中每个图像像素对应的颜色参数;

对颜色参数进行卷积处理,得到矩阵元素。

比如,颜色参数具体可以包括红色通道的颜色参数,绿色通道的颜色参数以及蓝色通道的颜色参数。

其中,对红色通道、绿色通道以及蓝色通道的颜色参数进行卷积处理后,得到矩阵元素。

其中,输出的矩阵元素可以由如下方式得到:

Z=ax+by+ck+…;

其中,Z可以是矩阵元素,a,b,c可以是关键点检测网络中通过训练学习到的参数,x,y,k可以是目标图像的像素对应的RGB值。

130、根据矩阵元素对特征图像素的坐标进行加权,得到矩阵元素所对应的特征图像素的加权像素坐标。

其中,矩阵元素和特征图像素一一对应,从而根据矩阵元素对特征图像素的坐标进行加权,将矩阵元素乘以特征图像素的坐标,得到特征图像素的加权坐标。

140、对加权像素坐标进行求和,得到预设特征图中关键点的坐标。

其中,预设特征图的关键点的坐标可以用于表示映射在目标图像中待识别特征的关键点的位置。

150、确定预设特征图中关键点的坐标映射在目标图像中的关键点的坐标。

在一些实施例中,为了起到获得目标图形中的关键点的坐标的效果,该装置还用于:

获取所述预设特征图与所述目标图像之间的分辨率比例;

根据分辨率比例,对关键点的坐标进行放大,得到映射在目标图像中的关键点的坐标。

其中,目标图像的关键点的坐标可以用于表示目标图像中待识别特征的关键点的位置。

其中,目标图像与特征图之间的分辨率比例为20,此时的特征图的关键点的坐标为(1.2,1.2),那么目标图像的关键点的坐标为(24,24)。

其中,目标图像可以是需要预测手部姿势的图像,通过手部姿势的关键点的坐标来判断手部姿势的类型。

本申请实施例提供的方案可以应用图像关键点检测的场景中。比如,以手势关键点检测为例,获取和手势有关的目标图像,以及获取预设特征图,对目标图像进行卷积,得到由多个矩阵元素组成的输出矩阵,根据矩阵元素对预设特征图中的特征图像素的坐标进行加权,再将多个特征图像素的加权坐标进行求和,得到目标图像对应的预设特征图中的关键点的坐标,从而根据预设特征图中关键点的坐标确定映射在所述目标图像中的关键点的坐标,如此,本申请提供的预设特征图中的特征图像素具有空间信息,有利于提升输出目标图像对应的关键点的坐标的精确度,同时,本申请可以直接得到目标图像的关键点的坐标,并未采用非端到端来求取目标图像的关键点的坐标,从而降低了非端到端计算目标图像的关键点的坐标时带来的信息丢失量。如此,本申请只通过少量的运算量就得到了目标图像的关键点的坐标,由此,提升了目标图像的关键点的坐标的求取效率以及坐标精度。

由上可知,本申请实施例可以减小获取目标图像的关键点的坐标的运算量,同时,本方案的在求取坐标时,减小了可能丢失坐标信息的运算环节,升了目标图形的关键点的坐标的求取效率以及坐标精度。

根据上述实施例所描述的方法,以下将作进一步详细说明。

全卷积神经网络最后一层的输出是一个W*H*C的训练特征图,其中C为要输出的坐标点数。为了训练卷积神经网络,需要设置好特征图的真值供网络学习。设置规则如下:将预设训练特征图标注有真实坐标最近的四个像素按距离远近设置权重,权重的具体数值根据像素离真实坐标的距离按双线性公式计算,四个像素的权重和为1,预设训练特征图其余的像素坐标对应的权重为0。得到新训练特征图后,计算新训练特征图输出与真值特征图之间的交叉熵损失,然后使用梯度下降法训练卷积神经网络。使用网络进行坐标预测时,将新训练特征图上每个像素的权重乘以该像素的坐标,就得到要预测坐标。

归一化坐标为(x,y),预设训练特征图尺寸为(W,H)。归一化坐标可以通过将原坐标的横纵坐标分别除以图像的分辨率得到。首先计算归一化坐标在预设训练特征图上的位置:

当(W,H)中的W为0时,归一化坐标在预设训练特征图上的位置,(xt,yt)=(x*(W-1),y*(H-1));

当(W,H)中的W为1时,归一化坐标在预设训练特征图上的位置,(xt,yt)=(x*W,y*H)。

计算预设训练特征图上离(xt,yt)最近的4个像素位置,像素位置为(0,0)~(W-1,H-1)的二维整数。

xf=floor(xt);

yf=floor(yt);

xc=xf+1;

yc=yf+1。

其中floor()代表向下取整,那么4个像素的位置分别为左上角坐标:c_tl=(xf,yf);左下角坐标:c_tr=(xf,yc);右上角坐标:c_bl=(xc,yf);右下角坐标:c_br=(xc,yc)。

其中每个像素的值按标注坐标距离进行双线性分配,具体计算公式如下:

左上角坐标的权值:Value(c_tl)=(xc-xt)*(yc-yt);

左下角坐标的权值:Value(c_tr)=(xc-xt)*(yt-yf);

右上角坐标的权值:Value(c_bl)=(xt-xf)*(yc-yt);

右下角坐标的权值:Value(c_br)=(xt-xf)*(yt-yf);

除这4个像素外,特征图上其他位置的值设为0。

卷积神经网络在位置c上i矩阵元素记为Pre(ci),那么交叉熵损失为:

Loss=-(Value(c_tl)*log(Pre(c_tl))+Value(c_tr)*log(Pre(c_tr))+Value(c_bl)*log(Pre(c_bl))+Value(c_br)*log(Pre(c_br)))。

得到损失参数后,使用梯度下降法更新网络权重即可训练关键点检测网络。

关键点检测网络训练完成后,将特征图上每个像素的矩阵元素乘以该像素的坐标即为特征图的关键点的坐标:

∑Value(ci)*ci=(x_pre,y_pre);

其中,ci代表遍历特征图上每个像素的位置,x_pre用于关键点的横坐标预测值,y_pre用于关键点的纵坐标预测值。

当关键点检测网络输出如训练特征图接近,那么特征图的关键点的坐标:∑Value(ci)*ci=c_tl*Value(c_tl)+c_tr*Value(c_tr)+c_bl*Value(c_bl)+c_br*Value(c_br)=(xt,yt)。

综上所述,应用在训练关键点检测网络场景中,通过对预设特征图的坐标进行加权,并对加权后的坐标进行求和,得到关键点的坐标值,解决了高斯热度图法需要计算高分辨率特征图因和非端到端导致的误差下界问题,提升数值坐标回归任务的效率和准确度。

为了更好地实施以上方法,本申请实施例还提供一种图像关键点检测装置,该图像关键点检测装置具体可以集成在电子设备中,该电子设备可以为终端、服务器等设备。其中,终端可以为手机、平板电脑、智能蓝牙设备、笔记本电脑、个人电脑等设备;服务器可以是单一服务器,也可以是由多个服务器组成的服务器集群。

比如,在本实施例中,将以图像关键点检测装置具体集成在一种终端为例,对本申请实施例的方法进行详细说明。

例如,如图2所示,该图像关键点检测装置可以包括:

(一)获取单元210;

获取单元210,用于获取目标图像,以及预设特征图。

在一些实施例中,在获取目标图像,以及预设特征图之前,该装置还用于:

获取多个训练数据集,以及获取关键点检测网络,坐标关键点网络用于预测图像中关键点的坐标,训练数据集由多个训练图像组成,训练图像的标注为训练图中的待处理点的坐标;

利用多个训练数据集对关键点检测网络进行训练,直至关键点检测网络收敛,得到训练完成的关键点检测网络;

对目标图像进行卷积处理,得到输出矩阵,包括:

采用关键点检测网络对目标图像进行卷积处理,得到输出矩阵。

在一些实施例中,利用多个训练数据集对关键点检测网络进行训练,包括:

获取预设训练特征图,预设训练特征图标注有关键点的真实坐标,关键点的真实坐标为训练图像的待处理点的坐标映射在预设训练特征图上的坐标;

基于预设训练特征图的关键点的真实坐标,确定预训练特征图对应的新训练特征图;

对新训练特征图中所有的像素的坐标进行求和,得到新训练特征图对应的关键点的预测坐标;

采用预设训练特征图的关键点的真实坐标和新训练特征图对应的关键点的预测坐标,确定关键点检测网络的损失参数,并基于损失参数训练关键点检测网络。

在一些实施例中,基于关键点,确定预设的训练特征图对应的新训练特征图,包括:

确定关键点对应的候选区域,候选区域中包括关键点;

根据对角顶点集合中一对角顶点的坐标以及关键点的真实坐标,确定对角顶点集合中另一对角顶点的权重,对角顶点集合中包括对角顶点,对角顶点为位于候选区域的同一对角线上的两个顶点,顶点为像素;

根据权重,对候选区域中的像素的坐标进行加权处理,得到加权坐标;

采用候选区域中像素的加权坐标替换对应的候选区域中像素的加权处理前的坐标,得到新训练特征图。

在一些实施例中,获取预设训练特征图,预设训练特征图标注有关键点的真实坐标,关键点的真实坐标为训练图像的待处理点的坐标映射在预设训练特征图上的坐标,该装置还用于:

获取训练图像中待处理点的坐标和图像分辨率;

根据目标训练图像的图像分辨率对待处理点的坐标进行归一化处理,得到待处理点的归一化坐标;

获取预设训练特征图的分辨率;

根据预设训练特征图的分辨率和归一化坐标,计算待处理点映射在预设训练特征图上所对应的坐标,预设训练特征图对应的真实坐标包括待处理点映射在预设训练特征图上所对应的坐标。

在一些实施例中,确定关键点对应的候选区域,候选区域中包括关键点,该装置还用于:

对训练坐标的横坐标和纵坐标进行向下取整,得到取整横坐标和取整纵坐标;

对取整横坐标和所述取整纵坐标在预设单位内进行扩大,得到扩大横坐标和扩大纵坐标;

根据取整横坐标、取整纵坐标、扩大横坐标以及扩大纵坐标,将横坐标和纵坐标进行两两组合,得到学习训练像素坐标,横包括取整横坐标或扩大横坐标,纵坐标包括取整纵坐标或扩大纵坐标。

在一些实施例中,根据对角顶点集合中一对角顶点的坐标以及关键点的坐标,确定对角顶点集合中另一对角顶点的权重,包括:

计算一对角顶点横坐标差值,横坐标差值为一对角顶点的横坐标与关键点的横坐标之间的差值;

计算一对角顶点纵坐标差值,纵坐标差值为一对角顶点的纵坐标与关键点的纵坐标之间的差值;

将一对角顶点横坐标差值和纵坐标差值相乘,得到另一对角顶点权重。

(二)输出矩阵单元220;

输出矩阵单元220,用于对目标图像进行卷积处理,得到输出矩阵,输出矩阵由多个矩阵元素组成,其中,矩阵元素和预设特征图中的特征图像素一一对应。

在一些实施例中,对目标图像进行卷积处理,得到输出矩阵,输出矩阵由多个矩阵元素组成,包括:

获取目标图像中每个图像像素对应的颜色参数;

对颜色参数进行卷积处理,得到矩阵元素。

(三)坐标加权单元230;

坐标加权单元230,用于根据矩阵元素对特征图像素的坐标进行加权,得到矩阵元素所对应的特征图像素的加权像素坐标。

(四)坐标确定单元240;

坐标确定单元240,用于对加权像素坐标进行求和,得到预设特征图中关键点的坐标。

(五)坐标映射单元250;

坐标映射单元250,用于确定预设特征图中关键点的坐标映射在目标图像中的关键点的坐标。

在一些实施例中,确定预设特征图中关键点的坐标的映射在所述目标图像中的关键点的坐标,该装置还用于:

获取预设特征图与目标图像之间的分辨率比例;

根据分辨率比例,对关键点的坐标进行放大,得到映射在目标图像中的关键点的坐标。

具体实施时,以上各个单元可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,以上各个单元的具体实施可参见前面的方法实施例,在此不再赘述。

由上可知,本实施例的关键点检测装置由获取单元获取目标图像,以及预设特征图;由输出矩阵单元对目标图像进行卷积处理,得到输出矩阵,输出矩阵由多个矩阵元素组成,其中,矩阵元素和预设特征图中的特征图像素一一对应;由坐标加权单元对矩阵元素所对应的特征图像素的坐标进行加权,得到矩阵元素所对应的特征图像素的加权坐标;由坐标确定单元对加权像素坐标进行求和,得到预设特征图中的关键点的坐标;由坐标映射单元确定预设特征图中关键点的坐标的映射在目标图像中的关键点的坐标。

由此,本申请只通过少量的运算量就得到了目标图像的关键点的坐标,提升了目标图形的关键点的坐标的求取效率以及坐标精度。

由此,本申请实施例提升了目标图形中关键点检测的效率。本申请实施例还提供一种电子设备,该电子设备可以为终端、服务器等设备。其中,终端可以为手机、平板电脑、智能蓝牙设备、笔记本电脑、个人电脑,等等;服务器可以是单一服务器,也可以是由多个服务器组成的服务器集群,等等。

在一些实施例中,该图像关键点检测装置还可以集成在多个电子设备中,比如,图像关键点检测装置可以集成在多个服务器中,由多个服务器来实现本申请的关键点检测方法。

在本实施例中,将以本实施例的电子设备是移动终端为例进行详细描述,比如,如图3所示,其示出了本申请实施例所涉及的移动终端的结构示意图,具体来讲:

该移动终端可以包括一个或者一个以上处理核心的处理器310、一个或一个以上计算机可读存储介质的存储器320、电源330、输入模块340以及通信模块350等部件。本领域技术人员可以理解,图3中示出的结构并不构成对移动终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:

处理器310是该移动终端的控制中心,利用各种接口和线路连接整个移动终端的各个部分,通过运行或执行存储在存储器320内的软件程序和/或模块,以及调用存储在存储器320内的数据,执行移动终端的各种功能和处理数据,从而对移动终端进行整体监控。在一些实施例中,处理器310可包括一个或多个处理核心;在一些实施例中,处理器310可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器310中。

存储器320可用于存储软件程序以及模块,处理器310通过运行存储在存储器320的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器320可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据移动终端的使用所创建的数据等。此外,存储器320可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器320还可以包括存储器控制器,以提供处理器310对存储器320的访问。

移动终端还包括给各个部件供电的电源330,在一些实施例中,电源330可以通过电源管理系统与处理器310逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源330还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。

该移动终端还可包括输入模块340,该输入模块340可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、话筒、光学或者轨迹球信号输入。

该移动终端还可包括通信模块350,在一些实施例中通信模块350可以包括无线模块,移动终端可以通过该通信模块350的无线模块进行短距离无线传输,从而为用户提供了无线的宽带互联网访问。比如,该通信模块350可以用于帮助用户收发电子邮件、浏览网页和访问流式媒体等。

尽管未示出,移动终端还可以包括显示单元等,在此不再赘述。具体在本实施例中,移动终端中的处理器310会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器320中,并由处理器310来运行存储在存储器320中的应用程序,从而实现各种功能,如下:

获取目标图像,以及预设特征图;

对目标图像进行卷积处理,得到输出矩阵,输出矩阵由多个矩阵元素组成,其中,矩阵元素和预设特征图中的特征图像素一一对应;

根据矩阵元素对特征图像素的坐标进行加权,得到矩阵元素所对应的特征图像素的加权像素坐标;

对加权像素坐标进行求和,得到预设特征图中关键点的坐标;

确定预设特征图中关键点的坐标映射在目标图像中的关键点的坐标。

以上各个操作的具体实施可参见前面的实施例,在此不再赘述。

由上可知,本实施例并不像高斯热图法一样采用非端到端的方式求取特征图的关键点的坐标,降低了非端到端计算特征图形的关键点的坐标时可能产生的误差,同时,本申请也并未像直接回归法一样在计算图形的关键的坐标时丢掉了特征图的空间信息,导致空间泛化性较差,以至于影响特征图的关键点的坐标的准确性。本申请只通过少量的运算量就得到了目标图像的关键点的坐标,由此,提升了目标图形的关键点的坐标的求取效率以及坐标精度。

本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。

为此,本申请实施例提供一种计算机可读存储介质,其中存储有多条计算机程序,该计算机程序能够被处理器进行加载,以执行本申请实施例所提供的任一种图像关键点检测方法中的步骤。例如,该计算机程序可以执行如下步骤:

获取目标图像,以及预设特征图;

对目标图像进行卷积处理,得到输出矩阵,输出矩阵由多个矩阵元素组成,其中,矩阵元素和预设特征图中的特征图像素一一对应;

根据矩阵元素对特征图像素的坐标进行加权,得到矩阵元素所对应的特征图像素的加权像素坐标;

对加权像素坐标进行求和,得到预设特征图中关键点的坐标;

确定预设特征图中关键点的坐标映射在目标图像中的关键点的坐标。

以上各个操作的具体实施可参见前面的实施例,在此不再赘述。

其中,该存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。

由于该存储介质中所存储的计算机程序,可以执行本申请实施例所提供的任一种图像关键点检测方法中的步骤,因此,可以实现本申请实施例所提供的任一种图像关键点检测方法所能实现的有益效果,详见前面的实施例,在此不再赘述。

以上对本申请实施例所提供的一种图像关键点检测方法、装置、存储介质及计算机设备进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

相关技术
  • 图像关键点检测方法、装置、终端和存储介质
  • 一种图像关键点的检测方法、装置、电子设备及存储介质
技术分类

06120113820555