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

模型优化方法、装置、计算机设备和存储介质与流程

2021-11-26 22:28:00 来源:中国专利 TAG:


1.本技术涉及互联网技术领域,尤其涉及计算机技术领域,具体涉及一种模型优化方法、一种模型优化装置、一种计算机设备和一种存储介质。


背景技术:

2.目前,随着互联网技术的不断发展,对象检测的应用领域也越来越广泛;所谓的对象检测是指利用计算机对图像进行处理、分析和理解,以识别图像所包含的对象的属性信息的技术。目前,通常是采用对象检测模型实现对象检测的,对象检测结果的精准度和对象检测模型的性能息息相关;基于此,如何更好地通过模型优化训练以得到性能完善的对象检测模型,成为了研究热点。


技术实现要素:

3.本技术实施例提供了一种模型优化方法、装置、计算机设备和存储介质,可以有效提升对象检测模型的检测精准度和鲁棒性。
4.一方面,本技术实施例提供了一种模型训练方法,方法包括:
5.获取样本图像,样本图像包括样本对象;
6.调用对象检测模型对样本图像进行对象检测,得到样本对象的目标关键点的位置检测信息,及目标关键点的参考对象的位置检测信息;
7.获取对象检测模型的位置损失函数,位置损失函数是根据目标关键点和参考对象之间需满足的目标位置关系构建的;
8.采用位置损失函数,根据目标关键点的位置检测信息与参考对象的位置检测信息,计算目标损失值;
9.根据目标损失值优化对象检测模型的模型参数,得到优化后的对象检测模型。
10.另一方面,本技术实施例提供了一种模型训练装置,装置包括:
11.获取单元,用于获取样本图像,样本图像包括样本对象;
12.处理单元,用于调用对象检测模型对样本图像进行对象检测,得到样本对象的目标关键点的位置检测信息,及目标关键点的参考对象的位置检测信息;
13.获取单元,还用于获取对象检测模型的位置损失函数,位置损失函数是根据目标关键点和参考对象之间需满足的目标位置关系构建的;
14.处理单元,还用于采用位置损失函数,根据目标关键点的位置检测信息与参考对象的位置检测信息,计算目标损失值;
15.处理单元,还用于根据目标损失值优化对象检测模型的模型参数,得到优化后的对象检测模型。
16.再一方面,本技术实施例提供了一种计算机设备,该计算机设备包括输入设备、输出设备,计算机设备还包括:
17.处理器,适于实现一条或多条指令;以及,
18.计算机存储介质,该计算机存储介质存储有一条或多条指令,该一条或多条指令适于由处理器加载并执行如下步骤:
19.获取样本图像,样本图像包括样本对象;
20.调用对象检测模型对样本图像进行对象检测,得到样本对象的目标关键点的位置检测信息,及目标关键点的参考对象的位置检测信息;
21.获取对象检测模型的位置损失函数,位置损失函数是根据目标关键点和参考对象之间需满足的目标位置关系构建的;
22.采用位置损失函数,根据目标关键点的位置检测信息与参考对象的位置检测信息,计算目标损失值;
23.根据目标损失值优化对象检测模型的模型参数,得到优化后的对象检测模型。
24.再一方面,本技术实施例提供了一种计算机存储介质,该计算机存储介质存储有一条或多条指令,该一条或多条指令适于由处理器加载并执行如下步骤:
25.获取样本图像,样本图像包括样本对象;
26.调用对象检测模型对样本图像进行对象检测,得到样本对象的目标关键点的位置检测信息,及目标关键点的参考对象的位置检测信息;
27.获取对象检测模型的位置损失函数,位置损失函数是根据目标关键点和参考对象之间需满足的目标位置关系构建的;
28.采用位置损失函数,根据目标关键点的位置检测信息与参考对象的位置检测信息,计算目标损失值;
29.根据目标损失值优化对象检测模型的模型参数,得到优化后的对象检测模型。
30.再一方面,本技术实施例提供了一种计算机程序产品,计算机程序产品包括计算机程序;该计算机程序存储在计算机可读存储介质中,计算机程序被计算机设备的处理器执行时,执行上述的模型优化方法。
31.在本技术实施例中,计算机设备在调用对象检测模型对样本图像进行对象检测得到目标关键点的位置检测信息,以及参考对象的位置检测信息后,可采用位置损失函数,根据目标关键点的位置检测信息,以及参考对象的位置检测信息,计算目标损失值;并根据目标损失值来优化对象检测模型中的模型参数,得到优化后的对象检测模型。通过将目标关键点的位置检测信息,以及参考对象的位置检测信息来计算目标损失值,可以得到比较准确的目标损失值,从而可以根据该目标损失值来对模型优化,有效提升对象检测模型的检测精准度和鲁棒性。
附图说明
32.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
33.图1a是本技术实施例提供的一种模型优化系统的架构示意图;
34.图1b是本技术实施例提供的另一种模型优化系统的架构示意图;
35.图2是本技术实施例提供的一种模型优化方法的流程示意图;
36.图3是本技术实施例提供的一种对象检测模型的结构示意图;
37.图4是本技术实施例提供的一种模型优化方法的流程示意图;
38.图5a是本技术实施例提供的一种目标关键点与对象检测框的位置示意图;
39.图5b是本技术实施例提供的不规则检测框的顶点向量的示意图;
40.图5c是本技术实施例提供的一种遍历不规则检测框的顶点计算参考顶点向量的示意图;
41.图6是本技术实施例提供的一种模型优化方法的流程示意图;
42.图7a是本技术实施例提供的第一基准向量与第一参考向量的示意图;
43.图7b是本技术实施例提供的第二基准向量与第二参考向量的示意图;
44.图8是本技术实施例提供的一种模型优化方法的流程示意图;
45.图9是本技术实施例提供的一种模型优化装置的结构示意图;
46.图10是本技术实施例提供的一种计算机设备的结构示意图。
具体实施方式
47.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
48.人工智能(artificial intelligence,ai)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
49.人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
50.其中,计算机视觉技术(computer vision,cv)是一门研究如何使机器“看”的科学,更进一步的说,就是指用摄影机和电脑代替人眼对目标进行识别、跟踪和测量等机器视觉,并进一步做图形处理,使电脑处理成为更适合人眼观察或传送给仪器检测的图像。作为一个科学学科,计算机视觉研究相关的理论和技术,试图建立能够从图像或者多维数据中获取信息的人工智能系统。计算机视觉技术通常包括图像处理、图像识别、图像语义理解、图像检索、ocr、视频处理、视频语义理解、视频内容/行为识别、三维物体重建、3d技术、虚拟现实、增强现实、同步定位与地图构建等技术,还包括常见的人脸识别、指纹识别等生物特征识别技术。
51.机器学习(machine learning,ml)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。
机器学习/深度学习通常包括人工神经网络、置信网络、强化学习、迁移学习、归纳学习、式教学习等技术。
52.基于上述人工智能技术中所提及的计算机视觉技术和机器学习等技术,本技术实施例提出了一种模型优化方案,以更好地实现对模型的优化;在具体实现中,该模型优化方案可由计算机设备执行,该方案大致原理如下:在对模型优化过程中,可为对象检测模型设计一个位置损失函数,该位置损失函数可以用来表征以下至少一种位置关系:样本对象中的关键点与关键点之间的位置关系,关键点和对象检测框之间的位置关系;然后计算机设备采用该位置损失函数可以确定该对象检测模型的损失值,并根据该对象检测模型的损失值来对对象检测模型进行优化;其中,对象的关键点是指能够体现对象的一个特有特征;例如,人脸的关键点可以是左眼关键点、鼻尖关键点等。其中,该对象检测模型可以是基于深度学习的任一对象检测模型,如该对象检测模型可以是人脸检测模型、动物检测模型等。
53.为便于理解整个方案,下面以对象检测模型为人脸检测模型为例,对本技术所提出的模型优化方案作进一步阐述;具体的,计算机设备可先获取一张图片或者一段视频,其中,该图片或者视频中包括人脸;然后计算机设备调用人脸检测模型对获取到的图片或者视频中的图像进行人脸检测,得到人脸关键点的位置信息以及人脸检测框的位置信息;然后采用位置损失函数根据人脸关键点的位置信息以及人脸检测框的位置信息,计算得到该人脸检测模型的损失值;然后根据该损失值对人脸检测模型进行优化,以使优化后的人脸检测模型用于检测线上视频或图片中的人脸,以及人脸的相关信息;使得后续基于检测到的人脸的相关信息进行与人脸相关的业务。例如,与该人脸相关的业务可以是人脸识别、人脸属性、人脸姿态估计等业务。
54.需要说明的是,上述计算机设备可以是终端或者服务器;当计算机设备为服务器时,本技术实施例提供了一种模型优化系统,如图1a所示,该模型优化系统包括至少一个终端101和至少一个服务器102;终端101是指安装有摄像头的任意设备,终端101可以利用摄像头采集样本图像,并将采集到的样本图像上传至服务器102(即计算机设备),以使计算机设备根据该样本图像对对象检测模型进行优化,得到优化后的对象检测模型。其中,该终端101可以是智能手机、平板电脑、笔记本电脑、台式电脑、车载计算机、智能家居、可穿戴电子设备、vr/ar设备等等;终端101与服务器102之间可以通过有线或无线通信方式进行直接或间接地连接;此处的服务器102可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(content delivery network,cdn)、以及大数据和人工智能平台等基础云计算服务的云服务器,等等。
55.需要说明的是,图1a只是示例性地表征模型优化系统的系统架构,并不对模型优化系统的具体架构进行限定。例如,图1a中的终端和服务器均可位于区块链网络外;但在其他实施例中,也可基于区块链网络来部署该模型优化系统,即可将终端和服务器均部署在区块链网络中,或者将终端部署在区块链网络外,将服务器部署在区块链网络内等等。当将服务器部署在区块链网络内,且服务器是由多个物理服务器构成的服务器集群或者分布式系统时,每个物理服务器均可作为区块链网络中的节点,例如图1b中将终端101部署在区块链网络外,将服务器102部署在区块链网络内。其中,此处所提及的区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。其本质上是一个去中
心化的数据库,是一串使用密码学方法相关联产生的数据块。
56.基于上述模型优化方案的相关描述可知,本技术实施例中通过利用位置损失函数将样本对象中的关键点与关键点、关键点与检测框进行关联,来实现对对象检测模型的优化,能够有效提升对象检测模型的检测精准度和鲁棒性,以使得后续通过优化后的对象检测模型可以更加准确地检测出线上视频或图片中的目标对象,进而可以提高与目标对象相关业务的服务质量。
57.基于上述所提供的模型优化方案,本技术实施例提供了一种模型优化方法,该模型优化方法可由上述所提及的计算机设备执行,该计算机设备可以是上述终端或者服务器。请参阅图2,该模型优化方法可包括以下步骤s201

