关键点定位模型训练方法、定位方法、装置及设备与流程

文档序号:17624430发布日期:2019-05-10 23:29阅读:222来源:国知局
关键点定位模型训练方法、定位方法、装置及设备与流程

本发明涉及关键点定位技术领域,尤其是涉及一种关键点定位模型训练方法、定位方法、装置及设备。



背景技术:

人脸关键点定位是指从图像中检测定位到人脸关键部位的坐标位置,比如嘴角、眼角、鼻尖等,该技术广泛应用于人脸识别、虚拟形象构建、虚拟整形美颜等领域。

现有的人脸关键点定位方法通常基于深度神经网络模型,在实际应用时,通常需要在模型大小与模型精度间进行权衡。当资源受限时需要减小模型大小,则会牺牲关键点定位准确性,导致模型在资源受限场景如手机端应用时,定位准确性不高,如果选用大模型则会占用资源较多导致功耗较大。

针对上述人脸关键点定位方法在资源受限场景下定位效果不好、功耗较大的问题,目前还未提出有效解决方案。



技术实现要素:

有鉴于此,本发明的目的在于提供一种关键点定位模型训练方法、定位方法、装置及设备,可以在较少资源占用和能耗下,达到精确的定位效果。

为了实现上述目的,本发明实施例采用的技术方案如下:

第一方面,本发明实施例提供了一种关键点定位模型训练方法,包括:获取待检测图像;对所述待检测图像进行对象识别,并根据识别结果查找对应的第一模型;通过所述第一模型对所述待检测图像进行关键点定位,得到第一定位结果;通过第二模型对所述待检测图像进行关键点定位,得到第二定位结果;所述第二模型的以下参数至少之一大于所述第一模型的对应参数:网络层数、网络宽度或参数数量;根据所述第一定位结果与所述第二定位结果对所述第一模型进行训练。

进一步,所述根据识别结果查找对应的第一模型的步骤,包括:根据所述识别结果确定所述待检测图像包括的对象;将所述对象或所述对象所属集合对应的模型确定为第一模型;如果所述对象或所述对象所属集合无对应的模型,新建一个定位模型作为第一模型。

进一步,所述通过第二模型对所述待检测图像进行关键点定位,得到定位结果的步骤,包括:对所述待检测图像进行对象检测,获得对象所在区域的图像;通过所述第二模型对所述对象所在区域的图像进行关键点定位。

进一步,所述方法还包括:当所述第一定位结果与所述第二定位结果的偏差小于预设阈值时,或者,所述第一模型的损失函数收敛时,所述第一模型训练完成。

进一步,所述第一模型和所述第二模型运行于同一个终端;所述根据所述第一定位结果与所述第二定位结果对所述第一模型进行训练的步骤,包括:在所述终端运行过程中,使用所述待检测图像、所述第一定位结果和所述第二定位结果对所述第一模型进行在线训练。

第二方面,本发明实施例提供了一种关键点定位方法,包括:获取待检测图像;对所述待检测图像进行对象识别,并根据识别结果查找对应的第一模型;通过所述第一模型对所述待检测图像进行关键点定位,得到第一定位结果;通过第二模型对所述待检测图像进行关键点定位,得到第二定位结果;所述第二模型的以下参数至少之一大于所述第一模型的对应参数:网络层数、网络宽度或参数数量;判断所述第一模型是否为训练合格模型;如果是,将所述第一定位结果作为最终定位结果;如果否,将所述第二定位结果作为最终定位结果,并使用所述第一定位结果和所述第二定位结果对所述第一模型进行训练。

进一步,使用所述第一定位结果和所述第二定位结果对所述第一模型进行训练完成,且所述第一模型被确定为合格模型后,使用所述第一模型进行关键点定位。

进一步,所述方法还包括:当所述第一定位结果与所述第二定位结果的偏差小于预设阈值时,或者,所述第一模型的损失函数收敛时,将所述第一模型训练标记为训练合格模型。

