基于局部最大值的候选目标检测方法与流程

文档序号:18108362发布日期:2019-07-06 11:49阅读:634来源:国知局
基于局部最大值的候选目标检测方法与流程

本发明涉及图像处理领域,特别是涉及图像中的目标检测方法。



背景技术:

图像提取过程中,在进行目标物体检测时,一种常用的做法是首先进行候选目标区域检测,粗略找出图像中潜在存在目标的区域,然后再将逐个区域的特征输入到分类和回归网络中,预测候选区域的类别,以及精细地调整检测框的位置。在该过程中,第一阶段的候选目标区域检测相当重要,该阶段输出的候选目标区域是第二个阶段分类和回归的基础。通常来说,该阶段的检测不仅需要保证很高的召回率,同时还需要比较高的精确度。

现有的基于深度学习的候选目标区域检测方法中,为了保证高召回率,对于rpn(regionproposalnetwork,候选区域检测网络)输出的响应图都是直接使用一个很低的阈值取出几千上万个候选框,然后再输入到第二个阶段进行分类和回归。这样的方式可以保证很高的召回率,但是代价是同时会输出更多不正确的候选框。这些错误的候选框会在模型训练的时候给第二个阶段的分类和回归带来很大的困扰,同时也会在模型用于预测的时候降低预测的速度。

图1和图2具体展示了现有技术的缺陷,如图1所示,使用现有技术提取候选框时,当使用的阈值较高(例如0.5)时,虽然可以得到精确的候选区域,但是同时也会丢失大量目标,造成低召回率的现象。而在图2中,当使用较低阈值(例如0.05)时,虽然可以保证高召回率,但是同时也会带来大量不正确的候选目标区域,为第二个阶段的分类和回归带来困扰,同时也会在模型用于预测的时候降低预测的速度。



技术实现要素:

本发明主要目的在于解决候选区域检测过程中,高召回率和高精确度不能兼得的矛盾。本发明提出根据rpn(regionproposalnetwork,候选区域检测网络)输出的分类响应图上的局部极大值来提取候选目标区域,而非现有技术采用的使用统一的全局阈值提取候选目标区域。因为rpn分类响应图上的局部极大值通常都能够很好的对应上某些具体目标,同时局部极大值点的数量相对使用全局阈值可以大大减少,使得该方法可以得到同时满足高召回率和高准确度的候选区域检测结果。相对于现有技术的方法通常会产生几千上万个候选框,本发明提出的方法通常只会产生几十上百个候选框,得到非常精确的候选区域检测结果。

本发明的目的在于提供一种基于局部最大值的候选目标检测方法,具体技术方案如下:

第一方面,本发明实施例提供了一种基于局部最大值的候选目标检测方法,该方法至少包括:

步骤s1:对输入的目标图像进行目标特征图提取;

步骤s2:以提取的目标特征图作为rpn的输入,输出分类响应图;

步骤s3:在分类响应图上检测局部极大值点;

步骤s4:以局部极大值点对应的锚点产生多个候选框作为潜在存在目标的候选区域。

第二方面,本发明实施例提供了一种基于局部最大值的候选目标检测设备,包括:

提取装置,用于对输入的目标图像进行目标特征图提取;

分类响应图输出装置,用于以提取的目标特征图作为rpn的输入,输出分类响应图;

局部极大值点获取装置,用于在分类响应图上检测局部极大值点;

候选区域确定装置,用于以局部极大值点对应的锚点产生多个候选框作为潜在存在目标的候选区域。

第三方面,本发明实施例提供了一种基于局部极大值的候选目标检测装置,包括:

处理器;

用于存储处理器可执行指令的存储器;

其中,处理器被配置为:

对输入的目标图像进行目标特征图提取;

以提取的目标特征图作为rpn的输入,输出分类响应图;

在分类响应图上检测局部极大值点;

以局部极大值点对应的锚点产生多个候选框作为潜在存在目标的候选区域。

第四方面,本发明实施例提供了一种存储在计算机可读介质上并且可加载到数字计算机的内部存储器中的计算机程序,包括软件代码部分,当所述程序在计算机上运行时,所述软件代码部分用于执行:

对输入的目标图像进行目标特征图提取;

以提取的目标特征图作为rpn的输入,输出分类响应图;

在分类响应图上检测局部极大值点;

以局部极大值点对应的锚点产生多个候选框作为潜在存在目标的候选区域。

本发明通过使用rpn输出的分类响应图中的局部极大值而非全局统一的阈值来产生候选目标区域,可以使用非常少的候选目标区域达到非常高的召回率,从而能够获得同时具有高召回率和高准确度的候选区域。不仅可以用来提升检测模型性能,同时对于速度的提升也有帮助。

附图说明

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

图1(a)示出了现有技术中使用高阈值时的缺陷;

图1(b)示出了现有技术中使用低阈值时的缺陷;

图2(a)示出了按照现有技术得到的候选区域;

图2(b)示出了按照本发明方法获得的rpn分类响应图;

图2(c)示出了按照本发明方法获得的候选区域;

图3示出了本发明基于局部极大值的候选目标检测方法;

图4(a)示出了按照本发明方法的效果图;

图4(b)示出了按照本发明方法的rpn分类响应图;

图5为计算响应值图上的局部极大值点的示意图。

具体实施方式

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

本发明通过使用rpn输出的分类响应值图中的局部极大值而非全局统一的阈值来产生候选目标区域,可以使用非常少的候选目标区域达到非常高的召回率,从而能够获得同时具有高召回率和高准确度的候选区域。不仅可以用来提升检测模型性能,同时对于速度的提升也有帮助。

如图2所示,其为本发明提出的基于局部极大值的候选目标检测方法和现有候选目标检测方法获得的候选区域的比较。图2(a)中的框标注为按照现有方法得到的候选目标区域,其中4号框和5号框是典型的错误候选框;图2(b)为按照本发明的方法获得的rpn分类响应图,其中,图中标出了3个局部极大值点;图2(c)中的框标注为按照本发明提出的方法得到的候选区域,其中,三个框标注为图2(b)中的三个局部极大值点产生的候选区域。

本方法用于目标检测中的候选目标检测阶段。参考图3所示,本发明实施例提供了一种基于局部极大值的候选目标检测方法,该方法包括如下步骤:

步骤s1:对输入的目标图像进行目标特征图提取。

进行图像目标检测前,一般需要先对输入的目标图像进行特征图的提取,将其转换为目标特征图。目前业界一般采用卷积神经网络(cnn)实现图像特征图的提取,例如采用resnet18,resnet50,resnet101,mobilenetv1,mobilenetv2,vggnet等深度卷积网络。

当前主流的深度卷积网络大多都由5大模块组成,从浅层向深层过度时,每个模块的分辨率逐渐减小,同时表达能力逐渐上升。从第一个模块到第5个模块对应的特征图的分辨率从相对于输入目标图像的1/2降低到1/32。而对于目标检测任务,通常需要多个尺度的特征图,同时需要保证每个尺度的特征图具有较高的表达能力,其中最大的尺度通常需要分辨率相对于输入目标图像1/8或1/4的特征图。

因为上述提到的网络均是分类网络,使用这些网络用于目标检测任务时需要对其网络结构进行改造,使得网络可以输出同时兼具高分辨率和高表达能力的特征图。最常用的方式是使用fpn(featurepyramidnetwork,特征金字塔网络)对其结构进行改造,也可以使用膨胀卷积进行改造。改造之后的网络对于一副输入的目标图像可以输出一副特征图或特征金字塔(即多幅特征图)。

使用fpn改造网络结构时需要将深层模块输出的特征图通过插值或是反卷积的方式逐级放大,并逐级与对应尺度的特征图以相加或是使用1*1卷积的方式融合到一起。最终得到相对于输入图像1/8或1/4的特征图。其他尺度的特征图可以根据该特征图逐级降采样得到。

当然,以上方式仅是例举,本发明并不限于上述的网络,也不限于fpn或膨胀卷积进行改造,所使用的网络只要输出的特征图能够满足分比例和表达能力的要求即可。

步骤s2:以提取的目标特征图作为rpn的输入,输出分类响应图。