s205:
58.s201、获取样本图像,样本图像包括样本对象。
59.其中,样本图像可以是包括一个或多个对象的任一静态图片、动态图像中包括一个或多个对象的任一帧图像,或者任一视频中包括一个或多个对象的任一帧图像。样本图像中的各个对象均可称为样本对象,即样本图像中的样本对象的数量可以为一个或多个;为便于阐述,后续均以样本图像包括一个样本对象为例进行说明;此处所提及的样本对象可以是人脸、动物、或者机器设备,等等,本技术实施例不作限定。
60.在具体实现中,计算机设备可以通过其所配置的摄像组件(如计算机设备携带的摄像头、外连的摄像设备等)进行图像实时采集,得到样本图像;或者也可以从本地空间中所预先保存的图像资源或视频资源中获取该样本图像。其中,从图像资源中获取样本图像的具体实施方式可以是:若图像资源是一个包含对象的静态图像,则可直接将该图像资源作为样本图像;若图像资源是一个包含对象的动态图像,则可对动态图像中的各帧图像进行对象识别,从而根据识别结果从图像资源中选取一帧包含对象的图像作为样本图像。应理解的是,从视频资源中获取样本图像的具体实施方式,与从动态图像中获取样本图像的具体实施方式类似,在此不再赘述。
61.s202、调用对象检测模型对样本图像进行对象检测,得到样本对象的目标关键点的位置检测信息,及目标关键点的参考对象的位置检测信息。
62.其中,对象检测模型可以是基于深度学习的任一对象检测模型,该对象检测模型可根据需要检测的样本对象来确定,例如,样本对象为面部对象,如面部对象为人脸,则对象检测模型为人脸检测模型;又如面部对象为猫脸,则对象检测模型为猫脸检测模型。目标关键点的数量可以是一个或者多个,例如,目标关键点的数量可以是1个,2个,3个等等,本技术实施例中不作限定。
63.在具体实现中,计算机设备可以先调用对象检测模型对样本图像进行特征提取,得到样本对象的样本特征,然后根据该样本对象的样本特征进行对象预测,得到样本对象的目标关键点的位置检测信息,以及该目标关键点的参考对象的位置检测信息。其中,该对象检测模型可如图3所示,该对象检测模型包括输入层、特征提取层、检测框检测器、关键点检测器、位置损失函数和输出层;其中,输入层可用于输入样本图像,特征提取层可用于对输入的样本图像进行特征提取;检测框检测器可用于对提取到的特征进行检测框预测;关键点检测器可用于对提取到的特征进行关键点预测;位置损失函数可用于计算对象检测模型的损失值;输出层可用于输出样本对象的关键点的位置检测信息,以及对象检测框的位置检测信息。
64.在一个实施例中,由于在调用对象检测模型对样本图像进行对象检测时,一般是检测由对象检测框所圈住的样本对象,因此后续可根据样本对象包括的关键点与对象检测框之间的位置关系来构建位置损失函数,以优化对象检测模型的性能。在这种情况下,参考对象可以包括对象检测框;其中,对象检测框可以用于指示样本对象所在的位置,该对象检测框可以矩形边界框框;也可以是不规则检测框,例如,不规则检测框可以是不规则多边形的检测框。调用对象检测模型对样本图像进行对象检测,得到样本对象的目标关键点的位置检测信息,及目标关键点的参考对象的位置检测信息的具体实现方式为:计算机设备将样本图像通过输入层输入到特征提取层,然后利用特征提取层对样本图像进行特征提取,得到样本对象的样本特征;接着计算机设备利用检测框检测器对该样本特征进行检测框预测,得到对象检测框的位置检测信息,并通过关键点检测器对该样本特征进行关键点预测,得到该样本对象的目标关键点的位置检测信息。
65.在另一个实施例中,经实践表明,由于样本对象一般包括一个或者多个关键点,且样本对象中的关键点与关键点存在位置关系,因此可根据关键点和关键点的位置关系建立位置损失函数,以优化对象检测模型性能。在这种情况下,当样本对象包括多个关键点时,该参考对象可以包括样本对象的多个关键点中除目标关键点以外的一个或者多个关键点。计算机设备通过调用图3所示的对象检测模型,在通过关键点检测器对该样本特征进行关键点预测的过程中,可得到该样本对象的多个关键点的位置检测信息。其中,多个关键点包括目标关键点,每个关键点均可以用来指示样本对象的一个特征。例如,样本对象为人脸,两个关键点为左眼关键点和右眼关键点,该左眼关键点可以用于指示人脸的左眼,该右眼关键点可以用于指示人脸的右眼。
66.综上所述,上述参考对象可以包括以下至少一种:对象检测框,以及样本对象的多个关键点中除目标关键点以外的一个或者多个关键点。
67.s203、获取对象检测模型的位置损失函数,位置损失函数是根据目标关键点和参考对象之间需满足的目标位置关系构建的。
68.在一个实施例中,参考对象可以包括:对象检测框;该位置损失函数是根据目标关键点和对象检测框之间需满足的目标位置关系来构建的,此时,该目标位置关系用于指示目标关键点需在对象检测框内。
69.再一个实施例中,参考对象可以包括:样本对象的多个关键点中除目标关键点以外的一个或者多个关键点。该位置损失函数是根据目标关键点和样本对象的多个关键点中除目标关键点以外的各个关键点需满足的目标位置关系来构建的,此时,该目标位置关系可以用于指示目标关键点需位于样本对象的多个关键点中除目标关键点以外的各个关键点对应的方位。例如,样本对象的多个关键点为左眼关键点、右眼关键点和鼻子关键点;其中,设目标关键点为鼻子关键点,参考关键点为左眼关键点和左嘴角关键点;该位置损失函数是根据鼻子关键点、左眼关键点和左嘴角关键点需满足目标位置关系来构建的,该目标位置关系用于指示鼻子关键点需位于左眼关键点对应的方位,以及左嘴角关键点对应的方位。
70.再一个实施例中,为了进一步提高对对象检测模型的优化的准确性,该参考对象可以包括:对象检测框和样本对象的多个关键点中除目标关键点以外的一个或者多个关键点,该位置损失函数可包括第一损失函数和第二损失函数,其中,第一损失函数可由目标关
键点和对象检测框之间的第一位置关系构建,该第一位置关系用于指示目标关键点需在对象检测框内;第二损失函数可由目标关键点和样本对象的多个关键点中除目标关键点以外的一个或者多个关键点之间的第二位置关系构建,此时,该第二位置关系用于指示目标关键点需位于样本对象的多个关键点中除目标关键点以外各个关键点对应的方位。
71.s204、采用位置损失函数,根据目标关键点的位置检测信息与参考对象的位置检测信息,计算目标损失值。
72.在具体实现中,当参考对象为对象检测框时,该位置损失函数包括第一损失函数;计算机设备可采用第一损失函数,根据目标关键点的位置检测信息与对象检测框的位置检测信息,计算第一损失值,即在这种情况下,目标损失值包括第一损失值。
73.当参考对象为样本对象的多个关键点中除目标关键点以外的一个或者多个关键点时,该位置损失函数包括第二损失函数,计算机设备可采用第二损失函数,根据目标关键点的位置检测信息与样本对象的多个关键点中除目标关键点以外的各个关键点的位置检测信息,计算第二损失值,即在这种情况下,目标损失值包括第二损失值。
74.当参考对象包括对象检测框和样本对象的多个关键点中除目标关键点以外的一个或者多个关键点时,位置损失函数可包括第一损失函数和第二损失函数,计算机设备采用第一损失函数计算得到第一损失值,采用第二损失函数计算得到第二损失值;在这种情况下,计算机设备目标损失值可包括第一损失值和第二损失值。
75.s205、根据目标损失值优化对象检测模型的模型参数,得到优化后的对象检测模型。
76.在一种具体实现中,计算机设备可以按照目标损失值减少的方向,优化对象检测模型的模型参数。在另一种具体实现中,目标损失值包括第一损失值和第二损失值;计算机设备可根据第一损失值和第二损失值计算对象检测模型的模型损失值;并按照模型损失值减少的方向优化对象检测模型的模型参数。
77.在一个实施例中,在得到优化后的对象检测模型后,当计算机设备检测到针对待处理图像的对象检测请求时,计算机设备调用优化后的对象检测模型对待处理图像进行对象检测,得到目标对象的关键点的位置检测信息和对象检测框的位置检测信息,然后根据该目标对象的关键点的位置检测信息和对象检测框的位置检测信息进行业务处理。其中,该业务处理可以是目标对象检测、目标对象属性识别、目标对象姿态估计,等等。
78.在本技术实施例中,计算机设备采用位置损失函数,根据目标关键点的位置检测信息,以及参考对象的位置检测信息,计算目标损失值;并根据目标损失值来优化对象检测模型中的模型参数,得到优化后的对象检测模型。通过将目标关键点的位置检测信息,以及参考对象的位置检测信息来计算目标损失值,可以得到比较准确的目标损失值,从而可以根据该目标损失值来对模型优化,有效提升对象检测模型的检测精准度和鲁棒性,保证后续使用优化后的对象检测模型进行对象检测的准确性。
79.基于上述所提供的模型优化方案,本技术实施例提供了一种模型优化方法,该模型优化方法可由上述所提及的计算机设备执行,该计算机设备可以是上述终端或者服务器。请参阅图4,图4中以参考对象为对象检测框,位置损失函数包括第一损失函数来阐述该模型优化方法,其可包括以下步骤s401

