利用多任务目标检测模型执行目标检测的方法和系统与流程

文档序号:18517068发布日期:2019-08-24 09:31阅读:504来源:国知局
利用多任务目标检测模型执行目标检测的方法和系统与流程

本发明总体说来涉及计算机视觉领域,更具体地讲,涉及一种利用能够执行目标分类检测任务、目标边框检测任务和目标关键点检测任务的多任务目标检测模型执行目标检测的方法和系统、以及用于训练多任务目标检测模型的方法和系统。



背景技术:

在计算机视觉技术中,目标检测(Object detection)是指对于任意一幅给定的图像,检测并识别其中的特定目标(例如,人脸等),并输出特定目标的位置、大小等信息(例如,特定目标的边框信息)。目标检测作为一个热门研究课题近年来取得了很大进展,其在人脸识别、安全监控以及动态跟踪等众多领域中都具有广泛的应用前景。

作为目标检测的后续任务,目标关键点定位(Object landmark localization)是指在检测到特定目标后,定位出特定目标的关键点的位置,并输出特定目标的关键点的位置信息。目标关键点定位在诸如目标属性分析、姿态识别、姿态矫正等众多领域具有非常重要的实际应用价值,是进一步进行目标属性识别和建模的基础。

然而,目标检测和目标关键点定位这两个任务在无约束场景下充满挑战,其性能常受到光照、姿态、遮挡等因素的影响。现有技术通常将两者分开来做,忽略了这两个任务之间的潜在联系,无法在无约束场景下有效地克服目标检测和目标关键点定位的准确性问题。

下面以人脸关键点定位为例进行介绍。人脸关键点定位按参数划分大致分为两种,即,参数方法和非参数方法。参数模型的方法可分为基于局部模型和基于全局模型的方法,如ASM和AAM,通过局部或全局信息建立初始模型,然后进行模型匹配,这种方法对形状的初始化有较高的要求,容易陷入局部最优。基于非参数的方法可以分为基于样例的方法、基于图模型的方法、基于级联回归的方法(CPR)和基于深度学习的方法(DCNN,TCNN,MTCNN)。近年来,最为流行的是基于深度学习的方法。

基于深度学习的方法主要借助于卷积神经网络(CNN)更高层更抽象的特征表达能力来获取更为精确的关键点位置。深度卷积神经网络(DCNN)基于卷积神经网络提出了一种包含三个阶段的级联模型,由粗到精逐步精确关键点的位置。改进卷积神经网络(TCNN)将多任务学习应用到关键点检测中,在进行关键点检测的同时引入辅助信息如姿态,遮挡等。然而,DCNN和TCNN两个模型的共同缺点在于无法处理无约束场景下的目标检测和目标关键点定位。此外,多任务卷积神经网络(MTCNN)联合人脸检测和关键点检测,提出了一种多任务级联的关键点检测模型,然而其缺点在于无法在无约束场景下有效地克服目标检测和目标关键点定位的准确性问题。



技术实现要素:

本发明的示例性实施例旨在克服现有技术中无法在无约束场景下有效地克服目标检测和目标关键点定位的准确性问题的缺陷。

根据本发明示例性实施例,提供一种用于训练多任务目标检测模型的方法,其中,所述多任务包括目标分类检测任务、目标边框检测任务和目标关键点检测任务,所述多任务检测模型包括n个子模型,其中,n为大于2的整数,所述方法包括:获取包含标注信息的训练图像,其中,所述标注信息包括训练图像中的目标的真实分类信息、真实边框位置信息和真实关键点位置信息;将训练图像输入到所述子模型之中的第一子模型,利用第一子模型获得所述目标的初始预测信息,其中,所述初始预测信息包括所述目标的初始预测分类信息、初始预测边框位置信息和初始预测关键点位置信息;基于所述目标的初始预测边框位置信息和初始预测关键点位置信息,从训练图像获得初始预测目标图像,其中,所述初始预测目标图像包括所述目标的初始预测边框图像和初始预测关键点图像;将所述初始预测目标图像输入到所述子模型之中的第二子模型,基于标注信息、所述初始预测信息和所述初始预测目标图像来训练第二子模型,其中,用于训练第二子模型的损失函数反映第二子模型获得的预测分类信息与真实分类信息之间的差异、第二子模型获得的预测边框位置信息与真实边框位置信息之间的差异以及第二子模型获得的预测关键点位置信息与真实关键点位置信息之间的差异;将所述初始预测目标图像输入到训练完毕的第二子模型,利用训练完毕的第二子模型获得所述目标的调整信息,其中,所述调整信息包括所述目标的调整分类信息、调整边框位置信息和调整关键点位置信息,并且基于利用训练完毕的第二子模型获得的所述目标的调整边框位置信息和调整关键点位置信息,从训练图像获得调整目标图像,其中,所述调整目标图像包括所述目标的调整边框图像和调整关键点图像;以及针对所述子模型之中的第i子模型,将利用训练完毕的第(i-1)子模型获得的调整目标图像输入到第i子模型,基于标注信息、利用训练完毕的第(i-1)子模型获得的所述目标的调整信息和调整目标图像来训练第i子模型,其中,用于训练第i子模型的损失函数反映第i子模型获得的预测分类信息与真实分类信息之间的差异、第i子模型获得的预测边框位置信息与真实边框位置信息之间的差异以及第i子模型获得的预测关键点位置信息与真实关键点位置信息之间的差异,其中,i为大于2且小于或等于n的任一整数;当i不为n时,将利用训练完毕的第(i-1)子模型获得的调整目标图像输入到训练完毕的第i子模型,利用训练完毕的第i子模型获得所述目标的调整信息,并且基于利用训练完毕的第i子模型获得的所述目标的调整边框位置信息和调整关键点位置信息,从训练图像获得调整目标图像,其中,所述子模型之中的第二子模型至第n子模型中的每个子模型为一个针对所述多任务的基于深度学习的神经网络。

可选地,从训练图像获得初始预测目标图像的步骤可包括:基于所述目标的初始预测边框位置信息对训练图像执行裁剪处理以获得初始预测边框图像;基于所述目标的初始预测关键点位置信息对训练图像执行以关键点为中心取补丁的处理以获得初始预测关键点图像。

可选地,获得所述目标的初始预测分类信息的方式可包括:基于深度学习的神经网络。

可选地,获得所述目标的初始预测边框位置信息的方式可包括以下项之一:滑动窗口方式、选择性搜索方式、边缘框方式和基于深度学习的神经网络。

可选地,获得所述目标的初始预测关键点位置信息的方式可包括以下项之一:基于深度学习的神经网络和初始模板位置方式。

可选地,第一子模型可为一个针对所述多任务的基于深度学习的神经网络,该基于深度学习的神经网络的输出为所述目标的初始预测分类信息、初始预测边框位置信息和初始预测关键点位置信息,其中,利用第一子模型获得所述目标的初始预测信息的步骤可包括:基于训练图像和标注信息来训练第一子模型,其中,用于训练第一子模型的损失函数反映第一子模型获得的预测分类信息与真实分类信息之间的差异、第一子模型获得的预测边框位置信息与真实边框位置信息之间的差异以及第一子模型获得的预测关键点位置信息与真实关键点位置信息之间的差异;基于训练图像,利用训练完毕的第一子模型获得所述目标的初始预测分类信息、初始预测边框位置信息和初始预测关键点位置信息。

可选地,第一子模型的针对所述多任务的基于深度学习的神经网络可为全卷积神经网络。

可选地,第一子模型的针对所述多任务的基于深度学习的神经网络的层数大于第二子模型至第n子模型中的每个子模型的针对所述多任务的基于深度学习的神经网络的层数。

可选地,第二子模型至第n子模型中的每个子模型的针对所述多任务的基于深度学习的神经网络的输出可为所述目标的分类信息、边框位置偏移信息和关键点位置偏移信息,其中,训练第二子模型的步骤可包括:将第二子模型输出的所述目标的分类信息作为用于训练第二子模型的损失函数中的预测分类信息;通过将第二子模型输出的所述目标的边框位置偏移信息与所述目标的初始预测边框位置信息相加来获得用于训练第二子模型的损失函数中的预测边框位置信息;通过将第二子模型输出的所述目标的关键点位置偏移信息与所述目标的初始预测关键点位置信息相加来获得用于训练第二子模型的损失函数中的预测关键点位置信息,其中,训练第i子模型的步骤可包括:将第i子模型输出的所述目标的分类信息作为用于训练第i子模型的损失函数中的预测分类信息;通过将第i子模型输出的所述目标的边框位置偏移信息与利用训练完毕的第(i-1)子模型获得的所述目标的调整边框位置信息相加来获得用于训练第i子模型的损失函数中的预测边框位置信息;通过将第i子模型输出的所述目标的关键点位置偏移信息与利用训练完毕的第(i-1)子模型获得的所述目标的调整关键点位置信息相加来获得用于训练第i子模型的损失函数中的预测关键点位置信息。

可选地,训练第i子模型的步骤可包括:当第(i-1)子模型为第二子模型时,将训练完毕的第二子模型输出的所述目标的分类信息作为利用训练完毕的第二子模型获得的调整分类信息,将训练完毕的第二子模型输出的所述目标的边框位置偏移信息与所述目标的初始预测边框位置信息相加获得调整边框位置信息,作为利用训练完毕的第二子模型获得的所述目标的调整边框位置信息,并基于调整边框位置信息对训练图像执行裁剪处理以获得所述目标的调整边框图像,将训练完毕的第二子模型输出的关键点位置偏移信息与所述目标的初始预测关键点位置信息相加获得调整关键点位置信息,作为利用训练完毕的第二子模型获得的所述目标的调整关键点位置信息基于调整关键点位置信息对训练图像执行以关键点为中心取补丁的处理以获得所述目标的调整关键点图像;当第(i-1)子模型为第三子模型至第n子模型之一时,将训练完毕的第(i-1)子模型输出的所述目标的分类信息作为利用训练完毕的第(i-1)子模型获得的所述目标的调整分类信息,将训练完毕的第(i-1)子模型输出的所述目标的边框位置偏移信息与利用训练完毕的第(i-2)子模型获得的所述目标的调整边框位置信息相加获得新的调整边框位置信息,作为利用训练完毕的第(i-1)子模型获得的所述目标的调整边框位置信息,并基于新的调整边框位置信息对训练图像执行裁剪处理以获得所述目标的调整边框图像,将训练完毕的第(i-1)子模型输出的所述目标的关键点位置偏移信息与利用训练完毕的第(i-2)子模型获得的所述目标的调整关键点位置信息相加获得新的调整关键点位置信息,作为利用训练完毕的第(i-1)子模型获得的所述目标的调整关键点位置信息,并基于新的调整关键点位置信息对训练图像执行以关键点为中心取补丁的处理以获得所述目标的调整关键点图像。

可选地,训练步骤可包括:基于利用每个子模型获得的预测分类信息和真实分类信息获得交叉熵损失函数作为分类损失函数;基于利用每个子模型获得的预测边框位置信息与真实边框位置信息之间的差异获得边框损失函数;基于利用每个子模型获得的预测关键点位置信息与真实关键点位置信息之间的差异获得关键点损失函数;基于分类损失函数、边框损失函数和关键点损失函数获得用于训练每个子模型的损失函数。

可选地,基于分类损失函数、边框损失函数和关键点损失函数获得用于训练每个子模型的损失函数的步骤包括:基于分类损失函数、边框损失函数和关键点损失函数的加权和获得用于训练每个子模型的损失函数。

可选地,基于分类损失函数、边框损失函数和关键点损失函数的加权和获得用于训练每个子模型的损失函数的步骤包括:分别根据目标分类检测任务、目标边框检测任务和目标关键点检测任务的重要性来设置分类损失函数、边框损失函数和关键点损失函数的权重。

