目标检测方法、装置、计算机设备和存储介质
文献发布时间:2023-06-19 11:57:35
技术领域
本申请涉及计算机技术领域,特别是涉及一种目标检测方法、装置、计算机设备和存储介质。
背景技术
随着计算机技术的发展,基于计算机视觉的目标检测技术逐渐发展起来,并广泛应用于各种场景,比如工牌检测、人脸检测、车辆检测及车辆损伤检测等,给人们生活带来了诸多便捷。由此,如何进行目标检测是值得关注的问题。
目前,通常采用YOLO与SSD等目标检测方法来检测目标图片中的目标。但是,现有的目标检测方法对小目标的检测准确性较低,从而存在检测准确性低的问题。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高检测准确性的目标检测方法、装置、计算机设备和存储介质。
一种目标检测方法,所述方法包括:
构建基于至少两次的多尺度特征融合的深度神经网络模型;所述至少两次的多尺度特征融合并行执行;所述多尺度特征融合是指将低层特征图与高层特征图,按照预设特征融合方式进行融合;
基于已标注的训练数据集对已构建的深度神经网络模型进行训练,得到已训练好的目标检测模型;
当获取到待检测的目标图片时,通过所述目标检测模型对所述目标图片进行检测得到检测结果;
根据所述检测结果确定所述目标图片中的目标。
在其中一个实施例中,所述多尺度特征融合的步骤,包括:
对低层特征图进行卷积得到具有预设通道数的第一特征图;
对高层特征图进行反卷积得到与所述低层特征图尺度一致的第二特征图;
将所述第一特征图与所述第二特征图进行通道叠加,得到第三特征图;
对所述第三特征图进行卷积得到特征融合后的融合特征图。
在其中一个实施例中,所述基于已标注的训练数据集对已构建的深度神经网络模型进行训练,得到已训练好的目标检测模型,包括:
获取已标注的训练数据集;
从尚未用于模型训练的训练数据集中选取目标训练数据,通过待训练的深度神经网络模型对所述目标训练数据进行预测,得到预测结果;
根据所述预测结果与所述目标训练数据中的标注结果,按照预设的定位损失函数与类别损失函数确定综合损失值;
按照所述综合损失值反向调整所述深度神经网络模型的参数,并返回至所述从尚未用于模型训练的训练数据集中选取目标训练数据的步骤继续执行,直至满足迭代停止条件,得到已训练好的目标检测模型。
在其中一个实施例中,所述通过所述目标检测模型对所述目标图片进行检测得到检测结果,包括:
通过所述目标检测模型对所述目标图片进行检测,得到多个目标尺度的目标特征图;
通过所述目标检测模型,将每个目标特征图分别与相应卷积核进行卷积,得到每个目标特征图对应的检测框;所述检测框的尺度基于相应目标特征图动态确定;
通过所述目标检测模型,根据各所述目标特征图对应的检测框确定所述目标图片对应的检测结果。
在其中一个实施例中,所述检测结果包括所述目标图片对应的至少一个目标检测框;所述根据所述检测结果确定所述目标图片中的目标,包括:
从所述目标图片中提取出与每个目标检测框对应的子图片;
通过预配置的分类器对每个子图片进行识别,得到相应目标检测框的类别;
根据所述目标检测框的类别确定所述目标图片中的目标。
在其中一个实施例中,所述通过所述目标检测模型对所述目标图片进行检测得到检测结果之前,所述方法还包括:
将所述目标图片的尺度调整为预设尺度;所述预设尺度大于所述深度神经网络模型对应的标准尺度。
一种目标检测装置,所述装置包括:
构建模块,用于构建基于至少两次的多尺度特征融合的深度神经网络模型;所述至少两次的多尺度特征融合并行执行;所述多尺度特征融合是指将低层特征图与高层特征图,按照预设特征融合方式进行融合;
训练模块,用于基于已标注的训练数据集对已构建的深度神经网络模型进行训练,得到已训练好的目标检测模型;
检测模块,用于当获取到待检测的目标图片时,通过所述目标检测模型对所述目标图片进行检测得到检测结果;
确定模块,用于根据所述检测结果确定所述目标图片中的目标。
在其中一个实施例中,所述构建模块,还用于对低层特征图进行卷积得到具有预设通道数的第一特征图;对高层特征图进行反卷积得到与所述低层特征图尺度一致的第二特征图;将所述第一特征图与所述第二特征图进行通道叠加,得到第三特征图;对所述第三特征图进行卷积得到特征融合后的融合特征图。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述各个实施例中所述的目标检测方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述各个实施例中所述的目标检测方法的步骤。
上述目标检测方法、装置、计算机设备和存储介质,预先构建基于至少两次的多尺度特征融合的深度神经网络模型,该至少两次的多尺度特征融合并行执行,且每次多尺度特征融合是将低层特征图与高层特征图按照预设特征融合方式进行融合。基于训练数据集对已构建的深度神经网络模型进行训练,得到已训练好的目标检测模型,这样,通过该目标检测模型对目标图片进行检测时,能够将多于一个的低层特征图分别与相应的高层特征图进行特征融合,并基于所得到的融合特征图确定目标图片对应的检测结果,进而根据检测结果确定目标图片中的目标,低层特征具有较高的分辨率,而高层特征具有较为丰富的语义信息,由此,将低层特征图与高层特征图进行特征融合,能够提高目标检测的检测准确性。而并行的执行至少两次的多尺度特征融合操作,能够在提高检测准确性的同时提高检测效率。
附图说明
图1为一个实施例中目标检测方法的应用场景图;
图2为一个实施例中目标检测方法的流程示意图;
图3为另一个实施例中目标检测方法的流程示意图;
图4为一个实施例中已构建的基于多尺度特征融合的深度神经网络模型的结构示意图;
图5为一个实施例中多尺度特征融合的原理示意图
图6为一个实施例中目标检测装置的结构框图;
图7为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的目标检测方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。服务器104构建至少两次的多尺度特征融合的深度神经网络,该至少两次的多尺度特征融合并行执行,且每次多尺度特征融合是将低层特征图与高层特征图,按照预设特征融合方式进行融合。服务器104基于已标注的训练数据集对已构建的深度神经网络模型进行训练,得到已训练好的目标检测模型,并在获取到待检测的目标图片时,通过目标检测模型对目标图片进行检测得到检测结果,进而根据检测结果确定目标图片中的目标。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,如图2所示,提供了一种目标检测方法,以该方法应用于图1中的服务器为例进行说明,包括以下步骤:
S202,构建基于至少两次的多尺度特征融合的深度神经网络模型;至少两次的多尺度特征融合并行执行;多尺度特征融合是指将低层特征图与高层特征图,按照预设特征融合方式进行融合。
其中,尺度可理解为维度,多尺度是指不同的维度,比如32*32与1*1为不同的尺度或维度。多尺度特征融合是指将不同尺度或维度的特征图中的特征进行融合。预设特征融合方式是指预先设定的将低层特征图与高层特征图进行融合的方式,比如将低层特征图与高层特征图调整为相同尺度的特征图,并将调整尺度后的特征图进行特征融合。可以理解,低层特征图与高层特征图是相对概念,以高层特征图为基准,层级相较于基准低的特征图均为该高层特征图对应的低层特征图。
具体地,服务器构建基于至少两次的多尺度特征融合的深度神经网络模型。在所构建的深度神经网络模型中,该至少两次的多尺度特征融合并行的执行。每次多尺度特征融合是指将预设的低层特征图与相应的高层特征图,按照预设特征融合方式进行融合。可以理解,任意两次多尺度特征融合所涉及的特征图不完全一致。
在一个实施例中,用于多尺度特征融合的低层特征图与高层特征图各自对应的层级越接近,则该低层特征图与高层特征图之间的冗余度越高;相应地,低层特征图与高层特征图各自对应的层级越远,则该低层特征图与高层特征图之间的冗余度越低。由此,可根据实际需求选取用于多尺度特征融合的低层特征图与高层特征图,在此不作具体限定。比如,在整个深度神经网络模型中,可以选择层级相对较高的特征图作为高层特征图,将层级相对较低的特征图作为低层特征图。还比如,对于至少两次的多尺度特征融合,若各次多尺度特征融合中的高层特征图均相同,比如将最高层级的特征图作为高层特征图,可按照任意相邻两幅低层特征图之间的层级差相等的方式,选取各次多尺度特征融合中的低层特征图。可以理解,多尺度特征融合的次数越高,所需的计算机资源与所耗费的时间越多,而随着多尺度特征融合的次数不断增加,检测效果趋于稳定,也就是检测效果不会随着多尺度特征融合的次数增加而不断显著增加。由此,多尺度特征融合的次数也不会过大。在一个实施例中,该至少两次的多尺度特征融合所涉及的高层特征图一致,而所涉及的低层特征图互不相同。
在一个实施例中,多尺度特征融合的步骤,包括:对低层特征图进行卷积得到具有预设通道数的第一特征图;对高层特征图进行反卷积得到与低层特征图尺度一致的第二特征图;将第一特征图与第二特征图进行通道叠加,得到第三特征图;对第三特征图进行卷积得到特征融合后的融合特征图。
其中,预设通道数是指预先设定的通道数,该预设通道数由与低层特征图进行卷积的卷积核确定,比如卷积核为1*1*128,则由该卷积核确定的预设通道数为128。预设通道数具体可与参与多尺度特征融合的高层特征图对应的通道数一致。
具体地,对于每次多尺度特征融合,服务器获取该次多尺度特征融合所涉及的低层特征图与高层特征图,并确定用于对低层特征图进行卷积的第一卷积核,以及用于对高层特征图进行反卷积的第二卷积核。服务器将低层特征图与第一卷积核进行卷积,得到具有预设通道数的第一特征图,并将高层特征图按照相应第二卷积核进行反卷积,得到与低层特征图尺度一致的第二特征图。服务器对第一特征图与第二特征图在通道上进行叠加操作,得到第三特征图。服务器确定用于对第一特征图与第二特征图进行特征融合的第三卷积核,并将第三卷积核与第三特征图进行卷积,得到特征融合后的融合特征图。
在一个实施例中,服务器确定多于一组的待融合特征图,每组待融合特征图包括一幅低层特征图与一幅高层特征图。服务器按照上述多尺度特征融合步骤,分别对每组待融合特征图进行特征融合,得到多于一幅的融合特征图。
在一个实施例中,通过多尺度特征融合在深度神经网络模型中增加特征融合层,将多尺度特征融合所得到的融合特征图作为该特征融合层对应的特征图。
S204,基于已标注的训练数据集对已构建的深度神经网络模型进行训练,得到已训练好的目标检测模型。
其中,训练数据集是用来训练已构建的深度神经网络模型的样本集。训练数据集包括作为输入特征的图片,以及对各图片中的目标进行标注所得到的标注结果。
具体地,服务器获取已标注的训练数据集,将训练数据集中的图片作为已构建的深度神经网络模型的输入特征,将训练数据集中相应的标注结果作为期望的输出特征,对该已构建的深度神经网络模型进行训练,得到已训练好的目标检测模型,以便于基于该目标检测模型对目标图片中的目标进行检测。
在一个实施例中,服务器将训练数据集中的每幅图片作为输入特征分别输入深度神经网络模型进行预测,得到预测结果,将预测结果与训练数据集中相应的标注结果进行比较,以根据比较结果动态调整该深度神经网络模型的参数,直至符合迭代停止条件时,停止迭代训练过程,并将通过迭代训练得到的深度神经网络模型作为已训练好的目标检测模型。
在一个实施例中,以目标为工牌和/或工牌绳为例,已标注的训练数据集中包括图片,以及在各图片中标注出工牌和/或工牌绳的标注结果。
在一个实施例中,步骤S204包括:获取已标注的训练数据集;从尚未用于模型训练的训练数据集中选取目标训练数据,通过待训练的深度神经网络模型对目标训练数据进行预测,得到预测结果;根据预测结果与目标训练数据中的标注结果,按照预设的定位损失函数与类别损失函数确定综合损失值;按照综合损失值反向调整深度神经网络模型的参数,并返回至从尚未用于模型训练的训练数据集中选取目标训练数据的步骤继续执行,直至满足迭代停止条件,得到已训练好的目标检测模型。
具体地,服务器获取已标注的训练数据集,并基于所获取到的训练数据集对已构建的深度神经网络模型进行训练,得到已训练好的目标检测模型。具体的训练过程如下:服务器从尚未用于模型训练的训练数据集中选取目标训练数据,将所选取出的目标训练数据作为输入特征输入待训练的深度神经网络模型进行预测,得到相应的预测结果;服务器将预测结果与训练数据集中相应的标注结果,分别代入预设的定位损失函数得到定位损失值,将该预测结果与标注结果分别代入预设的类别损失函数得到类别损失值,并根据定位损失值与类别损失值得到相应的综合损失值;服务器按照所得到的综合损失值反向调整深度神经网络模型的参数,并返回至从尚未用于模型训练的训练数据集中选取目标训练数据的步骤继续执行,直至满足迭代停止条件时,停止迭代训练过程,得到已训练好的目标检测模型。
迭代停止条件是停止迭代训练过程的判断依据或条件,比如,训练数据集中的每个训练数据均用于模型训练,或者,迭代次数大于或等于迭代阈值,或者,综合损失值小于或等于预设的损失值阈值等。
在一个实施例中,当初始进行模型训练时,将已构建的深度神经网络模型作为待训练的深度神经网络模型,并直接从所获取到的训练数据集中选取目标训练数据。在后续的模型训练过程中,将动态调整参数后的深度神经网络模型作为待训练的深度神经网络模型。在深度神经网络模型的迭代训练过程中,迭代地从训练数据集中选取尚未用于模型训练的训练数据,作为目标训练数据,并基于所选取出的目标训练数据按照上述训练方式,对待训练的深度神经网络模型进行模型训练。
在一个实施例中,由预设的定位损失函数与类别损失函数确定综合损失函数。综合损失函数具体可如下所示:
定位损失函数具体可如下所示:
类别损失函数具体可如下所示:
其中,N表示预测框的数量,若N为0,则综合损失值为0,L
在一个实施例中,服务器采用随机梯度法对已构建的深度神经网络模型进行迭代训练。其中,学习率预设为0.0001,迭代次数预设为10万次。
S206,当获取到待检测的目标图片时,通过目标检测模型对目标图片进行检测得到检测结果。
具体地,服务器获取待检测的目标图片,当获取到待检测的目标图片时,将所获取到的目标图片输入已训练好的目标检测模型中,通过该目标检测模型对目标图片进行检测得到相应的检测结果。
在一个实施例中,通过目标检测模型对目标图片进行检测得到检测结果,包括:通过目标检测模型对目标图片进行检测,得到多个目标尺度的目标特征图;通过目标检测模型,将每个目标特征图分别与相应卷积核进行卷积,得到每个目标特征图对应的检测框;检测框的尺度基于相应目标特征图动态确定;通过目标检测模型,根据各目标特征图对应的检测框确定目标图片对应的检测结果。
具体地,服务器通过已训练好的目标检测模型对待检测的目标图片进行目标检测的步骤,具体可包括:通过目标检测模型中的各个卷积层依次对目标图片进行特征提取,得到各卷积层对应的特征图,选取多于一个的卷积层对应的特征图,将该多于一个的特征图作为低层特征图,并选取层级高于所选取出的卷积层的卷积层所对应的特征图作为高层特征图,将每个低层特征图分别与相应的高层特征图进行多尺度特征融合,得到相应的融合特征图,从而能够得到多于一个的目标尺度的融合特征图,并将该多于一个的目标尺度的融合特征图确定为目标特征图;通过目标检测模型确定每个目标特征图对应的卷积核与检测框的尺度,并将每个目标特征图与相应的卷积核进行卷积,得到每个目标特征图对应的检测框,将各目标特征图对应的检测框进行比较,根据比较结果确定目标图片对应的检测结果。
在一个实施例中,服务器通过目标检测模型,将按照上述方式选取出的各低层特征图与高层特征图,以及通过至少两次的多尺度特征融合得到的融合特征图作为目标特征图。
在一个实施例中,服务器通过目标检测模型对目标图片进行检测的过程中,用于至少两次的多尺度特征融合的低层特征图与高层特征图各自对应的卷积层,以及各目标特征图对应的目标特征层,是在构建深度神经网络模型时设定的。各目标特征图对应的检测框的尺度也是在深度神经网络模型的训练过程中优化得到的。
在一个实施例中,在训练深度神经网络模型的过程中,服务器基于已构建的深度神经网络模型预先确定多个目标特征层,以及每个目标特征层所对应的特征图的尺度,并根据该多个目标特征层确定每个目标特征层对应的特征图所对应的默认框的尺度,进而通过迭代训练不断优化每个目标特征层对应的默认框的尺度,将迭代停止时优化得到的默认框的尺度,确定为相应目标特征层对应的目标特征图所对应的检测框的尺度。可以理解,相同尺度的特征图所对应的默认框的尺度相同。由此,对于相同尺度的特征图,可动态计算一次默认框的尺度,而无需针对每个特征图分别计算。服务器具体可按照如下映射关系确定每个特征图对应的默认框的尺度。
其中,m表示尺度互不相同的特征图的数量,k表示该m个特征图中的第k个特征图,Smin与Smax分别表示最低层的默认框的尺度和最高层的默认框的尺度,a
在一个实施例中,根据目标特征图所处的目标特征层动态调整该目标特征图对应的检测框的尺度,使得检测框能够覆盖足够小的目标,能够提高目标检测的准确性。
在一个实施例中,用于对目标特征图进行卷积的卷积核可表示为3*3*(检测框数量*(类别数+4)),其中,检测框数量是指每个目标特征图对应的检测框的数量,类别数是指每个检测框的类别的可能性数量。其中,3*3表示卷积核的尺度,(检测框数量*(类别数+4))表示卷积核的通道数,检测框数量是指针对目标特征图中的每个像素点所需预测的检测框的数量,而每个检测框对应有四个坐标点与相应的类别数,根据四个坐标点与相应类别数能够确定一个检测框,由此,(检测框数量*(类别数+4))可理解为针对目标特征图中的每个像素点所需计算的数值总数。对目标特征图中各个像素点对应的检测框进行合并与去重处理,能够得到该目标特征图对应的检测框数量的检测框。值得说明的是,本申请中涉及的符号“*”表征乘法运算。
当卷积核中的类别数为0时,将卷积核与相应目标特征图进行卷积,得到该目标特征图对应的检测框与每个检测框对应的位置置信度。当卷积核中的类别数大于0时,将卷积核与相应目标特征图进行卷积,得到该目标特征图对应的检测框与每个检测框对应的位置置信度,以及每个检测框的类别与相应的类别置信度。
在一个实施例中,服务器将各目标特征图对应的检测框确定目标图片对应的检测框,得到目标图片对应的多个检测框。服务器根据该多个检测框与每个检测框对应的位置置信度,按照非极大值抑制方式从该多个检测框中筛选出至少一个目标检测框,根据筛选出的目标检测框得到目标图片对应的检测结果。可以理解,该检测结果中包括目标检测框,但未包括目标检测框的类别。
通过非极大值抑制方式筛选目标检测框的步骤,具体可包括:服务器从目标图片对应的多个检测框中选取位置置信度最大的候选检测框,从该多个检测框中剔除与当前选取的候选检测框的重合度大于或等于重合度阈值的检测框,从剩下的、且尚未被选取的检测框中选取位置置信度最大的候选检测框,并针对当前选取的候选检测框继续执行上述剔除检测框的相关步骤,直至选取出所有的候选检测框,将所选取出的候选检测框确定为目标图片对应的目标检测框,并确定包括各目标检测框的检测结果。重合度阈值比如0.8。
在一个实施例中,服务器将所选取的候选检测框中,位置置信度大于或等于置信度阈值的候选检测框确定为目标图片对应的目标检测框,并根据目标检测框确定相应的检测结果。可以理解,检测结果包括每个目标检测框对应的中心坐标、高度与宽度等参数值,基于参数值即可在目标图片中确定相应目标检测框。置信度阈值比如0.6。
在一个实施例中,服务器通过目标检测模型,按照上述方式从目标图片对应的多个检测框中确定出至少一个候选检测框后,根据每个候选检测框的类别与相应的类别置信度,从所确定的候选检测框中选取目标检测框,根据选取的目标检测框得到相应的检测结果。服务器具体可通过目标检测模型,从候选检测框中选取类别与待检测的目标一致的目标检测框,并得到包括该目标检测框的检测结果。可以理解,服务器还可从候选检测框中选取类别与待检测的目标一致、且类别置信度大于或等于置信度阈值的目标检测框。
在一个实施例中,检测结果包括目标图片对应的至少一个目标检测框;步骤S208包括:从目标图片中提取出与每个目标检测框对应的子图片;通过预配置的分类器对每个子图片进行识别,得到相应目标检测框的类别;根据目标检测框的类别确定目标图片中的目标。
其中,目标检测框的类别是指目标图片中处于目标检测框内的目标的类别,比如工牌或工牌绳等。
具体地,服务器根据检测结果确定目标图片对应的至少一个目标检测框,将每个目标检测框与目标图片进行比较,以根据比较结果从目标图片中提取出与该目标检测框对应的字图片。服务器将所提取出的每个子图片分别输入预配置的分类器中,通过分类器根据子图片识别相应目标检测框的类别,并根据每个目标检测框的类别判断目标图片中是否存在待检测的目标,若存在,则在目标图片中标注出该待检测的目标。在一个实施例中,分类器比如Mobilenet,在此不作具体限定。
上述实施例中,通过目标检测模型检测目标图片中的目标,并通过分类器对所检测出的目标进行分类,以避免通过目标检测模型对目标图片中的目标进行检测并分类时,将类别置信度较低的目标过滤掉,能够提高目标检测的准确性。
S208,根据检测结果确定目标图片中的目标。
具体地,服务器根据检测结果判断目标图片中是否包括待检测的目标。在一个实施例中,当判定目标图片中存在待检测的目标时,服务器根据检测结果在目标图片中标注出目标。在一个实施例中,服务器根据检测结果向终端反馈对应于目标图片的提示信息。
举例说明,以待检测的目标为工牌和/或工牌绳为例,当根据检测结果判定目标图片中存在工牌和/或工牌绳时,服务器向终端反馈表示带有工牌的提示信息,否则,反馈表示未带工牌的提示信息。
在一个实施例中,当检测结果中包括目标检测框与相应类别时,服务器根据类别判断目标图片中是否存在待检测的目标。当检测结果中包括目标检测框,而未包括目标检测框对应的类别时,服务器通过预配置的分类器对目标检测框进行类别识别,以根据识别结果判断目标图片中是否存在待检测的目标。
上述目标检测方法,预先构建基于至少两次的多尺度特征融合的深度神经网络模型,该至少两次的多尺度特征融合并行执行,且每次多尺度特征融合是将低层特征图与高层特征图按照预设特征融合方式进行融合。基于训练数据集对已构建的深度神经网络模型进行训练,得到已训练好的目标检测模型,这样,通过该目标检测模型对目标图片进行检测时,能够将多于一个的低层特征图分别与相应的高层特征图进行特征融合,并基于所得到的融合特征图确定目标图片对应的检测结果,进而根据检测结果确定目标图片中的目标,低层特征具有较高的分辨率,而高层特征具有较为丰富的语义信息,由此,将低层特征图与高层特征图进行特征融合,能够提高目标检测的检测准确性。而并行的执行至少两次的多尺度特征融合操作,能够在提高检测准确性的同时提高检测效率。
在一个实施例中,通过目标检测模型对目标图片进行检测得到检测结果之前,上述目标检测方法还包括:将目标图片的尺度调整为预设尺度;预设尺度大于深度神经网络模型对应的标准尺度。
其中,预设尺度是预先设定的尺度,比如512*512。标准尺度是指基于现有的深度神经网络模型进行目标检测时,输入该深度神经网络模型的目标图片的尺度,比如300*300。
具体地,服务器在本地预配置预设尺度,预配置的预设尺度大于深度神经网络模型的标准尺度。服务器获取到待检测的目标图片后,确定目标图片的尺度,将所确定的尺度与预设尺度进行比较。若目标图片的尺度大于预设尺度,则将目标图片的尺度调整为预设尺度。
在一个实施例中,深度神经网络模型对应的标准尺度,可理解为现有的SSD(Single Shot Multibox Detector)的输入图片尺度。
上述实施例中,将输入目标检测模型的目标图片的尺度调整为大于标准尺度的预设尺度,能够提高浅层特征/低层特征的分辨率,从而能够提高小目标的检测效果。
如图3所示,提供了一种目标检测方法,该方法具体包括以下步骤:
S302,构建基于至少两次的多尺度特征融合的深度神经网络模型;至少两次的多尺度特征融合并行执行;多尺度特征融合是指将低层特征图与高层特征图,按照预设特征融合方式进行融合。
S304,基于已标注的训练数据集对已构建的深度神经网络模型进行训练,得到已训练好的目标检测模型。
S306,当获取到待检测的目标图片时,通过目标检测模型对目标图片进行检测,得到多个目标尺度的目标特征图。
S308,通过目标检测模型,将每个目标特征图分别与相应卷积核进行卷积,得到每个目标特征图对应的检测框;检测框的尺度基于相应目标特征图动态确定。
S310,通过目标检测模型,根据各目标特征图对应的检测框确定目标图片对应的检测结果;检测结果包括目标图片对应的至少一个目标检测框。
S312,从目标图片中提取出与每个目标检测框对应的子图片。
S314,通过预配置的分类器对每个子图片进行识别,得到相应目标检测框的类别。
S316,根据目标检测框的类别确定目标图片中的目标。
图4为一个实施例中已构建的基于多尺度特征融合的深度神经网络模型的结构示意图。该深度神经网络模型包括多个卷积层与至少一个通过多尺度特征融合得到的融合特征层。如图4所示,已构建的深度神经网络模型包括卷积层0对应的特征图Conv0,…,卷积层11对应的特征图Conv11,…,卷积层16_1对应的特征图Conv16_1,卷积层16_2对应的特征图Conv16_2,卷积层17_1对应的特征图Conv17_1,卷积层17_2对应的特征图Conv17_2。其中,特征图Conv0、Conv11、Conv16_1、Conv16_2、Conv17_1与Conv17_2,各自对应的尺度分别为256*256*32、32*32*512、4*4*128、2*2*256、2*2*64与1*1*128。
如图4所示,将卷积层11对应的特征图Conv11与卷积层17_2对应的特征图Conv17_2进行多尺度特征融合,得到融合特征层18_1对应的融合特征图Conv18_1,融合特征图Conv18_1对应的尺度为16*16*128。将卷积层16_2对应的特征图Conv16_2与卷积层17_2对应的特征图Conv17_2进行多尺度特征融合,得到融合特征层18_2对应的融合特征图Conv18_2,融合特征图Conv18_2对应的尺度为1*1*128。通过多尺度特征融合得到的融合特征图,在目标检测过程中作为目标图片对应的目标特征图。如图4所示,还可将卷积层11对应的特征图Conv11、卷积层16_2对应的特征图Conv16_2与卷积层17_2对应的特征图Conv17_2也确定为目标图片对应的目标特征图。
进一步地,将各目标特征图与相应的卷积核分别进行卷积,得到相应的检测框。如图4所示,将融合特征图Conv18_1与卷积核为3*3*(4*(3+4))进行卷积,并将融合特征图Conv18_2与卷积核为3*3*(6*(3+4))进行卷积,将特征图Conv11与卷积核为3*3*(4*(3+4))进行卷积,特征图Conv16_2与卷积核为3*3*(6*(3+4))进行卷积,以及特征图Conv17_2与卷积核为3*3*(6*(3+4))进行卷积,得到各自相应的检测框。将各目标特征图对应的检测框传递至目标检测层,在目标检测层将各目标特征图对应的检测框进行整合,将整合后的多个检测框传递至非极大值抑制层。
在目标检测过程中,将目标图片输入对上述已构建的深度神经网络模型进行训练所得到的目标检测模型进行检测,目标检测模型的结构与图4所示的深神经网络模型的结构一致。通过目标检测模型对目标图片进行检测时,将通过多尺度特征融合得到的融合特征图确定为目标特征图。基于该多于一个的目标特征图能够得到目标图片对应的多个检测框,在非极大值抑制层根据目标图片对应的多个检测框确定相应的检测结果。如图4所示,目标图片的尺度具体可以是为512*512*3。可以理解,将目标特征图对应的特征层确定为目标特征层,则图4所示的目标特征层仅作为示例,并不用于具体限定。
可以理解,图4所示的两次多尺度特征融合仅作为示例,并不用于具体限定多尺度特征融合的次数,比如,还可将卷积层13对应的特征图Conv13与卷积层17_2对应的特征图Conv17_2进行多尺度特征融合,将卷积层14_2对应的特征图Conv14_2与卷积层17_2对应的特征图Conv17_2,和/或,卷积层15_2对应的特征图Conv15_2与卷积层17_2对应的特征图Conv17_2进行多尺度特征融合,得到各自相应的融合特征图。
图5为一个实施例中多尺度特征融合的原理示意图。如图5所示,对低层特征图按照第一卷积核进行卷积,得到第一特征图,将高层特征图按照第二卷积核进行反卷积,得到第二特征图,将第一特征图与第二特征图在通道上进行迭代操作得到第三特征图,并对第三特征图按照第三卷积核进行卷积,得到融合特征图。
举例说明,对卷积层11对应的特征图Conv11,按照第一卷积核1*1*128进行卷积操作得到第一特征图C11,对卷积层17_2对应的特征图Conv17_2,按照第二卷积核3*3*128进行反卷积操作得到第二特征图U17_2,将第一特征图C11与第二特征图U17_2在通道上进行叠加操作得到第三特征图A11_17,并对第三特征图A11_17按照第三卷积核1*1*128进行卷积操作得到融合特征图Conv18_1。
应该理解的是,虽然图2-3的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-3中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图6所示,提供了一种目标检测装置600,包括:构建模块602、训练模块604、检测模块606和确定模块608,其中:
构建模块602,用于构建基于至少两次的多尺度特征融合的深度神经网络模型;所述至少两次的多尺度特征融合并行执行;所述多尺度特征融合是指将低层特征图与高层特征图,按照预设特征融合方式进行融合;
训练模块604,用于基于已标注的训练数据集对已构建的深度神经网络模型进行训练,得到已训练好的目标检测模型;
检测模块606,用于当获取到待检测的目标图片时,通过所述目标检测模型对所述目标图片进行检测得到检测结果;
确定模块608,用于根据所述检测结果确定所述目标图片中的目标。
在一个实施例中,构建模块602,还用于对低层特征图进行卷积得到具有预设通道数的第一特征图;对高层特征图进行反卷积得到与所述低层特征图尺度一致的第二特征图;将所述第一特征图与所述第二特征图进行通道叠加,得到第三特征图;对所述第三特征图进行卷积得到特征融合后的融合特征图。
在一个实施例中,训练模块604,还用于获取已标注的训练数据集;从尚未用于模型训练的训练数据集中选取目标训练数据,通过待训练的深度神经网络模型对所述目标训练数据进行预测,得到预测结果;根据所述预测结果与所述目标训练数据中的标注结果,按照预设的定位损失函数与类别损失函数确定综合损失值;按照所述综合损失值反向调整所述深度神经网络模型的参数,并返回至所述从尚未用于模型训练的训练数据集中选取目标训练数据的步骤继续执行,直至满足迭代停止条件,得到已训练好的目标检测模型。
在一个实施例中,检测模块606,还用于通过所述目标检测模型对所述目标图片进行检测,得到多个目标尺度的目标特征图;通过所述目标检测模型,将每个目标特征图分别与相应卷积核进行卷积,得到每个目标特征图对应的检测框;所述检测框的尺度基于相应目标特征图动态确定;通过所述目标检测模型,根据各所述目标特征图对应的检测框确定所述目标图片对应的检测结果。
在一个实施例中,所述检测结果包括所述目标图片对应的至少一个目标检测框;确定模块608,还用于从所述目标图片中提取出与每个目标检测框对应的子图片;通过预配置的分类器对每个子图片进行识别,得到相应目标检测框的类别;根据所述目标检测框的类别确定所述目标图片中的目标。
在一个实施例中,检测模块606,还用于将所述目标图片的尺度调整为预设尺度;所述预设尺度大于所述深度神经网络模型对应的标准尺度。
关于目标检测装置的具体限定可以参见上文中对于目标检测方法的限定,在此不再赘述。上述目标检测装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图7所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储已训练好的目标检测模型。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种目标检测方法。
本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,该存储器存储有计算机程序,该处理器执行计算机程序时实现上述各个实施例中的目标检测方法的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述各个实施例中的目标检测方法的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
- 目标检测方法、装置、计算机设备和计算机可读存储介质
- 目标检测方法、装置、计算机可读存储介质和计算机设备