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

神经网络、目标检测方法、神经网络训练方法及相关产品与流程

2021-12-18 01:44:00 来源:中国专利 TAG:


1.本发明涉及人工智能技术领域,具体涉及一种神经网络、目标检测方法、神经网络训练方法及相关产品。


背景技术:

2.目标检测是计算机视觉领域中最基础的任务,它的目标在于让模型精确预测图片中各物体的位置及其对应类别。随着深度学习技术的发展,深度神经网络已经被成功应用于目标检测任务中,诞生出如faster rcnn、yolo、retinanet等著名的用于目标检测的网络。传统的目标检测依赖复杂的后处理才能输出鲁棒的预测框,例如:利用非极大值抑制(non maximum suppression,nms)算法来消除冗余的候选框;在faster rcnn等经典算法中,需要利用锚点(anchor)来辅助预测候选框。然而,在工业算法落地过程中,这些复杂的人为处理过程需要丰富的经验或者通过多次尝试才能得到较好的检测效果,这给工程人员带来极大的调试成本,对于不同训练数据往往需要经过多次试验来确定nms的阈值以及anchor的数量和比例。
3.为了解决以上问题,carion等人提出端到端目标检测器(detection transformer,detr),端到端目标检测器具备结构简单、无需后处理等优势,被研究人员广泛关注。然而,端到端目标检测器只利用了图像的全局信息,导致目标检测精度较低。
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.在一些可能的实施方式中,解码网络还包括第二解码层;在处理单元根据多个第五候选框、多个第六候选框、多个第三类别以及训练图像的标签,对神经网络进行训练之前,处理单元,还用于:将目标第五特征图、多个第六参考向量以及多个第六候选框输入到第二解码层进行目标检测,得到多个第八候选框和第四类别;其中,第二解码层,用于对目标第五特征图和多个第六参考向量进行注意力处理,得到多个第七参考向量;基于多个第七参考向量以及多个第六候选框,得到多个第七候选框和多个第四类别;对多个第七候选框中每个第七候选框对应的特征图和多个第七参考向量中的每个第七参考向量进行处理,得到多个第八参考向量,其中,每个第七候选框对应的特征图表征第七候选框在多个第五特征图中的至少一个第五特征图中所框选的特征;基于多个第八参考向量和多个第七候选框,得到多个第八候选框;根据多个第五候选框、多个第六候选框、多个第三类别以及训练图像的标签,对神经网络进行训练,包括:根据多个第五候选框、多个第六候选框、多个第三类别、多个第七候选框、多个第八候选框、多个第四类别以及训练图像的标签,对神经网络进行训练。
34.在一些可能的实施方式中,编码网络包括骨干网络和特征金字塔网络;在处理单元将训练图像输入到编码网络进行特征提取,得到多个第五特征图方面,处理单元,具体用于:将训练图像输入到骨干网络对训练图像进行特征提取,得到多个第六特征图,其中,多个第六特征图的分辨率不同;将多个第六特征图输入到特征金字塔网络进行特征提取,得到多个第五特征图。
35.在一些可能的实施方式中,编码网络包括骨干网络、特征金字塔网络和编码器;在将训练图像输入到编码网络进行特征提取,得到多个第五特征图方面,处理单元,具体用
于:将训练图像输入到骨干网络对训练图像进行特征提取,得到多个第六特征图,其中,多个第六特征图的分辨率不同;将多个第六特征图输入到特征金字塔网络进行特征提取,得到多个第七特征图,其中,多个第七特征图的分辨率不同;对目标第七特征图进行平铺,得到多个第三特征向量,目标第七特征图为多个第七特征图中分辨率小于第二阈值的第七特征图中的任意一个;将多个第三特征向量和初始位置编码输入到编码器进行编码,得到多个第四特征向量,其中,初始位置编码为初始化得到;按照对目标第七特征图进行平铺的逆顺序将多个第四特征向量进行组合,得到第八特征图;将第八特征图和多个第七特征图中除目标第七特征图之外的第七特征图作为多个第五特征图。
36.第六方面,本技术实施例提供了一种电子设备,包括:存储器,用于存储程序;处理器,用于执行存储器存储的程序;当存储器存储的程序被执行时,处理器用于实现上述第二方面或第三方面中的方法。
37.第七方面,本技术实施例提供了提供一种计算机可读介质,该计算机可读介质存储用于设备执行的程序代码,该程序代码包括用于实现上述第二方面或第三方面中的方法。
38.第八方面,本技术实施例提供了提供一种包含指令的计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机实现上述第二方面或第三方面中的方法。
39.第九方面,本技术实施例提供了提供一种芯片,该芯片包括处理器与数据接口,处理器通过数据接口读取存储器上存储的指令,实现上述第二方面或第三方面中的方法。
40.可选地,作为一种实现方式,芯片还可以包括存储器,存储器中存储有指令,处理器用于执行存储器上存储的指令,当指令被执行时,处理器用于实现上述第二方面或第三方面中的方法。
附图说明
41.图1为本技术实施例提供的一种目标检测方法应用到自动驾驶场景的示意图;
42.图2为本技术实施例提供的一种系统架构的示意图;
43.图3为本技术实施例提供的一种芯片硬件结构示意图;
44.图4为本技术实施例提供的一种用于目标检测的神经网络的结构示意图;
45.图5为本技术实施例提供的另一种用于目标检测的神经网络的结构示意图;
46.图6为本技术实施例提供的一种第一解码层的结构示意图;
47.图7为本技术实施例提供的又一种用于目标检测的神经网络的结构示意图;
48.图8为本技术实施例提供的一种第i个解码层的结构示意图;
49.图9为本技术实施例提供的又一种用于目标检测的神经网络的结构示意图;
50.图10为本技术实施例提供的又一种用于目标检测的神经网络的结构示意图;
51.图11为本技术实施例提供的一种目标检测方法的流程示意图;
52.图12为本技术实施例提供的一种动态交互的示意图;
53.图13为本技术实施例提供的一种将特征向量映射为卷积参数的示意图;
54.图14为本技术实施例提供的一种神经网络训练方法的流程示意图;
55.图15为本技术实施例提供的一种目标检测装置的结构示意图;
56.图16为本技术实施例提供的一种神经网络训练装置的结构示意图;
57.图17为本技术实施例提供的另一种目标检测装置的结构示意图;
58.图18为本技术实施例提供的另一种神经网络训练装置的结构示意图。
具体实施方式
59.为了便于理解本技术,首先对本技术涉及到的相关技术进行解释和说明。
60.detr模型进行目标检测的过程中,每个查询特征(object query)都需要与待检测图像的全局信息进行交互,整体流程比较复杂,导致detr模型训练时收敛速度慢。而且,目标检测的过程中只利用了待检测图像的全局信息,对目标的检测精度比较低。
61.sparse r

cnn模型,sparse r

