一种目标检测方法、装置、终端设备和存储介质

文档序号:25859524发布日期:2021-07-13 16:14阅读:69来源:国知局
一种目标检测方法、装置、终端设备和存储介质

本申请涉及图像处理技术领域,尤其涉及一种目标检测方法、装置、终端设备和存储介质。



背景技术:

目标检测,是一种基于目标几何和统计特征的图像分割,用于对图像中的目标进行提取和识别。目前,目标检测通常采用的是基于锚框(anchor)的方法,例如ssd、yolov2/v3和faster-rcnn等。这类方法需要放置大量预定义大小的锚框,并且每个锚点的大小和高宽比需要人工设计,算法处理的复杂度较高。

针对基于锚框的方法存在的上述问题,现有技术提出了基于关键点检测的cornernet目标检测方法,该方法利用单个卷积神经网络来检测一个以左上角和右下角为一对关键点的目标包围框,通过将目标作为成对的关键点进行检测,无需人为设置锚点。然而,cornernet对图像目标的内部信息的感知能力较弱,制约了该方法的性能。



技术实现要素:

有鉴于此,本申请实施例提供了一种目标检测方法、装置、终端设备和存储介质,能够提高对图像目标的内部信息的感知能力。

本申请实施例的第一方面提供了一种目标检测方法,包括:

将待测图像输入已训练的特征提取网络,得到所述待测图像的特征图像;

对所述特征图像执行角点池化操作,得到所述特征图像对应的左上角点热图和右下角点热图,所述左上角点热图记录所述特征图像中每个位置点属于各个预设类别的物体检测框的左上角关键点的概率值,所述右下角点热图记录所述特征图像中每个位置点属于各个预设类别的物体检测框的右下角关键点的概率值;

对所述特征图像执行内部点池化操作,得到所述特征图像对应的内部点热图,所述内部点热图记录所述特征图像中每个位置点属于各个预设类别的物体检测框的内部关键点的概率值,所述内部点池化操作为采用最大池化层提取所述特征图像的指定内部点在水平方向上的特征值最大的特征向量以及在垂直方向上的特征值最大的特征向量,然后将提取到的特征向量相加的操作;

从所述左上角点热图、所述右下角点热图和所述内部点热图中分别提取指定数量且对应的所述概率值最大的位置点;

根据提取到的各个所述位置点构建物体检测框,其中,每个物体检测框根据从所述左上角点热图中提取到的一个位置点、从所述右上角点热图中提取到的一个位置点以及从所述内部点热图中提取到的一个位置点构建;

对构建得到的物体检测框进行识别,得到所述待测图像的目标检测结果。

在本申请实施例中,首先提取待测图像的特征图像,然后分别对该特征图像执行角点池化操作和内部点池化操作,以得到左上角点热图、右下角点热图以及内部点热图;接着,从这三个热图中分别提取指定数量的对应概率值最大的位置点,并基于这些位置点构建得到各个物体检测框,其中每个物体检测框都是根据该左上角点热图中提取到的一个位置点、该右下角点热图中提取到的一个位置点以及该内部点热图中提取到的一个位置点构建;最后,对构建得到的物体检测框进行识别,从而得到该待测图像的目标检测结果。上述过程通过关键点的三元组,也即左上角点、右下角点和内部位置点来确定一个物体检测框,与仅仅采用左上角点和右下角点确定物体检测框的方法相比,提高了对图像目标的内部信息的感知能力。

在本申请的一个实施例中,对所述特征图像执行内部点池化操作,得到所述特征图像对应的内部点热图,可以包括:

采用最大池化层对所述特征图像的指定内部点到所述特征图像的上边界之间的所有特征向量进行处理,得到其中特征值最大的第一特征向量;

采用最大池化层对所述特征图像的指定内部点到所述特征图像的下边界之间的所有特征向量进行处理,得到其中特征值最大的第二特征向量;

采用最大池化层对所述特征图像的指定内部点到所述特征图像的左边界之间的所有特征向量进行处理,得到其中特征值最大的第三特征向量;

采用最大池化层对所述特征图像的指定内部点到所述特征图像的右边界之间的所有特征向量进行处理,得到其中特征值最大的第四特征向量;

将所述第一特征向量、所述第二特征向量、所述第三特征向量和所述第四特征向量相加,得到目标特征向量;

根据所述目标特征向量确定所述内部点热图。

内部点池化操作可以通过不同方向上的角点池化的组合实现,其中,水平方向上的取特征值最大的特征向量的操作可以由左边池化(leftpooling)和右边池化(rightpooling)通过串联实现;同理垂直方向上的取特征值最大的特征向量的操作可以由上边池化(uppooling)和下边池化(downpooling)通过串联实现。然后,将各个方向进行角点池化获得的特征值最大的特征向量相加,得到最后的目标特征向量,再基于该目标特征向量构建得到该内部点热图。