进一步,所述根据识别结果确定对应的第一模型的步骤,包括:根据所述识别结果确定所述待检测图像包括的对象;将所述对象或所述对象所属集合对应的模型确定为第一模型。

进一步,所述方法还包括:如果根据所述识别结果未查找到对应的模型,为所述识别结果新建一个关键点定位模型作为所述第一模型。

进一步,所述第一模型和所述第二模型运行于同一个终端;所述使用所述第一定位结果和所述第二定位结果对所述第一模型进行训练的步骤,包括:在所述终端运行过程中,使用所述待检测图像、所述第一定位结果和所述第二定位结果对所述第一模型进行在线训练。

第三方面,本发明实施例提供了一种关键点定位模型训练装置,包括:第一获取模块,用于获取待检测图像;识别模块,用于对所述待检测图像进行对象识别,并根据识别结果查找对应的第一模型;第一定位模块,用于通过所述第一模型对所述待检测图像进行关键点定位,得到第一定位结果;第二定位模块,用于通过第二模型对所述待检测图像进行关键点定位,得到定位结果;所述第二模型的以下参数至少之一大于所述第一模型的对应参数:网络层数、网络宽度或参数数量;第一训练模块,用于根据所述第一定位结果与所述第二定位结果对所述第一模型进行训练。

第四方面,本发明实施例提供了一种关键点定位装置,包括:第二获取模块,用于获取待检测图像;查找模块,用于对所述待检测图像进行对象识别,并根据识别结果查找对应的第一模型;第三定位模块,用于通过所述第一模型对所述待检测图像进行关键点定位,得到第一定位结果;第四定位模块,用于通过第二模型对所述待检测图像进行关键点定位,得到第二定位结果;所述第二模型的以下参数至少之一大于所述第一模型的对应参数:网络层数、网络宽度或参数数量;判断模块,用于判断所述第一模型是否为训练合格模型;定位合格模块,用于将所述第一定位结果作为最终定位结果;第二训练模块,用于如果否,将所述第二定位结果作为最终定位结果,并使用所述第一定位结果和所述第二定位结果对所述第一模型进行训练。

第五方面,本发明实施例提供了一种处理设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现第一方面及第二方面任一项所述的方法的步骤。

第六方面,本发明实施例提供了一种具有处理器可执行的程序代码的计算机可读介质,所述程序代码使所述处理器执行第一方面及第二方面任一项所述的方法的步骤。

本发明实施例提供的关键点定位模型训练方法、定位方法、装置及设备,通过第一模型和第二模型对待检测图像进行关键点定位,并使用定位结果对待检测图像对应的第一模型进行训练,该第二模型的以下参数至少之一大于第一模型的对应参数:网络层数、网络宽度或参数数量,即通过大模型对小模型进行训练,通过知识蒸馏小模型可以达到和大模型相近的性能,之后使用小模型进行关键点定位,可以在较少资源占用和能耗下,达到精确的定位效果。

本公开的其他特征和优点将在随后的说明书中阐述,或者,部分特征和优点可以从说明书推知或毫无疑义地确定,或者通过实施本公开的上述技术即可得知。

为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

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

图1示出了本发明实施例所提供的一种电子设备的结构示意图;

图2示出了本发明实施例所提供的一种关键点定位模型训练方法的流程图;

图3示出了本发明实施例所提供的一种关键点定位方法的流程图;

图4示出了本发明实施例所提供的一种关键点定位系统的结构示意图;

图5示出了本发明实施例所提供的一种关键点定位模型训练装置的结构框图;

图6示出了本发明实施例所提供的一种关键点定位装置的结构框图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

人脸识别通常包括以下四个步骤:1)人脸检测:是指图像中定位人脸区域的过程。2)人脸预处理:调整人脸图像,使其看起来更加清楚。3)搜集和学习人脸:搜集许多被预处理过的人脸,然后学习如何识别它们。4)人脸识别:在搜集的人脸中查找哪个人脸与待检测的人脸最相似。其中,人脸检测步骤,可以在检测出人脸后对人脸进行关键点分析,获得眼、口、鼻轮廓等多个关键点定位,从而可以准确识别多种人脸属性,如性别,年龄,表情等信息。