根据本发明示例性实施例,提供一种利用多任务目标检测模型执行目标检测的方法,其中,所述多任务包括目标分类检测任务、目标边框检测任务和目标关键点检测任务,所述多任务检测模型包括n个子模型,其中,n为大于2的整数,所述方法包括:获取检测图像;将检测图像输入到所述子模型之中的第一子模型,利用第一子模型获得目标的初始预测信息,其中,所述初始预测信息包括所述目标的初始预测分类信息、初始预测边框位置信息和初始预测关键点位置信息;对利用第一子模型获得的所述目标的初始预测边框位置信息执行非极大抑制处理以排除一部分初始预测边框位置信息,从而获得所述目标的剩余初始预测边框位置信息;基于所述目标的剩余初始预测边框位置信息和初始预测关键点位置信息,从检测图像获得初始预测目标图像,其中,所述初始预测目标图像包括所述目标的初始预测边框图像和初始预测关键点图像;将所述初始预测目标图像输入到所述子模型之中的第二子模型,利用第二子模型来获得所述目标的第一调整信息,其中,第一调整信息包括第一调整分类信息、第一调整边框位置信息和第一调整关键点位置信息;对利用第二子模型获得的所述目标的第一调整边框位置信息执行非极大抑制处理以排除一部分第一调整边框位置信息,从而获得所述目标的第一剩余调整边框位置信息;基于所述目标的第一剩余调整边框位置信息和第一调整关键点位置信息,从检测图像获得第一调整目标图像,其中,第一调整目标图像包括所述目标的第一调整边框图像和第一调整关键点图像;针对所述子模型之中的第i子模型,将第(i-2)调整目标图像输入到第i子模型,利用第i子模型来获得所述目标的第(i-1)调整信息,其中,第(i-1)调整信息包括第(i-1)调整分类信息、第(i-1)调整边框位置信息和第(i-1)调整关键点位置信息,其中,i为大于2且小于或等于n的任一整数;对利用第i子模型获得的所述目标的第(i-1)调整边框位置信息执行非极大抑制处理以排除一部分第(i-1)调整边框位置信息,从而获得所述目标的第(i-1)剩余调整边框位置信息;当i不为n时,基于所述目标的第(i-1)剩余调整边框位置信息和第(i-1)调整关键点位置信息,从检测图像获得第(i-1)调整目标图像,其中,第(i-1)调整目标图像包括所述目标的第(i-1)调整边框图像和第(i-1)调整关键点图像;将所述目标的第(n-1)调整分类信息、第(n-1)剩余调整边框位置信息和第(n-1)调整关键点位置信息作为所述目标的最终的分类信息、边框位置信息和关键点位置信息,其中,所述子模型之中的第二子模型至第n子模型中的每个子模型为一个训练完毕的针对所述多任务的基于深度学习的神经网络。

可选地,从检测图像获得初始预测目标图像的步骤可包括:基于所述目标的剩余初始预测边框位置信息对检测图像执行裁剪处理以获得初始预测边框图像;基于初始预测关键点位置信息对检测图像执行以关键点为中心取补丁的处理以获得初始预测关键点图像。

可选地,获得所述目标的分类信息的方式可包括:基于深度学习的神经网络。

可选地,获得所述目标的边框位置信息的方式可包括以下项之一:滑动窗口方式、选择性搜索方式、边缘框方式和基于深度学习的神经网络。

可选地,获得所述目标的关键点位置信息的方式可包括以下项之一:基于深度学习的神经网络和初始模板位置方式。

可选地,第一子模型可为一个训练完毕的针对所述多任务的基于深度学习的神经网络,其中,第一子模型的针对所述多任务的基于深度学习的神经网络的输出为所述目标的初始预测分类信息、初始预测边框位置信息和初始预测关键点位置信息,其中,第一子模型是利用包含标注信息的训练图像,基于反映第一子模型获得的预测分类信息与真实分类信息之间的差异、第一子模型获得的预测边框位置信息与真实边框位置信息之间的差异以及第一子模型获得的预测关键点位置信息与真实关键点位置信息之间的差异的损失函数来训练的,其中,所述标注信息包括训练图像中的目标的真实分类信息、真实边框位置信息和真实关键点位置信息。

可选地,第一子模型的针对所述多任务的基于深度学习的神经网络可为全卷积神经网络。

可选地,第一子模型的针对所述多任务的基于深度学习的神经网络的层数可大于第二子模型至第n子模型中的每个子模型的针对所述多任务的基于深度学习的神经网络的层数。

可选地,执行非极大抑制处理的步骤可包括:基于所述目标的初始预测分类信息计算初始置信度,根据初始置信度对初始预测边框位置信息执行非极大抑制处理;基于所述目标的第一调整分类信息计算第一置信度,根据第一置信度对第一调整边框位置信息执行非极大抑制处理;基于所述目标的第(i-1)调整分类信息计算第(i-1)置信度,根据第(i-1)置信度对第(i-1)调整边框位置信息执行非极大抑制处理。

可选地,第二子模型至第n子模型中的每个子模型的针对所述多任务的基于深度学习的神经网络的输出可为所述目标的分类信息、边框位置偏移信息和关键点位置偏移信息,其中,获得所述目标的第一调整信息的步骤可包括:将第二子模型输出的所述目标的分类信息作为所述目标的第一调整分类信息;将第二子模型输出的边框位置偏移信息与剩余初始预测边框位置信息相加获得所述目标的第一调整边框位置信息;将第二子模型输出的关键点位置偏移信息与初始预测关键点位置信息相加获得所述目标的第一调整关键点位置信息,其中,从检测图像获得第一调整目标图像的步骤可包括:基于第一剩余调整边框位置信息对检测图像执行裁剪处理,以获得第一调整边框图像;基于第一调整关键点位置信息对检测图像执行以关键点为中心取补丁的处理以获得第一调整关键点图像,其中,获得所述目标的第(i-1)调整信息的步骤可包括:将第i子模型输出的所述目标的分类信息作为所述目标的第(i-1)调整分类信息;将第i子模型输出的边框位置偏移信息与第(i-2)剩余调整边框位置信息相加获得所述目标的第(i-1)调整边框位置信息;将第i子模型输出的关键点位置偏移信息与第(i-2)调整关键点位置信息相加获得所述目标的第(i-1)调整关键点信息,其中,从检测图像获得第(i-1)调整目标图像的步骤可包括:基于第(i-1)剩余调整边框位置信息对检测图像执行裁剪处理,以获得第(i-1)调整边框图像;基于第(i-1)调整关键点位置信息对检测图像执行以关键点为中心取补丁的处理以获得第(i-1)调整关键点图像。

可选地,第二子模型至第n子模型中的每个子模型是利用包含标注信息的训练图像,基于反映每个子模型获得的预测分类信息与真实分类信息之间的差异、每个子模型获得的预测边框位置信息与真实边框位置信息之间的差异以及每个子模型获得的预测关键点位置信息与真实关键点位置信息之间的差异的损失函数来训练的,其中,所述标注信息包括训练图像中的目标的真实分类位置信息、真实边框位置信息和真实关键点位置信息。

根据本发明示例性实施例,提供一种用于训练多任务目标检测模型的系统,其中,所述多任务包括目标分类检测任务、目标边框检测任务和目标关键点检测任务,所述多任务检测模型包括n个子模型,其中,n为大于2的整数,所述系统包括:训练图像获取装置,用于获取包含标注信息的训练图像,其中,所述标注信息包括训练图像中的目标的真实分类信息、真实边框位置信息和真实关键点位置信息;初始预测信息和目标图像获取装置,用于将训练图像输入到所述子模型之中的第一子模型,利用第一子模型获得所述目标的初始预测信息,其中,所述初始预测信息包括所述目标的初始预测分类信息、初始预测边框位置信息和初始预测关键点位置信息,并且基于所述目标的初始预测边框位置信息和初始预测关键点位置信息,从训练图像获得初始预测目标图像,其中,所述初始预测目标图像包括所述目标的初始预测边框图像和初始预测关键点图像;子模型训练装置,用于将所述初始预测目标图像输入到所述子模型之中的第二子模型,基于标注信息、所述初始预测信息和所述初始预测目标图像来训练第二子模型,其中,用于训练第二子模型的损失函数反映第二子模型获得的预测分类信息与真实分类信息之间的差异、第二子模型获得的预测边框位置信息与真实边框位置信息之间的差异以及第二子模型获得的预测关键点位置信息与真实关键点位置信息之间的差异,并且将所述初始预测目标图像输入到训练完毕的第二子模型,利用训练完毕的第二子模型获得所述目标的调整信息,其中,所述调整信息包括所述目标的调整分类信息、调整边框位置信息和调整关键点位置信息,并且基于利用训练完毕的第二子模型获得的所述目标的调整边框位置信息和调整关键点位置信息,从训练图像获得调整目标图像,其中,所述调整目标图像包括所述目标的调整边框图像和调整关键点图像,以及用于针对所述子模型之中的第i子模型,将利用训练完毕的第(i-1)子模型获得的调整目标图像输入到第i子模型,基于标注信息、利用训练完毕的第(i-1)子模型获得的所述目标的调整信息和调整目标图像来训练第i子模型,其中,用于训练第i子模型的损失函数反映第i子模型获得的预测分类信息与真实分类信息之间的差异、第i子模型获得的预测边框位置信息与真实边框位置信息之间的差异以及第i子模型获得的预测关键点位置信息与真实关键点位置信息之间的差异,其中,i为大于2且小于或等于n的任一整数,并且当i不为n时,将利用训练完毕的第(i-1)子模型获得的调整目标图像输入到训练完毕的第i子模型,利用训练完毕的第i子模型获得所述目标的调整信息,并且基于利用训练完毕的第i子模型获得的所述目标的调整边框位置信息和调整关键点位置信息,从训练图像获得调整目标图像,其中,所述子模型之中的第二子模型至第n子模型中的每个子模型为一个针对所述多任务的基于深度学习的神经网络。

可选地,初始预测信息和目标图像获取装置可基于所述目标的初始预测边框位置信息对训练图像执行裁剪处理以获得初始预测边框图像,并可基于所述目标的初始预测关键点位置信息对训练图像执行以关键点为中心取补丁的处理以获得初始预测关键点图像。

可选地,获得所述目标的初始预测分类信息的方式可包括:基于深度学习的神经网络。

可选地,获得所述目标的初始预测边框位置信息的方式可包括以下项之一:滑动窗口方式、选择性搜索方式、边缘框方式和基于深度学习的神经网络。

可选地,获得检测单元检测所述目标的初始预测关键点位置信息的方式可包括以下项之一:基于深度学习的神经网络和初始模板位置方式。

可选地,第一子模型可为一个针对所述多任务的基于深度学习的神经网络,该基于深度学习的神经网络的输出为所述目标的初始预测分类信息、初始预测边框位置信息和初始预测关键点位置信息,其中,初始预测信息和目标图像获取装置可基于训练图像和标注信息来训练第一子模型,并基于训练图像,利用训练完毕的第一子模型获得所述目标的初始预测分类信息、初始预测边框位置信息和初始预测关键点位置信息,其中,用于训练第一子模型的损失函数反映第一子模型获得的预测分类信息与真实分类信息之间的差异、第一子模型获得的预测边框位置信息与真实边框位置信息之间的差异以及第一子模型获得的预测关键点位置信息与真实关键点位置信息之间的差异。

可选地,第一子模型的针对所述多任务的基于深度学习的神经网络可为全卷积神经网络。

可选地,第一子模型的针对所述多任务的基于深度学习的神经网络的层数可大于第二子模型至第n子模型中的每个子模型的针对所述多任务的基于深度学习的神经网络的层数。

可选地,第二子模型至第n子模型中的每个子模型的针对所述多任务的基于深度学习的神经网络的输出可为所述目标的分类信息、边框位置偏移信息和关键点位置偏移信息,其中,子模型训练装置可包括:预测分类信息获取单元、预测边框位置信息获取单元和预测关键点位置信息获取单元,其中,针对第二子模型,预测分类信息获取单元将第二子模型输出的所述目标的分类信息作为用于训练第二子模型的损失函数中的预测分类信息,预测边框位置信息获取单元通过将第二子模型输出的所述目标的边框位置偏移信息与所述目标的初始预测边框位置信息相加来获得用于训练第二子模型的损失函数中的预测边框位置信息,以及预测关键点位置信息获取单元通过将第二子模型输出的所述目标的关键点位置偏移信息与所述目标的初始预测关键点位置信息相加来获得用于训练第二子模型的损失函数中的预测关键点位置信息,其中,针对第i子模型,预测分类信息获取单元将第i子模型输出的所述目标的分类信息作为用于训练第i子模型的损失函数中的预测分类信息,预测边框位置信息获取单元通过将第i子模型输出的所述目标的边框位置偏移信息与利用训练完毕的第(i-1)子模型获得的所述目标的调整边框位置信息相加来获得用于训练第i子模型的损失函数中的预测边框位置信息,以及预测关键点位置信息获取单元通过将第i子模型输出的所述目标的关键点位置偏移信息与利用训练完毕的第(i-1)子模型获得的所述目标的调整关键点位置信息相加来获得用于训练第i子模型的损失函数中的预测关键点位置信息。