在本步骤中,基于步骤1提取到的目标特征图,利用rpn(regionproposalnetwork,候选区域检测网络)来对目标特征图上的每个像素位置进行分类,从而判断每个位置是否存在潜在目标。因此rpn会输出一个和目标特征图相同空间分辨率的分类置信度图。该分类置信度图即是分类响应图。

为了解决目标检测任务当中的多尺度问题,以及为了更好的检测各种形状的目标,在实际使用的rpn中,在目标特征图的每个位置通常会使用多个锚点来检测目标,即在rpn中对于每个像素位置使用不同尺度、不同长宽比例的锚点。通过在一副目标特征图上的每一个像素位置都设置多个锚点,因此可对应于多种可能的目标尺寸。每个锚点对应的输出由一层或多层卷积核进行计算,卷积核的中心对应于锚点的中心。因此rpn实际输出的分类响应图是一个和输入的目标特征图具有相同空间分辨率的多通道三维张量,不同的通道对应于不同类型的锚点。

在一个具体的实施例中,可以参考的设置为:锚点的长宽比设置为(1:1,1:2,2:1)三种,同时在特征图上的每一个像素位置,对每一种长宽比还可以设置3种不同的尺度(2^0,2^{1/3},2^{2/3})。因此,在该设置下,每一个像素位置会产生9种不同的锚点。

在网络前向传播的过程中,每个锚点会预测在锚点位置是否有与之尺寸相匹配的物体出现,预测的置信度在(0,1)之间。每一个锚点在每个像素位置会输出一个是否有目标的置信度,同时也会回归出假设有目标在锚点附近的情况下物体的外接矩形边框坐标相对于该锚点预设的长宽边长的偏移。对于一幅目标特征图的输入,rpn在每个锚点位置输出的置信度构成的三维张量(w*h*c)即是下一步计算局部极大值点需要使用的分类响应图。

可选地,在执行该步骤s2之前,还可包括步骤s21:准备目标检测训练数据集。

本发明针对于基于深度神经网络的目标检测模型,参与模型的训练以及预测阶段。模型的训练需要预先准备在和预测场景相符场景下的标注数据用于训练。训练数据集由图片和对应的标注组成。对于每一张图片的标注,需要标注人员使用矩形框完整框出感兴趣的目标,并给出其类别。在模型训练时,标注的矩形框的左上角以及右下角顶点,和对应的类别标签会作为训练的真值,用于模型的优化。

步骤s3:在分类响应图上检测局部极大值点。

在步骤2中,rpn输出的分类响应图实际是一个三维的张量,而本发明使用的局部极大值点即是该三维张量中的局部极大值点。如图2(b)和图4(b)所示,其中示出了按照本发明的方法获得的rpn分类响应图,其中,图中标出了多个局部极大值点。该局部极大值点的计算通过两次求极大值操作完成,一次是求通道维度的极大值(即在每个像素位置对c维度求极大值),第二次是求二维平面上空间维度的极大值(即在生成的(w*h)的响应值图上再求空间上的局部极大值)。

具体地,根据步骤2输出的分类响应图,在该图的每个位置有多个锚点对应于多种可能的目标尺寸。考虑到图像的每个位置在特定尺度下只可能出现一个目标,首先对分类响应图在通道维度上取极大值,并记录该极大值,每个极大值位置对应得到一张和特征图大小相等,一通道的响应值图,该响应值图中的每个像素位置的响应值大小代表了对应位置出现目标的概率。在该响应值图的每个像素位置计算当前位置和上下左右4邻域像素的响应值的相对大小。响应值同时大于4邻域中的任何一个像素的点即是这里需要寻找的局部极大值点。在该过程中,需要记录每一个局部极大值点的坐标,以对应到具体的锚点。如图5所示,图中用叉标记的锚点对应于一个局部极大值点,当且仅当它的响应值大于用圆点标记的所有锚点的响应值。

步骤4:以局部极大值点对应的锚点产生多个候选框作为潜在存在目标的候选区域。

通过步骤3产生的局部极大值点以及其对应的坐标可以定位到具体的锚点。将通过该方法获得的锚点以及该锚点输出的检测框回归结果映射到原图可以得到多个候选框,该多个候选框即作为潜在存在目标的候选区域。通过该方法获得的精确的候选目标将为进一步更好的分类和回归做准备。