为了解决现有的关键点定位方法在资源受限场景下效果不好、功耗较大的问题,本发明实施例提供了一种关键点定位模型训练方法、定位方法、装置及设备,通过引入大小两种模型的概念,大模型能够处理各种不同人脸的关键点定位,小模型由于容量限制,只能针对特定人脸做到准确关键点定位。在用户实际使用时,针对特定人脸,在线优化该用户的专有小模型,直到其达到与大模型相当的性能后,切换为使用小模型实际运行,从而实现只占用少量的资源实现高精度定位的效果。以下通过本发明的实施例进行详细介绍

首先,参照图1来描述用于实现本发明实施例的关键点定位模型训练方法、定位方法、装置及设备的示例电子设备100。

如图1所示的一种电子设备的结构示意图,电子设备100包括一个或多个处理设备102、一个或多个存储装置104。可选地,图1所示电子设备100还可以包括输入装置106、输出装置108以及数据采集装置110,这些组件通过总线系统112和/或其它形式的连接机构(未示出)互连。应当注意,图1所示的电子设备100的组件和结构只是示例性的,而非限制性的,根据需要,电子设备也可以具有其他组件和结构。

处理设备102可以是网关,也可以为智能终端,或者是包含中央处理单元(cpu)、图像处理单元(gpu)或者具有数据处理能力和/或指令执行能力的其它形式的处理单元的设备,可以对电子设备100中的其它组件的数据进行处理,还可以控制电子设备100中的其它组件以执行期望的功能。

存储装置104可以包括一个或多个计算机程序产品,计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。易失性存储器例如可以包括随机存取存储器(ram)和/或高速缓冲存储器(cache)等。非易失性存储器例如可以包括只读存储器(rom)、硬盘、闪存等。在计算机可读存储介质上可以存储一个或多个计算机程序指令,处理设备102可以运行程序指令,以实现下文的本发明实施例中(由处理设备实现)的客户端功能以及/或者其它期望的功能。在计算机可读存储介质中还可以存储各种应用程序和各种数据,例如应用程序使用和/或产生的各种数据等。

输入装置106可以是用户用来输入指令的装置,并且可以包括键盘、鼠标、麦克风和触摸屏等中的一个或多个。

输出装置108可以向外部(例如,用户)输出各种信息(例如,图像或声音),并且可以包括显示器、扬声器等中的一个或多个。

数据采集装置110可以采集对象的图像,并且将所采集的图像存储在存储装置104中以供其它组件使用。示例性地,该数据采集装置110可以为摄像头。

示例性地,用于实现根据本发明实施例的关键点定位模型训练方法、定位方法、装置及设备的示例电子设备中的各器件可以集成设置,也可以分散设置,诸如将处理设备102、存储装置104、输入装置106和输出装置108集成设置于一体,而将数据采集装置110分离设置。

示例性地,用于实现根据本发明实施例的关键点定位模型训练方法、定位方法、装置及设备的示例电子设备可以被实现为诸如智能手机、平板电脑、智能手表、计算机、照相机等智能终端。

本发明实施例提供了一种关键点定位模型训练方法,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

图2是本发明实施例提供的一种关键点定位模型训练方法的流程图,该训练方法用于训练关键点定位模型。如图2所示,该方法包括如下步骤:

步骤s202,获取待检测图像。

上述待检测图像可以通过输入模块输入,该输入模块可以是相机或者摄像头等图像采集装置。在本实施例中以待检测图像是人脸图像为例进行说明。

步骤s204,对待检测图像进行对象识别,并根据识别结果查找对应的第一模型。