cnn模型在进行目标检测的过程中,仅使用局部特征来进行预测,缺乏全局信息,导致目标检测精度较低。
62.因此,如何提高目标检测精度是目前亟待解决的问题。
63.为了便于理解本技术首先对本技术涉及到的相关术语进行介绍。
64.注意力机制:有三个输入,分别是查询向量(query,简称q)、关键向量(key,简称k)、价值向量(value,简称v),核心是计算q和k的对应元素的相关性,得到注意力矩阵;基于注意力矩阵对v进行加权,其过程可以通过公式(1)表示:
[0065][0066]
其中,softmax为归一化操作,为预设超参。
[0067]
自注意机制是q,k,v均为输入数据的一种注意力机制。
[0068]
多头注意力机制是对q,k,v在多个子空间上进行注意力计算,最后将多个子空间求取的注意力结果拼接到一起。
[0069]
roi align:从特征图中截取出候选框在特征图中所框选的特征的操作。
[0070]
举例来说,原图分辨率为800*800,某个特征图的分辨率为25*25,检测出的候选框的分辨率为665*665,则将候选框映射到特征图中的大小:665/32=20.78,即20.78*20.78;然后,基于预先设定的池化分辨率,将候选框映射到特征图中的大小进行池化操作,得到多个同等大小的小区域;假如,池化分辨率为:pooled_w=7,pooled_h=7,则池化(pooling)后划分出7*7大小的特征图,即将在特征图上映射出的20.78*20.78的区域划分成49个同等大小的小区域,每个小区域的大小20.78/7=2.97,即2.97*2.97;然后,再根据设定的采样点数,在每个小区域进行采样,以获取每个小区域的像素值;假如设定的采样点数为4,则对于每个2.97*2.97的小区域,平分四份,每一份取其中心点,而中心点的像素值,采用双线性插值法计算得到,这样每个2.97*2.97的小区域就会得到四个中心点的像素值;最后,将四个像素值中最大值作为每个2.97*2.97的小区域的像素值,如此类推,49个小区域会得到49个像素值,并将49个像素值组成一个7*7大小的特征图(feature map),将这个7*7大小的feature map作为从该特征图中截取出的与该候选框对应的局部信息。
[0071]
特征图平铺:特征图平铺就是将特征图平铺成多个一维序列的过程,其中,每个一维序列可以作为一个向量。比如,特征图为则将特征图进行平铺,可以得到三个一维序列,即(a
11 a
12 a
13
)、(a
21 a
22 a
23
)和(a
31 a
32 a
33
)。应说明,特征图平铺过程中可以按行平铺,即将特征图中的每一行作为一个一维序列,则一维序列的数量为特征图的
行数,也可以按列平铺,即将特征图中的每一列作为一个一维序列,则一维序列的数量为特征图的列数。本技术以按行平铺为例进行说明。应说明,若特征图的分辨率是三维的,即多个通道上的特征图,则可以将每个通道上的二维特征图分别进行平铺,得到与每个通道对应的多个一维序列。
[0072]
向量组合:向量组合就是按照特征图平铺的逆顺序将多个向量组合为特征图的过程。比如,得到了上述的三个向量(a
11 a
12 a
13
)、(a
21 a
22 a
23
)和(a
31 a
32 a
33
);然后,按照平铺的反顺序,将这三个向量进行组合,得到特征图
[0073]
向量拼接:将多个维度较小的向量,拼接成一个维度较大的向量,比如,上述的三个向量(a
11 a
12 a
13
)、(a
21 a
22 a
23
)和(a
31 a
32 a
33
),则对(a
11 a
12 a
13
)、(a
21 a
22 a
23
)和(a
31 a
32 a
33
)进行拼接,得到的拼接向量为(a
11 a
12 a
13
a
21 a
22 a
23
a
31 a
32 a
33
)。
[0074]
首先对本技术的应用场景介绍。示例性的,本技术实施例提供的目标检测方法能够应用在自动驾驶场景、图像标注场景、动作识别场景,等其他场景。下面分别对自动驾驶场景和图像标注场景进行简单的介绍。
[0075]
自动驾驶场景:
[0076]
如图1所示,将本技术的目标检测方法部署在人工智能驾驶车辆的车载终端或者车载芯片中,则可以通过本技术的目标检测方法对车载摄像头拍摄到的图片进行检测,识别出图片中的交通标志、红绿灯、行人、其他车辆等物体的位置。将识别出的实体作为输入数据输入到自动驾驶系统的决策模块,以支撑自动驾驶车辆完成自动驾驶。
[0077]
由于本技术的目标检测方法的目标检测精度较高,将本技术的目标检测方法应用到自动驾驶场景下,可以提高自动驾驶的安全性。
[0078]
终端上的目标识别场景:
[0079]
将本技术的目标检测方法应用到终端或终端的芯片中,当用户拍摄图片时,则可以通过本技术的目标检测方法对终端摄像头拍摄到的图片进行目标检测,识别出图片中的人物、树木,等其他物体;然后可以将这些物体标注出来供用户查看。由于本技术的目标检测精度较高,因此标注出的物体的精度较高,用户体验高。
[0080]
ar设备上的目标识别场景:
[0081]
将本技术的目标检测方法应用到ar设备或ar设备的芯片中,当用户佩戴ar设备时,可以通过本技术的目标检测方法对ar设备中呈现的图像进行目标检测,识别出图像的物体,并将目标标注出来供用户查看。
[0082]
医疗设备上的目标识别场景:
[0083]
将本技术的目标检测方法应用到医疗设备上,当医生使用医疗设备时,可以通过本技术的目标检测方法对医学图像进行目标检测,识别出医学图像中的目标,比如,识别出各个器官在医学图像中的位置或者,识别出医学图像中的病灶。然后,将目标标注出来供医生查看,从而辅助医生进行医学诊断,提高医学诊断精度。
[0084]
图像标注场景:
[0085]
对于网络训练之前,基本上都要对训练图像进行标注,然而在对训练图像进行标注之前首先需要将训练图像中的目标识别出来,以便人工进行标注。
[0086]
由于本技术的目标检测方法的目标检测精度较高,将本技术的目标检测方法应用
到图像标注场景,可以构造出精度较高的训练图像,进而提高网络训练的精度。
[0087]
下面将结合附图,从网络训练侧和网络应用侧对本技术的目标检测方法进行描述:
[0088]
本技术实施例提供的网络训练方法,涉及计算机视觉的处理,具体可以应用于数据训练、机器学习、深度学习等数据处理方法,对训练数据(如本技术中的训练图像)进行符号化和形式化的智能信息建模、抽取、预处理、训练等,最终得到训练好的用于目标检测的神经网络;并且,本技术实施例提供的目标检测方法可以运用上述训练好的用于目标检测的神经网络,将输入数据(如本技术中的待检测图像)输入到训练好的用于目标检测的神经网络中,得到输出数据(如本技术中的多个第二候选框)。需要说明的是,本技术实施例提供的神经网络训练方法和目标检测方法是基于同一个构思产生的发明,也可以理解为一个系统中的两个部分,或一个整体流程的两个阶段:如神经网络训练阶段和神经网络应用阶段。
[0089]
参见图2,图2为本技术实施例提供的一种系统架构的示意图。如系统架构100所示,数据采集设备160用于采集训练图像,训练图像包含有标签,标签用于指示训练图像中各个目标的真实位置以及真实类别;将训练图像存入数据库130,训练设备120基于数据库130中维护的训练图像训练得到用于目标检测的神经网络/规则101。
[0090]
下面更详细地描述训练设备120如何基于训练数据得到用于目标检测的神经网络/规则101,该用于目标检测的神经网络/规则101能够用于实现本技术实施例提供的目标检测方法,即,将待检测图像输入该用于目标检测的神经网络/规则101,可得到多个第二候选框和多个第一类别。本技术实施例中的用于目标检测的神经网络/规则101包括骨干网络、特征金字塔编码网络和解码网络。需要说明的是,在实际的应用中,数据库130中维护的训练图像不一定都来自于数据采集设备160的采集,也有可能是从其他设备接收得到。另外需要说明的是,训练设备120也不一定完全基于数据库130维护的训练图像进行用于目标检测的神经网络/规则101的训练,也有可能从云端或其他地方获取训练图像进行用于目标检测的神经网络的训练,上述描述不应该作为对本技术实施例的限定。
[0091]
根据训练设备120训练得到的用于目标检测的神经网络/规则101可以应用于不同的系统或设备中,如应用于图2所示的执行设备110,执行设备110可以是终端,如手机终端,平板电脑,笔记本电脑,ar/vr,车载终端等,还可以是服务器或者云端等。在图2中,执行设备110配置有i/o接口112,用于与外部设备进行数据交互,用户可以通过客户设备140向i/o接口112输入数据,输入数据在本技术实施例中可以包括:原始图像。
[0092]
预处理模块113用于根据i/o接口112接收到的输入数据(如原始图像)进行预处理,在本技术实施例中,预处理模块113可以用于对原始图像进行裁剪、放缩、增强以及灰度值转化,等其他图像处理操作,得到待检测图像。
[0093]
在执行设备110对输入数据进行预处理或者在执行设备110的计算模块111执行计算等相关的处理过程中,执行设备110可以调用数据存储系统150中的数据、代码等以用于相应的处理,也可以将相应处理得到的数据、指令等存入数据存储系统150中。
[0094]
最后,i/o接口112将处理结果,如将上述得到的目标检测结果返回给客户设备140,从而提供给用户。
[0095]
值得说明的是,训练设备120可以针对不同的目标或称不同的任务,基于不同的训练数据生成相应的用于目标检测的神经网络/规则101,该相应的用于目标检测的神经网
络/规则101可以用于实现上述目标检测,从而为用户提供所需的结果。
[0096]
在图2中所示情况下,用户可以手动给定输入数据,该手动给定可以通过i/o接口112提供的界面进行操作。另一种情况下,客户设备140可以自动地向i/o接口112发送输入数据,如果要求客户设备140自动发送输入数据需要获得用户的授权,则用户可以在客户设备140中设置相应权限。用户可以在客户设备140查看执行设备110输出的结果,具体的呈现形式可以是显示、声音、动作等具体方式。客户设备140也可以作为数据采集端,采集如图所示输入i/o接口112的输入数据及输出i/o接口112的输出结果作为新的样本数据,并存入数据库130。当然,也可以不经过客户设备140进行采集,而是由i/o接口112直接将如图所示输入i/o接口112的输入数据及输出i/o接口112的输出结果,作为新的样本数据存入数据库130。
[0097]
值得注意的是,附图2仅是本发明实施例提供的一种系统架构的示意图,图2中所示设备、器件、模块等之间的位置关系不构成任何限制,例如,在附图2中,数据存储系统150相对执行设备110是外部存储器,在其它情况下,也可以将数据存储系统150置于执行设备110中。
[0098]
参阅图3,图3为本发明实施例提供的一种芯片硬件结构示意图,该芯片包括神经网络处理器50。该芯片可以被设置在如图3所示的执行设备110中,用以完成计算模块111的计算工作。该芯片也可以被设置在如图3所示的训练设备120中,用以完成训练设备120的训练工作并输出用于目标检测的神经网络/规则101。
[0099]
神经网络处理器(neural processing unit,npu)50,npu 50作为协处理器挂载到主中央处理器(central processing unit,cpu)上,由主cpu分配任务。npu 50的核心部分为运算电路503,控制器504控制运算电路503提取存储器(权重存储器502或输入存储器501)中的数据并进行运算。
[0100]
在一些实现中,运算电路503内部包括多个处理单元(process engine,pe)。
[0101]
在一些实现中,运算电路503是二维脉动阵列。运算电路503还可以是一维脉动阵列或者能够执行例如乘法和加法这样的数学运算的其它电子线路。
[0102]
在一些实现中,运算电路503是通用的矩阵处理器。
[0103]
举例来说,假设有输入矩阵a,权重矩阵b,输出矩阵c。运算电路503从权重存储器502中取权重矩阵b,并缓存在运算电路503中每一个pe上。运算电路503从输入存储器501中取输入矩阵a与权重矩阵b进行矩阵运算,并将得到的矩阵的部分结果或最终结果,保存在累加器(accumulator)508中。
[0104]
向量计算单元507可以对运算电路503的输出做进一步处理,如向量乘,向量加,指数运算,对数运算,大小比较等等。例如,向量计算单元507可以用于神经网络中非卷积/非全连接层(fully connected layers,fc)的网络计算,如池化(pooling),批归一化(batch normalization),局部响应归一化(local response normalization)等。
[0105]
在一些实现中,向量计算单元507将经处理输出的向量存储到统一存储器506。例如,向量计算单元507可以将非线性函数应用到运算电路503的输出,例如,累加值的向量,用以生成激活值。在一些实现中,向量计算单元507生成归一化的值、合并值,或二者均有。在一些实现中,处理过输出的向量能够用作为运算电路503的激活输入,例如用于在神经网络中的后续层中的使用。
[0106]
例如,在本技术中,运算电路503对待检测图像进行特征提取,得到多个第一特征图;基于多个第一特征图和多个目标参考向量进行目标检测,得到目标检测结果;
[0107]
统一存储器506,用于存放输入数据和输出数据,例如存放本技术的待检测图像和目标检测结果;
[0108]
权重数据直接通过存储单元访问控制器(direct memory access controller,dmac)505将外部存储器中的输入数据搬运到输入存储器501和/或统一存储器506,将外部存储器中的权重数据存入权重存储器502,以及将统一存储器506中的数据存入外部存储器。
[0109]
总线接口单元(bus interface unit,biu)510,用于通过总线实现主cpu、dmac和取指存储器509之间进行交互;
[0110]
与控制器504连接的取指存储器(instruction fetch buffer)509,用于存储控制器504使用的指令;
[0111]
控制器504,用于调用取指存储器509中缓存的指令,实现控制运算电路503的工作过程。
[0112]
一般地,统一存储器506,输入存储器501,权重存储器502以及取指存储器509均为片上(on

chip)存储器,外部存储器为外部npu的存储器,外部存储器可以为双倍数据率同步动态随机存储器(double data rate synchronous dynamic random access memory,ddr sdram)、高带宽存储器(high bandwidth memory,hbm)或其他可读可写的存储器。
[0113]
首先说明,本技术提供的用于目标检测的神经网络是基于transformer架构构建的,该用于目标检测的神经网络后面简称为神经网络。示例性的,本技术的用于目标检测的神经网络中的编码网络是基于transformer编码器构建的,本技术的解码网络是基于transformer解码器构建的。
[0114]
参阅图4,图4为本技术实施例提供的一种用于目标检测的神经网络的结构示意图。如图4所示,用于目标检测的神经网络包括编码网络和解码网络,解码网络包括第一解码层。应说明,当解码网络只包括一个解码层,即仅包含第一解码层时,第一解码层可理解为该解码网络。
[0115]
编码网络,用于对待检测图像进行特征提取,得到多个第一特征图,其中,多个第一特征图的尺寸不同;
[0116]
第一解码层,用于对目标第一特征图和多个目标参考向量进行注意力处理,得到多个第一参考向量,其中,目标第一特征图为多个第一特征图中分辨率小于第一阈值的第一特征图中的任意一个,即从分辨率小于第一阈值的第一特征图中任意选取一个与多个目标参考向量进行注意力处理;其中,该多个目标参考向量为用于目标检测的神经网络的网络参数,即训练用于目标检测的神经网络时得到的参数。后续叙述对该用于目标检测的神经网络的训练过程,在此不做过多描述;
[0117]
第一解码层,还用于对多个第一参考向量进行目标检测,得到多个第一候选框和多个第一类别,即通过第一解码层对每个第一参考向量分别进行框的回归和类别的预测,得到与每个第一参考向量对应的第一候选框以及第一类别。因此,多个第一候选框、多个第一类别以及多个第一参考向量之间一一对应;
[0118]
第一解码层,还用于对多个第一候选框中的每个第一候选框对应的特征图和多个
第一参考向量中的每个第一参考向量进行处理,得到多个第二参考向量,其中,每个第一候选框对应的特征图表征第一候选框在多个第一特征图中的至少一个第一特征图中所框选的特征;
[0119]
第一解码层,还用于基于多个第二参考向量和多个第一候选框,得到多个第二候选框,即通过第一解码层以及每个第二参考向量预测与该第二参考向量对应的第一候选框的偏移值,基于该偏移值对该第一候选框进行偏移,得到与该第二参考向量对应的第二候选框。
[0120]
在本技术的一个实施方式中,如图5所示,该解码网络还包括第二解码层;与第一解码层的功能类似,第二解码层用于对目标第一特征图和多个第二参考向量进行注意力处理,得到多个第三参考向量;基于多个第三参考向量以及多个第二候选框,得到多个第三候选框和多个第二类别;对多个第三候选框中的每个第三候选框对应的特征图和多个第三参考向量中的每个第三参考向量进行处理,得到多个第四参考向量,其中,每个第三候选框对应的特征图表征第三候选框在多个第一特征图中的至少一个第一特征图中所框选的特征,多个第三候选框和多个第三参考向量一一对应;基于多个第四参考向量和多个第三候选框,得到多个第四候选框。
[0121]
在本技术的一个实施方式中,第一解码层和第二解码层都是基于transformer解码器构建的,内部结构相似。例如,第一解码层和第二解码层均包括注意力层、动态交互层(dynamic inter)和四个前馈网络,其中,注意力层包括自注意力层和多头注意力层,动态交互层又可称为动态头部(dynamic head)。
[0122]
下面以第一解码层的结构为例说明第一解码层中的各个子层的功能,第二解码层中的各个子层的功能与此类似,不再叙述。
[0123]
如图6所示,针对第一解码层来说,自注意力层,用于对目标参考向量进行自注意力处理,得到自注意力处理后的多个参考向量;多头注意力层,用于对自注意力处理后的多个参考向量和目标第一特征图进行多头注意力处理,得到多头注意力处理后的多个参考向量;第一个前馈网络,用于对多头注意力层的多个参考向量进行特征增强处理,得到多个第一参考向量,其中,特征增强主要是增强待检测图像中的前景特征;第二个前馈网络,用于对多个第一参考向量进行目标检测,得到多个第一候选框和多个第一类别;动态交互层,用于对多个第一参考向量和多个第一候选框对应的特征图进行动态交互处理,得到动态交互处理后的多个参考向量;第三个前馈网络,用于对动态交互处理后的多个参考向量进行特征增强,得到多个第三参考向量;第四个前馈网络,用于对多个第二参考向量和多个第一候选框进行处理,得到多个第二候选框。
[0124]
在本技术的一个实施方式中,解码网络除了包括第一解码层和第二解码层之外,还可以有更多数量的解码层,其中,每个解码层的内部结构均与第一解码层相同。每个解码层的输入数据分别为上个解码层的第三个前馈网络输出的多个参考向量和上个解码层的最后一个前馈网络输出的多个候选框。
[0125]
如图7所示,解码网络包括有n(n大于或等于3)个解码层,即图7示出的解码层1,解码层2,
……
,解码层n;每个解码层中均进行两次框回归过程和一次分类过程,且每个解码层的第二次框回归过程是在其第一次框回归的基础上完成的。
[0126]
具体的,如图7所示,n个解码层的目标检测过程中主要包括以下内容:将多个目标
参考向量输入到第一解码层(解码层1)进行第一次目标检测操作,则可得到与第一次目标检测操作对应的多个类别(即第一类别)、多个第一候选框d1以及多个第二候选框c1;然后,将第一次目标检测操作得到的多个第二候选框c1以及多个第二参考向量a1作为第二个解码层的输入数据,执行第二次目标检测操作,可得到与第二目标检测操作对应的多个类别(第二类别)、多个第一候选框d2以及多个第二候选框c2,将第二次目标检测操作得到的多个第二候选框c2以及多个第二参考向量a2作为第三个解码层的输入数据执行第三次目标检测操作;依次类推,将第n