在本申请的一个实施例中,所述从所述左上角点热图、所述右下角点热图和所述内部点热图中分别提取指定数量且对应的所述概率值最大的位置点,可以包括:

针对所述各个预设类别中的每个类别,分别从所述左上角点热图中提取属于该类别的物体检测框的左上角关键点的概率值最大的前k个位置点,从所述右下角点热图中提取属于该类别的物体检测框的右下角关键点的概率值最大的前k个位置点,以及从所述内部点热图中提取属于该类别的物体检测框的内部关键点的概率值最大的前k个位置点,k为正整数;

所述根据提取到的各个所述位置点构建物体检测框,可以包括:

针对所述各个预设类别中的每个类别,按照遍历的方式分别从所述左上角点热图中提取出的与该类别对应的k个位置点中选取一个位置点、从所述右上角点热图中提取出的与该类别对应的k个位置点中选取一个位置点以及从所述内部点热图中提取出的与该类别对应的k个位置点中选取一个位置点,得到该类别对应的所有位置点组合,并根据所述所有位置点组合中的有效位置点组合构建得到与该类别对应的所有物体检测框,其中,在所述有效位置点组合包含的3个位置点中,从所述左上角点热图中提取出的位置点处于从所述右下角点热图中提取出的位置点的左上方,从所述内部点热图中提取出的位置点处于从所述右下角点热图中提取出的位置点的左上方且处于从所述左上角点热图中提取出的位置点的右下方。

在本申请的一个实施例中,在根据提取到的各个所述位置点构建物体检测框之后,还可以包括:

分别确定各个所述物体检测框的中心区域,所述中心区域为对应的物体检测框中包含中心位置点的预设大小的区域;

去除中心区域内不含从所述内部热点图中提取到的位置点的所述物体检测框。

通过遍历的方式构建得到的物体检测框中可能存在大量的误检框,针对这些误检框可以采用定义中心区域的方式去除。

进一步的,所述分别确定各个所述物体检测框的中心区域可以包括:

针对每个所述物体检测框,分别计算该物体检测框内的每个位置点的中心度,并将该物体检测框内中心度大于预设阈值的位置点所处的区域确定为该物体检测框的中心区域,其中,每个位置点的中心度根据该位置点距离该物体检测框的各个边界之间的长度确定。

首先引入中心度的概念,中心度用于反映一个位置点处于物体检测框的中部的程度,物体检测框的中心区域可以确定为中心度大于预设阈值的位置点所处的区域,例如,可以将中心度大于0.7的位置点所处的区域确定为一个物体检测框的中心区域。

更进一步的,在去除中心区域内不含从所述内部热点图中提取到的位置点的所述物体检测框之后,还可以包括:

若从所述内部热点图中提取到的任意一个位置点处于两个以上的物体检测框的中心区域内,则分别计算所述任意一个位置点在所述两个以上的物体检测框内的中心度,并将所述两个以上的物体检测框中所述任意一个位置点的中心度非最大的物体检测框去除。

当检测到某个内部关键点(从该内部热点图中提取到的位置点,例如可以是中心点)落入多个物体检测框的中心区域内,则会分别计算该内部关键点在各个物体检测框内的中心度,只保留该多个物体检测框中的中心度最高的一个物体检测框,将其余的物体检测框去除。经过这样处理,一个内部关键点只对应一个物体检测框,能够剔除多余的物体检测框,进一步减少误检框出现的概率。

在本申请的一个实施例中,对构建得到的物体检测框进行识别,得到所述待测图像的目标检测结果,可以包括:

针对每个所述物体检测框,将该物体检测框输入预设的多元分类器,得到该物体检测框对应的类别向量,并根据该类别向量确定该物体检测框所属的类别,其中,所述类别向量包含该物体检测框分别属于各个所述预设类别的概率值。

可以将经过筛选后的物体检测框输入多元分类器,对物体检测框对应的各个预设类别的目标分数进行排序,最终的分类结果即为该目标分数最高的类别。

本申请实施例的第二方面提供了一种目标检测装置,包括:

特征提取模块,用于将待测图像输入已训练的特征提取网络,得到所述待测图像的特征图像;

角点池化模块,用于对所述特征图像执行角点池化操作,得到所述特征图像对应的左上角点热图和右下角点热图,所述左上角点热图记录所述特征图像中每个位置点属于各个预设类别的物体检测框的左上角关键点的概率值,所述右下角点热图记录所述特征图像中每个位置点属于各个预设类别的物体检测框的右下角关键点的概率值;