可选地,子模型训练装置可包括:调整分类信息获取单元、调整边框位置信息获取单元、调整边框图像获取单元、调整关键点位置信息获取单元和调整关键点图像获取单元,其中,当第(i-1)子模型为第二子模型时,调整分类信息获取单元将训练完毕的第二子模型输出的所述目标的分类信息作为利用训练完毕的第二子模型获得的所述目标的调整分类信息,调整边框位置信息获取单元将训练完毕的第二子模型输出的所述目标的边框偏移信息与所述目标的初始预测边框位置信息相加获得调整边框位置信息,作为利用训练完毕的第二子模型获得的所述目标的调整边框位置信息,调整边框图像获取单元基于调整边框位置信息对训练图像执行裁剪处理以获得所述目标的相应的调整边框图像,以及调整关键点位置信息获取单元将训练完毕的第二子模型输出的关键点位置偏移信息与所述目标的初始预测关键点位置信息相加获得调整关键点位置信息,作为利用训练完毕的第二子模型获得的所述目标的调整关键点位置信息,调整关键点图像获取单元基于调整关键点位置信息对训练图像执行以关键点为中心取补丁的处理以获得所述目标的相应的调整关键点图像,其中,当第(i-1)子模型为第三子模型至第n子模型之一时,调整分类信息获取单元将训练完毕的第(i-1)子模型输出的所述目标的分类信息作为利用训练完毕的第(i-1)子模型获得的所述目标的调整分类信息,调整边框位置信息获取单元将训练完毕的第(i-1)子模型输出的所述目标的边框位置偏移信息与利用训练完毕的第(i-2)子模型获得的所述目标的调整边框位置信息相加获得新的调整边框位置信息,作为利用训练完毕的第(i-1)子模型获得的所述目标的调整边框位置信息,调整边框图像获取单元基于新的调整边框位置信息对训练图像执行裁剪处理以获得所述目标的相应的调整边框图像,以及调整关键点位置信息获取单元将训练完毕的第(i-1)子模型输出的所述目标的关键点位置偏移信息与利用训练完毕的第(i-2)子模型获得的所述目标的调整关键点位置信息相加获得新的调整关键点位置信息,作为利用训练完毕的第(i-1)子模型获得的所述目标的调整关键点位置信息,调整关键点图像获取单元基于新的调整关键点位置信息对训练图像执行以关键点为中心取补丁的处理以获得所述目标的相应的调整关键点图像。

可选地,可基于利用每个子模型获得的预测分类信息和真实分类信息获得交叉熵损失函数作为分类损失函数,可基于利用每个子模型获得的预测边框位置信息与真实边框位置信息之间的差异获得边框损失函数,可基于利用每个子模型获得的预测关键点位置信息与真实关键点位置信息之间的差异获得关键点损失函数,并可基于分类损失函数、边框损失函数和关键点损失函数获得用于训练每个子模型的损失函数。

可选地,可基于分类损失函数、边框损失函数和关键点损失函数的加权和获得用于训练每个子模型的损失函数。

可选地,可分别根据目标分类检测任务、目标边框检测任务和目标关键点检测任务的重要性来设置分类损失函数、边框损失函数和关键点损失函数的权重。

根据本发明示例性实施例,提供一种利用多任务目标检测模型执行目标检测的系统,其中,所述多任务包括目标分类检测任务、目标边框检测任务和目标关键点检测任务,所述多任务检测模型包括n个子模型,其中,n为大于2的整数,所述系统包括:检测图像获取装置,用于获取检测图像;初始信息和目标图像获取装置,用于基于检测图像,利用第一子模型获得目标的初始预测信息,其中,所述初始预测信息包括所述目标的初始预测分类信息、初始预测边框位置信息和初始预测关键点位置信息,对利用第一子模型获得的所述目标的初始预测边框位置信息执行非极大抑制处理以排除一部分初始预测边框位置信息,从而获得所述目标的剩余初始预测边框位置信息,并且基于所述目标的剩余初始预测边框位置信息和初始预测关键点位置信息,从检测图像获得初始预测目标图像,其中,所述初始预测目标图像包括所述目标的初始预测边框图像和初始预测关键点图像;调整信息和目标图像获取装置,用于将所述初始预测目标图像输入到所述子模型之中的第二子模型,利用第二子模型来获得所述目标的第一调整信息,其中,第一调整信息包括第一调整分类信息、第一调整边框位置信息和第一调整关键点位置信息,对利用第二子模型获得的所述目标的第一调整边框位置信息执行非极大抑制处理以排除一部分第一调整边框位置信息,从而获得所述目标的第一剩余调整边框位置信息,基于所述目标的第一剩余调整边框位置信息和第一调整关键点位置信息,从检测图像获得第一调整目标图像,其中,第一调整目标图像包括所述目标的第一调整边框图像和第一调整关键点图像,针对所述子模型之中的第i子模型,将第(i-2)调整目标图像输入到第i子模型,利用第i子模型来获得所述目标的第(i-1)调整信息,其中,第(i-1)调整信息包括第(i-1)调整分类信息、第(i-1)调整边框位置信息和第(i-1)调整关键点位置信息,其中,i为大于2且小于或等于n的任一整数,对利用第i子模型获得的所述目标的第(i-1)调整边框位置信息执行非极大抑制处理以排除一部分第(i-1)调整边框位置信息,从而获得所述目标的第(i-1)剩余调整边框位置信息,当i不为n时,基于所述目标的第(i-1)剩余调整边框位置信息和第(i-1)调整关键点位置信息,从检测图像获得第(i-1)调整目标图像,其中,第(i-1)调整目标图像包括所述目标的第(i-1)调整边框图像和第(i-1)调整关键点图像;最终信息获取装置,用于将所述目标的第(n-1)调整分类信息、第(n-1)剩余调整边框位置信息和第(n-1)调整关键点位置信息作为所述目标的最终的分类信息、边框位置信息和关键点位置信息,其中,所述子模型之中的第二子模型至第n子模型中的每个子模型为一个训练完毕的针对所述多任务的基于深度学习的神经网络。

可选地,初始信息和目标图像获取装置可基于所述目标的剩余初始预测边框位置信息对检测图像执行裁剪处理以获得初始预测边框图像,并可基于初始预测关键点位置信息对检测图像执行以关键点为中心取补丁的处理以获得初始预测关键点图像。

可选地,获得所述目标的分类信息的方式可包括:基于深度学习的神经网络。

可选地,获得所述目标的边框位置信息的方式可包括以下项之一:滑动窗口方式、选择性搜索方式、边缘框方式和基于深度学习的神经网络。

可选地,获得所述目标的关键点位置信息的方式可包括以下项之一:基于深度学习的神经网络和初始模板位置方式。

可选地,第一子模型可为一个训练完毕的针对所述多任务的基于深度学习的神经网络,

可选地,第一子模型的针对所述多任务的基于深度学习的神经网络的输出可为所述目标的初始预测分类信息、初始预测边框位置信息和初始预测关键点位置信息,其中,第一子模型是利用包含标注信息的训练图像,基于反映第一子模型获得的预测分类信息与真实分类信息之间的差异、第一子模型获得的预测边框位置信息与真实边框位置信息之间的差异以及第一子模型获得的预测关键点位置信息与真实关键点位置信息之间的差异的损失函数来训练的,其中,所述标注信息包括训练图像中的目标的真实分类信息、真实边框位置信息和真实关键点位置信息。

可选地,第一子模型的针对所述多任务的基于深度学习的神经网络可为全卷积神经网络。

可选地,第一子模型的针对所述多任务的基于深度学习的神经网络的层数可大于第二子模型至第n子模型中的每个子模型的针对所述多任务的基于深度学习的神经网络的层数。

可选地,初始信息和目标图像获取装置可基于所述目标的初始预测分类信息计算初始置信度,根据初始置信度对初始预测边框位置信息执行非极大抑制处理,其中,调整信息和目标图像获取装置可基于所述目标的第一调整分类信息计算第一置信度,根据第一置信度对第一调整边框位置信息执行非极大抑制处理,其中,调整信息和目标图像获取装置可基于所述目标的第(i-1)调整分类信息计算第(i-1)置信度,根据第(i-1)置信度对第(i-1)调整边框位置信息执行非极大抑制处理。

可选地,第二子模型至第n子模型中的每个子模型的针对所述多任务的基于深度学习的神经网络的输出可为所述目标的分类信息、边框位置偏移信息和关键点位置偏移信息,其中,调整信息和目标图像获取装置可将第二子模型输出的所述目标的分类信息作为利用第二子模型获得的所述目标的第一调整分类信息,可将第二子模型输出的边框位置偏移信息与剩余初始预测边框位置信息相加获得所述目标的第一调整边框位置信息,可将第二子模型输出的关键点位置偏移信息与初始预测关键点位置信息相加获得所述目标的第一调整关键点位置信息,其中,调整信息和目标图像获取装置可基于第一剩余调整边框位置信息对检测图像执行裁剪处理,以获得第一调整边框图像,并可基于第一调整关键点位置信息对检测图像执行以关键点为中心取补丁的处理以获得第一调整关键点图像,其中,调整信息和目标图像获取装置可将第i子模型输出的所述目标的分类信息作为所述目标的第(i-1)调整分类信息,可将第i子模型输出的边框位置偏移信息与第(i-2)剩余调整边框位置信息相加获得所述目标的第(i-1)调整边框信息,可将第i子模型输出的关键点位置偏移信息与第(i-2)调整关键点位置信息相加获得所述目标的第(i-1)调整关键点信息,其中,调整信息和目标图像获取装置可基于第(i-1)剩余调整边框位置信息对检测图像执行裁剪处理,以获得第(i-1)调整边框图像,并可基于第(i-1)调整关键点位置信息对检测图像执行以关键点为中心取补丁的处理以获得第(i-1)调整关键点图像。

可选地,第二子模型至第n子模型中的每个子模型是利用包含标注信息的训练图像,基于反映每个子模型获得的预测分类信息与真实分类信息之间的差异、每个子模型获得的预测边框位置信息与真实边框位置信息之间的差异以及每个子模型获得的预测关键点位置信息与真实关键点位置信息之间的差异的损失函数来训练的,其中,所述标注信息包括训练图像中的目标的真实分类信息、真实边框位置信息和真实关键点位置信息。

根据本发明的另一方面,提供了一种包括至少一个计算装置和至少一个存储指令的存储装置的系统,其中,所述指令在被所述至少一个计算装置运行时,促使所述至少一个计算装置执行根据本发明的训练多任务目标检测模型的方法和/或利用多任务目标检测模型执行目标检测的方法。

根据本发明的另一方面,提供了一种存储指令的计算机可读存储介质,其中,当所述指令被至少一个计算装置运行时,促使所述至少一个计算装置执行根据本发明的训练多任务目标检测模型的方法和/或利用多任务目标检测模型执行目标检测的方法。

根据本发明示例性实施例的利用多任务目标检测模型执行目标检测的方法和系统中,通过利用多任务目标检测模型之中的多个子模型中的第一子模型获取目标的初始分类信息、初始边框信息和初始关键点信息,并利用多任务目标检测模型之中的多个子模型中的后续子模型对初始分类信息、初始边框信息和初始关键点信息进行逐步调整,从而达到联合目标分类检测、目标边框检测和目标关键点检测,利用前一子模型获得的目标边框和目标关键点的信息由粗到精地逐步调整目标分类、目标边框和目标关键点,以提高在无约束场景下的目标检测的准确性的效果。

此外,根据本发明示例性实施例的用于训练多任务目标检测模型的方法和系统中,通过利用多任务目标检测模型之中的多个子模型中的第一子模型获取目标的初始分类信息、初始边框信息和初始关键点信息,并分别利用前一子模型获得的边框和关键点的信息来对多任务目标检测模型之中的多个子模型中的后续子模型进行训练,从而获取对前一子模型获得的分类信息、边框信息和关键点信息进行调整的调整分类信息、调整边框信息和调整关键点信息,使得能够利用训练好的多任务目标检测模型获得更准确的目标检测效果。

附图说明

从下面结合附图对本发明实施例的详细描述中,本发明的这些和/或其他方面和优点将变得更加清楚并更容易理解,其中:

图1示出根据本发明示例性实施例的构建多任务目标检测模型的方法的示意图;

图2是根据本发明的示例性实施例的利用多任务目标检测模型执行目标检测的系统的框图;

图3是根据本发明的示例性实施例的用于训练多任务目标检测模型的系统的框图;

图4示出根据本发明示例性实施例的利用多任务目标检测模型执行目标检测的方法的流程图;

图5示出根据本发明示例性实施例的用于训练多任务目标检测模型的方法的流程图。

具体实施方式

为了使本领域技术人员更好地理解本发明,下面结合附图和具体实施方式对本发明的示例性实施例作进一步详细说明。