s406:
80.s401、获取样本图像,样本图像包括样本对象。
81.s402、调用对象检测模型对样本图像进行对象检测,得到样本对象的目标关键点的位置检测信息,及目标关键点的参考对象的位置检测信息,该参考对象包括对象检测框。
82.在具体实现中,由于样本对象包括一个或者多个关键点,因此计算机设备调用对象检测模型对样本图像进行对象检测,可得到样本对象的多个关键点的位置检测信息,以及对象检测框的位置检测信息;其中,该多个关键点包括目标关键点。
83.s403、获取对象检测模型的位置损失函数,该位置损失函数包括第一损失函数。
84.其中,该第一损失函数是根据目标关键点和对象检测框之间需满足的目标位置关系构建的。该目标位置关系包括:任一关键点和对象检测框之间需满足第一位置关系,第一位置关系用于指示任一关键点需位于该对象检测框内。当任一关键点位于该对象检测框内时,可认为任一关键点不会对对象检测模型产生损失值;当任一关键不位于对象检测框内时,可认为任一关键点会对对象检测模型产生损失值。在这种情况下,该第一损失函数可以是基于第一位置关系构建的。
85.可以理解的是,由于任一关键点都需要位于该对象检测框内,因此可确定该目标关键点也需要位于该对象检测框内。
86.s404、采用第一损失函数,根据目标关键点的位置检测信息与对象检测框的位置检测信息,计算目标关键点对应的损失值。
87.由前述可知,由于对象检测框可以是矩形边界框,也可以是不规则检测框,因此,采用第一损失函数,根据目标关键点的位置检测信息与对象检测框的位置检测信息,计算目标关键点对应的损失值存在一定差别,接下来对当对象检测框为矩形边界框时和当对象检测框为不规则检测框时,分别计算目标关键点对应的损失值进行阐述。
88.(1)当对象检测框为矩形边界框时,该矩形边界框包括多条边界。如图5a所示的矩形边界框,该矩形边界框包括四条边界,该四条边界分别为左边界、右边界、上边界和下边界。此时,目标关键点的位置检测信息可包括:目标关键点在样本图像中的位置坐标,该位置坐标包括横坐标值和纵坐标值。参考对象的位置检测信息可包括:对象检测框的各条边界在样本图像中的位置指示值;上述第一位置关系通过任一关键点和每条边界之间满足的方位关系来表示。其中,任一关键点和每条边界之间需满足的方位关系为:任一关键点在矩形边界框的上边界以下,下边界以上、左边界以右和右边界以左。
89.当任一关键点和每条边界之间满足:任一关键点在矩形边界框的上边界以下,下边界以上、左边界以右和右边界以左时,任一关键点不会对对象检测模型产生损失值;当任一关键点和每条边界之间不满足:任一关键点在上边界以下,下边界以上、左边界以右和右边界以左时,即任一关键点在上边界以上,下边界以下、左边界以左和右边界以右,任一关键点会对对象检测模型会产生损失值;此时,对象检测模型产生的损失值一般为负值。如图5a所示,该样本对象为人脸,该样本对象包括多个关键点,该多个关键点分别为左眼关键点、右眼关键点和鼻子关键点,其中,该左眼关键点在矩形边界框的左边界以左,此时左眼关键点会对对象检测模型会产生损失值;而右眼关键点和鼻子关键点均在满足在矩形边界框的上边界以下,下边界以上、左边界以右和右边界以左,右眼关键点和鼻子关键点均不会对对象检测模型产生损失值。
90.这种情况下,计算机设备采用第一损失函数,根据目标关键点的位置检测信息与对象检测框的位置检测信息,计算目标关键点对应的损失值的具体实现方式为:计算机设
备遍历对象检测框的各条边界;并从参考对象的位置检测信息中获取当前遍历的当前边界的位置指示值,然后从目标关键点的位置坐标中,获取与当前边界相关的坐标值;并采用第一损失函数,根据当前边界的位置指示值和获取到的坐标值,计算当前边界对应的损失值。
91.具体的,计算机设备采用第一损失函数,根据当前边界的位置指示值和获取到的坐标值,计算得到当前边界对应的初始损失值,然后判断当前边界的初始损失值是否大于无效数值,若该初始损失值大于该无效数值,则确定该目标关键点满足与当前边界的方位关系,并确定当前边界对应的损失值等于无效数值;若该初始损失值小于或者等于该无效数值,则确定该目标关键点不满足与当前边界的方位关系,并对当前边界对应的初始损失值执行取反操作,得到当前边界对应的损失值。其中,无效数值可取“0”。例如,当前边界为上边界,若当前边界对应的初始损失值小于无效数值“0”,则确定目标关键点不满足上边界以下;并对当前边界对应的初始损失值执行取反操作,得到当前边界对应的损失值,其中,一个数值通常具有运算符号,该运算符号可以是正号或者负号;而所谓取反操作则是指改变数值的运算符号的操作,如初始损失值为
“‑
0.5”,则表明该初始损失值的运算符号是负号,那么对该初始损失值执行取反操作是指:将该初始损失值的运算负号从负号变成正号的操作,从而得到当前边界的损失值为0.5。
92.进一步地,在各条边界均被遍历后,可对各条边界对应的损失值进行求和运算,得到目标关键点对应的损失值。
93.示例性的,在图5a中,以对象检测框的左上方的顶点作为坐标轴原点,目标关键点为左眼关键点,左眼关键点的位置坐标为(xi,yi);其中,该位置坐标的横坐标值为xi,纵坐标值为yi;参考对象的位置检测信息包括上边界的位置指示值u、下边界的位置指示值d,左边界的位置指示值l和右边界的位置指示值r。计算机设备遍历对象检测框的4条边界,如当前遍历的当前边界为上边界,计算机设备从参考对象的位置检测信息中获取上边界的位置指示值为u;并从左眼关键点的位置坐标中,获取与上边界相关的坐标值yi;然后采用第一损失函数,将获取到的坐标值yi与上边界的位置指示值u进行相减,得到上边界对应的初始损失值,并判断上边界对应的初始损失值是否大于无效数值0;在图5a中,计算机设备确定上边界对应的初始损失值大于无效数值0,说明该左眼关键点满足在上边界以下,计算机设备确定上边界对应的损失值等于无效数值0。
94.然后,计算机设备继续遍历除上边界以外的3条边界,如当前遍历的当前界面为左边界,计算机设备从参考对象的位置检测信息中获取左边界的位置指示值为l,并从左眼关键点的位置坐标中,获取与左边界相关的坐标值xi。然后计算机设备采用第一损失函数,将左边界的位置指示值d与获取到的坐标值xi进行相减,得到左边界对应的初始损失值;并判断左边界对应的初始损失值是否大于无效数值0。在图5a中,计算机设备确定左边界对应的初始损失值小于无效数值0,说明该左眼关键点不满足在左边界以右,计算机设备对左边界对应的初始损失值执行取反操作,得到左边界对应的损失值;以此类推,计算机设备在4条边界均被遍历后,将这4条边界对应的损失值进行求和运算,得到该左眼关键点的对应的损失值。
95.上述第一损失函数的函数表达式为:
96.f(xi,yi,u,d,l,r)=

min(yi

u,0)

min(d

yi,0)

min(xi

l,0)