1个解码层执行第n

1次目标检测操作得到的多个第二候选框c
n
‑1以及多个第二参考向量a
n
‑1作为第n个解码层的输入数据,执行第n次目标检测操作,得到与第n次目标检测操作对应的多个类别(第n类别)、多个第一候选框d
n
以及多个第二候选框c
n

[0127]
下面结合图8,以第i个解码层为例说明第i个解码层实现目标检测时各个子层的功能。
[0128]
如图8所示,针对第i个解码层(即解码层i),自注意力层,用于对多个第二参考向量a
i
‑1进行自注意力处理;多头注意力层,用于将经自注意力处理后的多个参考向量a
i
‑1和目标第一特征图进行多头注意力处理;第一个前馈网络,用于对多头注意力处理得到的多个参考向量进行特征增强处理,得到多个第一参考向量b
i
;第二个前馈网络,用于基于多个第一参考向量b
i
和第i

1个解码层得到的多个第二候选框c
i
‑1,得到与第i个解码层对应的多个类别和多个第一候选框d
i

[0129]
进一步的,对多个第一候选框d
i
执行roi align操作,从多个第一特征图中获取每个第一候选框d
i
对应的特征图(局部信息);动态交互层,用于将多个第一候选框d
i
对应的特征图以及多个第一参考向量b
i
进行动态交互;第三个前馈网络,用于对动态处理结果进行特征增强,得到多个第二参考向量a
i
;第四个前馈网络,用于基于多个第一候选框d
i
以及多个第二参考向量a
i
,得到与第i个解码层对应的多个第一候选框c
i