本发明利用了目标分类检测、目标边框检测和目标关键点定位之间的联系,设计了一个包含多个子模型的多任务目标检测模型,该多任务目标检测模型可同时完成目标分类检测任务、目标边框检测任务和目标关键点检测任务,利用目标边框检测更好地引导目标关键点检测,同时利用目标关键点检测更好地辅助目标边框检测,从而达到有效地提高在无约束场景下的目标检测的准确性的效果。

图1示出根据本发明示例性实施例的构建多任务目标检测模型的方法的示意图。

如图1所示,构建包括n个子模型的多任务目标检测模型100,其中,n为大于2的整数。多任务目标检测模型100用于执行目标分类检测任务、目标边框检测任务和目标关键点检测任务。也就是说,通过多任务目标检测模型100,能够获得目标的分类信息、边框信息和关键点信息。

这里,目标的分类信息是指指示目标的分类的信息,例如,指示目标属于某一分类或指示目标属于某一分类的概率的信息。目标的边框信息是指表示目标的边框的位置的信息,例如,目标的边框的左上角点的坐标信息和右下角点的坐标信息,或者目标的边框的左上角点的坐标信息、长度信息和宽度信息。目标的关键点信息是指表示目标的关键点的位置的信息,例如,目标的关键点的坐标信息。例如,当图像中包括的目标为人脸时,目标的分类信息可以是指示目标属于人脸的信息或指示目标属于人脸的概率的信息,目标的边框信息可以是表示人脸的边框在图像中的位置的坐标信息(例如,人脸边框的左上角点和右下角点的坐标信息,或者人脸边框的左上角点的坐标信息、长度信息和宽度信息),目标的关键点信息可以是表示人脸的关键点(例如,左眼中心点、右眼中心点、鼻尖中心点、左嘴角点、右嘴角点)在图像中的位置的坐标信息。

构建根据本发明的示例性实施例的多任务目标检测模型100的总体思路在于,将第一子模型构建为用于获得初始目标检测信息,即,目标的初始分类信息、初始边框位置信息和初始关键点位置信息,将后续子模型(即,第二子模型至第n子模型)构建为对第一子模型获得的初始目标检测信息进行逐步调整,具体地说,后续子模型中的每个子模型被构建为对前一子模型获得的目标分类信息、目标边框位置信息和目标关键点位置信息进行调整,从而通过最后的子模型能够获得最终的目标分类信息、目标边框位置信息和目标关键点位置信息。此外,后续子模型的数量可等于或大于2,具体的数量可由设计者或用户根据其特定需求而设定。

具体地说,首先,将多任务目标检测模型100之中的第一子模型构建为用于初步检测图像中的目标的分类信息、边框位置信息和关键点位置信息,其中,第一子模型的输入可为输入图像,输出可为图像中的目标的分类信息、边框位置信息和关键点位置信息。

根据本发明的示例性实施例,第一子模型可利用基于深度学习的神经网络来检测目标的分类信息。第一子模型可利用传统的候选框搜索方式(例如,滑动窗口方式、选择性搜索(select search)方式、边缘框(edge box)方式等)和基于深度学习的神经网络之一来检测目标的边框位置信息。第一子模型可利用基于深度学习的神经网络和传统的关键点搜索方式(例如,初始模板位置方式)之一来检测目标的关键点位置信息。这里,基于深度学习的神经网络可以是卷积神经网络,例如,全卷积神经网络(FCN)、RPN网络、Mask R-CNN、PANet等。当然,检测目标的分类信息、边框位置信息和关键点位置信息的方式不限于上述方式,可利用任何可用的方式来检测目标的分类信息、边框位置信息和关键点位置信息。

根据本发明的示例性实施例,可将第一子模型构建为一个针对所述多任务的基于深度学习的神经网络,该基于深度学习的神经网络的输出为目标的分类信息、边框位置信息和关键点位置信息。可利用反映第一子模型获得的预测分类信息与真实分类信息之间的差异、第一子模型获得的预测边框位置信息与真实边框位置信息之间的差异以及第一子模型获得的预测关键点位置信息与真实关键点位置信息之间的差异的损失函数来训练第一子模型,并且训练完毕的第一子模型可用于初步检测图像中的目标的分类信息、边框位置信息和关键点位置信息。

根据本发明的示例性实施例,当将第一子模型构建为针对所述多任务的基于深度学习的神经网络时,可将第一子模型的针对所述多任务的基于深度学习的神经网络构建为全卷积神经网络。当然,第一子模型的基于深度学习的神经网络不限于此,可利用任何可用的基于深度学习的神经网络来构建第一子模型。

此外,将多任务目标检测模型100之中的第二子模型至第n子模型中的每个子模型构建为一个针对所述多任务的基于深度学习的神经网络。在对第二子模型至第n子模型中的每个子模型训练时,可分别对每个子模型进行训练,将训练完毕的每个子模型输出的调整信息进行预定处理之后作为训练下一个子模型的基础。此外,在利用训练完毕的第二子模型至第n子模型执行目标检测时,可利用训练完毕的第二子模型至第n子模型获得对初始目标检测信息进行调整的调整信息,从而获得最终的目标检测信息。

具体地说,针对所述多任务的基于深度学习的神经网络的输入可为基于利用训练完毕的前一个子模型获得的边框位置信息和关键点位置信息从输入图像获得的目标的边框图像和关键点图像,输出可为目标的分类信息、边框位置偏移信息和关键点位置偏移信息。这里,目标的边框图像是基于利用训练完毕的前一个子模型获得的边框位置信息对输入图像执行裁剪处理而获得的图像,目标的关键点图像是基于利用训练完毕的前一个子模型获得的关键点位置信息对输入图像执行以关键点为中心取补丁的处理而获得的图像。这里,目标的边框位置偏移信息是指当前子模型对利用训练完毕的前一个子模型获得的边框位置信息进行调整之后获得的边框位置信息与利用训练完毕的前一个子模型获得的边框位置信息之间的差,目标的关键点偏移信息是指当前子模型对利用训练完毕的前一个子模型获得的关键点位置信息进行调整之后获得的关键点位置信息与利用训练完毕的前一个子模型获得的关键点位置信息之间的差。

例如,对于第二子模型来说,其输入为基于第一子模型输出的边框位置信息对输入图像执行裁剪处理之后获得的边框图像、基于第一子模型输出的关键点位置信息对输入图像执行以关键点为中心取补丁的处理之后获得的关键点图像。再例如,对于第三子模型来说,其输入为基于利用训练完毕的第二子模型获得的边框位置信息对输入图像执行裁剪处理之后获得的边框图像、基于利用训练完毕的第二子模型获得的关键点位置信息对输入图像执行以关键点为中心取补丁的处理之后获得的关键点图像,其中,利用训练完毕的第二子模型获得的边框位置信息是通过将训练完毕的第二子模型输出的边框位置偏移信息与第一子模型输出的边框位置信息相加而获得的,利用训练完毕的第二子模型获得的关键点位置信息是通过将训练完毕的第二子模型输出的关键点位置偏移信息与第一子模型输出的关键点位置信息相加而获得的。再例如,对于第四子模型来说,其输入为基于利用训练完毕的第三子模型获得的边框位置信息对输入图像执行裁剪处理之后获得的边框图像、基于利用训练完毕的第三子模型获得的关键点位置信息对输入图像执行以关键点为中心取补丁的处理之后获得的关键点图像,其中,利用训练完毕的第三子模型获得的边框位置信息是通过将训练完毕的第三子模型输出的边框位置偏移信息与利用训练完毕的第二子模型获得的边框位置信息相加而获得的,利用训练完毕的第三子模型获得的关键点位置信息是通过将训练完毕的第三子模型输出的关键点位置偏移信息与利用训练完毕的第二子模型获得的关键点位置信息相加而获得的。对于后续的子模型来说,可以以此类推。

根据本发明的示例性实施例,当将第一子模型构建为针对所述多任务的基于深度学习的神经网络时,由于第一子模型用于获得初始的检测信息,后续子模型(即,第二至第n子模型)用于对前一子模型获得的检测信息进行调整,因此,可将第一子模型构建为较深的基于深度学习的神经网络,将第二至第n子模型构建为较浅的基于深度学习的神经网络。也就是说,可将第一子模型的基于深度学习的神经网络的层数构建为大于第二子模型至第n子模型中的每个子模型的基于深度学习的神经网络的层数。

下面,将参照图2至图4详细描述利用根据图1构建的多任务目标检测模型100执行目标检测的系统和方法以及用于训练根据图1构建的多任务目标检测模型100的系统和方法。

图2是根据本发明的示例性实施例的利用多任务目标检测模型100执行目标检测的系统200(在下文中,可称为检测系统200)的框图。

参照图2,检测系统200可包括检测图像获取装置210、初始信息和目标图像获取装置220、调整信息和目标图像获取装置230和最终信息获取装置240。

具体地说,检测图像获取装置210可用于获取检测图像。这里,检测图像将被执行目标检测,以确认其中是否包括属于多任务目标检测模型100可检测目标范围的目标。检测图像获取装置210可根据需要从本地存储器或本地数据库获取检测图像,或者通过输入装置或传输媒介而从外部数据源(例如,互联网、服务器、数据库等)接收检测图像。

初始信息和目标图像获取装置220可将由检测图像获取装置210获取的检测图像输入到多任务目标检测模型100之中的第一子模型,利用第一子模型获得目标的初始预测信息,其中,所述初始预测信息包括所述目标的初始预测分类信息、初始预测边框位置信息和初始预测关键点位置信息。这里,由于利用第一子模型将会检测出众多边框(或者,也可称为候选框),例如,检测到上千个边框,因此将会获得众多初始预测边框信息。因此,初始信息和目标图像获取装置220还可对利用第一子模型获得的所述目标的初始预测边框位置信息执行非极大抑制处理以排除一部分初始预测边框位置信息,从而获得所述目标的剩余初始预测边框位置信息,从而可排除一些不必要的重叠边框,减少不必要的工作量。

根据本发明的示例性实施例,第一子模型可以是一个训练完毕的针对多任务的基于深度学习的神经网络,其输出为目标的分类信息、边框位置信息和关键点位置信息。下面将参照图3对此训练过程进行更详细的描述。初始信息和目标图像获取装置220可通过该针对多任务的基于深度学习的神经网络来同时获得目标的分类信息、边框位置信息和关键点位置信息。

在利用第一子模型获得目标的初始预测分类信息、初始预测边框位置信息和初始预测关键点位置信息之后,初始信息和目标图像获取装置220可对利用第一子模型获得的所述目标的初始预测边框位置信息执行非极大抑制处理以排除一部分初始预测边框位置信息,从而获得所述目标的剩余初始预测边框位置信息。

根据本发明的示例性实施例,初始信息和目标图像获取装置220可基于所述目标的初始预测分类信息计算初始置信度,并根据初始置信度对初始预测边框位置信息执行非极大抑制处理。

在获得所述目标的剩余初始预测边框位置信息之后,初始信息和目标图像获取装置220可基于所述目标的剩余初始预测边框位置信息和初始预测关键点位置信息,从检测图像获得初始预测目标图像,其中,所述初始预测目标图像包括所述目标的初始预测边框图像和初始预测关键点图像。根据本发明的示例性实施例,初始信息和目标图像获取装置220可基于所述目标的剩余初始预测边框位置信息对检测图像执行裁剪处理以获得初始预测边框图像,并可基于初始预测关键点位置信息对检测图像执行以关键点为中心取补丁的处理以获得初始预测关键点图像。

随后,调整信息和目标图像获取装置230可利用多任务目标检测模型100之中的训练完毕的第二子模型至第n子模型对初始信息获取装置220获得的目标的初始预测分类信息、初始预测边框位置信息和初始预测关键点位置信息进行逐步调整,从而分别利用第二子模型至第n子模型的每个子模型获得目标的调整分类信息、调整边框位置信息和调整关键点位置信息,并将利用每个子模型获得的目标的调整边框和调整关键点的信息作为下一个子模型执行调整的基础。这里,可利用包含标注信息的训练图像,基于反映每个子模型获得的预测分类信息与真实分类信息之间的差异、每个子模型获得的预测边框位置信息与真实边框位置信息之间的差异以及每个子模型获得的预测关键点位置信息与真实关键点位置信息之间的差异的损失函数来训练第二子模型至第n子模型中的每个子模型,其中,所述标注信息包括训练图像中的目标的真实分类信息、真实边框位置信息和真实关键点位置信息。下面将参照图3对此训练过程进行更详细的描述。此外,调整分类信息是指第二子模型至第n子模型的每个子模型输出的分类信息,调整边框位置信息是指第二子模型至第n子模型的每个子模型输出的边框偏移信息与利用前一个子模型获得的边框位置信息相加而获得的边框位置信息,调整关键点位置信息是指第二子模型至第n子模型的每个子模型输出的关键点位置偏移信息与利用前一个子模型获得的关键点位置信息相加而获得的关键点位置信息。