min(r

xi,0)
97.其中,f(xi,yi,u,d,l,r)表示目标关键点对应的损失值;(xi,yi)表示该目标关键
点的位置坐标,(u,d,l,r)表示为对象检测框,即对象检测框的上边界的位置指示值表示为u,下边界的位置指示值表示为d,左边界的位置指示值为l,右边界的位置指示值为r;无效值为0。
98.需要说明的是,在具体实现中,可选取对象检测框的任一顶点作为坐标轴作为原点,然后按照上述采用第一损失函数,根据目标关键点的位置坐标与对象检测框的位置坐标,来计算目标关键点对应的损失值。此时,根据选取的原点,第一损失函数会存在不同。
99.(2)当对象检测框为不规则检测框时,如图5b所示的不规则检测框。此时,目标关键点的位置检测信息包括:目标关键点在样本图像中的位置坐标;参考对象的位置检测信息包括:样本检测框的各个顶点在样本图像中的位置坐标;对象检测框采用多个顶点向量表示,任一顶点向量是根据对象检测框的两个相邻顶点的位置坐标确定的。具体的,计算机设备可遍历样本检测框中的多个顶点,并将当前遍历的当前顶点作为起始点;然后计算机设备确定该当前顶点的相邻顶点,并将该当前顶点的相邻顶点作为结束点;接着根据当前顶点的位置坐标以及相邻顶点的位置坐标,确定当前顶点的顶点向量。当多个顶点均被遍历后,计算机设备生成多个顶点向量,该多个顶点向量用于表征对象检测框。
100.例如,在图5b中,对象检测框为不规则四边形,不规则四边形的四个顶点的位置坐标分别为:第一顶点的位置坐标(bx1,by1)、第二顶点的位置坐标(bx2,by2)、第三顶点的位置坐标(bx3,by3)、第四顶点的位置坐标(bx4,by4)。计算机设备遍历不规则四边形的4个顶点,并将当前遍历的第一顶点作为起始点,然后计算机设备确定第一顶点的相邻顶点为第二顶点,并将第二顶点作为结束点;接着计算机设备根据第一顶点的位置坐标(bx1,by1)和第二顶点的位置坐标(bx2,by2),得到第一顶点对应的顶点向量v_b1=(bx2

bx1,by2

by1);然后计算机设备继续遍历剩下的3个顶点,并将当前遍历的第二顶点作为起始点,然后计算设备确定该第二顶点的相邻顶点为第三顶点,并将第三顶点作为结束点;接着,计算机设备根据该第二顶点的位置坐标和第三顶点的位置坐标,得到第二顶点对应的顶点向量v_b2=(bx3

bx2,by3

by2);然后计算机设备继续遍历剩下的2个顶点,直到所有顶点均被遍历,最终可以得到第三顶点对应的顶点向量v_b3=(bx4

bx3,by4

by3)和第四顶点对应的顶点向量v_b4=(bx1

bx4,by1

by4)。
101.在确定出多个顶点向量后,该第一位置关系可以通过任一关键点和每个顶点向量之间需满足的方位关系进行表示,由于在确定顶点向量时,每个当前遍历的顶点均作为起始点,并将当前遍历的顶点的相邻顶点确定为结束点,因此最终得到的多个顶点向量应该是收尾相连的。基于此,任一关键点和每个顶点向量之间需满足的方位关系可以是:任一关键点均需要在每个顶点向量的右侧或者任一关键点均需要在每个顶点向量的左侧。例如,在图5b中,任一关键点均需要在每个顶点向量的右侧。在实际过程中,任一关键点和每个顶点向量之间需满足的方位关系根据顶点向量构建方式确定。
102.在这种情况下,计算机设备采用第一损失函数,根据目标关键点的位置检测信息与对象检测框的位置检测信息,计算目标关键点对应的损失值的具体实现方式为:计算机设备遍历对象检测框的多个顶点,并确定当前遍历的当前顶点所对应的目标顶点向量。其中,目标顶点向量是指采用当前顶点作为起始点所构建的顶点向量;并从参考对象的位置检测信息中获取当前顶点的位置坐标,然后根据当前顶点的位置坐标和目标关键点的位置坐标,计算当前顶点和目标关键点之间的参考顶点向量;然后采用第一损失函数,根据参考
顶点向量和目标顶点向量,计算当前顶点对应的损失值。具体的,计算机设备采用第一损失函数,对参考顶点向量和目标顶点向量进行外积运算,得到当前顶点对应的外积结果。
103.然后计算机设备判断当前顶点对应的外积结果是否大于无效数值,若该当前顶点对应的外积结果大于无效数值,则认为目标关键点位于目标顶点向量的目标方位,该目标关键点不会对该对象检测模型产生损失值,并确定当前顶点对应的损失值等于该无效数值;若该当前顶点对应的外积结果小于或者等于无效数值,则认为目标关键点未位于目标顶点向量的目标方位,该目标关键点对对象检测模型产生损失值,且当前顶点对应的外积结果为负值,计算机设备对当前顶点对应的外积结果执行取反操作,得到当前顶点对应的损失值。
104.然后,在对象检测框的各个顶点均被遍历后,对各个顶点对应的损失值进行求和运算,得到目标关键点对应的损失值。
105.例如,在图5c中,设目标关键点的位置坐标为(xi,yi);该目标关键点需要位于每个顶点向量的右侧;计算机设备遍历对象检测框的四个顶点,并确定当前遍历的第一顶点所对应的目标顶点向量为v_b1=(bx2

bx1,by2

by1),该目标顶点向量是指以第一顶点作为起始点所构建的顶点向量;然后计算机设备从参考对象的位置检测信息中获取第一顶点的位置坐标为(bx1,by1),并根据第一顶点的位置坐标(bx1,by1)和目标关键点的位置坐标(xi,yi)计算得到第一顶点和目标关键点的参考顶点向量(xi

bx1,yi

by1)。接着,计算机设备采用第一损失函数,对参考顶点向量(xi

bx1,yi

by1)和目标顶点向量v_b1=(bx2

bx1,by2

by1)进行外积运算,得到第一顶点对应的外积结果。
106.然后,计算机设备判断第一顶点对应的外积结果是否大于无效数值0;在图5c中,计算机设备确定该第一顶点对应的外积结果大于无效数值0,说明该目标关键点在目标顶点向量的右侧,计算机设备确定第一顶点对应的损失值等于无效数值0。然后计算机设备继续遍历剩下的3个顶点,并确定当前遍历的第二顶点所对应的目标顶点向量为v_b2=(bx3

bx2,by3

by2),该目标顶点向量是指以第二顶点作为起始点所构建的顶点向量;然后计算机设备从参考对象的位置检测信息中获取第二顶点的位置坐标为(bx2,by2),并根据第二顶点的位置坐标(bx2,by2)和目标关键点的位置坐标(xi,yi),计算得到第二顶点和目标关键点的参考顶点向量(xi

bx2,yi

by2)。
107.接着,计算机设备采用第一损失函数,对参考顶点向量(xi

bx2,yi

by2)和目标顶点向量v_b2=(bx3

bx2,by3

by2)进行外积运算,得到第二顶点对应的外积结果,然后计算机设备判断第二顶点对应的外积结果是否大于无效数值0。在图5c中,计算机设备确定该第二顶点对应的外积结果大于无效数值0时,说明目标关键点在目标顶点向量的右侧,计算机设备确定第二顶点对应的损失值等于无效数值。然后计算机设备继续遍历剩下的两个顶点,最终得到四个顶点对应的损失值。然后将该四个顶点对应的损失值进行求和运算,得到目标关键点对应的损失值。上述第一损失函数的函数表达式为:
108.f(xi,yi,v_b(j))=sum(

min((xi

bxj,yi

byj)
×
v_b(j),0)),j∈[1,m]
[0109]
其中,f(xi,yi,v_b(j))表示目标关键点对应的损失值;j表示不规则检测框的顶点序号,j∈[1,m]表示顶点数量;(xi,yi)表示该目标关键点的坐标位置;(bxj,byj)表示当前顶点的位置坐标,bxj表示当前顶点的位置坐标中的横坐标值,byj表示当前顶点的位置坐标中的纵坐标值,v_b(j)表示当前顶点的顶点向量。
[0110]
需要说明的是,图5b为示例性的给出不规则检测框的示意图,在实际应用时,该不规则检测框可以是多边形构成的不规则检测框,例如,五边形构成的不规则检测框。
[0111]
s405、根据该目标关键点对应的损失值,确定第一损失值。
[0112]
在一种具体实现中,计算机设备可将目标关键点对应的损失值直接确定为第一损失值。
[0113]
另一种具体实现中,当参考对象还包括样本对象的多个关键点中除目标关键点以外的一个或多个关键点时,计算机设备采用第一损失函数,根据参考对象中的各个关键点的位置检测信息与对象检测框的位置检测信息,计算参考对象中的各个关键点对应的损失值,然后对目标关键点对应的损失值,以及参考对象中的各个关键点对应的损失值进行求和,得到第一损失值。其中,由于对象检测框存在区别,因此该第一损失值的计算方式存在不同。
[0114]
(1)当对象检测框为矩形边界框时,第一损失值的计算方式为:
[0115]
loss_bbox=sum f(xi,yi,u,d,l,r),i∈[0,m]
[0116]
其中,loss_bbox表示第一损失值,sum表示求和;i表示关键点,且i取整数;m表示关键点的数量;f(xi,yi,u,d,l,r)表示每个关键点对应的损失值,当i取[0,m]中的任一整数。
[0117]
(2)当对象检测框为不规则检测框时,第一损失值的计算方式为:
[0118]
loss_bbox=sum{(i∈[0,m])}f(xi,yi,v_b(j))
[0119]
其中,loss_bbox表示第一损失值,sum表示求和;i表示关键点,且i取整数;m表示关键点的数量,f(xi,yi,v_b(j))表示每个关键点对应的损失值。
[0120]
需要说明的是,计算机设备采用第一损失函数,根据参考对象中的各个关键点的位置检测信息与对象检测框的位置检测信息,计算参考对象中的各个关键点对应的损失值,可参见上述采用第一损失函数根据目标关键点的位置检测信息和对象检测框的位置检测信息计算目标关键点对应的损失值的具体实现方式,在此不再赘述。
[0121]
在一个实施例中,若样本对象为面部对象,尽管可能会存在很多关键点,但都会存在鼻子、左眼、右眼、左嘴角和右嘴角这样的标注,并且通过这5个关键点就可以检测出面部对象。其中,5个关键点包括左眼关键点、右眼关键点,鼻子关键点、左嘴角关键点和右嘴角关键点;这5个关键点中包括目标关键点。具体的,计算机设备可从多个关键点中筛选出左眼关键点、右眼关键点,鼻子关键点、左嘴角关键点和右嘴角关键点,然后对左眼关键点对应的损失值、右眼关键点对应的损失值,鼻子关键点对应的损失值、左嘴角关键点对应的损失值和右嘴角关键点对应的损失值进行求和运算,得到第一损失值。其中,第一损失值的计算方式分为两种:
[0122]
(1)当对象检测框为矩形边界框时,由于关键点数量为5个,因此m=4,第一损失值的计算方式为:
[0123]
loss_bbox=sum f(xi,yi,u,d,l,r),i∈[0,4]
[0124]
其中,loss_bbox表示第一损失值,sum表示求和,i表示关键点,且i取整数;这5个关键点的位置坐标可以记为(xi,yi)(i=0,1,2,3,4),并依次对应左眼关键点的位置坐标、右眼关键点的位置坐标,鼻子关键点的位置坐标、左嘴角关键点的位置坐标和右嘴角关键点的位置坐标;f(xi,yi,u,d,l,r)表示每个关键点对应的损失值。
[0125]
(2)当对象检测框为不规则检测框时,由于关键点数量为5个,因此m=4,第一损失值的计算方式为:
[0126]
loss_bbox=sum{(i∈[0,4])}f(xi,yi,v_b(j))
[0127]
其中,loss_bbox表示第一损失值,sum表示求和,i表示关键点,且i取整数;这5个关键点的位置坐标可以记为(xi,yi)(i=0,1,2,3,4);f(xi,yi,v_b(j))表示每个关键点对应的损失值。
[0128]
s406、根据第一损失值优化对象检测模型的模型参数,得到优化后的对象检测模型。
[0129]
在具体实现中,计算机设备按照第一损失值减小的方向优化对象检测模型的模型参数,得到优化后的对象检测模型。
[0130]
在一个实施例中,在优化对象检测模型(例如人脸检测模型、人脸关键点检测模型等)时,还可引入参考损失函数,并结合第一损失值和参考损失函数对应的参考损失值来对对象检测模型的模型参数进行优化。在具体实现中,计算机设备可获取样本图像的标注信息,然后采用参考损失函数,根据样本图像的标注信息,计算参考损失值;并根据第一损失值和参考损失值,得到对象检测模型的模型损失值,然后按照对象检测模型的模型损失值减小的方向,优化对象检测模型的模型参数,得到优化后的对象检测模型。
[0131]
其中,该标注信息包括以下至少一项:样本对象的每个关键点的位置标注信息,以及对象检测框的位置标注信息;该参考损失函数可至少包括以下一种:关键点损失函数和对象检测框损失函数,关键点损失函数和对象检测框损失函数可分别采用回归的l2损失函数来进行构建。参考损失值包括以下至少一项:关键点检测损失值以及对象框检测损失值。
[0132]
具体的,当该标注信息为样本对象的每个关键点的位置标注信息时,该参考损失函数为关键点检测损失函数,计算机设备采用关键点检测损失函数,对样本对象的每个关键点的位置标注信息和位置检测信息进行损失计算,得到关键点损失值;当该标注信息为对象检测框的位置标注信息时,该参考损失函数为对象检测框损失函数,计算机设备采用对象检测框损失函数,对对象检测框的位置标注信息和对象检测框的位置检测信息进行损失计算,得到对象检测框损失值;当该标注信息包括:样本对象的每个关键点的位置标注信息,以及对象检测框的位置标注信息时,可分别采用对象检测框损失函数和关键点检测损失函数进行计算,得到关键点损失值和检测框损失值。
[0133]
上述根据第一损失值和参考损失值,得到对象检测模型的模型损失值的具体实现方式为:计算机设备将第一损失值和参考损失值进行求和运算,得到对象检测模型的模型损失值;或者,计算机设备将第一损失值和参考损失值进行加权处理,得到对象检测模型的模型损失值。
[0134]
在本技术实施例中,计算机设备采用第一损失函数,根据目标关键点的位置检测信息与对象检测框的位置检测信息,计算目标关键点对应的损失值,然后根据该目标关键点对应的损失值,确定第一损失值。然后根据第一损失值来优化对象检测模型中的模型参数,得到优化后的对象检测模型。通过将目标关键点的位置检测信息,以及对象检测框的位置检测信息来计算第一损失值,可以得到比较准确的第一损失值,从而可以根据该第一损失值来对模型优化,有效提升对象检测模型的检测精准度和鲁棒性,保证后续使用优化后的对象检测模型进行对象检测的准确性。
[0135]
基于上述所提供的模型优化方案,本技术实施例还提供了一种模型优化方法,该模型优化方法可由上述所提及的计算机设备执行,该计算机设备可以是上述终端或者服务器。请参阅图6,图6中以参考对象为第一关键点和第二关键点,位置损失函数包括第二损失函数,目标损失值包括第二损失函数的第二损失值来阐述该模型优化方法,其可包括以下步骤s601