内部点池化模块,用于对所述特征图像执行内部点池化操作,得到所述特征图像对应的内部点热图,所述内部点热图记录所述特征图像中每个位置点属于各个预设类别的物体检测框的内部关键点的概率值,所述内部点池化操作为采用最大池化层提取所述特征图像的指定内部点在水平方向上的特征值最大的特征向量以及在垂直方向上的特征值最大的特征向量,然后将提取到的特征向量相加的操作;

位置点提取模块,用于从所述左上角点热图、所述右下角点热图和所述内部点热图中分别提取指定数量且对应的所述概率值最大的位置点;

物体检测框构建模块,用于根据提取到的各个所述位置点构建物体检测框,其中,每个物体检测框根据从所述左上角点热图中提取到的一个位置点、从所述右上角点热图中提取到的一个位置点以及从所述内部点热图中提取到的一个位置点构建;

物体检测框识别模块,用于对构建得到的物体检测框进行识别,得到所述待测图像的目标检测结果。

本申请实施例的第三方面提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如本申请实施例的第一方面提供的目标检测方法。

本申请实施例的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如本申请实施例的第一方面提供的目标检测方法。

本申请实施例的第五方面提供了一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行本申请实施例的第一方面所述的目标检测方法。

可以理解的是,上述第二方面至第五方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。

附图说明

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

图1是本申请实施例提供的一种目标检测方法的一个实施例的流程图;

图2是本申请实施例提供的实现内部点池化操作的网络结构示意图;

图3是本申请实施例提供的目标检测方法的一种实现原理示意图;

图4是本申请实施例提供的一种目标检测装置的一个实施例的结构图;

图5是本申请实施例提供的一种终端设备的示意图。

具体实施方式

以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。另外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

本申请提出一种目标检测方法、装置、终端设备和存储介质,能够提高对图像目标的内部信息的感知能力。应当理解,本申请各个方法实施例的执行主体为各种类型的终端设备或服务器,比如手机、平板电脑、笔记本电脑、台式电脑和可穿戴设备等。

请参阅图1,示出了本申请实施例提供的一种目标检测方法,包括:

101、将待测图像输入已训练的特征提取网络,得到所述待测图像的特征图像;

待测图像是需要进行目标检测的原始图像,在获取该待测图像之后,将其输入一个已训练的特征提取网络进行特征提取,以得到对应的特征图像。在实际操作中,该特征提取网络可以是任意结构和类型的神经网络,本申请对此不做限定。

在本申请的一种实现方式中,参照cornernet目标检测方法,可以选择hourglass网络作为该特征提取网络。hourglass网络是一个全卷积神经网络,由一个或多个hourglass模块组成,首先通过一系列卷积和最大池化操作对输入特征进行下采样,然后通过一系列的上采样和卷积层将特征上采样为原始的分辨率。另外,由于在最大池化操作中丢失了图像细节,因此可以添加越层连接(跳过层)以将图像细节带回更新的抽样特征中。当多个hourglass模块在网络中堆叠时,不同的hourglass模块可以对图像特征进行再处理,以获取更高级别的信息,该特性使得hourglass网络成为目标检测的理想选择。

102、对所述特征图像执行角点池化操作,得到所述特征图像对应的左上角点热图和右下角点热图;

在得到待测图像的特征图像之后,对该特征图像进行角点池化操作,以得到该特征图像对应的左上角点热图和右下角点热图。其中,所述左上角点热图记录所述特征图像中每个位置点属于各个预设类别的物体检测框的左上角关键点的概率值,所述右下角点热图记录所述特征图像中每个位置点属于各个预设类别的物体检测框的右下角关键点的概率值。例如,假设特征图像为维度h*w(高度*宽度)的图像,则获得的左上角点热图和右上角点热图均为维度c*h*w(预设类别数量*高度*宽度)的热图,在一个角点热图中,每个通道(类别)都是一个mask,取值范围为0-1,表示该特征图像中各个位置点属于对应类别的物体检测框的角点的概率值大小。

在cornernet目标检测方法中,会预测物体检测框的一对角点,即左上角点和右下角点,具体是采用角点池化(cornerpooling)的方式对输入的特征图像进行预测,得到左上角点热图和右下角点热图。本申请是基于cornernet目标检测方法进行的改进,其中关于如何进行角点池化操作以得到两个角点热图的内容,可以参照现有技术cornernet中的相关描述。

103、对所述特征图像执行内部点池化操作,得到所述特征图像对应的内部点热图;