具体地说,针对第二子模型,调整信息和目标图像获取装置230可将由初始信息和目标图像获取装置220获得的初始预测目标图像输入到第二子模型,利用第二子模型来获得所述目标的第一调整信息,其中,第一调整信息包括第一调整分类信息、第一调整边框位置信息和第一调整关键点位置信息。

根据本发明的示例性实施例,调整信息和目标图像获取装置230可将第二子模型输出的所述目标的分类信息作为利用第二子模型获得的所述目标的第一调整分类信息。调整信息和目标图像获取装置230可将第二子模型输出的边框位置偏移信息与由初始信息和目标图像获取装置220获得的剩余初始预测边框位置信息相加获得所述目标的第一调整边框位置信息。调整信息和目标图像获取装置230可第二子模型输出的关键点位置偏移信息与由初始信息和目标图像获取装置220获得的初始预测关键点位置信息相加获得所述目标的第一调整关键点位置信息。

此时,调整信息和目标图像获取装置230获得的第一调整边框位置信息的数量仍然可能较大,为了减少后续不必要的工作量,调整信息和目标图像获取装置230可对利用第二子模型获得的所述目标的第一调整边框位置信息执行非极大抑制处理以排除一部分第一调整边框位置信息,从而获得所述目标的第一剩余调整边框位置信息。根据本发明的示例性实施例,调整信息和目标图像获取装置230可基于所述目标的第一调整分类信息计算第一置信度,根据第一置信度对第一调整边框位置信息执行非极大抑制处理。

在获得所述目标的第一剩余调整边框位置信息之后,调整信息和目标图像获取装置230可基于所述目标的第一剩余调整边框位置信息和第一调整关键点位置信息,从检测图像获得第一调整目标图像,其中,第一调整目标图像包括所述目标的第一调整边框图像和第一调整关键点图像。根据本发明的示例性实施例,调整信息和目标图像获取装置230可基于第一剩余调整边框位置信息对检测图像执行裁剪处理,以获得第一调整边框图像,并可基于第一调整关键点位置信息对检测图像执行以关键点为中心取补丁的处理以获得第一调整关键点图像。

针对第三子模型至第n子模型中的每一个子模型(在下文中,称为第i子模型,其中,i为整数且i∈{3,4,…,n}),调整信息和目标图像获取装置230可将第(i-2)调整目标图像输入到第i子模型,利用第i子模型来获得所述目标的第(i-1)调整信息,其中,第(i-1)调整信息包括第(i-1)调整分类信息、第(i-1)调整边框位置信息和第(i-1)调整关键点位置信息。

根据本发明的示例性实施例,调整信息和目标图像获取装置230可将第i子模型输出的所述目标的分类信息作为所述目标的第(i-1)调整分类信息。调整信息和目标图像获取装置230可将第i子模型输出的边框位置偏移信息与由调整信息和目标图像获取装置230先前获得的第(i-2)剩余调整边框位置信息相加获得所述目标的第(i-1)调整边框位置信息。调整信息和目标图像获取装置230可将第i子模型输出的关键点位置偏移信息与由调整信息和目标图像获取装置230先前获得的第(i-2)调整关键点位置信息相加获得所述目标的第(i-1)调整关键点位置信息。

此时,调整信息和目标图像获取装置230获得的第(i-1)调整边框信息的数量仍然可能较大,为了减少后续不必要的工作量,调整信息和目标图像获取装置230可对利用第i子模型获得的所述目标的第(i-1)调整边框位置信息执行非极大抑制处理以排除一部分第(i-1)调整边框位置信息,从而获得所述目标的第(i-1)剩余调整边框位置信息。根据本发明的示例性实施例,调整信息和目标图像获取装置230可基于所述目标的第(i-1)调整分类信息计算第(i-1)置信度,根据第(i-1)置信度对第(i-1)调整边框位置信息执行非极大抑制处理。

当i不为n时,在得所述目标的第(i-1)剩余调整边框位置信息之后,调整信息和目标图像获取装置230可基于所述目标的第(i-1)剩余调整边框位置信息和第(i-1)调整关键点位置信息,从检测图像获得第(i-1)调整目标图像,其中,第(i-1)调整目标图像包括所述目标的第(i-1)调整边框图像和第(i-1)调整关键点图像。根据本发明的示例性实施例,调整信息和目标图像获取装置230可基于第(i-1)剩余调整边框位置信息对检测图像执行裁剪处理,以获得第(i-1)调整边框图像,并可基于第(i-1)调整关键点位置信息对检测图像执行以关键点为中心取补丁的处理以获得第(i-1)调整关键点图像。

当i为n时,即,针对第n子模型,由于第n子模型是最后一个子模型,因此,利用第n子模型获得的调整信息可作为所述目标的最终的分类信息、边框位置信息和关键点位置信息,而无需再执行基于利用第n子模型获得的调整信息来获得调整目标图像的步骤。具体地说,当i为n时,最终信息获取装置240可将利用第n子模型获得的所述目标的第(n-1)调整分类信息、第(n-1)剩余调整边框位置信息和第(n-1)调整关键点位置信息作为所述目标的最终的分类信息、边框位置信息和关键点位置信息。

以上,已结合图2对根据本发明示例性实施例的检测系统200进行了描述。在以上示例性实施例中,检测系统200可利用多任务目标检测模型100之中的第一子模型获取目标的初始分类信息、初始边框位置信息和初始关键点位置信息,并利用多任务目标检测模型100之中的后续子模型对初始分类信息、初始边框位置信息和初始关键点位置信息进行逐步调整,从而达到联合目标分类检测、目标边框检测和目标关键点检测,利用前一子模型获得的目标边框和目标关键点的信息由粗到精地逐步调整目标分类、目标边框和目标关键点,以提高在无约束场景下的目标检测的准确性的效果。

检测系统200所利用的多任务目标检测模型100可预先存储在检测系统200的存储器中,或可由检测系统200从外部源(例如,互联网、服务器或数据库)接收或下载。此外,检测系统200所利用的多任务目标检测模型100事先已训练完毕。根据本发明示例性实施例,用于训练多任务目标检测模型100的系统可与检测系统200彼此分离,或可集成于相同的计算实体(例如,单机或集群)中。接下来,将参照图3描述用于训练多任务目标检测模型100的系统。

图3是根据本发明的示例性实施例的用于训练多任务目标检测模型100的系统(在下文中,将被称为训练系统300)的框图。

参照图3,训练系统300可包括训练图像获取装置310、初始预测信息和目标图像获取装置320和子模型训练装置330。

具体地说,训练图像获取装置310可用于获取将被用于训练多任务目标检测模型100的训练图像。这里,训练图像可包括属于多任务目标检测模型100可检测目标范围的目标以及关于目标的标注信息。关于目标的标注信息是指目标在训练图像中的真实信息,包括目标的真实分类信息、真实边框位置信息和真实关键点位置信息。关于目标的标注信息可作为用于训练多任务目标检测模型100的损失函数的计算依据。训练图像获取装置310可根据需要从本地存储器或本地数据库获取训练图像,或者通过输入装置或传输媒介而从外部数据源(例如,互联网、服务器、数据库等)接收训练图像。例如,当目标为人脸时,训练图像获取装置310可从本地获取或从外部接收诸如COFW、HELEN、300W、BioID、LFPW、FDDB、WIDER FACE、AFLW等人脸数据集,每个人脸数据集可包括上千幅包括人脸标注信息的训练图像。再如,当目标为其它物体时,训练图像获取装置310从本地获取或从外部接收诸如ImageNet、PASCAL VOC、COCO等物体数据集,其中,ImageNet物体数据集可包括上万幅包括200种物体的标注信息的训练图像,PASCALVOC物体数据集可包括上万幅包括20种物体的标注信息的训练图像,COCO物体数据集可包括上万幅包括80种物体的标注信息的训练图像。或者,训练图像可包括来自于任何标注平台的标注图像。

初始预测信息和目标图像获取装置320可将由训练图像获取装置310获取的训练图像输入到所述子模型之中的第一子模型,利用第一子模型获得所述目标的初始预测信息,其中,所述初始预测信息包括所述目标的初始预测分类信息、初始预测边框位置信息和初始预测关键点位置信息。

根据本发明的示例性实施例,第一子模型可以是一个针对多任务的基于深度学习的神经网络,其输出为目标的初始预测分类信息、初始预测边框位置信息和初始预测关键点位置信息。

当第一子模型是一个针对多任务的基于深度学习的神经网络时,初始预测信息和目标图像获取装置320可基于训练图像和标注信息来训练第一子模型,并基于训练图像,利用训练完毕的第一子模型获得所述目标的初始预测分类信息、初始预测边框位置信息和初始预测关键点位置信息。

下面,将介绍初始预测信息和目标图像获取装置320训练第一子模型的具体方法。

初始预测信息和目标图像获取装置320可利用反映第一子模型获得的预测分类信息与真实分类信息之间的差异、第一子模型获得的预测边框位置信息与真实边框位置信息之间的差异以及第一子模型获得的预测关键点位置信息与真实关键点位置信息之间的差异的损失函数来训练第一子模型。这里,第一子模型获得的预测分类信息是指将训练图像输入到第一子模型之后,第一子模型输出的目标的分类信息,即,通过第一子模型预测的目标的分类信息。真实分类信息是指在训练图像中包括的关于目标的标注信息中的指示目标的真实分类的信息。第一子模型获得的预测边框位置信息是指将训练图像输入到第一子模型之后,第一子模型输出的目标的边框位置信息,即,通过第一子模型预测的目标的边框位置信息。真实边框位置信息是指在训练图像中包括的关于目标的标注信息中的指示目标的真实边框位置的信息。第一子模型获得的预测关键点位置信息是指将训练图像输入到第一子模型之后,第一子模型输出的目标的关键点位置信息,即,通过第一子模型预测的目标的关键点位置信息。真实关键点位置信息是指在训练图像中包括的关于目标的标注信息中的指示目标的真实关键点位置的信息。

根据本发明的示例性实施例,用于训练第一子模型的损失函数L1可被设计为以下的公式(1):

L1=αLc+βLb+γLl

在公式(1)中,Lc表示分类损失函数,Lb表示边框损失函数,Ll表示关键点损失函数,α、β、γ分别表示分类损失函数、边框损失函数、关键点损失函数的权重。

可基于第一子模型获得的预测分类信息和真实分类信息,利用交叉熵来定义分类损失函数Lc,如以下的公式(2)所示:

在公式(2)中,yi表示根据目标的真实分类信息确定的目标属于第i个分类的onehot编码,pi表示根据第一子模型获得的预测分类信息确定的目标属于第i个分类的概率。

可基于第一子模型获得的预测边框位置信息与真实边框位置信息之间的差异获得边框损失函数Lb,如以下的公式(3)所示:

在公式(3)中,表示第i个分类的目标的真实边框位置信息,例如,真实的边框的左上角点坐标和右下角点坐标,或者,真实的边框的左上角点坐标、长度和宽度。表示第一子模型获得的预测边框位置信息,例如,预测的边框的左上角点坐标和右下角点坐标,或者,预测的边框的左上角点坐标、长度和宽度。

当第一子模型获得多个预测边框信息时,可分别计算每个预测边框位置信息与真实边框位置信息之间的差,以分别获得每个预测边框位置信息与真实边框位置信息之间的损失,再将每个预测边框位置信息与真实边框位置信息之间的损失相加作为边框损失函数Lb。

可基于第一子模型获得的预测关键点位置信息与真实关键点位置信息之间的差异获得关键点损失函数Ll,如以下的公式(4)所示:

在公式(4)中,表示第i个分类的目标的真实关键点位置信息,例如,真实的目标的关键点的坐标信息,表示第一子模型获得的预测关键点位置信息,例如,预测的目标的关键点的坐标信息。

当目标包括多个关键点时,可分别计算每个预测关键点位置信息与相应的真实关键点位置信息之间的差,以分别获得每个关键点位置信息与相应的真实关键点位置信息之间的损失,再将每个关键点位置信息与相应的真实关键点位置信息之间的损失相加以获得关键点损失函数Ll。