s607:
[0136]
s601、获取样本图像,样本图像包括样本对象。
[0137]
s602、调用对象检测模型对样本图像进行对象检测,得到样本对象的目标关键点的位置检测信息,及目标关键点的参考对象的位置检测信息,该参考对象包括第一关键点和第二关键点,参考对象的位置检测信息包括:第一关键点在样本图像中的位置坐标,以及第二关键点在样本图像中的位置坐标。
[0138]
其中,位置坐标包括横坐标值和纵坐标值。
[0139]
在具体实现中,计算机设备调用对象检测模型对样本图像进行对象检测,得到样本对象的多个关键点的位置检测信息;其中,该多个关键点中包括目标关键点。然后计算机设备从多个关键点中选取第一关键点和第二关键点。需要说明的是,第一关键点和第二关键点是指多个关键中除目标关键点以外的关键点,该第一关键点的数量可以是一个或者多个,该第二关键点的数量可以为一个或者多个。例如,该样本对象为人脸,该人脸的多个关键点包括鼻子关键点,左眼关键点、右眼关键点、左嘴角关键点和右嘴角关键点;该目标关键点为鼻子关键点,两个第一关键点分别为左眼关键点和右眼关键点,两个第二关键点分别为左嘴角关键点和右嘴角关键点。
[0140]
s603、获取对象检测模型的位置损失函数,该位置损失函数包括第二损失函数。
[0141]
其中,目标位置关系可包括以下至少一项:目标关键点和第一关键点之间需满足第二位置关系,以及目标关键点和第二关键点之间需满足第三位置关系;第二位置关系用于指示目标关键点需位于该第一关键点的第一方位。第三位置关系用于指示目标关键点需位于该第二关键点的第二方位。当目标关键点位于该第一关键点的第一方位或者第二关键点的第二方位时,该目标关键点不会对对象检测模型产生损失值;当目标关键点未位于该第一关键点的第一方位或者目标关键点未位于第二关键点的第二方位时,该目标关键点会对对象检测模型产生损失值。
[0142]
在这种情况下,第二损失函数可以是基于第二位置关系和第三位置关系中的至少一种位置关系构建的。相应的,该第二损失函数的第二损失值为以下任一种:根据目标关键点和第一关键点计算的第一损失子值,或者根据目标关键点和第二关键点计算的第二损失子值,或者第一损失子值和第二损失子值的总和。具体的,第二损失函数是基于第二位置关系构建的,第二损失值为:根据目标关键点和第一关键点计算的第一损失子值;或者,第二损失函数是基于第三位置关系构建的,第二损失值为根据目标关键点和第二关键点计算的第二损失子值;或者,第二损失函数是基于第二位置关系和第三位置关系构建的,第二损失值为根据第一损失子值和第二损失子值的总和。
[0143]
s604、采用第二损失函数,根据目标关键点的位置坐标与第一关键点的位置坐标,计算第一损失子值。
[0144]
由前述可知,第一关键点的数量可以是一个或者多个。
[0145]
(1)当第一关键点的数量为一个时,计算机设备采用第二损失函数,根据目标关键
点的位置坐标与第一关键点的位置坐标,计算第一损失子值的实现方式为:
[0146]
计算机设备可将目标关键点的横坐标值与第一关键点的横坐标值进行相减,得到目标关键点的初始横坐标损失值;然后判断该目标关键点的初始横坐标损失值是否大于无效数值,若目标关键点的初始横坐标损失值大于无效数值,则确定目标关键点处于第一关键点的第一方位,并确定目标关键点的横坐标损失值等于无效数值。若目标关键点的初始横坐标损失值小于或者等于无效数值,则确定目标关键点未处于第一关键点的第一方位,并对初始横坐标损失值执行取反操作,得到目标关键点的横坐标损失值。
[0147]
接着,计算机设备将目标关键点的纵坐标值和第一关键点的纵坐标值进行相减,得到目标关键点的初始纵坐标损失值;然后判断该目标关键点的初始纵坐标损失值是否大于无效数值,若该初始纵坐标损失值大于无效数值,则确定该目标关键点处于第一关键点的第一方位,并将无效数值确定为目标关键点的纵坐标损失值;若该初始纵坐标损失值小于或等于无效数值,则确定该目标关键点未处于第一关键点的第一方位,并对该初始纵坐标值执行取反操作,得到目标关键点的纵坐标损失值;然后计算机设备将该横坐标损失值和纵坐标损失值求和处理,得到第一损失子值。
[0148]
例如,样本对象为人脸,设目标关键点为左眼关键点,该左眼关键点在样本图像中的位置坐标为(x1,y1),第一关键点为鼻子关键点,该鼻子关键点在样本图像中的位置坐标为(x2,y2);第一方位为左眼关键点需处于鼻子关键点的左上方。计算机设备将左眼关键点的横坐标x1与鼻子关键点的横坐标x2相减,得到左眼关键点的初始横坐标损失值,并判断该初始横坐标损失值是否大于无效数值;该初始横坐标损失值大于无效数值,则认为左眼关键点在鼻子关键点的左上方,并确定左眼关键点的横坐标损失值等于无效数值;若初始横坐标值小于或者等于无效数值,则认为左眼关键点不在鼻子关键点的左上方,并对该初始横坐标值执行取反操作,得到左眼关键点的横坐标损失值;
[0149]
然后,计算机设备将左眼关键点的纵坐标y1与鼻子关键点的纵坐标y2相减,得到左眼关键点的初始纵坐标损失值,并判断该初始纵坐标损失值是否大于无效数值;若该初始纵坐标损失值大于无效数值,则确定左眼关键点在鼻子关键点的左上方,并确定左眼关键点的纵坐标损失值等于无效数值;若初始纵坐标值小于或者等于无效数值,则确定左眼关键点不在鼻子关键点的左上方,并对该初始纵坐标值执行取反操作,得到左眼关键点的纵坐标损失值。接着,计算机设备将左眼关键点的横坐标损失值和纵坐标损失值进行求和运算,得到该左眼关键点对应的第一损失子值。
[0150]
(2)当第一关键点的数量为两个时,计算机设备采用第二损失函数,根据目标关键点的位置坐标与第一关键点的位置坐标,计算第一损失子值的具体实现方式可包括如下步骤s11

s12:
[0151]
s11、根据两个第一关键点的位置坐标计算第一基准向量,并根据第一基准向量的起始点的位置坐标和目标关键点的位置坐标,计算第一参考向量。
[0152]
在具体实现中,计算机设备可先从两个第一关键点中选取任意一个第一关键点作为起始点,将另一个第一关键点作为结束点构建向量的方向,然后根据两个第一关键点的位置坐标计算第一基准向量。其中,第一方位是指目标关键点和第一基准向量之间所需满足的方位。
[0153]
例如,图7a所示,样本对象为人脸,目标关键点为鼻子关键点,鼻子关键点的位置
坐标为(x2,y2),两个第一关键点为左眼关键点和右眼关键点;左眼关键点的位置坐标为(x0,y0),右眼关键点的位置坐标为(x1,y1)。计算机设备选取左眼关键点作为起始点,并将右眼关键点作为结束点构建向量的方向,然后根据左眼关键点的位置坐标和右眼关键点的位置坐标计算得到第一基准向量v_eye=(x1

x0,y1

y0),即在图7a中,第一基准向量的方向为从左到右(即左眼关键点指向右眼关键点),此时第一方位是指鼻子关键点在左眼关键点和右眼关键点所构成的第一基准向量的右侧。然后计算机设备根据第一基准向量v_eye的方向确定左眼关键点为第一基准向量的起始点,并根据该左眼关键点的位置坐标和鼻子关键点的位置坐标,计算第一参考向量v_n1=(x2

x0,y2

y0)。
[0154]
s12、采用第二损失函数根据第一基准向量和第一参考向量的第一外积结果,计算得到第一损失子值。其中,第一外积结果用于指示目标关键点是否位于第一基准向量的第一方位;且当目标关键点未位于第一方位时,产生第一损失子值。
[0155]
在具体实现中,计算机设备采用第二损失函数,对第一基准向量和第一参考向量进行外积运算,得到第一外积结果,需要说明的是,在对第一基准向量和第一参考向量进行外积运算时,需要根据第一方位来确定第一基准向量和第二参考向量在进行外积运算的位置;然后判断第一外积结果是否大于无效数值,若第一外积结果大于无效数值,则确定目标关键点位于第一基准向量的第一方位,并确定第一损失子值等于无效数值;若第一外积结果小于或等于无效数值,则确定目标关键点未位于第一基准向量的第一方位,并根据第一外积结果确定第一损失子值。
[0156]
例如,上述步骤s11中,计算机设备确定了第一基准向量v_eye=(x1

x0,y1

y0),以及第一参考向量v_n1=(x2

x0,y2

y0)之后,可采用第二损失函数对第一基准向量v_eye=(x1

x0,y1

y0)和第一参考向量v_n1=(x2

x0,y2

y0)进行外积运算,得到第一外积结果,该第一外积结果为v_eye
×
v_n1。经实践表明,当a
×
b的外积结果为正数时,说明a在b的右侧;当a
×
b的外积结果为负数时,说明a在b的左侧。在本技术实施例中,当第一外积结果为正数时,鼻子关键点位于左眼关键点和右眼关键点所构成的第一基准向量的右侧;当第一外积结果为负数时,鼻子关键点位于左眼关键点和右眼关键点所构成的第一基准向量的左侧。在图7a中,计算机设备确定第一外积结果大于无效数值0,计算机设备确定该鼻子关键点位于左眼关键点和右眼关键点所构成的第一基准向量的右侧,并确定第一损失子值等于该无效数值。
[0157]
在一个实施例中,计算机设备可将第一损失子值直接作为第二损失值,并执行步骤s607。
[0158]
在另一个实施例中,计算机设备在确定第一损失子值之后,为了更进一步提高模型的性能,还可执行步骤s605。
[0159]
s605、采用第二损失函数,根据目标关键点的位置坐标与第二关键点的位置坐标,计算第二损失子值。
[0160]
由前述可知,第二关键点的数量为一个或者多个。
[0161]
(1)当第二关键点的数量为一个时,计算机设备采用第二损失函数,根据目标关键点的位置坐标与第二关键点的位置坐标,计算第二损失子值的实现方式为:
[0162]
计算机设备可将目标关键点的横坐标值与第二关键点的横坐标值进行相减,得到目标关键点的初始横坐标损失值;然后判断该目标关键点的初始横坐标损失值是否大于无
效数值,若目标关键点的初始横坐标损失值大于无效数值,则确定目标关键点处于第二关键点的第二方位,并确定目标关键点的横坐标损失值等于无效数值。若目标关键点的初始横坐标损失值小于或者等于无效数值,则确定目标关键点未处于第二关键点的第二方位,并对初始横坐标损失值执行取反操作,得到目标关键点的横坐标损失值。
[0163]
接着,计算机设备将目标关键点的纵坐标值和第二关键点的纵坐标值进行相减,得到目标关键点的初始纵坐标损失值;然后判断该目标关键点的初始纵坐标损失值是否大于无效数值,若该初始纵坐标损失值大于无效数值,则确定该目标关键点处于第二关键点的第二方位,并将无效数值确定为目标关键点的纵坐标损失值;若该初始纵坐标损失值小于或等于无效数值,则确定该目标关键点未处于第二关键点的第二方位,并对该初始纵坐标值执行取反操作,得到目标关键点的纵坐标损失值;然后计算机设备将该横坐标损失值和纵坐标损失值求和处理,得到目标关键点对应的第二损失子值。
[0164]
需要说明的是,根据实际需求,计算机设备还可将横坐标损失值或者纵坐标损失值直接作为第二损失子值。
[0165]
例如,样本对象为人脸,设目标关键点为左眼关键点,左眼关键点在样本图像中的位置坐标为(x1,y1),第二关键点为左嘴角关键点,该左嘴角关键点在样本图像中的位置坐标为(x3,y3);第二方位为左眼关键点需在左嘴角关键点的上方。计算机设备将左眼关键点的纵坐标y1与左嘴角关键点的纵坐标y3相减,得到左眼关键点的初始纵坐标损失值,并判断该初始纵坐标损失值是否大于无效数值;若该初始纵坐标损失值大于无效数值,则确定左眼关键点在左嘴角关键点的上方,并确定左眼关键点的纵坐标损失值等于无效数值;若初始纵坐标值小于或者等于无效数值,则确定左眼关键点不在左嘴角关键点的上方,并对该初始纵坐标值执行取反操作,得到左眼关键点的纵坐标损失值。接着,计算机设备直接将纵坐标损失值作为该左眼关键点对应的第二损失子值。
[0166]
(2)当第二关键点的数量为两个时,计算机设备采用第二损失函数,根据目标关键点的位置坐标与第二关键点的位置坐标,计算第二损失子值的具体实现方式可包括如下步骤s21