[0130]
在本技术的一个实施方式中,如图9所示,本技术中的编码网络包括骨干网络(backbone)和特征金字塔网络fpn。其中,骨干网络用,于待检测图像进行特征提取,得到多个第二特征图,其中,多个第二特征图的分辨率不同;特征金字塔网络,用于对多个第二特征图进行特征提取,得到多个第一特征图。
[0131]
在本技术的一个实施方式中,如图10所示,本技术中的编码网络包括骨干网络(backbone)、编码器以及特征金字塔网络fpn。可选的,编码器为transformer编码器。
[0132]
示例性的,骨干网络,用于对待检测图像进行特征提取,得到多个第二特征图,其中,多个第二特征图的分辨率不同;特征金字塔网络,用于对多个第二特征图进行特征提取,得到多个第三特征图,其中,多个第三特征图的分辨率不同;编码器,用于对多个第一特征向量和目标位置编码进行编码,得到多个第二特征向量,其中,多个第一特征向量为对目标第三特征图进行平铺得到,目标第三特征图为多个第三特征图中分辨率小于第二阈值的第三特征图中的任意一个,目标位置编码为用于目标检测的神经网络的网络参数,用于表征物体的特征;
[0133]
因此,上述的多个第一特征图包括第四特征图和多个第三特征图中除目标特征图之外的第三特征图,第四特征图为按照对目标第三特征图进行平铺的逆顺序将多个第二特征向量进行组合得到。
[0134]
需要额外说明的是,对于图9和图10示出的编码网络来说,均可包括有n个解码层,
即图9和图10示出的解码层1、解码层2、