考虑到一个物体的中心等内部区域并没有很强的易于区分的语义信息,本申请采用内部点池化操作来丰富内部区域特征,具体的操作方式是提取该特征图像的指定内部点(例如可以是图像的中心点)在水平方向上的特征值最大的特征向量以及在垂直方向上的特征值最大的特征向量,然后将提取到的特征向量相加,以此给该指定内部点提供所处位置以外的信息。通过对该特征图像执行内部点池化操作,能够得到该特征图像对应的内部点热图,所述内部点热图记录所述特征图像中每个位置点属于各个预设类别的物体检测框的内部关键点的概率值。例如,假设特征图像为维度h*w(高度*宽度)的图像,则获得的内部点热图为维度c*h*w(预设类别数量*高度*宽度)的热图,其中每个通道(类别)都是一个mask,取值范围为0-1,表示该特征图像中各个位置点属于对应类别的物体检测框的内部关键点(可以是该物体检测框内部的任意一个点,例如可以是中心点)的概率值大小。

在本申请的一个实施例中,对所述特征图像执行内部点池化操作,得到所述特征图像对应的内部点热图,可以包括:

(1)采用最大池化层对所述特征图像的指定内部点到所述特征图像的上边界之间的所有特征向量进行处理,得到其中特征值最大的第一特征向量;

(2)采用最大池化层对所述特征图像的指定内部点到所述特征图像的下边界之间的所有特征向量进行处理,得到其中特征值最大的第二特征向量;

(3)采用最大池化层对所述特征图像的指定内部点到所述特征图像的左边界之间的所有特征向量进行处理,得到其中特征值最大的第三特征向量;

(4)采用最大池化层对所述特征图像的指定内部点到所述特征图像的右边界之间的所有特征向量进行处理,得到其中特征值最大的第四特征向量;

(5)将所述第一特征向量、所述第二特征向量、所述第三特征向量和所述第四特征向量相加,得到目标特征向量;

(6)根据所述目标特征向量确定所述内部点热图。

内部点池化操作可以通过不同方向上的角点池化的组合实现,其中,水平方向上的取特征值最大的特征向量的操作可以由左边池化(leftpooling)和右边池化(rightpooling)通过串联实现;同理垂直方向上的取特征值最大的特征向量的操作可以由上边池化(uppooling)和下边池化(downpooling)通过串联实现。具体的,上述步骤(1)为上边池化的描述,主要是采用最大池化层对该特征图像的指定内部点到该特征图像的上边界之间的所有特征向量进行处理,得到其中特征值最大的特征向量;上述步骤(2)为下边池化的描述,主要是采用最大池化层对该特征图像的指定内部点到该特征图像的下边界之间的所有特征向量进行处理,得到其中特征值最大的特征向量;上述步骤(3)为左边池化的描述,主要是采用最大池化层对该特征图像的指定内部点到该特征图像的左边界之间的所有特征向量进行处理,得到其中特征值最大的特征向量;上述步骤(4)为右边池化的描述,主要是采用最大池化层对该特征图像的指定内部点到该特征图像的右边界之间的所有特征向量进行处理,得到其中特征值最大的特征向量。然后,将各个方向进行角点池化获得的特征值最大的特征向量相加,得到最后的目标特征向量,再基于该目标特征向量构建得到该内部点热图。

在实际操作中,可以采用如图2所示的网络结构实现内部点池化操作,将特征图像输入2个分支,其中一个分支依次由3*3卷积层、bn归一化层、relu激活函数层、左边池化层(leftpooling)和右边池化层(rightpooling)组成,通过该分支可以输出该特征图像在水平方向上的特征值最大的特征向量;另外一个分支依次由3*3卷积层、bn归一化层、relu激活函数层、上边池化层(uppooling)和下边池化层(downpooling)组成,通过该分支可以输出该特征图像在垂直方向上的特征值最大的特征向量。最后,将两个分支输出的特征向量相加,通过融合各个方向的角点池化,从而得到内部点池化的操作结果。

104、从所述左上角点热图、所述右下角点热图和所述内部点热图中分别提取指定数量且对应的所述概率值最大的位置点;

在获得3个热图之后,从这些热图中分别提取指定数量且对应的所述概率值最大的位置点,从每个热图中提取出的位置点的数量是相同的,且提取的是对应的概率值最大的位置点。例如,可以从左上角点热图中提取属于指定类别的物体检测框的左上角关键点的概率值最大的前100个位置点,从右上角点热图中提取属于该指定类别的物体检测框的右下角关键点的概率值最大的前100个位置点,以及从内部点热图中提取属于该指定类别的物体检测框的内部关键点的概率值最大的前100个位置点。

在本申请的一个实施例中,从所述左上角点热图、所述右下角点热图和所述内部点热图中分别提取指定数量且对应的所述概率值最大的位置点,可以包括:

针对所述各个预设类别中的每个类别,分别从所述左上角点热图中提取属于该类别的物体检测框的左上角关键点的概率值最大的前k个位置点,从所述右下角点热图中提取属于该类别的物体检测框的右下角关键点的概率值最大的前k个位置点,以及从所述内部点热图中提取属于该类别的物体检测框的内部关键点的概率值最大的前k个位置点,k为正整数。

假设有c个预设类别,则针对每个类别,都分别从3个热图中提取k个位置点,也即每个类别提取3*k个位置点,总共提取3*c*k个位置点。例如,若有3个预设类别,分别为类别1、类别2和类别3,则针对类别1,从该左上角点热图中提取属于类别1的物体检测框的左上角关键点的概率值最大的前100个位置点,从该右上角点热图中提取属于类别1的物体检测框的右下角关键点的概率值最大的前100个位置点,以及从该内部点热图中提取属于类别1的物体检测框的内部关键点的概率值最大的前100个位置点,总共300个位置点,以此类推,类别2和类别3也分别提取300个位置点。

105、根据提取到的各个所述位置点构建物体检测框;

在提取位置点之后,根据提取到的各个位置点构建得到各个物体检测框。其中,每个物体检测框都是根据从所述左上角点热图中提取到的一个位置点、从所述右上角点热图中提取到的一个位置点以及从所述内部点热图中提取到的一个位置点构建的。

具体的,所述根据提取到的各个所述位置点构建物体检测框,可以包括:

针对所述各个预设类别中的每个类别,按照遍历的方式分别从所述左上角点热图中提取出的与该类别对应的k个位置点中选取一个位置点、从所述右上角点热图中提取出的与该类别对应的k个位置点中选取一个位置点以及从所述内部点热图中提取出的与该类别对应的k个位置点中选取一个位置点,得到该类别对应的所有位置点组合,并根据所述所有位置点组合中的有效位置点组合构建得到与该类别对应的所有物体检测框。

以步骤104中的例子进行说明,针对类别1,从左上角点热图中提取出的与该类别对应的100个位置点中选取一个位置点(作为左上角关键点),共有100种可能;从右上角点热图中提取出的与该类别对应的100个位置点中选取一个位置点(作为右下角关键点),共有100种可能;从内部点热图中提取出的与该类别对应的100个位置点中选取一个位置点(作为内部关键点),同样是100种可能,也即采用遍历的方式获得的类别1对应的所有位置点组合是100*100*100个。然而,在这些位置点组合中,有很多是无效的组合,例如左上角关键点处于右下角关键点的右边或者下边的组合。因此,需要确定其中的有效位置点组合,其特点为:包含的3个位置点中,从所述左上角点热图中提取出的位置点处于从所述右下角点热图中提取出的位置点的左上方,从所述内部点热图中提取出的位置点处于从所述右下角点热图中提取出的位置点的左上方且处于从所述左上角点热图中提取出的位置点的右下方。将无效的位置点组合去除,然后根据有效的位置点组合构建得到类别1对应的所有物体检测框,具体可以根据左上角关键点、右下角关键点和内部关键点完成物体检测框的定位。以此类推,类别2和类别3也采用和类别1相同的方式构建出对应的所有物体检测框。

在本申请的一个实施例中,在根据提取到的各个所述位置点构建物体检测框之后,还可以包括:

(1)分别确定各个所述物体检测框的中心区域,所述中心区域为对应的物体检测框中包含中心位置点的预设大小的区域;

(2)去除中心区域内不含从所述内部热点图中提取到的位置点的所述物体检测框。

通过遍历的方式构建得到的物体检测框中可能存在大量的误检框,针对这些误检框可以采用定义中心区域的方式去除。具体的,可以对每个物体检测框定义一个中心区域,例如可以是包含中心位置点的指定大小的一块区域,然后判断该物体检测框的内部关键点(即从内部热点图中提取到的位置点)是否处于该中心区域内;若是,则保留该物体检测框,若否,则去除该物体检测框。也即,通过判断每个物体检测框的中心区域是否含有内部关键点的方式来确定哪些物体检测框需要保留,哪些物体检测框需要去除。对于保留的物体检测框,其类别置信度为对应的左上角关键点、右下角关键点和内部关键点的置信度的平均值。通过这样设置,使得网络具备感知目标区域内部信息的能力,能够有效去除误检框。

进一步的,所述分别确定各个所述物体检测框的中心区域,可以包括:

针对每个所述物体检测框,分别计算该物体检测框内的每个位置点的中心度,并将该物体检测框内中心度大于预设阈值的位置点所处的区域确定为该物体检测框的中心区域,其中,每个位置点的中心度根据该位置点距离该物体检测框的各个边界之间的长度确定。