在待检测图像输入后,可以进行对象识别,将别出待检测图像中的对象,该对象可以是人脸、人体姿势或者手掌等,并根据该识别结果查找其对应的第一模型。本实施例可以预先存储各个对象对应的第一模型,可以一个对象对应一个第一模型,也可以多个相似的对象对应一个第一模型,上述查找第一模型的步骤可以按照以下方式执行:根据识别结果确定待检测图像包括的对象,将对象或对象所属集合对应的模型确定为第一模型;如果对象或对象所属集合无对应的模型,则新建一个定位模型作为第一模型。其中对象的所属集合由该对象和与该对象具有相似特征的对象组成。

例如,可以先对人脸图像进行人脸检测,人脸检测的方法可以采用现有方法,本实施例对此不作限定,如果上述人脸图像中存在人脸则将人脸位置区域的图像发送给人脸识别模块,识别出对应的用户。在识别出对应的用户可,可以读取该用户对应的模型,或者该对象所属集合或者组别对应的模型。如果对每个人用独立的定位模型,则可以确保定位模型在当前对象的人脸上可以达到很好的性能。

步骤s206,通过第一模型对待检测图像进行关键点定位,得到第一定位结果。

在根据识别结果查找到对应的第一模型后,使用该第一模型对待检测图像进行关键点定位。在此需要说明的是,对使用第一模型进行关键点定位的步骤与使用第二模型进行关键点定位的步骤之间的顺序不作限定,即两者可以任意先后执行或者同时执行。

步骤s208,通过第二模型对待检测图像进行关键点定位,得到第二定位结果。

其中,第二模型的以下参数至少之一大于第一模型的对应参数:网络层数、网络宽度(即每一层网络的通道数)或参数数量,第二模型的复杂度大于第一模型,第二模型的计算量也大于第一模型,相应得,第二模型所占的容量也大于第一模型。在进行关键点定位时,可以先对对待检测图像进行对象检测,获得对象所在区域的图像,再通过第二模型对对象所在区域的图像进行关键点定位。

步骤s210,根据第一定位结果与第二定位结果对第一模型进行训练。

在本实施例中引入了大小两种模型的概念,大模型(即前述第二模型)为适用于所有对象的通用模型,能够处理各种不同人脸的关键点定位,小模型(即前述第一模型)适用于特定对象(或对象集合)的专用模型,由于容量限制,只能针对特定人脸进行准确关键点定位。在资源受限场景中,例如部署在移动终端时,大模型的定位精度高但是占用的资源及能耗过大,小模型占用资源和能耗比较合适,但是定位精度不够。在本实施例中,通过第一模型和第二模型分别进行关键点定位得到定位结果,再使用上述定位结果对第一模型进行实时训练,直到其达到与大模型相当的性能后,切换为小模型实际运行,从而实现只占用少量资源及能耗实现高精度定位的效果。即在系统运行时进行定位模型的在线知识蒸馏,使得小模型针对特定对象达到和大模型相近的性能。大模型和小模型可以采用类似的结构,例如某种深度神经网络模型。

本发明实施例提供的上述关键点定位模型训练方法通过第一模型和第二模型对待检测图像进行关键点定位,并使用定位结果对待检测图像对应的第一模型进行训练,该第二模型的以下参数至少之一大于第一模型的对应参数:网络层数、网络宽度或参数数量,即通过大模型对小模型进行训练,通过知识蒸馏小模型可以达到和大模型相近的性能,之后使用小模型进行关键点定位,可以在较少资源占用和能耗下,达到精确的定位效果。

在使用第二模型的定位结果作为训练数据在线优化训练第一模型时,满足预设训练要求后即可停止训练,存储优化后的第一模型,之后该对象被识别后,可以直接调用之前存储的对应第一模型进行关键点定位,上述方法还可以包括以下步骤:当第一定位结果与第二定位结果的偏差小于预设阈值时,或者第一模型的损失函数收敛时,第一模型训练完成。其中预设阈值可以是两个模型输出结果的相似程度,例如两者的欧式距离小于预设阈值等条件。