、解码层n。
[0135]
参阅图11,图11为本技术实施例提供的一种目标检测方法的流程示意图。本技术的目标检测方法通过上述的用于目标检测的神经网络实现。该方法包括以下步骤内容:
[0136]
1101:对待检测图像进行特征提取,得到多个第一特征图,其中,多个第一特征图的分辨率不同。
[0137]
可选的,对待检测图像进行特征提取可以通过上述的编码网络实现。因此,该多个第一特征图为编码网络的不同深度的网络层所输出的第一特征图。
[0138]
示例性的,如图9所示,当编码网络包括骨干网络和特征金字塔网络fpn时,则可将待检测图像输入骨干网络进行特征提取,得到多个第二特征图,其中,该多个第二特征图的分辨率不同,即多个第二特征图为该骨干网络的不同深度的网络层的输出。然后,将每个第二特征图分别输入到fpn中与该第二特征图的分辨率对应的网络层进行特征提取,得到多个第一特征图。
[0139]
示例性的,如图10所示,当编码网络包括骨干网络、特征金字塔网络和编码器时,在通过骨干网络得到多个第二特征图之后,将每个第二特征图分别输入到fpn中与每个第二特征图的分辨率对应的网络层进行特征提取,得到多个第三特征图,其中,多个第三特征图的分辨率不同;对目标第三特征图进行平铺,得到多个第一特征向量,其中,该目标第三特征图为多个第三特征图中分辨率小于第二阈值的第三特征图中的任意一个,本技术中以目标第三特征图为分辨率最小的为例进行说明;然后,将多个第一特征向量与目标位置编码输入到编码器进行编码,得到多个第二特征向量,即对多个第一特征向量和目标位置编码进行融合,并将融合结果输入到编码器中进行编码,得到多个第二特征向量,其中,目标位置编码为训练得到的,用于表征待检测图像中各个像素点之间的空间关系;最后,按照对目标第三特征图进行平铺的逆顺序对多个第二特征向量进行组合,得到第四特征图,将第四特征图以及多个第三特征图中除目标第三特征图之外的第三特征图作为多个第一特征图。
[0140]
1102:对目标第一特征图和多个目标参考向量进行注意力处理,得到多个第一参考向量。
[0141]
其中,目标第一特征图为多个第一特征图中分辨率小于第一阈值的第一特征图中的任意一个,本技术中以目标第一特征图为多个第一特征图中分辨率最小的第一特征图为例进行说明。其中,多个目标参考向量是训练得到的,每个目标参考向量用于表示一个物体的特征。例如,物体的特征可以为人脸轮廓、杯子轮廓,等物体的特征。
[0142]
示例性的,通过第一解码层对目标第一特征图和多个目标参考向量进行注意力处理,得到多个第一参考向量。具体的,基于第一解码层的自注意力层对多个目标参考向量进行处理,即将多个目标参考向量分别作为q、k、v进行自注意力处理;基于第一解码层的多头注意力层对自注意处理结果以及目标第一特征图进行多头注意力处理,即将自注意力处理结果作为q,将目标第一特征图分别作为k和v进行多头注意力处理;最后,通过第一解码层的前馈网络对多头注意力处理结果进行特征增强,得到多个第一参考向量。
[0143]
1103:根据多个第一参考向量进行目标检测,得到多个第一候选框和多个第一类别。
[0144]
示例性的,可根据多个第一参考向量预测出多个第一候选框,即根据每个第一参
考向量进行目标检测,预测出每个第一候选框在待检测图像中的位置,以及基于每个第一参考向量进行分类,得到多个第一类别,其中,多个第一类别与多个第一候选框一一对应。
[0145]
可选的,将多个第一参考向量输入到第一解码层的前馈网络进行目标检测,得到多个第一候选框和多个第一类别。示例性的,每个第一候选框的表征形式为每个第一候选框的四个顶点在待检测图像中的像素坐标,通过四个顶点的像素坐标表征候选框的位置。
[0146]
1104:对多个第一候选框中的每个第一候选框对应的特征图和多个第一参考向量中的每个第一参考向量进行处理,得到多个第二参考向量。
[0147]
其中,每个第一候选框对应的特征图表征第一候选框在多个第一特征图中的至少一个第一特征图中所框选的特征,多个第一候选框和多个第一参考向量一一对应。
[0148]
示例性的,从多个第一特征图中选取出至少一个第一特征图,然后分别对每个第一候选框和至少一个第一特征图执行roi align操作,得到每个第一候选框对应的特征图。应说明,当至少一个第一特征图的数量大于或等于2个时,则对该第一候选框分别与至少一个特征图中的每个第一特征图执行roi align操作,以从每个第一特征图中截取出与该第一候选框对应的特征图;最后,将从每个第一特征图中截取出的特征图进行拼接,得到与该第一候选框对应的特征图。
[0149]
对每个第一候选框的特征图与每个第一候选框对应的第一参考向量进行动态交互,得到与每个第一参考向量对应的第二参考向量,则多个第一候选框可得到多个第二参考向量。示例性的,将每个第一候选框的特征图与每个第一候选框对应的第一参考向量输入到第一解码层的动态交互层进行动态交互,可得到与每个第一参考向量对应的第二参考向量。
[0150]
下面结合附图说明动态交互的过程。
[0151]
示例性的,将每个第一参考向量映射成二维矩阵,其中,该二维矩阵的列数为该第一参考向量对应的第一候选框所对应的特征图的维度,该二维矩阵的行数为动态交互过程所设置的卷积核的数量。本技术中卷积核的尺寸为1*1。示例性的,首先将每个第一参考向量映射成一个长向量,该长向量的维度为该二维矩阵的列数和行数的乘积,对将每个第一参考向量映射成一个长向量通过该用于目标检测的神经网络的全连接层实现。然后,对这个长向量进行重塑(reshape),得到该二维矩阵;进一步的,对该二维矩阵进行平铺,得到每个第一参考向量对应的卷积参数,即将二维矩阵平铺成多个一维序列,将每个一维序列均作为该第一参考向量对应的卷积参数。如图12所示,卷积参数1、卷积参数2、
……
、卷积参数m为映射出的分别与每个候选框对应的卷积参数。
[0152]
如图12所示,由于每个一维序列的维度与第一参考向量对应的第一候选框对应的特征图的维度相同,则可将每个维序列作为一个1*1的卷积核的卷积参数;然后使用多个1*1的卷积核对该特征图进行卷积处理,得到与每个第一参考向量对应的目标特征图;然后,对每个第一参考向量对应的目标特征图进行平铺,得到每个第一参考向量对应的多个一维序列,再将每个第一参考向量对应的多个一维序列进行拼接,得到与每个第一参考向量对应的目标特征向量;最后,对目标特征向量进行映射处理,得到与每个第一参考向量对应的第二参考向量,因此将多个第一参考向量进行动态交互处理后,可得到多个第二参考向量。
[0153]
举例来说,如图13所示,若第一参考向量对应的特征图的维度为4(即4个通道),且预先设定的1*1的卷积核的数量为4,则可以先将第一参考向量映射成一个1*16的长向量;
如图13所示,再将这个1*16的向量重塑为4*4的二维矩阵,则确保二维矩阵的行数为1*1的卷积核的数量,列数为第一参考向量对应的特征图的维度。然后,将该二维矩阵进行平铺,得到4个1*1的卷积核的卷积参数。如图13所示,将二维矩阵中的第一行作为一个1*1的卷积核的卷积参数,由于第一参考向量对应的特征图的维度与二维矩阵的列数相同,则可以使用这个1*1的卷积核对该特征图进行卷积处理,得到与这个1*1卷积核对应的目标特征图。则通过4个1*1的卷积核对第一参考向量对应的特征图进行卷积处理,得到分辨率为4*4*4的目标特征图。然后,将4*4*4的目标特征图进行平铺与拼接,即分别对每个通道的目标特征图进行平铺与拼接,得到与每个通道对应的一个1*16的一维序列,然后,将4个通道对应的1*16的一维序列进行拼接,得到与第一参考向量对应的一个1*64的目标特征向量。最后,再将这个一个1*64的目标特征向量映射成分辨率与第一参考向量的维度相同的第二参考向量,得到与每个第一参考向量对应的第二参考向量。
[0154]
可以看出,将第一特征向量b
i
映射成1*1的卷积核的卷积参数,使用这样的卷积核,相当于对第一特征向量b
i
对应的特征图进行加权处理,从而可以保留下每个第一候选框所框选的局部信息中的重要信息,进而提高后续第二候选框的预测精度。
[0155]
1105:根据多个第二参考向量和多个第一候选框,得到多个第二候选框。
[0156]
示例性的,根据与每个第一候选框对应的第二参考向量确定该第一候选框应的偏移量;根据该偏移量对该第一候选框进行偏移,得到与该第一候选框对应的第二候选框,即可得到多个第二候选框。比如,可将多个第二参考向量和多个第一候选框输入到前馈网络,得到每个第一候选框的偏移量,由于每个第一候选框的表征形式是四个顶点在待检测图像中的像素坐标,因此基于偏移量对第一候选框的四个顶点的像素坐标进行偏移,可得到新的四个顶点,即得到了与该第一候选框对应的第二候选框。
[0157]
1106:基于多个第二候选框和多个第一类别,得到待检测图像的目标检测结果。
[0158]
示例性的,基于多个第二候选框和多个第一类别进行置信度检测,即基于每个第二候选框以及与每个第二候选框对应的第一类别进行置信度检测,得到每个第二候选框对应的置信度;然后,将置信度大于置信度阈值的第二候选框以及与该第二候选框对应的第一类别作为待检测图像的目标检测结果。
[0159]
在本技术的一个实施方式中,解码网络还包括第二解码层。因此,基于多个第二候选框和多个第一类别,得到待检测图像的目标检测结果之前,对多个对目标第一特征图和多个第二参考向量进行注意力处理,得到多个第三参考向量,即与第一解码层类似的,通过先后通过第二解码层的自注意力层、多头注意力层以及第一前馈网络,对目标第一特征图和多个第二参考向量进行处理,得到多个第三参考向量;然后,根据多个第三参考向量和多个第二候选框,得到多个第三候选框和多个第二类别,即通过第二个解码层的第二个前馈网络对多个第三参考向量和多个第二候选框进行处理,得到多个第三候选框和多个第二类别;然后,对多个第三候选框中的每个第三候选框对应的特征图和多个第三参考向量中的每个第三参考向量进行处理,得到多个第四参考向量,其中,每个第三候选框对应的特征图表征第三候选框在多个第一特征图中的至少一个第一特征图中所框选的特征,多个第三候选框和多个第三参考向量一一对应,即分别通过第二解码层的动态交互层和第三个前馈网络,对多个第三候选框中的每个第三候选框对应的特征图和多个第三参考向量中的每个第三参考向量进行处理,得到多个第四参考向量;最后,根据多个第四参考向量和多个第三候
选框,得到多个第四候选框,即通过第二解码层的第四个前馈网络对多个第四参考向量和多个第三候选框进行处理,得到多个第四候选框。
[0160]
应说明,由于第二个解码层进行目标检测得到的候选框是在第一个解码层的基础上完成。相对来说,第四候选框、第三候选框、第二候选框以及第一候选框的置信度依次降低。因此,可以基于多个第四候选框和多个第二类别,得到待检测图像的目标检测结果。同样,确定每个第四候选框对应的置信度,将置信度大于置信度阈值的第四候选框以及与该第四候选框对应的第二类别作为待检测图像的目标检测结果。
[0161]
在本技术的一个实施方式中,当用于目标检测的神经网络的解码网络包括n个解码层时,n个解码层会先后执行n次目标检测操作。下面以第i个解码层实现第i次目标检测操作为例说明每个解码层实现目标检测操作的过程,i的取值为1到n的整数,n为大于或者等于1的整数。
[0162]
示例性的,如图8所示,通过第i个解码层对多个第二参考向量a
i
‑1以及目标第一特征图进行处理,得到多个第一参考向量b
i
,其中,目标第一特征图为多个第一特征图中分辨率小于第一阈值的多个第一特征图中的任意一个,多个第二参考向量a
i
‑1为通过第i