例如,当目标为人脸时,人脸的关键点可包括左眼中心点、右眼中心点、鼻尖中心点、左嘴角点、右嘴角点。可分别计算预测的左眼中心点的坐标与真实的左眼中心点的坐标之间的差、预测的右眼中心点的坐标与真实的右眼中心点的坐标之间的差、预测的鼻尖中心点的坐标与真实的鼻尖中心点的坐标之间的差、预测的左嘴角点的坐标与真实的左嘴角点的坐标之间的差、预测的右嘴角点的坐标与真实的右嘴角点的坐标之间的差,再将这些差相加以得到关键点损失函数Ll。

关于权重α、β、γ,可根据目标分类检测任务、目标边框检测任务和目标关键点检测任务的重要性来分别设置分类损失函数Lc、边框损失函数Lb和关键点损失函数Ll的权重。然而,本发明不限于此,可不需要权重α、β、γ而仅将分类损失函数Lc、边框损失函数Lb和关键点损失函数Ll相加得到损失函数L1,也可根据特定需求来设置权重α、β、γ。

在初始预测信息和目标图像获取装置320利用第一子模型检测到目标的初始预测分类信息、初始预测边框位置信息和初始预测关键点位置信息之后,初始预测信息和目标图像获取装置320可基于所述目标的初始预测边框位置信息和初始预测关键点位置信息,从训练图像获得初始预测目标图像,其中,所述初始预测目标图像包括所述目标的初始预测边框图像和初始预测关键点图像。根据本发明的示例性实施例,初始预测信息和目标图像获取装置320可基于所述目标的初始预测边框位置信息对训练图像执行裁剪处理以获得初始预测边框图像,并可基于所述目标的初始预测关键点位置信息对训练图像执行以关键点为中心取补丁的处理以获得初始预测关键点图像。

针对第二子模型至第n子模型,每个子模型被构建为一个针对所述多任务的基于深度学习的神经网络,用于对初始预测信息和目标图像获取装置320获得的目标的初始预测分类信息、初始预测边框位置信息和初始预测关键点位置信息进行逐步调整,因此,第二子模型至第n子模型中的每个子模型的针对所述多任务的基于深度学习的神经网络的输出为所述目标的分类信息、边框位置偏移信息和关键点位置偏移信息。对此,子模型训练装置330可分别对第二子模型至第n子模型中的每个子模型进行训练,并将利用训练完毕的每个子模型获得的调整边框和调整关键点的信息作为训练下一个子模型的基础。

具体地说,针对第二子模型,子模型训练装置330可将由初始预测信息和目标图像获取装置320获得的初始预测目标图像输入到所述子模型之中的第二子模型,基于标注信息以及由初始预测信息和目标图像获取装置320获得的目标的初始预测边框位置信息、初始预测关键点位置信息和初始预测目标图像来训练所述子模型之中的第二子模型。具体地说,子模型训练装置330可利用反映第二子模型获得的预测分类信息与真实分类信息之间的差异、第二子模型获得的预测边框位置信息与真实边框位置信息之间的差异以及第二子模型获得的预测关键点位置信息与真实关键点位置信息之间的差异的损失函数来训练第二子模型。

在第二子模型训练完毕之后,子模型训练装置330可将由初始预测信息和目标图像获取装置320获得的初始预测目标图像输入到训练完毕的第二子模型,利用训练完毕的第二子模型获得所述目标的调整信息,其中,所述调整信息包括所述目标的调整分类信息、调整边框位置信息和调整关键点位置信息,并且基于利用训练完毕的第二子模型获得的所述目标的调整边框位置信息和调整关键点位置信息,从训练图像获得调整目标图像,其中,所述调整目标图像包括所述目标的调整边框图像和调整关键点图像。

此外,针对第三子模型至第n子模型中的每一个子模型(在下文中,称为第i子模型,其中,i为整数且i∈{3,4,…,n}),子模型训练装置330可将利用训练完毕的第(i-1)子模型获得的调整目标图像输入到第i子模型,基于标注信息和利用训练完毕的第(i-1)子模型获得的目标的调整信息和调整目标图像来训练第i子模型。

具体地说,子模型训练装置330可利用反映第i子模型获得的预测分类信息与真实分类信息之间的差异、第i子模型获得的预测边框位置信息与真实边框位置信息之间的差异以及第i子模型获得的预测关键点位置信息与真实关键点位置信息之间的差异的损失函数来训练第i子模型。根据本发明的示例性实施例,可利用与上面介绍的设计用于训练第一子模型的损失函数的方式(即,公式(1)至(4))相同的方式来设计用于训练第二子模型和第i子模型的损失函数。因此,这里不再赘述。

在第i子模型训练完毕之后,当i不为n时,子模型训练装置330可将利用训练完毕的第(i-1)子模型获得的调整目标图像输入到训练完毕的第i子模型,利用训练完毕的第i子模型获得所述目标的调整信息,并且基于利用训练完毕的第i子模型获得的所述目标的调整边框位置信息和调整关键点位置信息,从训练图像获得调整目标图像。当i为n时,对于第n子模型,即,对于最后一个子模型,在第n子模型训练完毕之后,子模型训练装置330无需执行上述步骤。

根据本发明的示例性实施例,子模型训练装置330可包括预测分类信息获取单元(未示出)、预测边框位置信息获取单元(未示出)和预测关键点位置信息获取单元(未示出)。

针对第二子模型,预测分类信息获取单元可将第二子模型输出的目标的分类信息,即,通过第二子模型预测的目标的分类信息,作为用于训练第二子模型的损失函数中的预测分类信息。

预测边框位置信息获取单元可通过将第二子模型输出的目标的边框位置偏移信息(即,通过第二子模型预测的目标的边框位置的偏移量)与由初始预测信息和目标图像获取装置320获得的目标的初始预测边框位置信息相加来获得用于训练第二子模型的损失函数中的预测边框位置信息。

预测关键点位置信息获取单元可通过将第二子模型输出的目标的关键点位置偏移信息(即,通过第二子模型预测的目标的关键点位置的偏移量)与由初始预测信息和目标图像获取装置320获得的目标的初始预测关键点位置信息相加来获得用于训练第二子模型的损失函数中的预测关键点位置信息。

此外,针对第i子模型(其中,i为整数且i∈{3,4,…,n}),预测分类信息获取单元可将第i子模型输出的目标的分类信息,即,通过第i子模型预测的目标的分类信息,作为用于训练第i子模型的损失函数中的预测分类信息。

预测边框信息获取单元可通过将第i子模型输出的目标的边框位置偏移信息(即,通过第i子模型预测的目标的边框位置的偏移量)与利用训练完毕的第(i-1)子模型获得的目标的调整边框位置信息相加来获得用于训练第i子模型的损失函数中的预测边框位置信息。

预测关键点信息获取单元可通过将第i子模型输出的目标的关键点位置偏移信息(即,通过第i子模型预测的目标的关键点位置的偏移量)与利用训练完毕的第(i-1)子模型获得的目标的调整关键点位置信息相加来获得用于训练第i子模型的损失函数中的预测关键点位置信息。

此外,利用训练完毕的第(i-1)子模型获得的目标的调整分类信息是指训练完毕的第(i-1)子模型输出的分类信息,利用训练完毕的第(i-1)子模型获得的目标的调整边框位置信息是指训练完毕的第(i-1)子模型输出的边框位置偏移信息与利用训练完毕的第(i-2)子模型获得的所述目标的调整边框位置信息相加而获得的边框位置信息,利用训练完毕的第(i-1)子模型获得的目标的调整关键点位置信息是指训练完毕的第(i-1)子模型输出的关键点位置偏移信息与利用训练完毕的第(i-2)子模型获得的所述目标的调整关键点位置信息相加而获得的关键点位置信息。

具体地说,根据本发明的示例性实施例,子模型训练装置330可包括调整分类信息获取单元(未示出)、调整边框位置信息获取单元(未示出)、调整边框图像获取单元(未示出)、调整关键点位置信息获取单元(未示出)和调整关键点图像获取单元(未示出)。

当第(i-1)子模型为第二子模型时,调整分类信息获取单元可将训练完毕的第二子模型输出的目标的分类信息作为利用训练完毕的第二子模型获得的目标的调整分类信息。

调整边框位置信息获取单元可将训练完毕的第二子模型输出的目标的边框位置偏移信息与由初始预测信息和目标图像获取装置320获得的目标的初始预测边框位置信息相加获得调整边框位置信息,作为利用训练完毕的第二子模型获得的所述目标的调整边框位置信息。

调整边框图像获取单元可基于调整边框位置信息对训练图像执行裁剪处理以获得所述目标的调整边框图像。

调整关键点位置信息获取单元可将训练完毕的第二子模型输出的关键点位置偏移信息与由初始预测信息和目标图像获取装置320获得的目标的初始预测关键点位置信息相加获得调整关键点位置信息,作为利用训练完毕的第二子模型获得的所述目标的调整关键点位置信息。

调整关键点图像获取单元可基于调整关键点位置信息对训练图像执行以关键点为中心取补丁的处理以获得所述目标的调整关键点图像。

当第(i-1)子模型为第三子模型至第n子模型之一时,调整分类信息获取单元可将训练完毕的第(i-1)子模型输出的目标的分类信息作为利用训练完毕的第(i-1)子模型获得的目标的调整分类信息。

调整边框位置信息获取单元可将训练完毕的第(i-1)子模型输出的所述目标的边框位置偏移信息与利用训练完毕的第(i-2)子模型获得的目标的调整边框位置信息相加获得新的调整边框位置信息,作为利用训练完毕的第(i-1)子模型获得的所述目标的调整边框位置信息。

调整边框图像获取单元可基于新的调整边框位置信息对训练图像执行裁剪处理以获得所述目标的调整边框图像。调整关键点位置信息获取单元可将训练完毕的第(i-1)子模型输出的目标的关键点位置偏移信息与利用训练完毕的第(i-2)子模型获得的目标的调整关键点位置信息相加获得新的调整关键点位置信息,作为利用训练完毕的第(i-1)子模型获得的所述目标的调整关键点位置信息。

调整关键点图像获取单元可基于新的调整关键点位置信息对训练图像执行以关键点为中心取补丁的处理以获得所述目标的调整关键点图像。

根据本发明示例性实施例的训练装置300,通过利用多任务目标检测模型100之中的多个子模型中的第一子模型获取目标的初始分类信息、初始边框位置信息和初始关键点位置信息,并分别利用前一子模型获得的边框和关键点的信息来对多任务目标检测模型100之中的多个子模型中的后续子模型进行训练,从而获取对前一子模型获得的分类信息、边框位置信息和关键点位置信息进行调整的调整分类信息、调整边框位置信息和调整关键点位置信息,使得能够利用训练好的多任务目标检测模型100获得更准确的目标检测效果。

下面,将参照图4和图5对根据本发明示例性实施例的利用多任务目标检测模型100执行目标检测的方法以及用于训练多任务目标检测模型100的方法进行描述。

图4示出根据本发明示例性实施例的利用多任务目标检测模型100执行目标检测的方法的流程图。

这里,作为示例,图4所示的方法可由图2所示的检测系统200来执行,也可完全通过计算机程序以软件方式实现,还可通过特定配置的计算装置来执行。为了描述方便,假设图4所示的方法由图2所示的检测系统200来执行,并假设检测系统200可具有图2所示的组成装置。

参照图4,在步骤S401,检测图像获取装置210可获取检测图像。

在步骤S402,初始信息和目标图像获取装置220可将由检测图像获取装置210获取的检测图像输入到多任务目标检测模型100之中的第一子模型,利用第一子模型获得目标的初始预测信息,其中,所述初始预测信息包括所述目标的初始预测分类信息、初始预测边框位置信息和初始预测关键点位置信息。

根据本发明的示例性实施例,第一子模型可以是一个训练完毕的针对多任务的基于深度学习的神经网络,其输出为目标的分类信息、边框位置信息和关键点位置信息。下面将参照图5对此训练过程进行更详细的描述。初始信息和目标图像获取装置220可通过该针对多任务的基于深度学习的神经网络来同时获得目标的分类信息、边框位置信息和关键点位置信息。

在利用第一子模型获得目标的初始预测分类信息、初始预测边框位置信息和初始预测关键点位置信息之后,在步骤S403,初始信息和目标图像获取装置220可对利用第一子模型获得的所述目标的初始预测边框位置信息执行非极大抑制处理以排除一部分初始预测边框位置信息,从而获得所述目标的剩余初始预测边框位置信息。

根据本发明的示例性实施例,初始信息和目标图像获取装置220可基于所述目标的初始预测分类信息计算初始置信度,并根据初始置信度对初始预测边框位置信息执行非极大抑制处理。