上述第一模型和第二模型例如可以均为人脸关键点定位模型。第一模型和第二模型可以运行于同一个终端,在终端运行过程中,使用待检测图像、第一定位结果和第二定位结果对第一模型进行在线训练。在用户实际使用时,可以经由终端中的第二模型对第一模型进行在线优化,即系统运行时可以进行神经网络模型的在线知识蒸馏,使得小模型针对特定用户达到和大模型相近的性能。

本发明实施例还提供了一种关键点定位方法,图3是本发明实施例提供的一种关键点定位方法的流程图,该方法应用于智能终端,该智能终端预先存储有第一模型和第二模型。如图3所示,该方法包括如下步骤:

步骤s302,获取待检测图像。

步骤s304,对待检测图像进行对象识别,并根据识别结果查找对应的第一模型。步骤s302和步骤s304与前述实施例对应步骤类似,在此不再赘述。

步骤s306,通过第一模型对待检测图像进行关键点定位,得到第一定位结果。由于第一模型满足定位精度要求,则可以使用该第一模型进行关键点定位,最终得到待检测图像的定位结果。

步骤s308,通过第二模型对待检测图像进行关键点定位,得到第二定位结果。

其中,第二模型的以下参数至少之一大于第一模型的对应参数:网络层数、网络宽度或参数数量。第二模型和第一模型的区别及关系参见前述实施例,在此不再赘述。

步骤s310,判断第一模型是否为训练合格模型。

在判断第一模型是否为训练合格模型时,例如可以查看该第一模型对应的标识,该标识用于表示该第一模型是否已经训练合格,即其定位精度是否已经达到使用要求;或者通过比较第一定位结果与第二定位结果之间的偏差。如果该第一模型是训练合格模型,则将第一定位结果作为最终定位结果,即执行步骤s312;如果该第一模型不是训练合格模型,则使用第二模型进行关键点定位,则将第二定位结果作为最终定位结果,并执行步骤s314。

步骤s312,将第一定位结果作为最终定位结果。

步骤s314,使用第一定位结果和第二定位结果对第一模型进行训练。

本发明实施例提供的上述关键点定位方法,可以使用第一模型或者第二模型进行关键点定位,在第一模型未训练合格时,使用第二模型对待检测图像进行关键点定位,并使用得到的定位结果对第一模型进行训练优化,即通过大模型对小模型进行训练,通过知识蒸馏小模型可以达到和大模型相近的性能,之后使用小模型进行关键点定位,可以在较少资源占用和能耗下,达到精确的定位效果。

使用第一定位结果和第二定位结果对第一模型进行训练完成,且第一模型被确定为合格模型后,将仅使用第一模型进行关键点定位。

在前述步骤中,需要判断第一模型是否为训练合格模型,从而确定使用第一模型或者第二模型执行关键点定位,因此需要预先进行是否为训练合格模型的标记,上述方法还包括以下步骤:

(1)通过第一模型和第二模型分别对待检测图像进行关键点定位,得到第一定位结果和第二定位结果;

(2)当第一定位结果与第二定位结果的偏差小于预设阈值时,或者,第一模型的损失函数收敛时,将第一模型训练标记为训练合格模型。例如,判断第一模型定位的人脸关键点位置与第二模型定位的人脸关键点位置之间的偏差,如果偏差较小,则标记为训练合格,如果偏差较大,则标记为训练不合格。

在上述步骤s304中,如果根据识别结果未查找到对应的第一模型,则为识别结果新建一个关键点定位模型作为第一模型。如果是新对象,则新建该对象对应的关键点定位小模型,如果是已存在该对象,则读取该对象之前的小模型。系统可以根据人脸识别模块为每个对象建立小模型,并存储在特定路径,之后该对象再次使用系统时,人脸识别模块识别出该对象,再从之前对应存储的位置读取模型。

上述第一模型和第二模型例如可以均为人脸关键点定位模型。第一模型和第二模型可以运行于同一个终端,在终端运行过程中,使用待检测图像、第一定位结果和第二定位结果对第一模型进行在线训练。在用户实际使用时,可以经由终端中的第二模型对第一模型进行在线优化,即系统运行时可以进行神经网络模型的在线知识蒸馏,使得小模型针对特定用户达到和大模型相近的性能。