1个解码层执行第i

1次目标检测操作得到。应说明,当i=1,即通过第一个解码层执行第1次目标检测操作时,多个第二参考向量a
i
‑1为上述的多个目标参考向量。
[0163]
具体的,通过第i个解码层的自注意力层对多个第二参考向量a
i
‑1进行处理;然后,通过第i个解码层的多头注意力层对自注意力处理结果以及目标第一特征图进行多头注意力处理;最后,再通过第i个解码层的前馈网络对多头注意力处理结果进行特征增强,得到多个第一参考向量b
i

[0164]
然后,通过第i个解码层的第二个前馈网络对多个第一参考向量b
i
和多个第二候选框c
i
‑1进行处理,得到多个第一候选框d
i
和与第i次目标检测对应的类别,其中,多个第二候选框c
i
‑1为通过第i

1个解码层执行第i

1次目标检测操作得到。
[0165]
应说明,当i=1,即执行第1次目标检测操作时,此时是首次执行目标检测,即首次进行框回归,并没有多个第二候选框c
i
‑1可供参考,因此可根据多个第一参考向量b
i
直接得到多个第一候选框d
i
,即通过第一个解码层直接对第一参考向量b
i
进行目标检测,预测出每个第一候选框d
i
在待检测图像中的像素坐标,则可得到与每个第一参考向量b
i
对应的第一候选框d
i
。当i大于1时,由于之前已经进行过框回归,则可以有第二候选框c
i
‑1进行参考,因此可根据每个第二候选框c
i
‑1对应的第一参考向量b
i
,确定每个第二候选框c
i
‑1对应的偏移量;根据每个第二候选框c
i
‑1对应的偏移量对每个第二候选框c
i
‑1进行偏移,得到与每个第二候选框c
i
‑1对应的第一候选框d
i
,即可得到多个第一候选框d
i

[0166]
总的来说,当首次进行框回归的时候,可以根据得到的参考向量直接进行候选框回归;当已经有了候选框的位置信息时,则可以在这些已有的候选框的基础上,确定出候选框的偏移量,然后根据候选框的偏移量对候选框进行偏移得到新的框。
[0167]
进一步的,通过第i个解码层的动态交互层对多个第一候选框d
i
中的每个第一候选框d
i
对应的特征图以及多个第一参考向量b
i
进行动态交互处理,然后通过第i个解码层的前馈网络对动态交互处理结果进行特征增强得到多个第二参考向量a
i

[0168]
进一步的,通过第i个解码层的第四个前馈网络对多个第二参考向量a
i
以及多个第一候选框d
i
进行处理,得到多个第二候选框c
i
。示例性的,根据与每个第一候选框d
i
对应
的第二参考向量a
i
确定该第一候选框d
i
对应的偏移量;根据该偏移量对该第一候选框d
i
进行偏移,得到与该第一候选框d
i
对应的第二候选框c
i
,即可得到多个第二候选框c
i