中心区域的尺寸会影响去除误检框的效果,例如,中心区域过小会导致较小尺寸的误检框无法去除,而中心区域过大则会导致较大尺寸的误检框无法去除。因此,本申请实施例提出了一种具体的计算各个物体检测框的中心区域的方法,针对不同尺寸的物体检测框可以具有不同尺寸的中心区域,也即中心区域的尺寸是可调节的。首先,引入中心度的概念,中心度用于反映一个位置点处于物体检测框的中部的程度,取值范围为0-1之间,其中中心度为0表示位置点处于物体检测框的边界,中心度为1表示位置点处于物体检测框的正中心。每个位置点的中心度可以根据该位置点距离物体检测框的各个边界之间的长度确定,例如,可以采用以下公式计算得到中心度centrality:

其中,l表示位置点距离物体检测框的左边界的长度,r表示位置点距离物体检测框的右边界的长度,t表示位置点距离物体检测框的上边界的长度,b表示位置点距离物体检测框的下边界的长度。

在引入中心度后,物体检测框的中心区域可以确定为中心度大于预设阈值的位置点所处的区域,例如,可以将中心度大于0.7的位置点所处的区域确定为一个物体检测框的中心区域。

进一步的,在去除中心区域内不含从所述内部热点图中提取到的位置点的所述物体检测框之后,还可以包括:

若从所述内部热点图中提取到的任意一个位置点处于两个以上的物体检测框的中心区域内,则分别计算所述任意一个位置点在所述两个以上的物体检测框内的中心度,并将所述两个以上的物体检测框中所述任意一个位置点的中心度非最大的物体检测框去除。

为了进一步提高去除误检框的效果,在采用判断中心区域是否含有内部关键点的方式去除一部分物体检测框之后,还可以引入“一个内部关键点只处于一个物体检测框的中心区域内”的限定条件,继续对保留下来的物体检测框进行筛选。具体的,当检测到某个内部关键点(从该内部热点图中提取到的位置点,例如可以是中心点)落入多个物体检测框的中心区域内,则会分别计算该内部关键点在各个物体检测框内的中心度,只保留该多个物体检测框中的中心度最高的一个物体检测框,将其余的物体检测框去除。经过这样处理,一个内部关键点只对应一个物体检测框,能够剔除多余的物体检测框,减少误检框出现的概率。例如,某个中心点a同时落入预物体检测框1、物体检测框2和物体检测框3的中心区域,则选取该3个物体检测框中相应中心度最大的进行保留,其余2个物体检测框去除。

106、对构建得到的物体检测框进行识别,得到所述待测图像的目标检测结果。

最后,对构建得到的各个物体检测框进行识别,获得每个物体检测框对应的类别,从而得到该待测图像的目标检测结果。在本申请的一个实施例中,对构建得到的物体检测框进行识别,得到所述待测图像的目标检测结果,可以包括:

针对每个所述物体检测框,将该物体检测框输入预设的多元分类器,得到该物体检测框对应的类别向量,并根据该类别向量确定该物体检测框所属的类别,其中,所述类别向量包含该物体检测框分别属于各个所述预设类别的概率值。

可以将经过筛选后的物体检测框输入多元分类器,对物体检测框对应的各个预设类别的目标分数进行排序,最终的分类结果即为该目标分数最高的类别,其中,每个类别的目标分数具体可以为物体检测框的3个关键点(即左上角关键点,右下角关键点和内部关键点)对应的该类别的概率值的平均值。该多元分类器首先通过卷积操作(例如卷积核7*7的卷积层)提取物体检测框内的特征,然后再通过另一个卷积层(例如256*7*7的卷积层)输出一个c维(c为预设的物体类别数量)的表示类别的向量(即类别向量),然后建立c-way分类器,为每个保留的物体检测框建立单独的分类器。该分类器的损失函数可以为:

其中,m和n分别表示保留的物体检测框的数量和其中正样本的数量,ioum,c表示第m个物体检测框与第c个类别中所有groundtruth之间最大的iou值,τ表示iou的阈值(可以设置为0.7)。qm,c表示第m个目标中第c个类别的分类分数,β是平滑损失函数的超参数,可以取值为2。