该分类和回归的具体方式是本领域公知的,在此不做具体限定。

可选地,步骤4生成的候选区域可经过池化层进行池化,例如通过roi-pooling层进行池化,池化的具体方式是本领域公知的,在此不做具体限定。

该池化方式,发明人可根据需要确定是否进行细化。

下述为本发明设备实施例,可以用于执行本发明的方法实施例。

一种基于局部极大值的候选目标检测设备,包括,

提取装置,用于对输入的目标图像进行目标特征图提取;

分类响应图输出装置,用于以提取的目标特征图作为rpn的输入,输出分类响应图;

局部极大值点获取装置,用于在分类响应图上检测局部极大值点;

候选区域确定装置,用于以局部极大值点对应的锚点产生多个候选框作为潜在存在目标的候选区域。

提取装置,用于对输入的目标图像进行目标特征图提取;

进行图像目标检测前,一般需要先对输入的目标图像进行特征图的提取,将其转换为目标特征图。目前业界一般采用卷积神经网络(cnn)实现图像特征图的提取,例如采用resnet18,resnet50,resnet101,mobilenetv1,mobilenetv2,vggnet等深度卷积网络。

当前主流的深度卷积网络大多都由5大模块组成,从浅层向深层过度时,每个模块的分辨率逐渐减小,同时表达能力逐渐上升。从第一个模块到第5个模块对应的特征图的分辨率从相对于输入目标图像的1/2降低到1/32。而对于目标检测任务,通常需要多个尺度的特征图,同时需要保证每个尺度的特征图具有较高的表达能力,其中最大的尺度通常需要分辨率相对于输入目标图像1/8或1/4的特征图。

因为上述提到的网络均是分类网络,使用这些网络用于目标检测任务时需要对其网络结构进行改造,使得网络可以输出同时兼具高分辨率和高表达能力的特征图。最常用的方式是使用fpn(featurepyramidnetwork,特征金字塔网络)对其结构进行改造,也可以使用膨胀卷积进行改造。改造之后的网络对于一副输入的目标图像可以输出一副特征图或特征金字塔(即多幅特征图)。

使用fpn改造网络结构时需要将深层模块输出的特征图通过插值或是反卷积的方式逐级放大,并逐级与对应尺度的特征图以相加或是使用1*1卷积的方式融合到一起。最终得到相对于输入图像1/8或1/4的特征图。其他尺度的特征图可以根据该特征图逐级降采样得到。

当然,以上方式仅是例举,本发明并不限于上述的网络,也不限于fpn或膨胀卷积进行改造,所使用的网络只要输出的特征图能够满足分比例和表达能力的要求即可。

分类响应图输出装置,用于以提取的目标特征图作为rpn的输入,输出分类响应图;

基于提取装置提取到的目标特征图,利用rpn(regionproposalnetwork,候选区域检测网络)来对目标特征图上的每个像素位置进行分类,从而判断每个位置是否存在潜在目标。因此rpn会输出一个和目标特征图相同空间分辨率的分类置信度图。该分类置信度图即是分类响应图。

为了解决目标检测任务当中的多尺度问题,以及为了更好的检测各种形状的目标,在实际使用的rpn中,在目标特征图的每个位置通常会使用多个锚点来检测目标,即在rpn中对于每个像素位置使用不同尺度、不同长宽比例的锚点。通过在一副目标特征图上的每一个像素位置都设置多个锚点,因此可对应于多种可能的目标尺寸。每个锚点对应的输出由一层或多层卷积核进行计算,卷积核的中心对应于锚点的中心。因此rpn实际输出的分类响应图是一个和输入的目标特征图具有相同空间分辨率的多通道三维张量,不同的通道对应于不同类型的锚点。

在一个具体的实施例中,可以参考的设置为:锚点的长宽比设置为(1:1,1:2,2:1)三种,同时在特征图上的每一个像素位置,对每一种长宽比还可以设置3种不同的尺度(2^0,2^{1/3},2^{2/3})。因此,在该设置下,每一个像素位置会产生9种不同的锚点。