在获得所述目标的剩余初始预测边框位置信息之后,在步骤S404,初始信息和目标图像获取装置220可基于所述目标的剩余初始预测边框位置信息和初始预测关键点位置信息,从检测图像获得初始预测目标图像,其中,所述初始预测目标图像包括所述目标的初始预测边框图像和初始预测关键点图像。根据本发明的示例性实施例,初始信息和目标图像获取装置220可基于所述目标的剩余初始预测边框位置信息对检测图像执行裁剪处理以获得初始预测边框图像,并可基于初始预测关键点位置信息对检测图像执行以关键点为中心取补丁的处理以获得初始预测关键点图像。

随后,调整信息和目标图像获取装置230可利用多任务目标检测模型100之中的第二子模型至第n子模型对初始信息获取装置220获得的目标的初始预测分类信息、初始预测边框位置信息和初始预测关键点位置信息进行逐步调整,从而分别利用第二子模型至第n子模型的每个子模型获得目标的调整分类信息、调整边框位置信息和调整关键点位置信息,并将利用每个子模型获得的目标的调整边框和调整关键点的信息作为下一个子模型执行调整的基础。这里,可利用包含标注信息的训练图像,基于反映每个子模型获得的预测分类信息与真实分类信息之间的差异、每个子模型获得的预测边框位置信息与真实边框位置信息之间的差异以及每个子模型获得的预测关键点位置信息与真实关键点位置信息之间的差异的损失函数来训练第二子模型至第n子模型中的每个子模型,其中,所述标注信息包括训练图像中的目标的真实分类信息、真实边框位置信息和真实关键点位置信息。下面将参照图5对此训练过程进行更详细的描述。

具体地说,针对第二子模型,在步骤S405,调整信息和目标图像获取装置230可将由初始信息和目标图像获取装置220获得的初始预测目标图像输入到第二子模型,利用第二子模型来获得所述目标的第一调整信息,其中,第一调整信息包括第一调整分类信息、第一调整边框位置信息和第一调整关键点位置信息。

根据本发明的示例性实施例,调整信息和目标图像获取装置230可将第二子模型输出的所述目标的分类信息作为利用第二子模型获得的所述目标的第一调整分类信息。调整信息和目标图像获取装置230可将第二子模型输出的边框位置偏移信息与由初始信息和目标图像获取装置220获得的剩余初始预测边框位置信息相加获得所述目标的第一调整边框位置信息。调整信息和目标图像获取装置230可第二子模型输出的关键点位置偏移信息与由初始信息和目标图像获取装置220获得的初始预测关键点位置信息相加获得所述目标的第一调整关键点位置信息。

在步骤S406,调整信息和目标图像获取装置230可对利用第二子模型获得的所述目标的第一调整边框位置信息执行非极大抑制处理以排除一部分第一调整边框位置信息,从而获得所述目标的第一剩余调整边框位置信息。根据本发明的示例性实施例,调整信息和目标图像获取装置230可基于所述目标的第一调整分类信息计算第一置信度,根据第一置信度对第一调整边框位置信息执行非极大抑制处理。

在获得所述目标的第一剩余调整边框位置信息之后,在步骤S407,调整信息和目标图像获取装置230可基于所述目标的第一剩余调整边框位置信息和第一调整关键点位置信息,从检测图像获得第一调整目标图像,其中,第一调整目标图像包括所述目标的第一调整边框图像和第一调整关键点图像。根据本发明的示例性实施例,调整信息和目标图像获取装置230可基于第一剩余调整边框位置信息对检测图像执行裁剪处理,以获得第一调整边框图像,并可基于第一调整关键点位置信息对检测图像执行以关键点为中心取补丁的处理以获得第一调整关键点图像。针对第三子模型至第n子模型中的每一个子模型(在下文中,称为第i子模型,其中,i为整数且i∈{3,4,…,n}),在步骤S408,调整信息获取装置230可将第(i-2)调整目标图像输入到第i子模型,利用第i子模型来获得所述目标的第(i-1)调整信息,其中,第(i-1)调整信息包括第(i-1)调整分类信息、第(i-1)调整边框位置信息和第(i-1)调整关键点位置信息。

根据本发明的示例性实施例,调整信息和目标图像获取装置230可将第i子模型输出的所述目标的分类信息作为所述目标的第(i-1)调整分类信息。调整信息和目标图像获取装置230可将第i子模型输出的边框位置偏移信息与由调整信息和目标图像获取装置230先前获得的第(i-2)剩余调整边框位置信息相加获得所述目标的第(i-1)调整边框位置信息。调整信息和目标图像获取装置230可将第i子模型输出的关键点位置偏移信息与由调整信息和目标图像获取装置230先前获得的第(i-2)调整关键点位置信息相加获得所述目标的第(i-1)调整关键点位置信息。

在步骤S409,调整信息和目标图像获取装置230可对利用第i子模型获得的所述目标的第(i-1)调整边框位置信息执行非极大抑制处理以排除一部分第(i-1)调整边框位置信息,从而获得所述目标的第(i-1)剩余调整边框位置信息。根据本发明的示例性实施例,调整信息和目标图像获取装置230可基于所述目标的第(i-1)调整分类信息计算第(i-1)置信度,根据第(i-1)置信度对第(i-1)调整边框位置信息执行非极大抑制处理。

当i不为n时,在得所述目标的第(i-1)剩余调整边框位置信息之后,在步骤S410,调整信息和目标图像获取装置230可基于所述目标的第(i-1)剩余调整边框位置信息和第(i-1)调整关键点位置信息,从检测图像获得第(i-1)调整目标图像,其中,第(i-1)调整目标图像包括所述目标的第(i-1)调整边框图像和第(i-1)调整关键点图像。根据本发明的示例性实施例,调整信息和目标图像获取装置230可基于第(i-1)剩余调整边框位置信息对检测图像执行裁剪处理,以获得第(i-1)调整边框图像,并可基于第(i-1)调整关键点位置信息对检测图像执行以关键点为中心取补丁的处理以获得第(i-1)调整关键点图像。

当i为n时,即,针对第n子模型,由于第n子模型是最后一个子模型,因此,利用第n子模型获得的调整信息可作为所述目标的最终的分类信息、边框位置信息和关键点位置信息,而无需再执行基于利用第n子模型获得的调整信息来获得调整目标图像的步骤。具体地说,当i为n时,在步骤S411,最终信息获取装置240可将利用第n子模型获得的所述目标的第(n-1)调整分类信息、第(n-1)剩余调整边框位置信息和第(n-1)调整关键点位置信息作为所述目标的最终的分类信息、边框位置信息和关键点位置信息。以上,已结合图4对根据本发明示例性实施例的利用多任务目标检测模型100执行目标检测的方法进行了描述。在以上示例性实施例中,检测系统200可利用多任务目标检测模型100之中的第一子模型获取目标的初始分类信息、初始边框位置信息和初始关键点位置信息,并利用多任务目标检测模型100之中的后续子模型对初始分类信息、初始边框位置信息和初始关键点信息位置进行逐步调整,从而达到联合目标分类检测、目标边框检测和目标关键点检测,利用前一子模型获得的目标边框和目标关键点的信息由粗到精地逐步调整目标分类、目标边框和目标关键点,以提高在无约束场景下的目标检测的准确性的效果。

图5示出根据本发明示例性实施例的用于训练多任务目标检测模型100的方法的流程图。

这里,作为示例,图5所示的方法可由图3所示的训练系统300来执行,也可完全通过计算机程序以软件方式实现,还可通过特定配置的计算装置来执行。为了描述方便,假设图5所示的方法由图3所示的训练系统300来执行,并且假训练系统300可具有图3所示的组成装置。

参照图5,在步骤S501,训练图像获取装置310可获取训练图像。这里,训练图像可包括属于多任务目标检测模型100可检测目标范围的目标以及关于目标的标注信息。关于目标的标注信息是指目标在训练图像中的真实信息,包括目标的真实分类信息、真实边框位置信息和真实关键点位置信息。

在步骤S502,初始预测信息和目标图像获取装置320可将由训练图像获取装置310获取的训练图像输入到所述子模型之中的第一子模型,利用第一子模型获得所述目标的初始预测信息,其中,所述初始预测信息包括所述目标的初始预测分类信息、初始预测边框位置信息和初始预测关键点位置信息。

根据本发明的示例性实施例,第一子模型可以是一个针对多任务的基于深度学习的神经网络,其输出为目标的初始预测分类信息、初始预测边框位置信息和初始预测关键点位置信息。

当第一子模型是一个针对多任务的基于深度学习的神经网络时,初始预测信息和目标图像获取装置320可基于训练图像和标注信息来训练第一子模型,并基于训练图像,利用训练完毕的第一子模型获得所述目标的初始预测分类信息、初始预测边框位置信息和初始预测关键点位置信息。

初始预测信息和目标图像获取装置320可利用反映第一子模型获得的预测分类信息与真实分类信息之间的差异、第一子模型获得的预测边框位置信息与真实边框位置信息之间的差异以及第一子模型获得的预测关键点位置信息与真实关键点位置信息之间的差异的损失函数来训练第一子模型。

根据本发明的示例性实施例,初始预测信息和目标图像获取装置320可基于利用第一子模型获得的预测分类信息和真实分类信息获得交叉熵损失函数作为分类损失函数,可基于利用第一子模型获得的预测边框位置信息与真实边框位置信息之间的差异获得边框损失函数,可基于利用第一子模型获得的预测关键点位置信息与真实关键点位置信息之间的差异获得关键点损失函数,基于分类损失函数、边框损失函数和关键点损失函数获得用于训练第一子模型的损失函数。具体地,初始预测信息和目标图像获取装置320可使用上面介绍的公式(1)至公式(4)设计用于训练第一子模型的损失函数、分类损失函数、边框损失函数和关键点损失函数。这里不再赘述。

根据本发明的示例性实施例,初始预测信息和目标图像获取装置320可基于分类损失函数、边框损失函数和关键点损失函数的加权和获得用于训练每个子模型的损失函数,并可分别根据目标分类检测任务、目标边框检测任务和目标关键点检测任务的重要性来设置分类损失函数、边框损失函数和关键点损失函数的权重。然而,本发明不限于此,可不需要权重而仅将分类损失函数、边框损失函数和关键点损失函数相加得到用于训练第一子模型的损失函数,也可根据特定需求来设置权重。

在初始预测信息和目标图像获取装置320利用第一子模型检测到目标的初始预测分类信息、初始预测边框位置信息和初始预测关键点位置信息之后,在步骤S503,初始预测信息和目标图像获取装置320可基于所述目标的初始预测边框位置信息和初始预测关键点位置信息,从训练图像获得初始预测目标图像,其中,所述初始预测目标图像包括所述目标的初始预测边框图像和初始预测关键点图像。根据本发明的示例性实施例,初始预测信息和目标图像获取装置320可基于所述目标的初始预测边框位置信息对训练图像执行裁剪处理以获得初始预测边框图像,并可基于所述目标的初始预测关键点位置信息对训练图像执行以关键点为中心取补丁的处理以获得初始预测关键点图像。

针对第二子模型至第n子模型,每个子模型被构建为一个针对所述多任务的基于深度学习的神经网络,用于对初始预测信息和目标图像获取装置320获得的目标的初始预测分类信息、初始预测边框位置信息和初始预测关键点位置信息进行逐步调整,因此,第二子模型至第n子模型中的每个子模型的针对所述多任务的基于深度学习的神经网络的输出为所述目标的分类信息、边框位置偏移信息和关键点位置偏移信息。对此,子模型训练装置330可分别对第二子模型至第n子模型中的每个子模型进行训练,并将利用训练完毕的每个子模型获得的调整边框和调整关键点的信息作为训练下一个子模型的基础。

具体地说,在步骤S504,针对第二子模型,子模型训练装置330可将由初始预测信息和目标图像获取装置320获得的初始预测目标图像输入到所述子模型之中的第二子模型,基于标注信息以及由初始预测信息和目标图像获取装置320获得的目标的初始预测边框信息、初始预测关键点信息和初始预测目标图像来训练所述子模型之中的第二子模型。具体地说,子模型训练装置330可利用反映第二子模型获得的预测分类信息与真实分类信息之间的差异、第二子模型获得的预测边框位置信息与真实边框位置信息之间的差异以及第二子模型获得的预测关键点位置信息与真实关键点位置信息之间的差异的损失函数来训练第二子模型。