s22:
[0167]
s21、根据两个第二关键点的位置坐标计算第二基准向量,并根据第二基准向量的起始点的位置坐标和目标关键点的位置坐标,计算第二参考向量。
[0168]
在具体实现中,计算机设备可先从两个第二关键点中选取任意一个第二关键点作为起始点,将另一个第二关键点作为结束点构建向量的方向,然后根据两个第二关键点的位置坐标计算第二基准向量。其中,第二方位是指目标关键点和第二基准向量之间所需满足的方位。
[0169]
示例性地,当样本对象为面部对象时,目标关键点为鼻子关键点,两个第一关键点包括左眼关键点和右眼关键点,左眼关键点和右眼关键点之间的直线为眼角线;两个第二关键点包括左嘴角关键点和右嘴角关键点,左嘴角关键点和右嘴角关键点之间的直线为嘴角线;经实践表明,鼻子关键点应该位于眼角线与嘴角线的中间;该实践可适用于大姿态的面部、旋转的面部等;该旋转的面部是指头往左或往右偏转的面部。此时,第一方位和第二方位如下:(1)当左眼关键点和右眼关键点所构成第一基准向量的方向是由左眼关键点指向右眼关键点,左嘴角关键点和右嘴角关键点所构成第二基准向量的方向是由左嘴角关键点指向右嘴角关键点时,第一方位为左眼关键点和右眼关键点所构成的第一基准向量的右
侧;第二方位为左嘴角关键点和右嘴角关键点所构成的第二基准向量的左侧。(2)当左眼关键点和右眼关键点所构成第一基准向量的方向是由右眼关键点指向左眼关键点,左嘴角关键点和右嘴角关键点所构成第二基准向量的方向是由右嘴角关键点指向左嘴角关键点时,第一方位为左眼关键点和右眼关键点所构成第一基准向量的左侧;第二方位为左嘴角关键点和右嘴角关键点所构成的第二基准向量的右侧。
[0170]
示例性的,在图7b中,当计算机设备从多个关键点中选取的两个第二关键点为左嘴角关键点和右嘴角关键点时,该左嘴角关键点的位置坐标为(x3,y3),右嘴角的位置坐标为(x4,y4)。计算机设备选取左嘴角关键点作为起始点,将右嘴角关键点作为结束点构建向量的方向,然后根据左嘴角关键点的位置坐标和右嘴角关键点的位置坐标,计算得到第二基准向量v_mouth=(x4

x3,y4

y3),即第二基准向量的方向为从左往右(即左嘴角关键点指向右嘴角关键点的方向),第二方位为鼻子关键点在左嘴角关键点和右嘴角关键点所构成的第二基准向量的左侧。
[0171]
然后,计算机设备根据第二基准向量v_mouth确定左嘴角关键点为第二基准向量的起始点,并根据该左嘴角关键点的位置坐标和鼻子关键点的位置坐标,计算第二参考向量v_n2=(x2

x3,y2

y3)。
[0172]
s22、采用第二损失函数根据第二基准向量和第二参考向量的第二外积结果,计算得到第二损失子值。其中,第二外积结果用于指示目标关键点是否位于第二基准向量的第二方位;且当目标关键点未位于第二方位时,产生第二损失子值。
[0173]
在具体实现中,计算机设备采用第二损失函数,对第二基准向量和第二参考向量进行外积运算,得到第二外积结果;然后判断第二外积结果是否大于无效数值,若第二外积结果大于无效数值,则确定目标关键点位于第二基准向量的第二方位,并确定第二损失子值等于无效数值;若第二外积结果小于或等于无效数值,则确定目标关键点未位于第二基准向量的第二方位,并根据第二外积结果确定第二损失子值。例如,上述步骤s21中,计算机设备确定了第二基准向量v_mouth=(x4

x3,y4

y3),以及第二参考向量v_n2=(x2

x3,y2

y3)之后,可采用第二损失函数对第二基准向量v_mouth=(x4

x3,y4

y3)和第二参考向量v_n2=(x2

x3,y2

y3)进行外积计算,得到第二外积结果,该第二外积结果为v_mouth
×
v_n2。经实践表明,当第二外积结果为正数时,鼻子关键点位于左嘴角关键点和右嘴角关键点所构成的第二基准向量的左侧;当第二外积结果为负数时,鼻子关键点位于左嘴角关键点和右嘴角关键点所构成的第二基准向量的右侧。因此,在图7b中,计算机设备确定第二外积结果大于无效数值0,计算机设备确定该鼻子关键点在左嘴角关键点和右嘴角关键点构成的第二基准向量的左侧,并确定第二向量损失值等于该无效数值。
[0174]
在一个实施例中,计算机设备可将第二损失子值直接作为第二损失值,并执行步骤s607。
[0175]
s606、对第一损失子值和第二损失子值进行求和运算,得到第二损失值。
[0176]
其中,当第一关键点的数量为两个,第二关键点的数量为两个时,第二损失函数loss_landmark为:
[0177]
loss_landmark=

min(v_n1
×
v_eye,0)

min(v_mouth
×
v_n2,0)
[0178]
其中,

min(v_n1
×
v_eye,0)表示第一损失子值;0为无效数值;
[0179]

min(v_mouth
×
v_n2,0)表示第二损失子值。
[0180]
由于上述
“×”
表示外积运算,第二损失函数loss_landmark还可为:
[0181]
loss_landmark=

min{(x2

x0)(y1

y0)

(x1

x0)(y2

y0),0}
[0182]

min{(x4

x3)(y2

y3)

(x2

x3)(y4

y3),0}
[0183]
s607、根据第二损失值优化对象检测模型的模型参数,得到优化后的对象检测模型。
[0184]
在具体实现中,计算机设备按照第二损失值减少的方向优化对象检测模型的模型参数,得到优化后的对象检测模型。
[0185]
在一个实施例中,计算机设备可获取样本图像的标注信息,然后采用参考损失函数,根据样本图像的标注信息,计算参考损失值;并根据第二损失值和参考损失值,得到对象检测模型的模型损失值,然后按照对象检测模型的模型损失值减小的方向,优化对象检测模型的模型参数,得到优化后的对象检测模型。
[0186]
在本技术实施例中,计算机设备可采用第二损失函数,根据样本对象的目标关键点的位置检测信息,以及该目标关键点的第一关键点和第二关键点的位置检测信息,计算得到第一损失子值和第二损失子值;然后对第一损失子值和第二损失子值进行求和得到第二损失值,并根据第二损失值来优化对象检测模型中的模型参数,得到优化后的对象检测模型。通过将目标关键点的位置检测信息,以及第一关键点和第二关键点的位置检测信息来计算第二损失值,可以得到比较准确的第二损失值,从而可以根据该第二损失值来对模型优化,有效提升对象检测模型的检测精准度和鲁棒性,保证后续使用优化后的对象检测模型进行对象检测的准确性。
[0187]
基于上述所提供的模型优化方案,本技术实施例提供了一种模型优化方法,该模型优化方法可由上述所提及的计算机设备执行,该计算机设备可以是上述终端设备或者服务器。请参阅图8,该位置损失函数包括第一损失函数和第二损失函数,目标损失值包括第一损失函数的第一损失值,以及第二损失函数的第二损失值来阐述模型优化方法,其可包括以下步骤s801

s806:
[0188]
s801、获取样本图像,样本图像包括样本对象。
[0189]
s802、调用对象检测模型对样本图像进行对象检测,得到样本对象的目标关键点的位置检测信息,及目标关键点的参考对象的位置检测信息。
[0190]
s803、获取对象检测模型的位置损失函数,该位置损失函数包括第一损失函数和第二损失函数。
[0191]
其中,所述第一损失函数是根据目标关键点和对象检测框之间需满足的第一位置关系构建的;所述第二损失函数是根据目标关键点和第一关键点之间需满足的第二位置关系构建的。
[0192]
s804、采用位置损失函数,根据目标关键点的位置检测信息与参考对象的位置检测信息,计算目标损失值,该目标损失值包括第一损失函数的第一损失值,以及第二损失函数的第二损失值。
[0193]
其中,步骤s804的具体实现方式可参见上述步骤s403

s405的具体实现方式以及上述步骤s603