[0169]
最后,根据通过第n个解码层执行第n次目标检测操作得到的多个第二候选框c
n
以及多个类别确定待检测图像的目标检测结果。
[0170]
可选的,在执行第i次目标检测过程中,根据多个第一参考向量b
i
对每个候选框中的目标进行分类,得到多个类别。另外由于每个第一参考向量b
i
是经过注意力机制处理得到的,则每个第一参考向量b
i
包含有待检测图像的全局信息,则可以直接使用第一参考向量b
i
对每个候选框中的目标进行分类,得到多个类别。当然,由于每个第二参考向量a
i
不但包含有待检测图像的全局信息还包含有与该第二参考向量a
i
对应的候选框所框选的局部信息,也可以使用第二参考向量a
i
对每个候选框中的目标进行分类,得到多个类别。本技术主要以使用多个第一参考向量b
i
进行分类为例进行说明。
[0171]
应说明,由于训练过程中,在每次执行目标检测操作时,需要使用每次目标检测操作得到的第一参考向量进行分类,以便计算每次目标检测操作中第一次框回归过程中的损失。因此,为了和训练过程对齐,在神经网络应用过程中,一般是根据多个第一参考向量b
i
进行分类,得到与第i次目标检测操作对应的多个第一类别。
[0172]
应说明,对于分类来说,只要用于分类的参考向量包含有待检测图像的全局信息,得到的分类结果是相对比较准确的。则任意一次目标检测过程中得到的多个第一类别都是比较精确的,换句话说,n次目标检测过程中得到的类别应该是相同的。因此,在实际应用中可以将任意一次目标检测过程中得到的多个类别作为待检测图像的类别。
[0173]
应说明,本技术的目标检测是端到端的目标检测过程,因此上述的多个第二参考向量a
i
‑1、多个第二参考向量a
i
、多个第一参考向量b
i
、多个第二候选框c
i
‑1、多个第一候选框d
i
、多个第二候选框c
i
以及多个第一类别之间是一一对应的,且多个第二参考向量a
i
‑1、多个第二参考向量a
i
以及多个第一参考向量b
i
之间的维度也是相同的。
[0174]
应说明,由于多个第一候选框d
i
是在多个第二候选框c
i
‑1的基础上得到的,因此,每个第一候选框d
i
的置信度高于与该第一候选框d
i
对应的第二候选框c
i
‑1的置信度;同样,多个第二候选框c
i
是在多个第一候选框d
i
的基础上得到的,因此,每个第二候选框c
i
的置信度高于与该第二候选框c
i
对应的第一候选框d
i
的置信度。
[0175]
参阅图14,图14为本技术实施例提供的一种神经网络训练方法的流程示意图。该神经网络用于目标检测。该用于目标检测的神经网络包括编码网络和解码网络。该方法包括以下步骤:
[0176]
1401:将训练图像输入到编码网络进行特征提取,得到多个第五特征图,其中,所述多个第五特征图的分辨率不同。
[0177]
训练图像为携带有标签的图像样本,其中,该标签用于标识训练图像中的框的真实位置,以及框中的物体的真实类别。在本技术中,将标签所标注的框称为真实框,将真实框的物体的类别称为真实类别。
[0178]
如图9所示,编码网络可以包括骨干网络和特征金字塔网络。因此,将训练图像输入到骨干网络对训练图像进行特征提取,得到多个第六特征图,其中,多个第六特征图的分辨率不同;然后,将多个第六特征图中的每个第六特征图分别输入到特征金字塔网络中与每个第六特征图的分辨率对应的网络层进行特征提取,得到多个第五特征图。
[0179]
示例性的,如图10所示,编码网络包括骨干网络和特征金字塔网络编码器,在得到多个第六特征图之后,可以将多个第六特征图中的每个第六特征图分别输入到特征金字塔网络中与每个第六特征图的分辨率对应的网络层进行特征提取,得到多个第七特征图,其中,多个第七特征图的分辨率不同;将多个对目标第七特征图进行平铺,得到多个第三特征向量,目标第七特征图为多个第六特征图中分辨率小于第二阈值的第七特征图中的任意一个;将多个第三特征向量和初始位置编码输入到编码器进行编码,得到多个第四特征向量,其中,初始位置编码为随机初始化得到的,在神经网络训练的过程中,不断地调整初始位置编码的取值,当完成对用于目标检测的神经网络的训练时,此时得到的位置编码即为上述的目标位置编码,多个第四特征向量和多个第三特征向量一一对应;按照对目标第七特征图进行平铺的逆顺序将多个第四特征向量进行组合,得到第八特征图;最后,将第八特征图和多个第七特征图中除目标第七特征图之外的第七特征图作为该多个第五特征图。
[0180]
1402:将目标第五特征图和初始参考向量输入到第一解码层进行目标检测,得到多个第六候选框和多个第三类别。
[0181]
其中,初始参考向量为随机初始化得到,在训练过程中不断调整每个初始参考向量的取值,当完成对用于目标检测的神经网络的训练时,得到的参考向量即为上述的多个目标参考向量。
[0182]
示例性的,与上述应用侧中的第一解码层对目标第一特征图和多个目标参考向量进行处理类似,首先基于第一解码层的自注意力层对多个初始参考向量进行自注意力处理;然后,基于第一解码层的多头注意力层对目标第五特征图和自注意力处理结果进行多头注意力处理;然后,通过第一解码层的前馈网络对多头注意力处理结果进行特征增强处理,得到多个第五参考向量;然后,基于第一解码层的前馈网络对多个第五参考向量进行目标检测,得到多个第五候选框和多个第三类别;然后,基于第一解码层的动态交互层对多个第五候选框中每个第五候选框对应的特征图和多个第五参考向量中的第五参考向量进行动态交互处理,并基于第一解码层的前馈网络对动态交互处理结果进行特征增强得到多个第六参考向量,其中,每个第五候选框对应的特征图表征第五候选框在多个第五特征图中的至少一个第五特征图中所框选的特征,其中,多个第五候选框和多个第五参考向量一一对应;最后,基于第一解码层的前馈网络对多个第六参考向量和多个第五候选框进行处理,得到多个第六候选框。
[0183]
1403:根据多个第五候选框、多个第六候选框、多个第三类别以及训练图像的标签,对神经网络进行训练。
[0184]
示例性的,根据多个第五候选框、多个第六候选框、多个第三类别以及训练图像的标签,确定第一解码层对应的损失;基于该损失对用于目标检测的神经网络进行训练,直至该用于目标检测的神经网络收敛或者达到训练次数之后,停止对该用于目标检测的神经网络的训练。
[0185]
下面叙述确定第一解码层对应的损失过程。
[0186]
示例性的,训练图像的标签包括至少一个真实框和与该至少一个真实框对应的至少一个真实类别。则根据多个第五候选框、多个第六候选框、多个第三类别以及训练图像的标签确定每个真实框对应的损失,将每个真实框对应的损失作为第一解码层对应的损失。
[0187]
示例性的,获取真实框a和每个第一候选框之间的第一损失,第一损失包括真实框
a和每个第一候选框之间的交并比、真实框a和每个第一候选框之间的定位损失,以及真实框a对应的真实类别和每个第一候选框对应的第三类别之间的分类损失,其中,真实框a为至少一个真实框中的任意一个;根据每个第一候选框对应的第一损失,确定目标第一候选框,比如,可以将每个第一候选框对应的第一损失中的各个损失进行加权,得到每个第一候选框对应的第一目标损失,然后,将第一目标损失最小的第一候选框作为目标第一候选框,并将目标第一候选框对应的第一损失作为该真实框a对应的第一损失;
[0188]
同样的,获取真实框a和多个第二候选框中的每个第二候选框之间的第二损失,第二损失包括真实框a和每个第二候选框之间的交并比、真实框和每个第二候选框之间的定位损失,以及真实框a对应的真实类别和每个第二候选框对应的第三类别之间的分类损失;比如,可以将每个第二候选框对应的第二损失中的各个损失进行加权,得到每个第二候选框对应的第二目标损失,然后,将第二目标损失最小的第二候选框作为目标第二候选框,并将目标第一候选框对应的第二损失作为该真实框a对应的第二损失;
[0189]
其中,定位损失表示真实框在待检测图像中的位置与第一候选框或第二候选框在待检测图像中的位置之间的差异,比如,第一损失中的定位损失可以为真实框的四个顶点的像素坐标与第一候选框的四个顶点的像素坐标之间的差值。
[0190]
最后,将每个真实框和目标第一候选框之间的第一损失,以及每个真实框和目标第二候选框之间的第二损失作为第一解码层对应的损失。
[0191]
举例来说,训练图像中标记了10个真实框以及标记了每个真实框中的真实类别;第一解码层输出了100个第一候选框,100个第二候选框,100个第三类别;然后,将任意一个真实框依次与各个第一候选框进行匹配,得到真实框与各个第一候选框之间的第一损失;然后,对第一损失中的分类损失、交并比以及定位损失进行加权,得到各个第一候选框对应的第一目标损失,将第一目标损失最小的第一候选框作为与该真实框对应的第一目标候选框;同样,可以得到与该真实框对应的第二目标候选框;最后,将10个真实框中的每个真实框与目标第一候选框之间的第一损失以及与第二目标候选框之间的第二损失,作为第一解码层对应的损失。
[0192]
在本技术的一个实施方式中,解码网络还包括第二解码层;因此根据多个第五候选框、多个第六候选框、多个第三类别以及训练图像的标签,对神经网络进行训练之前,将目标第五特征图、多个第六参考向量以及多个第六候选框输入到第二解码层进行目标检测,得到多个第八候选框和第四类别;其中,第二解码层,用于对目标第五特征图和多个第六参考向量进行注意力处理,得到多个第七参考向量;基于多个第七参考向量以及多个第六候选框,得到多个第七候选框和所述多个第四类别;对所述多个第七候选框中每个所述第七候选框对应的特征图和所述多个第七参考向量中的每个第七参考向量进行处理,得到多个第八参考向量,其中,每个所述第七候选框对应的特征图表征所述第七候选框在所述多个第五特征图中的至少一个第五特征图中所框选的特征;基于所述多个第八参考向量和所述多个第七候选框,得到所述多个第八候选框。
[0193]
因此,可根据所述多个第五候选框、所述多个第六候选框、所述多个第三类别、所述多个第七候选框、所述多个第八候选框、所述多个第四类别以及所述训练图像的标签,对神经网络进行训练。具体的,根据所述多个第五候选框、所述多个第六候选框、所述多个第三类别以及所述训练图像的标签,确定第一解码层对应的损失,根据所述多个第七候选框、
所述多个第八候选框、所述多个第四类别以及所述训练图像的标签,确定第二解码层的损失;然后,根据第一解码层对应的损失以及第二解码层对应的损失,对神经网络进行训练。其中,确定第二解码层的损失方式与确定第一解码层的方式类似,不再叙述。
[0194]
需要说明,在训练过程中可以使用每个解码层得到的每个真实框对应的三个损失依次对该神经网络进行训练;或者,将每个真实框对应的三个损失进行加权,得到每个真实框对应的最终损失,依据每个真实框对应的最终损失对该神经网络进行训练;或者,将每个解码层得到的每个真实框对应的最终损失进行加权,得到每个解码层对应的最终损失,使用每个解码层对应的最终损失对该神经网络进行训练;或者,当解码网络包括n个解码层时,对n个解码层的最终损失进行加权,得到目标损失,使用目标损失对该神经网络进行训练。
[0195]
应理解,本技术只是举例说明了使用一个训练图像进行神经网络训练的过程,实际应用中,需要使用多个训练图像对神经网络进行迭代训练,直至神经网络收敛,得到完成训练的神经网络。
[0196]
针对图10示出的神经网络结构以及现有的神经网络,使用resnet网络作为骨干网络;采用微软公布的大型目标检测数据集(common objects in context,coco)分别对现有的神经网络和本技术的神经网络进行训练,得到如表1和表2所示的各个网络的训练效果。
[0197]
表1:当resnet网络为resnet

50,各个神经网络的训练效果:
[0198][0199][0200]
可以看出,当骨干网络为resnet

50时,本技术的神经网络达到46.3ap,在各个神经网络中性能达到最优,并且相比于detr提高了4.3ap,目标检测精度较高;且仅需要36个迭代周期即可收敛,缩短了训练周期。此外,在小目标检测结果(即aps)上本技术的神经网络结构达到了30.5ap,高于其他各个神经网络,提高了对小目标的检测精度。
[0201]
表2:当resnet网络为resnet

101,各个神经网络的训练效果:
[0202]
神经网络骨干网络周期apap50ap75apsapmaplfpsfaster r

cnnresnet

1013642.062.545.925.245.654.620detrresnet