在网络前向传播的过程中,每个锚点会预测在锚点位置是否有与之尺寸相匹配的物体出现,预测的置信度在(0,1)之间。每一个锚点在每个像素位置会输出一个是否有目标的置信度,同时也会回归出假设有目标在锚点附近的情况下物体的外接矩形边框坐标相对于该锚点预设的长宽边长的偏移。对于一幅目标特征图的输入,rpn在每个锚点位置输出的置信度构成的三维张量(w*h*c)即是下一步计算局部极大值点需要使用的分类响应图。

可选地,该装置还包括,训练装置,用于准备目标检测训练数据集。

本发明针对于基于深度神经网络的目标检测模型,参与模型的训练以及预测阶段。模型的训练需要预先准备在和预测场景相符场景下的标注数据用于训练。训练数据集由图片和对应的标注组成。对于每一张图片的标注,需要标注人员使用矩形框完整框出感兴趣的目标,并给出其类别。在模型训练时,标注的矩形框的左上角以及右下角顶点,和对应的类别标签会作为训练的真值,用于模型的优化。

训练装置通常包括由多块gpu构成的gpu服务器,以保证模型的快速训练。

局部极大值点获取装置,用于在分类响应图上检测局部极大值点;

在局部极大值点获取装置中,rpn输出的分类响应图实际是一个三维的张量,而本发明使用的局部极大值点即是该三维张量中的局部极大值点。如图2(b)和图4(b)所示,其中示出了按照本发明的方法获得的rpn分类响应图,其中,图中标出了多个局部极大值点。该局部极大值点的计算通过两次求极大值操作完成,一次是求通道维度的极大值(即在每个像素位置对c维度求极大值),第二次是求二维平面上空间维度的极大值(即在生成的(w*h)的响应值图上再求空间上的局部极大值)。

具体地,根据局部极大值点获取装置输出的分类响应图,在该图的每个位置有多个锚点对应于多种可能的目标尺寸。考虑到图像的每个位置在特定尺度下只可能出现一个目标,首先对分类响应图在通道维度上取极大值,并记录该极大值,每个极大值位置对应得到一张和特征图大小相等,一通道的响应值图,该响应值图中的每个像素位置的响应值大小代表了对应位置出现目标的概率。在该响应值图的每个像素位置计算当前位置和上下左右4邻域像素的响应值的相对大小。响应值同时大于4邻域中的任何一个像素的点即是这里需要寻找的局部极大值点。在该过程中,需要记录每一个局部极大值点的坐标,以对应到具体的锚点。如图5所示,图中用叉标记的锚点对应于一个局部极大值点,当且仅当它的响应值大于用圆点标记的所有锚点的响应值。

候选区域确定装置,用于以局部极大值点对应的锚点产生多个候选框作为潜在存在目标的候选区域。

通过局部极大值点获取装置产生的局部极大值点以及其对应的坐标可以定位到具体的锚点。将通过该方法获得的锚点以及该锚点输出的检测框回归结果映射到原图可以得到多个候选框,该多个候选框即作为潜在存在目标的候选区域。通过该方法获得的精确的候选目标将为进一步更好的分类和回归做准备。

该分类和回归的具体方式是本领域公知的,在此不做具体限定。

可选地,候选区域确定装置生成的候选区域可经过池化层进行池化,例如通过roi-pooling层进行池化,池化的具体方式是本领域公知的,在此不做具体限定。

该池化方式,发明人可根据需要确定是否进行细化。

根据本公开实施例的第三方面,提供一种基于局部极大值的候选目标检测装置,包括:

处理器;

用于存储处理器可执行指令的存储器;

其中,处理器被配置为:

对输入的目标图像进行目标特征图提取;

以提取的目标特征图作为rpn的输入,输出分类响应图;

在分类响应图上检测局部极大值点;

以局部极大值点对应的锚点产生多个候选框作为潜在存在目标的候选区域。

11.一种存储在计算机可读介质上并且可加载到数字计算机的内部存储器中的计算机程序,包括软件代码部分,当所述程序在计算机上运行时,所述软件代码部分用于执行根据权利要求1至9中任一所述的方法。

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

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

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

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

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