s604的具体实现方式,在此不再赘述。
[0194]
s805、根据第一损失值和第二损失值,计算对象检测模型的模型损失值。
[0195]
在具体实现中,计算机设备将第一损失值和第二损失值进行求和处理,得到对象
检测模型的模型损失值。
[0196]
在一个实施例中,为了平衡第一损失值和第二损失值,可对第一损失值和第二损失值进行加权处理。具体的,计算机设备获取第一损失函数的第一权重值,及第二损失函数的第二权重值,并采用第一权重值对第一损失值进行加权处理,并将第二权重值对第二损失值进行加权处理,然后对加权后的第一损失值和加权后的第二损失值进行求和运算,得到对象检测模型的模型损失值。其中,第一权重值和第二权重值可以取正数。
[0197]
再一个实施例中,计算机设备可获取样本图像的标注信息,并采用参考损失函数;然后根据样本图像的标注信息,计算参考损失值;然后对加权后的第一损失值、加权后的第二损失值以及参考损失值进行求和运算,得到对象检测模型的模型损失值。其中,该对象检测模型的模型损失值可用l表示,该模型损失值的计算公式为:
[0198]
l=loss alpha_1loss_bbox alpha_2loss_landmark
[0199]
其中,loss表示参考损失值,alpha_1表示第一权重值,alpha_2表示第二权重值,loss_bbox表示第一损失值,loss_landmark表示第二损失值。
[0200]
s806、按照减小模型损失值的方向,优化对象检测模型的模型参数,得到优化后的对象检测模型。
[0201]
在一个实施例中,计算机设备将优化后的对象检测模型发送至区块链网络中任一节点,任一节点对优化后的对象检测模型进行验证,当验证通过后,任一节点将优化后的对象检测模型生成区块,并将该生成的区块发送给区块链网络中其他节点进行共识,当共识成功后,将该区块保存至区块链网络中,从而防止优化后的对象检测模型被篡改。
[0202]
在本技术实施例中,计算机设备通过第一损失函数和第二损失函数分别确定出第一损失值和第二损失值,并结合第一损失值和第二损失值来确定对象检测模型的模型损失值,保证得到的模型损失值的准确性,并基于该较为准确的模型损失值来优化对象检测模型,能够有效提升对象检测模型的检测精准度和鲁棒性,进而保证优化后的对象检测模型进行对象检测的准确性。
[0203]
基于上述模型优化方法实施例的描述,本技术实施例还公开了一种模型优化装置,该模型优化装置可以是运行于上述所提及的计算机设备中的一个计算机程序(包括程序代码)。该模型优化装置可以执行图2、图4、图6和图8所示的方法。请参见图9,所述模型优化装置可以运行如下单元:
[0204]
获取单元901,用于获取样本图像,所述样本图像包括样本对象;
[0205]
处理单元902,用于调用对象检测模型对所述样本图像进行对象检测,得到所述样本对象的目标关键点的位置检测信息,及所述目标关键点的参考对象的位置检测信息;
[0206]
所述获取单元901,还用于获取所述对象检测模型的位置损失函数,所述位置损失函数是根据所述目标关键点和所述参考对象之间需满足的目标位置关系构建的;
[0207]
所述处理单元902,还用于采用所述位置损失函数,根据所述目标关键点的位置检测信息与所述参考对象的位置检测信息,计算目标损失值;
[0208]
所述处理单元902,还用于根据所述目标损失值优化所述对象检测模型的模型参数,得到优化后的对象检测模型。
[0209]
再一种实施方式中,所述样本对象包括一个或者多个关键点;所述参考对象包括所述样本对象的对象检测框;
[0210]
所述位置损失函数包括第一损失函数,所述目标损失值包括:所述第一损失函数的第一损失值;其中,所述目标位置关系包括:所述样本对象的任一关键点和所述对象检测框之间需满足的第一位置关系,所述第一损失函数是基于所述第一位置关系构建的,所述第一位置关系用于指示所述任一关键点需位于所述对象检测框内。
[0211]
再一种实施方式中,所述处理单元902在用于采用所述位置损失函数,根据所述目标关键点的位置检测信息与所述参考对象的位置检测信息,计算目标损失值时,可具体用于:
[0212]
采用所述第一损失函数,根据所述目标关键点的位置检测信息与所述参考对象的位置检测信息,计算所述目标关键点对应的损失值;
[0213]
根据所述目标关键点对应的损失值,确定第一损失值。
[0214]
再一种实施方式中,所述目标关键点的位置检测信息包括:所述目标关键点在所述样本图像中的位置坐标,且所述位置坐标包括横坐标值和纵坐标值;
[0215]
所述对象检测框为矩形边界框,所述参考对象的位置检测信息包括:所述对象检测框的各条边界在所述样本图像中的位置指示值;其中,所述第一位置关系通过所述任一关键点和每条边界之间需满足的方位关系进行表示;
[0216]
所述处理单元902,在用于采用所述第一损失函数,根据所述目标关键点的位置检测信息与所述参考对象的位置检测信息,计算所述目标关键点对应的损失值时,可具体用于:
[0217]
遍历所述对象检测框的各条边界;
[0218]
从所述参考对象的位置检测信息中获取当前遍历的当前边界的位置指示值,并从所述目标关键点的位置坐标中,获取与所述当前边界相关的坐标值;
[0219]
采用所述第一损失函数,根据所述当前边界的位置指示值和获取到的坐标值,计算所述当前边界对应的损失值;
[0220]
在所述各条边界均被遍历后,对所述各条边界对应的损失值进行求和运算,得到所述目标关键点对应的损失值。
[0221]
再一种实施方式中,所述目标关键点的位置检测信息包括:所述目标关键点在所述样本图像中的位置坐标;
[0222]
所述对象检测框为不规则检测框,所述参考对象的位置检测信息包括:所述样本检测框的各个顶点在所述样本图像中的位置坐标;所述对象检测框采用多个顶点向量表示,任一顶点向量是根据所述对象检测框的两个相邻顶点的位置坐标确定的;其中,所述第一位置关系通过所述任一关键点和每个顶点向量之间需满足的方位关系进行表示;
[0223]
所述处理单元902,在用于采用所述第一损失函数,根据所述目标关键点的位置检测信息与所述参考对象的位置检测信息,计算所述目标关键点对应的损失值时,可具体用于:
[0224]
遍历所述对象检测框的多个顶点,并确定当前遍历的当前顶点所对应的目标顶点向量,所述目标顶点向量是指采用所述当前顶点作为起始点所构建的顶点向量;
[0225]
从所述参考对象的位置信息中获取所述当前顶点的位置坐标,并根据所述当前顶点的位置坐标和所述目标关键点的位置坐标,计算所述当前顶点和所述目标关键点之间的参考顶点向量;
[0226]
采用所述第一损失函数,根据所述参考顶点向量和所述目标顶点向量,计算所述当前顶点对应的损失值;
[0227]
在所述对象检测框的各个顶点均被遍历后,对所述各个顶点对应的损失值进行求和运算,得到所述目标关键点对应的损失值。
[0228]
再一种实施方式中,所述样本对象包括多个关键点,所述参考对象还包括所述多个关键点中除所述目标关键点以外的一个或多个关键点;所述处理单元902,在用于根据所述目标关键点对应的损失值,确定第一损失值时,可具体用于:
[0229]
采用所述第一损失函数,根据所述参考对象中的各个关键点的位置检测信息与所述对象检测框的位置检测信息,计算所述参考对象中的各个关键点对应的损失值;
[0230]
对所述目标关键点对应的损失值,以及所述参考对象中的各个关键点对应的损失值进行求和,得到第一损失值。
[0231]
再一种实施方式中,所述样本对象包括多个关键点;所述参考对象包括:从所述多个关键点中选取出的第一关键点和第二关键点;
[0232]
所述位置损失函数包括第二损失函数,所述目标损失值包括:所述第二损失函数的第二损失值;其中,所述目标位置关系包括以下至少一项:所述目标关键点和所述第一关键点之间需满足的第二位置关系,以及所述目标关键点和所述第二关键点之间需满足的第三位置关系;
[0233]
所述第二位置关系用于指示所述目标关键点需位于所述第一关键点的第一方位,所述第三位置关系用于指示所述目标关键点需位于所述第二关键点的第二方位;
[0234]
所述第二损失函数是基于所述第二位置关系和所述第三位置关系中的至少一种位置关系构建的,所述第二损失值为以下任一种:根据所述目标关键点和所述第一关键点计算的第一损失子值,或者根据所述目标关键点和所述第二关键点计算的第二损失子值,或者所述第一损失子值和所述第二损失子值的总和。
[0235]
再一种实施方式中,所述目标关键点的位置检测信息包括:所述目标关键点在所述样本图像中的位置坐标;所述参考对象包括所述第一关键点和所述第二关键点,所述参考对象的位置检测信息包括:所述第一关键点在所述样本图像中的位置坐标,以及所述第二关键点在所述样本图像中的位置坐标;
[0236]
所述处理单元902,在用于采用所述位置损失函数,根据所述目标关键点的位置检测信息与所述参考对象的位置检测信息,计算目标损失值时,可具体用于:
[0237]
采用所述第二损失函数,根据所述目标关键点的位置坐标与所述第一关键点的位置坐标,计算第一损失子值;
[0238]
采用所述第二损失函数,根据所述目标关键点的位置坐标与所述第二关键点的位置坐标,计算第二损失子值;
[0239]
对所述第一损失子值和所述第二损失子值进行求和运算,得到第二损失值。
[0240]
再一种实施方式中,所述第一关键点的数量为两个,所述处理单元902,在用于采用所述第二损失函数,根据所述目标关键点的位置坐标与所述第一关键点的位置坐标,计算第一损失子值时,可具体用于:
[0241]
根据两个第一关键点的位置坐标计算第一基准向量,并根据所述第一基准向量的起始点的位置坐标和所述目标关键点的位置坐标,计算第一参考向量;其中,所述第一方位
是指所述目标关键点和所述第一基准向量之间所需满足的方位;
[0242]
采用所述第二损失函数根据所述第一基准向量和所述第一参考向量的第一外积结果,计算得到第一损失子值;其中,所述第一外积结果用于指示所述目标关键点是否位于所述第一基准向量的所述第一方位;且当所述目标关键点未位于所述第一方位时,产生所述第一损失子值。
[0243]
再一种实施方式中,所述处理单元902,在用于采用所述第二损失函数根据所述第一基准向量和所述第一参考向量的第一外积结果,计算得到第一损失子值时,可具体用于:
[0244]
采用所述第二损失函数,对所述第一基准向量和所述第一参考向量进行外积运算,得到第一外积结果;
[0245]
若所述第一外积结果大于无效数值,则确定所述目标关键点位于所述第一基准向量的所述第一方位,并确定所述第一损失子值等于所述无效数值;
[0246]
若所述第一外积结果小于或等于所述无效数值,则确定所述目标关键点未位于所述第一基准向量的所述第一方位,并根据所述第一外积结果确定所述第一损失子值。
[0247]
再一种实施方式中,所述样本对象为面部对象;所述目标关键点为鼻子关键点,两个第一关键点包括左眼关键点和右眼关键点,第一方位为所述左眼关键点和所述右眼关键点所构成的第一基准向量的右侧;两个第二关键点包括左嘴角关键点和右嘴角关键点;第二方位为所述左嘴角关键点和所述右嘴角关键点所构成的第二基准向量的左侧。
[0248]
再一种实施方式中,所述位置损失函数包括第一损失函数和第二损失函数,所述目标损失值包括:所述第一损失函数的第一损失值,以及所述第二损失函数的第二损失值;所述处理单元902,在用于根据所述目标损失值优化所述对象检测模型的模型参数,得到优化后的对象检测模型时,可具体用于:
[0249]
根据所述第一损失值和所述第二损失值,计算所述对象检测模型的模型损失值;
[0250]
按照减小所述模型损失值的方向,优化所述对象检测模型的模型参数,得到优化后的对象检测模型。
[0251]
根据本技术的一个实施例,图2、图4、图6和图8所示的方法所涉及的各个步骤均可以是由图9所示的模型优化装置中的各个单元执行的。例如,图2所示的步骤s201由图9所示的获取单元901来执行,步骤s202由图9所示的处理单元902来执行,步骤s203由图9所示的获取单元901来执行,步骤s204至步骤s205由图9所示的处理单元902来执行。又如,图4所示的步骤s401由图9所示的获取单元901来执行,步骤s402由图9所示的处理单元902来执行,步骤403由图9所示的获取单元901来执行,步骤s404至步骤s406由图9中所示的处理单元902来执行。又如,步骤s601由图9所示的获取单元901来执行,步骤s602由图9所示的处理单元902来执行,步骤603由图9中所示的获取单元901来执行,步骤s604至步骤s607由图9所示的处理单元902来执行。又如,步骤s801由图9所示的获取单元901来执行,步骤s802由图9所示的处理单元902来执行,步骤803由图9所示的获取单元901来执行,步骤s804至步骤s806由图9所示的处理单元902来执行。
[0252]
根据本技术的另一个实施例,图9所示的模型优化装置中的各个单元可以分别或者全部合并为一个或若干个另外的单元来构成,或者其中的某个(些)单元还可以再拆分为功能上更小的多个单元来构成,这可以实现同样的操作,而不影响本技术实施例的技术效果的实现。上述单元是基于逻辑功能划分的,在实际应用中,一个单元的功能也可以是由多
个单元来实现,或者多个单元的功能由一个单元实现。在本技术的其他实施例中,基于模型优化装置也可以包括其他单元,在实际应用中,这些功能也可以由其他单元协助实现,并且可以由多个单元协作实现。
[0253]
根据本技术的另一个实施例,可以通过包括中央处理单元(central processing unit,cpu),随机存取存储介质(ram)、只读存储介质(rom)等处理元件和存储元件。例如计算机的通用计算设备上运行能够执行如图2、图4、图6或者图8所示的相应方法所涉及的各步骤的计算机程序(包括程序代码),来构造如图9所示的模型优化装置,以及来实现本技术实施例的模型优化方法。所述的计算机程序可以记载于例如计算机可读记录介质上,并通过计算机可读记录介质装载于上述计算机设备中,并在其中运行。
[0254]
在本技术实施例中,计算机设备在获取样本图像,并调用对象检测模型对样本图像进行对象检测得到目标关键点的位置检测信息,以及参考对象的位置检测信息后,可采用位置损失函数,根据目标关键点的位置检测信息,以及参考对象的位置检测信息,计算目标损失值;并根据目标损失值来优化对象检测模型中的模型参数,得到优化后的对象检测模型。通过将目标关键点的位置检测信息,以及参考对象的位置检测信息来计算目标损失值,可以得到比较准确的目标损失值,从而可以根据该目标损失值来对模型优化,有效提升对象检测模型的检测精准度和鲁棒性。
[0255]
基于上述模型优化方法实施例的描述,本技术实施例还公开了一种计算机设备,请参见图10,该计算机设备至少可包括处理器1001、输入设备1002、输出设备1003以及计算机存储介质1004。其中,计算机设备内的处理器1001、输入设备1002、输出设备1003以及计算机存储介质1004可通过总线或其他方式连接。
[0256]
所述计算机存储介质1004是计算机设备中的记忆设备,用于存放程序和数据。可以理解的是,此处的计算机存储介质1004既可以包括计算机设备的内置存储介质,当然也可以包括计算机设备支持的扩展存储介质。计算机存储介质1004提供存储空间,该存储空间存储了计算机设备的操作系统。并且,在该存储空间中还存放了适于被处理器1001加载并执行的一条或多条指令,这些指令可以是一个或一个以上的计算机程序(包括程序代码)。需要说明的是,此处的计算机存储介质可以是高速ram存储器;可选的,还可以是至少一个远离前述处理器的计算机存储介质、所述处理器可以称为中央处理单元(central processing unit,cpu),是计算机设备的核心以及控制中心,适于被实现一条或多条指令,具体加载并执行一条或多条指令从而实现相应的方法流程或功能。
[0257]
在一种实施方式中,可由处理器1001加载并执行计算机存储介质中存放的一条或多条指令,以实现上述有关模型优化方法实施例中的方法的相应步骤;具体实现中,计算机存储介质中的一条或多条指令由处理器1001加载并执行如下操作:
[0258]
获取样本图像,所述样本图像包括样本对象;
[0259]
调用对象检测模型对所述样本图像进行对象检测,得到所述样本对象的目标关键点的位置检测信息,及所述目标关键点的参考对象的位置检测信息;
[0260]
获取所述对象检测模型的位置损失函数,所述位置损失函数是根据所述目标关键点和所述参考对象之间需满足的目标位置关系构建的;
[0261]
采用所述位置损失函数,根据所述目标关键点的位置检测信息与所述参考对象的位置检测信息,计算目标损失值;
[0262]
根据所述目标损失值优化所述对象检测模型的模型参数,得到优化后的对象检测模型。
[0263]
再一种实施方式中,所述样本对象包括一个或者多个关键点;所述参考对象包括所述样本对象的对象检测框;
[0264]
所述位置损失函数包括第一损失函数,所述目标损失值包括:所述第一损失函数的第一损失值;其中,所述目标位置关系包括:所述样本对象的任一关键点和所述对象检测框之间需满足的第一位置关系,所述第一损失函数是基于所述第一位置关系构建的,所述第一位置关系用于指示所述任一关键点需位于所述对象检测框内。
[0265]
再一种实施方式中,在采用所述位置损失函数,根据所述目标关键点的位置检测信息与所述参考对象的位置检测信息,计算目标损失值时,所述一条或多条指令由处理器1001加载并具体执行:
[0266]
采用所述第一损失函数,根据所述目标关键点的位置检测信息与所述参考对象的位置检测信息,计算所述目标关键点对应的损失值;
[0267]
根据所述目标关键点对应的损失值,确定第一损失值。
[0268]
再一种实施方式中,所述目标关键点的位置检测信息包括:所述目标关键点在所述样本图像中的位置坐标,且所述位置坐标包括横坐标值和纵坐标值;
[0269]
所述对象检测框为矩形边界框,所述参考对象的位置检测信息包括:所述对象检测框的各条边界在所述样本图像中的位置指示值;其中,所述第一位置关系通过所述任一关键点和每条边界之间需满足的方位关系进行表示;
[0270]
在采用所述第一损失函数,根据所述目标关键点的位置检测信息与所述参考对象的位置检测信息,计算所述目标关键点对应的损失值时,所述一条或多条指令由处理器1001加载并具体执行:
[0271]
遍历所述对象检测框的各条边界;
[0272]
从所述参考对象的位置检测信息中获取当前遍历的当前边界的位置指示值,并从所述目标关键点的位置坐标中,获取与所述当前边界相关的坐标值;
[0273]
采用所述第一损失函数,根据所述当前边界的位置指示值和获取到的坐标值,计算所述当前边界对应的损失值;
[0274]
在所述各条边界均被遍历后,对所述各条边界对应的损失值进行求和运算,得到所述目标关键点对应的损失值。
[0275]
再一种实施方式中,所述目标关键点的位置检测信息包括:所述目标关键点在所述样本图像中的位置坐标;所述对象检测框为不规则检测框,所述参考对象的位置检测信息包括:所述样本检测框的各个顶点在所述样本图像中的位置坐标;所述对象检测框采用多个顶点向量表示,任一顶点向量是根据所述对象检测框的两个相邻顶点的位置坐标确定的;其中,所述第一位置关系通过所述任一关键点和每个顶点向量之间需满足的方位关系进行表示;相应的,在采用所述第一损失函数,根据所述目标关键点的位置检测信息与所述参考对象的位置检测信息,计算所述目标关键点对应的损失值时,所述一条或多条指令由处理器1001加载并具体执行:
[0276]
遍历所述对象检测框的多个顶点,并确定当前遍历的当前顶点所对应的目标顶点向量,所述目标顶点向量是指采用所述当前顶点作为起始点所构建的顶点向量;
[0277]
从所述参考对象的位置信息中获取所述当前顶点的位置坐标,并根据所述当前顶点的位置坐标和所述目标关键点的位置坐标,计算所述当前顶点和所述目标关键点之间的参考顶点向量;
[0278]
采用所述第一损失函数,根据所述参考顶点向量和所述目标顶点向量,计算所述当前顶点对应的损失值;
[0279]
在所述对象检测框的各个顶点均被遍历后,对所述各个顶点对应的损失值进行求和运算,得到所述目标关键点对应的损失值。
[0280]
再一种实施方式中,所述样本对象包括多个关键点,所述参考对象还包括所述多个关键点中除所述目标关键点以外的一个或多个关键点;相应的,在根据所述目标关键点对应的损失值,确定第一损失值时,所述一条或多条指令由处理器1001加载并具体执行:
[0281]
采用所述第一损失函数,根据所述参考对象中的各个关键点的位置检测信息与所述对象检测框的位置检测信息,计算所述参考对象中的各个关键点对应的损失值;
[0282]
对所述目标关键点对应的损失值,以及所述参考对象中的各个关键点对应的损失值进行求和,得到第一损失值。
[0283]
再一种实施方式中,所述样本对象包括多个关键点;所述参考对象包括:从所述多个关键点中选取出的第一关键点和第二关键点;所述位置损失函数包括第二损失函数,所述目标损失值包括:所述第二损失函数的第二损失值;其中,所述目标位置关系包括以下至少一项:所述目标关键点和所述第一关键点之间需满足的第二位置关系,以及所述目标关键点和所述第二关键点之间需满足的第三位置关系;
[0284]
所述第二位置关系用于指示所述目标关键点需位于所述第一关键点的第一方位,所述第三位置关系用于指示所述目标关键点需位于所述第二关键点的第二方位;
[0285]
所述第二损失函数是基于所述第二位置关系和所述第三位置关系中的至少一种位置关系构建的,所述第二损失值为以下任一种:根据所述目标关键点和所述第一关键点计算的第一损失子值,或者根据所述目标关键点和所述第二关键点计算的第二损失子值,或者所述第一损失子值和所述第二损失子值的总和。
[0286]
再一种实施方式中,所述目标关键点的位置检测信息包括:所述目标关键点在所述样本图像中的位置坐标;所述参考对象包括所述第一关键点和所述第二关键点,所述参考对象的位置检测信息包括:所述第一关键点在所述样本图像中的位置坐标,以及所述第二关键点在所述样本图像中的位置坐标;相应的,在采用所述位置损失函数,根据所述目标关键点的位置检测信息与所述参考对象的位置检测信息,计算目标损失值时,所述一条或多条指令由处理器1001加载并具体执行:
[0287]
采用所述第二损失函数,根据所述目标关键点的位置坐标与所述第一关键点的位置坐标,计算第一损失子值;
[0288]
采用所述第二损失函数,根据所述目标关键点的位置坐标与所述第二关键点的位置坐标,计算第二损失子值;
[0289]
对所述第一损失子值和所述第二损失子值进行求和运算,得到第二损失值。
[0290]
再一种实施方式中,所述第一关键点的数量为两个,相应的,在采用所述第二损失函数,根据所述目标关键点的位置坐标与所述第一关键点的位置坐标,计算第一损失子值时,所述一条或多条指令由处理器1001加载并具体执行:
[0291]
根据两个第一关键点的位置坐标计算第一基准向量,并根据所述第一基准向量的起始点的位置坐标和所述目标关键点的位置坐标,计算第一参考向量;其中,所述第一方位是指所述目标关键点和所述第一基准向量之间所需满足的方位;
[0292]
采用所述第二损失函数根据所述第一基准向量和所述第一参考向量的第一外积结果,计算得到第一损失子值;其中,所述第一外积结果用于指示所述目标关键点是否位于所述第一基准向量的所述第一方位;且当所述目标关键点未位于所述第一方位时,产生所述第一损失子值。
[0293]
再一种实施方式中,在采用所述第二损失函数根据所述第一基准向量和所述第一参考向量的第一外积结果,计算得到第一损失子值时,所述一条或多条指令由处理器1001加载并具体执行:
[0294]
采用所述第二损失函数,对所述第一基准向量和所述第一参考向量进行外积运算,得到第一外积结果;
[0295]
若所述第一外积结果大于无效数值,则确定所述目标关键点位于所述第一基准向量的所述第一方位,并确定所述第一损失子值等于所述无效数值;
[0296]
若所述第一外积结果小于或等于所述无效数值,则确定所述目标关键点未位于所述第一基准向量的所述第一方位,并根据所述第一外积结果确定所述第一损失子值。
[0297]
再一种实施方式中,所述样本对象为面部对象;所述目标关键点为鼻子关键点,两个第一关键点包括左眼关键点和右眼关键点,第一方位为所述左眼关键点和所述右眼关键点所构成的第一基准向量的右侧;两个第二关键点包括左嘴角关键点和右嘴角关键点;第二方位为所述左嘴角关键点和所述右嘴角关键点所构成的第二基准向量的左侧。
[0298]
再一种实施方式中,所述位置损失函数包括第一损失函数和第二损失函数,所述目标损失值包括:所述第一损失函数的第一损失值,以及所述第二损失函数的第二损失值;相应的,再根据所述目标损失值优化所述对象检测模型的模型参数,得到优化后的对象检测模型时,所述一条或多条指令由处理器1001加载并具体执行:
[0299]
根据所述第一损失值和所述第二损失值,计算所述对象检测模型的模型损失值;
[0300]
按照减小所述模型损失值的方向,优化所述对象检测模型的模型参数,得到优化后的对象检测模型。
[0301]
在本技术实施例中,计算机设备在获取样本图像,并调用对象检测模型对样本图像进行对象检测得到目标关键点的位置检测信息,以及参考对象的位置检测信息后,可采用位置损失函数,根据目标关键点的位置检测信息,以及参考对象的位置检测信息,计算目标损失值;并根据目标损失值来优化对象检测模型中的模型参数,得到优化后的对象检测模型。通过将目标关键点的位置检测信息,以及参考对象的位置检测信息来计算目标损失值,可以得到比较准确的目标损失值,从而可以根据该目标损失值来对模型优化,有效提升对象检测模型的检测精准度和鲁棒性。
[0302]
需要说明的是,本技术实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述模型优化方法实施例图2、图4、图6或图8中所执行的步骤。
[0303]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read

only memory,rom)或随机存储记忆体(random access memory,ram)等。
[0304]
以上所揭露的仅为本技术一种较佳实施例而已,当然不能以此来限定本技术之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本技术权利要求所作的等同变化,仍属于发明所涵盖的范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

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

相关文献