在本申请实施例中,首先提取待测图像的特征图像,然后分别对该特征图像执行角点池化操作和内部点池化操作,以得到左上角点热图、右下角点热图以及内部点热图;接着,从这三个热图中分别提取指定数量的对应概率值最大的位置点,并基于这些位置点构建得到各个物体检测框,其中每个物体检测框都是根据该左上角点热图中提取到的一个位置点、该右下角点热图中提取到的一个位置点以及该内部点热图中提取到的一个位置点构建;最后,对构建得到的物体检测框进行识别,从而得到该待测图像的目标检测结果。上述过程通过关键点的三元组,也即左上角点、右下角点和内部位置点来确定一个物体检测框,与仅仅采用左上角点和右下角点确定物体检测框的方法相比,提高了对图像目标的内部信息的感知能力。

本申请实施例提出的目标检测方法的一种实现原理示意图如图3所示。在图3中,首先将待测图像输入hourglass网络,提取对应的特征图像;然后,将特征图像分别输入角点池化模块和内部点池化模块,其中角点池化模块获得对应的左上角点热图和右下角点热图,内部点池化模块获得对应的内部点热图;接着,从左上角点热图、右下角点特图和内部点热图中分别提取指定数量的对应概率值最大的位置点,并基于提取的位置点构建出所有的物体检测框;然后,采用前文所述的方式对物体检测框进行筛选,过滤掉其中的误检框,得到留存下来的物体检测框;最后,将留存下来的物体检测框输入多元分类器进行分类,得到最终的目标检测结果。

本申请提出一种新的无锚框(anchor-free)两阶段(two-stage)目标检测算法。该算法第一阶段以cornernet方法为基础,通过角点池化的方式提取出候选区域(regionproposal),也即初始的物体检测框。在此基础上,为了使网络能更好地感知物体内部信息,算法中增加了内部点池化层用以增强物体内部区域的特征(例如物体中心区域的特征),并进行内部关键点检测。通过判断内部关键点是否落在中心区域,可以过滤掉大量的误检框。第二阶段,将保留的物体检测框送入多元分类器进行预测和回归,可以获取最终的检测结果。

本申请基于cornernet的关键点目标检测方法,但是并没有使用关键点进行分组来实现目标检测,而是使用所有有效的角点以及内部关键点的组合作为潜在对象。并且,采用二阶检测的方法,训练了一个多元分类器,根据对应的区域特征来区分真实物体检测框和错误匹配的误检框。

通过实验测试发现,本申请提出的方法在ms-coco数据集上能够取得46.7%的检测精度,与其它先进的算法相比具有很强的竞争力。与cornernet算法相比,本申请在精度上有6.2%的提升,尤其对于特殊形状(例如很大、很小、或极高长宽比)的物体,精度提升的效果更加明显。

应理解,上述各个实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。

上面主要描述了一种目标检测方法,下面将对一种目标检测装置进行描述。

请参阅图4,本申请实施例中一种目标检测装置的一个实施例包括:

特征提取模块401,用于将待测图像输入已训练的特征提取网络,得到所述待测图像的特征图像;

角点池化模块402,用于对所述特征图像执行角点池化操作,得到所述特征图像对应的左上角点热图和右下角点热图,所述左上角点热图记录所述特征图像中每个位置点属于各个预设类别的物体检测框的左上角关键点的概率值,所述右下角点热图记录所述特征图像中每个位置点属于各个预设类别的物体检测框的右下角关键点的概率值;

内部点池化模块403,用于对所述特征图像执行内部点池化操作,得到所述特征图像对应的内部点热图,所述内部点热图记录所述特征图像中每个位置点属于各个预设类别的物体检测框的内部关键点的概率值,所述内部点池化操作为采用最大池化层提取所述特征图像的指定内部点在水平方向上的特征值最大的特征向量以及在垂直方向上的特征值最大的特征向量,然后将提取到的特征向量相加的操作;

位置点提取模块404,用于从所述左上角点热图、所述右下角点热图和所述内部点热图中分别提取指定数量且对应的所述概率值最大的位置点;

物体检测框构建模块405,用于根据提取到的各个所述位置点构建物体检测框,其中,每个物体检测框根据从所述左上角点热图中提取到的一个位置点、从所述右上角点热图中提取到的一个位置点以及从所述内部点热图中提取到的一个位置点构建;

物体检测框识别模块406,用于对构建得到的物体检测框进行识别,得到所述待测图像的目标检测结果。

在本申请的一个实施例中,所述内部点池化模块可以包括:

第一池化单元,用于采用最大池化层对所述特征图像的指定内部点到所述特征图像的上边界之间的所有特征向量进行处理,得到其中特征值最大的第一特征向量;

第二池化单元,用于采用最大池化层对所述特征图像的指定内部点到所述特征图像的下边界之间的所有特征向量进行处理,得到其中特征值最大的第二特征向量;

第三池化单元,用于采用最大池化层对所述特征图像的指定内部点到所述特征图像的左边界之间的所有特征向量进行处理,得到其中特征值最大的第三特征向量;