参见图4所示的一种关键点定位系统的结构示意图,其中示出了输入模块、人脸检测模块、人脸识别模块、人脸关键点定位大模型和各个用户专有的人脸关键点定位小模型。

其中,输入模块接收外界输入,以图片形式将数据传递给人脸检测模块。人脸检测模块将检测出的人脸区域传递给人脸识别模块识别特定用户,读取该用户对应的小模型,再判断该小模型是否满足定位精度要求。

当不满足时,调用人脸关键点定位大模型运行,并将人脸关键点定位大模型的预测结果作为训练数据在线优化训练人脸关键点定位小模型,以提升人脸关键点定位小模型性能。当满足要求时,使用人脸关键点定位小模型运行即可。在经过初始的小模型在线优化过程后,系统能够以很少的资源占用和能耗下,达到精确的定位效果。

其中,系统在初始运行时所有新用户使用的是同一个人脸关键点定位大模型,人脸关键点定位大模型可以处理不同用户的人脸,对于新用户,系统初始时运行大模型时需要比如占多核、拉高cpu频率等,而之后在线优化完该用户专有小模型后,转而运行小模型可以降低cpu频率,减少cpu使用核数,提高帧率,并在当前用户的人脸上达到和大模型基本一致的定位精度。在专有小模型优化完毕后进行存储,之后该用户再使用系统时,人脸识别模块识别到该用户后,直接调用之前存储的对应专有小模型运行即可。

在识别得到对应的用户后,如果是新用户,则新建该用户对应的人脸关键点定位小模型;如果是已存在用户,则读取该用户之前的小模型。然后,判断小模型定位的人脸关键点位置与大模型定位的位置之间的偏差,如果偏差较小,则直接使用小模型运行,如果偏差较大,则运行大模型。同时将大模型定位的结果作为训练数据优化小模型,直到小模型达到和大模型相近的性能后,切换为小模型运行。可以在经过初始小模型在线优化后,系统能够以很少的资源占用和能耗下,达到精确的定位效果。通诺引入大小模型机制,只在初始阶段使用大模型的预测结果在线优化各个用户的自有小模型,小模型优化完成后只需运行低资源占用的小模型,即可保证和大模型相近的精度。

对应前述实施例中所提供的关键点定位模型训练方法,本发明实施例提供了一种关键点定位模型训练装置,参见图5所示的一种关键点定位模型训练装置的结构框图,包括:

第一获取模块502,用于获取待检测图像;

识别模块504,用于对待检测图像进行对象识别,并根据识别结果查找对应的第一模型;

第一定位模块506,用于通过第一模型对待检测图像进行关键点定位,得到第一定位结果;

第二定位模块508,用于通过第二模型对待检测图像进行关键点定位,得到定位结果;第二模型的以下参数至少之一大于第一模型的对应参数:网络层数、网络宽度或参数数量;

第一训练模块510,用于根据第一定位结果与第二定位结果对第一模型进行训练。

本发明实施例提供的上述关键点定位模型训练装置,通过第一模型和第二模型对待检测图像进行关键点定位,并使用定位结果对待检测图像对应的第一模型进行训练,该第二模型的以下参数至少之一大于第一模型的对应参数:网络层数、网络宽度或参数数量,即通过大模型对小模型进行训练,通过知识蒸馏小模型可以达到和大模型相近的性能,之后使用小模型进行关键点定位,可以在较少资源占用和能耗下,达到精确的定位效果。

在一种实施方式中,上述识别模块还用于:根据识别结果确定待检测图像包括的对象;将对象或对象所属集合对应的模型确定为第一模型;如果对象或对象所属集合无对应的模型,新建一个定位模型作为第一模型。