10150043.563.846.421.948.061.820sparse r

cnnresnet

1013645.664.649.528.348.361.618tsp

rcnnresnet

1013644.863.849.229.047.957.1

smcaresnet

1015044.465.248.024.348.561.0

本技术resnet

1013647.466.751.930.850.762.213
[0203]
可以看出,当骨干网络为resnet

101上本技术的神经网络达到了47.4ap,在各个神经网络中性能达到最优,并且相比于detr提高了3.9ap,目标检测精度较高。在小目标检测结果上本技术的神经网络结构达到了30.8ap,高于其他各个神经网络,提高了对小目标的检测精度。
[0204]
参阅图15,图15为本技术实施例提供的一种目标检测装置的结构示意图。目标检测装置1500包括获取单元1501和处理单元1502;
[0205]
获取单元1501,用于获取待检测图像;
[0206]
处理单元1502,用于对待检测图像进行特征提取,得到多个第一特征图,其中,所述多个第一特征图的分辨率不同;
[0207]
对目标第一特征图和多个目标参考向量进行注意力处理,得到多个第一参考向量,其中,所述目标第一特征图为所述多个第一特征图中分辨率小于第一阈值的第一特征图中的任意一个,每个所述目标参考向量用于表征一个物体的特征;
[0208]
根据所述多个第一参考向量进行目标检测,得到多个第一候选框和多个第一类别;
[0209]
对所述多个第一候选框中的每个所述第一候选框对应的特征图和所述多个第一参考向量中的每个所述第一参考向量进行处理,得到多个第二参考向量,其中,每个所述第一候选框对应的特征图表征所述第一候选框在所述多个第一特征图中的至少一个第一特征图中所框选的特征,所述多个第一候选框和所述多个第一参考向量一一对应;
[0210]
根据所述多个第二参考向量和所述多个第一候选框,得到多个第二候选框;
[0211]
基于所述多个第二候选框和所述多个第一类别,得到所述待检测图像的目标检测结果。
[0212]
参阅图16,图16为本技术实施例提供的一种神经网络训练装置的结构示意图。该神经网络用于目标检测。神经网络训练装置1600包括获取单元1601和处理单元1602;
[0213]
获取单元1601,用于获取训练图像;
[0214]
处理单元1602,用于将训练图像输入到所述编码网络进行特征提取,得到多个第五特征图,其中,所述多个第五特征图的分辨率不同;将目标第五特征图和初始参考向量输入到所述第一解码层进行目标检测,得到多个第六候选框和多个第三类别,其中,所述目标第五特征图为所述多个第五特征图中分辨率小于第一阈值的第五特征图中的任意一个,所述多个初始参考向量为初始化得到;其中,所述第一解码层,用于对所述目标第五特征图和所述多个初始参考向量进行注意力处理,得到多个第五参考向量;对所述多个第五参考向量进行目标检测,得到多个第五候选框和所述多个第三类别;对所述多个第五候选框中每个所述第五候选框对应的特征图和所述多个第五参考向量中的第五参考向量进行处理,得到多个第六参考向量,其中,每个所述第五候选框对应的特征图表征所述第五候选框在所述多个第五特征图中的至少一个第五特征图中所框选的特征;基于所述多个第六参考向量和所述多个第五候选框,得到所述多个第六候选框,所述多个第五候选框和所述多个第五参考向量一一对应;根据所述多个第五候选框、所述多个第六候选框、所述多个第三类别以及所述训练图像的标签,对所述神经网络进行训练。
[0215]
图17是本技术实施例提供的另一种目标检测装置的结构示意图。图17所示目标检测装置1700包括存储器1701、处理器1702、通信接口1703以及总线1704。其中,存储器1701、
处理器1702、通信接口1703通过总线1704实现彼此之间的通信连接。
[0216]
存储器1701可以是只读存储器(read only memory,rom),静态存储设备,动态存储设备或者随机存取存储器(random access memory,ram)。存储器1701可以存储程序,当存储器1701中存储的程序被处理器1702执行时,处理器1702和通信接口1703用于执行本技术实施例的目标检测方法的各个步骤。
[0217]
处理器1702可以采用通用的中央处理器(central processing unit,cpu),微处理器,应用专用集成电路(application specific integrated circuit,asic),图形处理器(graphics processing unit,gpu)或者一个或多个集成电路,用于执行相关程序,以实现本技术实施例的目标检测装置中的单元所需执行的功能,或者执行本技术方法实施例的目标检测方法。
[0218]
处理器1702还可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,本技术的目标检测方法的各个步骤可以通过处理器1702中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1702还可以是通用处理器、数字信号处理器(digital signal processing,dsp)、专用集成电路(asic)、现成可编程门阵列(field programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本技术实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本技术实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1701,处理器1702读取存储器1701中的信息,结合其硬件完成本技术实施例的目标检测装置1500中包括的单元所需执行的功能,或者执行本技术方法实施例的目标检测方法。
[0219]
通信接口1703使用例如但不限于收发器一类的收发装置,来实现装置1700与其他设备或通信网络之间的通信。例如,可以通过通信接口1703获取待检测图像。
[0220]
总线1704可包括在装置1700各个部件(例如,存储器1701、处理器1702、通信接口1703)之间传送信息的通路。
[0221]
应理解,目标检测装置1500中的获取单元1501相当于目标检测装置1700中的通信接口1703;目标检测装置1500中的处理单元1502可以相当于处理器1702。
[0222]
参阅图18,图18是本技术实施例提供的一种神经网络训练装置的结构示意图。图18所示的神经网络训练装置1800包括存储器1801、处理器1802、通信接口1803以及总线1804。其中,存储器1801、处理器1802、通信接口1803通过总线1804实现彼此之间的通信连接。
[0223]
存储器1801可以是只读存储器(read only memory,rom),静态存储设备,动态存储设备或者随机存取存储器(random access memory,ram)。存储器1801可以存储程序,当存储器1801中存储的程序被处理器1802执行时,处理器1802和通信接口1803用于执行本技术实施例的神经网络训练方法的各个步骤。
[0224]
处理器1802可以采用通用的中央处理器(central processing unit,cpu),微处理器,应用专用集成电路(application specific integrated circuit,asic),图形处理器(graphics processing unit,gpu)或者一个或多个集成电路,用于执行相关程序,以实
现本技术实施例的神经网络训练装置1600中的单元所需执行的功能,或者执行本技术方法实施例的神经网络训练方法。
[0225]
处理器1802还可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,本技术的神经网络训练方法的各个步骤可以通过处理器1802中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1802还可以是通用处理器、数字信号处理器(digital signal processing,dsp)、专用集成电路(asic)、现成可编程门阵列(field programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本技术实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本技术实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1801,处理器1802读取存储器1801中的信息,结合其硬件完成本技术实施例的神经网络训练装置1600中包括的单元所需执行的功能,或者执行本技术方法实施例的神经网络训练方法。
[0226]
通信接口1803使用例如但不限于收发器一类的收发装置,来实现装置1800与其他设备或通信网络之间的通信。例如,可以通过通信接口1803获取训练图像。
[0227]
总线1804可包括在装置1800各个部件(例如,存储器1801、处理器1802、通信接口1803)之间传送信息的通路。
[0228]
应理解,神经网络训练装置1600中的获取单元1601相当于神经网络训练装置1800中的通信接口1803,处理单元1602可以相当于处理器1802。
[0229]
应注意,尽管图17和图18所示的目标检测装置1700和神经网络训练装置1800仅仅示出了存储器、处理器、通信接口,但是在具体实现过程中,本领域的技术人员应当理解,目标检测装置1700和神经网络训练装置1800还包括实现正常运行所必须的其他器件。同时,根据具体需要,本领域的技术人员应当理解,目标检测装置1700和神经网络训练装置1800还可包括实现其他附加功能的硬件器件。此外,本领域的技术人员应当理解,目标检测装置1700和神经网络训练装置1800也可仅仅包括实现本技术实施例所必须的器件,而不必包括图17或图18中所示的全部器件。
[0230]
可以理解,神经网络训练装置1800相当于图2中的所述训练设备120,目标检测装置1700相当于图2中的所述执行设备110。本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
[0231]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0232]
在本技术所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或
讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0233]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0234]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
[0235]
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read

only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0236]
以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。
再多了解一些

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

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

相关文献