在第二子模型训练完毕之后,在步骤S505,子模型训练装置330可将由初始预测信息和目标图像获取装置320获得的初始预测目标图像输入到训练完毕的第二子模型,利用训练完毕的第二子模型获得所述目标的调整信息,其中,所述调整信息包括所述目标的调整分类信息、调整边框位置信息和调整关键点位置信息,并在步骤S506,基于利用训练完毕的第二子模型获得的所述目标的调整边框位置信息和调整关键点位置信息,从训练图像获得调整目标图像,其中,所述调整目标图像包括所述目标的调整边框图像和调整关键点图像。

随后,在步骤S507,针对第三子模型至第n子模型中的每一个子模型(在下文中,称为第i子模型,其中,i为整数且i∈{3,4,…,n}),子模型训练装置330可将利用训练完毕的第(i-1)子模型获得的调整目标图像输入到第i子模型,基于标注信息和利用训练完毕的第(i-1)子模型获得的目标的调整信息和调整目标图像来训练第i子模型。

具体地说,子模型训练装置330可利用反映第i子模型获得的预测分类信息与真实分类信息之间的差异、第i子模型获得的预测边框位置信息与真实边框位置信息之间的差异以及第i子模型获得的预测关键点位置信息与真实关键点位置信息之间的差异的损失函数来训练第i子模型。

根据本发明的示例性实施例,可利用与上面介绍的设计用于训练第一子模型的损失函数的方式(即,公式(1)至(4))相同的方式来设计用于训练第二子模型和第i子模型的损失函数。因此,这里不再赘述。

在第i子模型训练完毕之后,当i不为n时,在步骤S508,子模型训练装置330可将利用训练完毕的第(i-1)子模型获得的调整目标图像输入到训练完毕的第i子模型,利用训练完毕的第i子模型获得所述目标的调整信息,并在步骤S509,基于利用训练完毕的第i子模型获得的所述目标的调整边框位置信息和调整关键点位置信息,从训练图像获得调整目标图像。当i为n时,对于第n子模型,即,对于最后一个子模型,在第n子模型训练完毕之后,子模型训练装置330无需执行上述步骤S508和S509。

根据本发明的示例性实施例,针对第二子模型,子模型训练装置330的预测分类信息获取单元(未示出)可将第二子模型输出的目标的分类信息作为用于训练第二子模型的损失函数中的预测分类信息。

子模型训练装置330的预测边框位置信息获取单元(未示出)可通过将第二子模型输出的目标的边框位置偏移信息与由初始预测信息和目标图像获取装置320获得的目标的初始预测边框位置信息相加来获得用于训练第二子模型的损失函数中的预测边框位置信息。

子模型训练装置330的预测关键点位置信息获取单元(未示出)可通过将第二子模型输出的目标的关键点位置偏移信息与由初始预测信息和目标图像获取装置320获得的目标的初始预测关键点位置信息相加来获得用于训练第二子模型的损失函数中的预测关键点位置信息。

此外,针对第i子模型(其中,i为整数且i∈{3,4,…,n}),子模型训练装置330的预测分类信息获取单元可将第i子模型输出的目标的分类信息作为用于训练第i子模型的损失函数中的预测分类信息。

子模型训练装置330的预测边框位置信息获取单元可通过将第i子模型输出的目标的边框位置偏移信息与利用训练完毕的第(i-1)子模型获得的目标的调整边框位置信息相加来获得用于训练第i子模型的损失函数中的预测边框位置信息。

子模型训练装置330的预测关键点位置信息获取单元可通过将第i子模型输出的目标的关键点位置偏移信息与利用训练完毕的第(i-1)子模型获得的目标的调整关键点位置信息相加来获得用于训练第i子模型的损失函数中的预测关键点位置信息。

此外,根据本发明的示例性实施例,当第(i-1)子模型为第二子模型时,子模型训练装置330的调整分类信息获取单元(未示出)可将训练完毕的第二子模型输出的目标的分类信息作为利用训练完毕的第二子模型获得的目标的调整分类信息。

子模型训练装置330的调整边框位置信息获取单元(未示出)可将训练完毕的第二子模型输出的目标的边框位置偏移信息与由初始预测信息和目标图像获取装置320获得的目标的初始预测边框位置信息相加获得调整边框位置信息,作为利用训练完毕的第二子模型获得的所述目标的调整边框位置信息。

子模型训练装置330的调整边框图像获取单元(未示出)可基于调整边框位置信息对训练图像执行裁剪处理以获得所述目标的调整边框图像。

子模型训练装置330的调整关键点位置信息获取单元(未示出)可将训练完毕的第二子模型输出的关键点位置偏移信息与由初始预测信息和目标图像获取装置320获得的目标的初始预测关键点位置信息相加获得调整关键点位置信息,作为利用训练完毕的第二子模型获得的所述目标的调整关键点位置信息。

子模型训练装置330的调整关键点图像获取单元(未示出)可基于调整关键点位置信息对训练图像执行以关键点为中心取补丁的处理以获得所述目标的调整关键点图像。

当第(i-1)子模型为第三子模型至第n子模型之一时,子模型训练装置330的调整分类信息获取单元可将训练完毕的第(i-1)子模型输出的目标的分类信息作为利用训练完毕的第(i-1)子模型获得的目标的调整分类信息。

子模型训练装置330的调整边框位置信息获取单元可将训练完毕的第(i-1)子模型输出的所述目标的边框位置偏移信息与利用训练完毕的第(i-2)子模型获得的目标的调整边框位置信息相加获得新的调整边框位置信息,作为利用训练完毕的第(i-1)子模型获得的所述目标的调整边框位置信息。

子模型训练装置330的调整边框图像获取单元可基于新的调整边框位置信息对训练图像执行裁剪处理以获得所述目标的调整边框图像。

子模型训练装置330的调整关键点位置信息获取单元可将训练完毕的第(i-1)子模型输出的目标的关键点位置偏移信息与利用训练完毕的第(i-2)子模型获得的目标的调整关键点位置信息相加获得新的调整关键点位置信息,作为利用训练完毕的第(i-1)子模型获得的所述目标的调整关键点位置信息。

子模型训练装置330的调整关键点图像获取单元可基于新的调整关键点位置信息对训练图像执行以关键点为中心取补丁的处理以获得所述目标的调整关键点图像。

根据本发明示例性实施例的训练方法,通过利用多任务目标检测模型100之中的多个子模型中的第一子模型获取目标的初始分类信息、初始边框位置信息和初始关键点位置信息,并分别利用前一子模型获得的边框和关键点的信息来对多任务目标检测模型100之中的多个子模型中的后续子模型进行训练,从而获取对前一子模型获得的分类信息、边框位置信息和关键点位置信息进行调整的调整分类信息、调整边框位置信息和调整关键点位置信息,使得能够利用训练好的多任务目标检测模型100获得更准确的目标检测效果。

以上已参照图2至图5描述了根据本发明示例性实施例的利用多任务目标检测模型100执行目标检测的系统和方法以及用于训练多任务目标检测模型100的系统和方法。

图2和图3所示出的系统、装置及单元可被分别配置为执行特定功能的软件、硬件、固件或上述项的任意组合。例如,这些系统、装置或单元可对应于专用的集成电路,也可对应于纯粹的软件代码,还可对应于软件与硬件相结合的模块。此外,这些系统、装置或单元所实现的一个或多个功能也可由物理实体设备(例如,处理器、客户端或服务器等)中的组件来统一执行。

此外,图4和图5所示的方法可通过记录在计算机可读存储介质上的程序(或指令)来实现。例如,根据本发明的示例性实施例,可提供一种用于利用多任务目标检测模型执行目标检测的计算机可读存储介质,其中,在所述计算机可读存储介质上记录有用于执行参照图4所描述的方法步骤的计算机程序(或指令)。

此外,根据本发明的另一示例性实施例,可提供一种用于训练多任务目标检测模型的计算机可读存储介质,其中,在所述计算机可读存储介质上记录有用于执行参照图5所描述的方法步骤的计算机程序(或指令)。

上述计算机可读存储介质中的计算机程序可在诸如客户端、主机、代理装置、服务器等计算机设备中部署的环境中运行,应注意,所述计算机程序还可用于执行除了上述步骤以外的附加步骤或者在执行上述步骤时执行更为具体的处理,这些附加步骤和进一步处理的内容已经在参照图4和图5进行相关方法的描述过程中提及,因此这里为了避免重复将不再进行赘述。

应注意,根据本发明示例性实施例的利用多任务目标检测模型执行目标检测的系统以及用于训练多任务目标检测模型的系统可完全依赖计算机程序的运行来实现相应的功能,即,各个单元在计算机程序的功能架构中与各步骤相应,使得整个系统通过专门的软件包(例如,lib库)而被调用,以实现相应的功能。

另一方面,图2和图3所示的各个装置也可以通过硬件、软件、固件、中间件、微代码或其任意组合来实现。当以软件、固件、中间件或微代码实现时,用于执行相应操作的程序代码或者代码段可以存储在诸如存储介质的计算机可读介质中,使得处理器可通过读取并运行相应的程序代码或者代码段来执行相应的操作。

例如,本发明的示例性实施例还可以实现为计算装置,该计算装置包括存储部件和处理器,存储部件中存储有计算机可执行指令集合,当所述计算机可执行指令集合被所述处理器执行时,执行利用机器学习模型执行预测的方法以及用于训练机器学习模型的方法。

具体说来,所述计算装置可以部署在服务器或客户端中,也可以部署在分布式网络环境中的节点装置上。此外,所述计算装置可以是PC计算机、平板装置、个人数字助理、智能手机、web应用或其他能够执行上述指令集合的装置。

这里,所述计算装置并非必须是单个的计算装置,还可以是任何能够单独或联合执行上述指令(或指令集)的装置或电路的集合体。计算装置还可以是集成控制系统或系统管理器的一部分,或者可被配置为与本地或远程(例如,经由无线传输)以接口互联的便携式电子装置。

在所述计算装置中,处理器可包括中央处理器(CPU)、图形处理器(GPU)、可编程逻辑装置、专用处理器系统、微控制器或微处理器。作为示例而非限制,处理器还可包括模拟处理器、数字处理器、微处理器、多核处理器、处理器阵列、网络处理器等。

根据本发明示例性实施例的利用多任务目标检测模型执行目标检测的方法以及用于训练多任务目标检测模型的方法中所描述的某些操作可通过软件方式来实现,某些操作可通过硬件方式来实现,此外,还可通过软硬件结合的方式来实现这些操作。

处理器可运行存储在存储部件之一中的指令或代码,其中,所述存储部件还可以存储数据。指令和数据还可经由网络接口装置而通过网络被发送和接收,其中,所述网络接口装置可采用任何已知的传输协议。

存储部件可与处理器集成为一体,例如,将RAM或闪存布置在集成电路微处理器等之内。此外,存储部件可包括独立的装置,诸如,外部盘驱动、存储阵列或任何数据库系统可使用的其他存储装置。存储部件和处理器可在操作上进行耦合,或者可例如通过I/O端口、网络连接等互相通信,使得处理器能够读取存储在存储部件中的文件。

此外,所述计算装置还可包括视频显示器(诸如,液晶显示器)和用户交互接口(诸如,键盘、鼠标、触摸输入装置等)。计算装置的所有组件可经由总线和/或网络而彼此连接。

根据本发明示例性实施例的利用多任务目标检测模型执行目标检测的方法以及用于训练多任务目标检测模型的方法所涉及的操作可被描述为各种互联或耦合的功能块或功能示图。然而,这些功能块或功能示图可被均等地集成为单个的逻辑装置或按照非确切的边界进行操作。

因此,图4和图5所示的方法可通过包括至少一个计算装置和至少一个存储指令的存储装置的系统来实现。

根据本发明的示例性实施例,所述至少一个计算装置是根据本发明示例性实施例的用于多任务目标检测模型执行目标检测的计算装置,存储装置中存储有计算机可执行指令集合,当所述计算机可执行指令集合被所述至少一个计算装置执行时,执行参照图4所描述的方法步骤。

根据本发明另一示例性实施例,所述至少一个计算装置是用于训练多任务目标检测模型的计算装置,存储装置中存储有计算机可执行指令集合,当所述计算机可执行指令集合被所述至少一个计算装置执行时,执行参照图5所描述的方法步骤。

另外,需要说明的是,本发明中的检测系统和训练系统既可以是独立的系统,也可以被组合或集成为单个系统,使得组合后的单个系统既可进行多任务目标检测模型的训练,也可利用训练完毕的多任务目标检测模型执行目标检测。

以上描述了本发明的各示例性实施例,应理解,上述描述仅是示例性的,并非穷尽性的,本发明不限于所披露的各示例性实施例。在不偏离本发明的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。因此,本发明的保护范围应该以权利要求的范围为准。

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