在另一种实施方式中,第二定位模块还用于:对待检测图像进行对象检测,获得对象所在区域的图像;通过第二模型对对象所在区域的图像进行关键点定位。

在另一种实施方式中,上述装置还包括训练终止模块,用于:当第一定位结果与第二定位结果的偏差小于预设阈值时,或者,第一模型的损失函数收敛时,第一模型训练完成。

在另一种实施方式中,第一模型和第二模型运行于同一个终端;第一训练模块还用于在终端运行过程中,使用待检测图像、第一定位结果和第二定位结果对第一模型进行在线训练。

对应前述实施例中所提供的关键点定位方法,本发明实施例提供了一种关键点定位装置,参见图6所示的一种关键点定位装置的结构框图,包括:

第二获取模块602,用于获取待检测图像;

查找模块604,用于对待检测图像进行对象识别,并根据识别结果查找对应的第一模型;

第三定位模块606,用于如果是,通过第一模型对待检测图像进行关键点定位,得到第一定位结果;

第四定位模块608,用于如果否,通过第二模型对待检测图像进行关键点定位,得到第二定位结果;第二模型的以下参数至少之一大于第一模型的对应参数:网络层数、网络宽度或参数数量;

判断模块610,用于判断第一模型是否为训练合格模型;

定位合格模块612,用于将第一定位结果作为最终定位结果;

第二训练模块614,用于使用待检测图像和第二定位结果对第一模型进行训练。

本发明实施例提供的上述关键点定位装置,可以使用第一模型或者第二模型进行关键点定位,在第一模型未训练合格时,使用第二模型对待检测图像进行关键点定位,并使用得到的定位结果对第一模型进行训练优化,即通过大模型对小模型进行训练,通过知识蒸馏小模型可以达到和大模型相近的性能,之后使用小模型进行关键点定位,可以在较少资源占用和能耗下,达到精确的定位效果。

在一种实施方式中,使用第一定位结果和第二定位结果对第一模型进行训练完成,且第一模型被确定为合格模型后,使用第一模型进行关键点定位。

在另一种实施方式中,上述装置还包括标记模块,用于:当第一定位结果与第二定位结果的偏差小于预设阈值时,或者,第一模型的损失函数收敛时,将第一模型训练标记为训练合格模型。

在另一种实施方式中,上述查找模块还用于:根据识别结果确定待检测图像包括的对象;将对象或对象所属集合对应的模型确定为第一模型;如果根据识别结果未查找到对应的模型,为识别结果新建一个关键点定位模型作为第一模型。

在另一种实施方式中,第一模型和第二模型运行于同一个终端;上述第二训练模块还用于:在终端运行过程中,使用待检测图像、第一定位结果和第二定位结果对第一模型进行在线训练。

本实施例所提供的装置,其实现原理及产生的技术效果和前述实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。

本发明实施例还提供了一种设备,包括存储器和处理器,存储器中存储有可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述实施例提供的方法的步骤。可选地,该电子设备还可以包括图像采集装置或指纹传感器。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

进一步,本实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器运行时执行上述前述方法实施例所提供的方法的步骤。

本发明实施例所提供的关键点定位模型训练方法、定位方法、装置及设备的计算机程序产品,包括存储了程序代码的计算机可读存储介质,程序代码包括的指令可用于执行前面方法实施例中提供的方法,具体实现可参见方法实施例,在此不再赘述。

本实施例还提供了一种计算机程序,该计算机程序可以存储在云端或本地的存储介质上。在该计算机程序被计算机或处理器运行时用于执行前面方法实施例中提供的方法,并且用于实现根据本发明实施例的装置中的相应模块。具体实现可参见方法实施例,在此不再赘述。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个设备,或一些特征可以忽略,或不执行。

本申请的各个装置实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(dsp)来实现根据本发明实施例的装置中的一些模块的一些或者全部功能。本申请还可以实现为用于执行这里所描述的方法的一部分或者全部的装置程序(例如,计算机程序和计算机程序产品)。例如,本申请的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。

本申请的上述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

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