第四池化单元,用于采用最大池化层对所述特征图像的指定内部点到所述特征图像的右边界之间的所有特征向量进行处理,得到其中特征值最大的第四特征向量;

特征向量叠加单元,用于将所述第一特征向量、所述第二特征向量、所述第三特征向量和所述第四特征向量相加,得到目标特征向量;

内部点热图确定单元,用于根据所述目标特征向量确定所述内部点热图。

在本申请的一个实施例中,所述位置点提取模块可以包括:

位置点提取单元,用于针对所述各个预设类别中的每个类别,分别从所述左上角点热图中提取属于该类别的物体检测框的左上角关键点的概率值最大的前k个位置点,从所述右下角点热图中提取属于该类别的物体检测框的右下角关键点的概率值最大的前k个位置点,以及从所述内部点热图中提取属于该类别的物体检测框的内部关键点的概率值最大的前k个位置点,k为正整数;

所述物体检测框构建模块可以包括:

物体检测框构建单元,用于针对所述各个预设类别中的每个类别,按照遍历的方式分别从所述左上角点热图中提取出的与该类别对应的k个位置点中选取一个位置点、从所述右上角点热图中提取出的与该类别对应的k个位置点中选取一个位置点以及从所述内部点热图中提取出的与该类别对应的k个位置点中选取一个位置点,得到该类别对应的所有位置点组合,并根据所述所有位置点组合中的有效位置点组合构建得到与该类别对应的所有物体检测框,其中,在所述有效位置点组合包含的3个位置点中,从所述左上角点热图中提取出的位置点处于从所述右下角点热图中提取出的位置点的左上方,从所述内部点热图中提取出的位置点处于从所述右下角点热图中提取出的位置点的左上方且处于从所述左上角点热图中提取出的位置点的右下方。

在本申请的一个实施例中,所述目标检测装置还可以包括:

中心区域确定模块,用于分别确定各个所述物体检测框的中心区域,所述中心区域为对应的物体检测框中包含中心位置点的预设大小的区域;

第一物体检测框去除模块,用于去除中心区域内不含从所述内部热点图中提取到的位置点的所述物体检测框。

进一步的,所述中心区域确定模块可以包括:

中心度计算单元,用于针对每个所述物体检测框,分别计算该物体检测框内的每个位置点的中心度,并将该物体检测框内中心度大于预设阈值的位置点所处的区域确定为该物体检测框的中心区域,其中,每个位置点的中心度根据该位置点距离该物体检测框的各个边界之间的长度确定。

进一步的,所述目标检测装置还可以包括:

第二物体检测框去除模块,用于若从所述内部热点图中提取到的任意一个位置点处于两个以上的物体检测框的中心区域内,则分别计算所述任意一个位置点在所述两个以上的物体检测框内的中心度,并将所述两个以上的物体检测框中所述任意一个位置点的中心度非最大的物体检测框去除。

在本申请的一个实施例中,所述物体检测框识别模块可以包括:

物体类别确定单元,用于针对每个所述物体检测框,将该物体检测框输入预设的多元分类器,得到该物体检测框对应的类别向量,并根据该类别向量确定该物体检测框所属的类别,其中,所述类别向量包含该物体检测框分别属于各个所述预设类别的概率值。

本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如图1表示的任意一种目标检测方法。

本申请实施例还提供一种计算机程序产品,当该计算机程序产品在终端设备上运行时,使得终端设备执行实现如图1表示的任意一种目标检测方法。

图5是本申请一实施例提供的终端设备的示意图。如图5所示,该实施例的终端设备5包括:处理器50、存储器51以及存储在所述存储器51中并可在所述处理器50上运行的计算机程序52。所述处理器50执行所述计算机程序52时实现上述各个目标检测方法的实施例中的步骤,例如图1所示的步骤101至106。或者,所述处理器50执行所述计算机程序52时实现上述各装置实施例中各模块/单元的功能,例如图4所示模块401至406的功能。

所述计算机程序52可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器51中,并由所述处理器50执行,以完成本申请。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序52在所述终端设备5中的执行过程。

所称处理器50可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

所述存储器51可以是所述终端设备5的内部存储单元,例如终端设备5的硬盘或内存。所述存储器51也可以是所述终端设备5的外部存储设备,例如所述终端设备5上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,所述存储器51还可以既包括所述终端设备5的内部存储单元也包括外部存储设备。所述存储器51用于存储所述计算机程序以及所述终端设备所需的其他程序和数据。所述存储器51还可以用于暂时地存储已经输出或者将要输出的数据。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

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

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。

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

在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括是电载波信号和电信信号。

以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。

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