CN111931764B - 一种目标检测方法、目标检测框架及相关设备 - Google Patents
一种目标检测方法、目标检测框架及相关设备 Download PDFInfo
- Publication number
- CN111931764B CN111931764B CN202010615011.6A CN202010615011A CN111931764B CN 111931764 B CN111931764 B CN 111931764B CN 202010615011 A CN202010615011 A CN 202010615011A CN 111931764 B CN111931764 B CN 111931764B
- Authority
- CN
- China
- Prior art keywords
- target
- corner
- corner point
- image
- point
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 235
- 238000000034 method Methods 0.000 claims abstract description 105
- 238000013528 artificial neural network Methods 0.000 claims description 149
- 238000010586 diagram Methods 0.000 claims description 92
- 238000000605 extraction Methods 0.000 claims description 92
- 238000012549 training Methods 0.000 claims description 84
- 238000012545 processing Methods 0.000 claims description 76
- 230000015654 memory Effects 0.000 claims description 49
- 238000004422 calculation algorithm Methods 0.000 claims description 34
- 238000013507 mapping Methods 0.000 claims description 18
- 238000003860 storage Methods 0.000 claims description 17
- 238000004590 computer program Methods 0.000 claims description 6
- 238000013473 artificial intelligence Methods 0.000 abstract description 10
- 238000012216 screening Methods 0.000 abstract description 7
- 230000000875 corresponding effect Effects 0.000 description 32
- 230000006870 function Effects 0.000 description 26
- 230000008569 process Effects 0.000 description 25
- 239000011159 matrix material Substances 0.000 description 23
- 238000004364 calculation method Methods 0.000 description 13
- 238000013461 design Methods 0.000 description 13
- 238000013527 convolutional neural network Methods 0.000 description 12
- 239000013598 vector Substances 0.000 description 11
- 238000010276 construction Methods 0.000 description 8
- 238000013500 data storage Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 7
- 241000282414 Homo sapiens Species 0.000 description 6
- 238000004891 communication Methods 0.000 description 6
- 238000013135 deep learning Methods 0.000 description 5
- 238000011161 development Methods 0.000 description 5
- 230000018109 developmental process Effects 0.000 description 5
- MHABMANUFPZXEB-UHFFFAOYSA-N O-demethyl-aloesaponarin I Natural products O=C1C2=CC=CC(O)=C2C(=O)C2=C1C=C(O)C(C(O)=O)=C2C MHABMANUFPZXEB-UHFFFAOYSA-N 0.000 description 4
- 239000000284 extract Substances 0.000 description 4
- 238000003062 neural network model Methods 0.000 description 4
- 241001465754 Metazoa Species 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 238000011022 operating instruction Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000009466 transformation Effects 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- 210000004556 brain Anatomy 0.000 description 2
- 239000000872 buffer Substances 0.000 description 2
- 230000007613 environmental effect Effects 0.000 description 2
- 238000003709 image segmentation Methods 0.000 description 2
- 230000004807 localization Effects 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 238000010606 normalization Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000008447 perception Effects 0.000 description 2
- 238000003672 processing method Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 description 1
- 102100031315 AP-2 complex subunit mu Human genes 0.000 description 1
- 241000283086 Equidae Species 0.000 description 1
- 241000282412 Homo Species 0.000 description 1
- 101000796047 Homo sapiens AP-2 complex subunit mu Proteins 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 238000005452 bending Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 210000004027 cell Anatomy 0.000 description 1
- 238000011217 control strategy Methods 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000003745 diagnosis Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000009432 framing Methods 0.000 description 1
- 238000009499 grossing Methods 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012886 linear function Methods 0.000 description 1
- 239000007788 liquid Substances 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 210000000056 organ Anatomy 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000001373 regressive effect Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 238000001356 surgical procedure Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/20—Image preprocessing
- G06V10/25—Determination of region of interest [ROI] or a volume of interest [VOI]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/20—Image preprocessing
- G06V10/26—Segmentation of patterns in the image field; Cutting or merging of image elements to establish the pattern region, e.g. clustering-based techniques; Detection of occlusion
- G06V10/267—Segmentation of patterns in the image field; Cutting or merging of image elements to establish the pattern region, e.g. clustering-based techniques; Detection of occlusion by performing operations on regions, e.g. growing, shrinking or watersheds
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
- G06V10/44—Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Multimedia (AREA)
- Evolutionary Computation (AREA)
- Computer Vision & Pattern Recognition (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Image Analysis (AREA)
Abstract
本申请实施例公开了一种目标检测方法、目标检测框架及相关设备,可应用于人工智能领域中的计算机视觉领域,该方法包括:首先对输入图像提取角点特征,生成角热点图,并基于角热点图得到角点对,再基于角点对构建目标框,这种构建方法由于不考虑生成目标框的质量,过程简单快速,为下一步高质量目标框的筛选奠定基础。之后通过对各目标框包括的图像信息抠取内部特征(如通过RoIAlign),实现对枚举生成的目标框的进一步筛选,选出其中质量较高的目标框,去除质量低的目标框及错误目标框,本申请与基于锚框(anchor)的目标检测方法相比,增加了目标框构建的灵活性和目标框尺寸的多样性,同时充分利用了目标框包括的图像的内部信息,使目标框的判断更准确。
Description
技术领域
本申请涉及计算机视觉领域,尤其涉及一种目标检测方法、目标检测框架及相关设备。
背景技术
计算机视觉是各个应用领域,如制造业、检验、文档分析、医疗诊断,和军事等领域中各种智能/自主系统中不可分割的一部分,它是一门关于如何运用照相机/摄像机和计算机来获取人们所需的被拍摄对象的数据与信息的学问。形象地说,就是给计算机安装上眼睛(照相机/摄像机)和大脑(算法)用来代替人眼对目标进行识别、跟踪和测量等,从而使计算机能够感知环境。因为感知可以看作是从感官信号中提取信息,所以计算机视觉也可以看作是研究如何使人工系统从图像或多维数据中“感知”的科学。总的来说,计算机视觉就是用各种成像系统代替视觉器官获取输入信息,再由计算机来代替大脑对这些输入信息完成处理和解释。计算机视觉的最终研究目标就是使计算机能像人那样通过视觉观察和理解世界,具有自主适应环境的能力。目标检测是计算机视觉领域常用到的技术。
目标检测,也叫目标提取,是一种基于目标几何和统计特征的图像分割,其关注图像中特定的物体目标,要求同时获得这一特定物体目标的类别信息和位置信息,目标检测在很多场景都有应用,如,无人驾驶的安防系统、智能化交通系统、智能监控系统等。目标检测对于人类来说并不困难,通过对图片中不同颜色模块的感知很容易定位并分类出其中的目标物体。但对于计算机来说,面对的是RGB像素矩阵,很难从图像中直接得到物体的抽象概念并定位其位置,再加上有时候多个物体和杂乱的背景混杂在一起,使得目标检测更加困难。
借助于深度学习的强大能力,目标检测取得了较大的成功,目标检测方法主要分为两大类:两阶段(two-stage)方法和一阶段(one-stage)方法。two-stage方法的技术方案主要分为以下几个步骤:对候选区域(anchor)进行初步的回归的和二分类(前景和背景)从而得到感知区域(region of interest,RoI);获取RoI内部的特征并使用这些特征做进一步的回归和分类,从而实现目标检测任务。但two-stage方法将目标检测任务分成两个阶段进行,步骤繁琐。与two-stage方法不同,one-stage方法直接对候选区域进行回归和分类,因此在一个阶段内就能检测出目标。但one-stage方法存在高误检率的缺点。当前采用的目标检测算法通常难以同时满足高查全率和低误检率的要求。在实际应用中,例如无人驾驶场景中,为了保证安全性,要求目标检测算法既要保证高查全率又要保证低误检率,因此需要研究在高查全率下,降低误检率的目标检测方法。
发明内容
本申请实施例提供了一种目标检测方法、目标检测框架及相关设备,通过角点对来构建目标框,再通过提取目标框包括的图像信息的内部特征,来进一步判断该目标框的准确性,既增加了目标框构建的灵活性和目标框尺寸的多样性,同时又充分利用了目标框包括的图像的内部信息,使目标框的判断更为准确。
基于此,本申请实施例提供以下技术方案:
第一方面,本申请实施例首先提供一种目标检测方法,可用于人工智能领域中的计算机视觉领域,具体涉及目标检测领域,该方法包括:首先,检测设备对于输入的目标图像进行角点特征提取处理,得到至少两个角热点图,角热点图用于表征各个角点的位置、所属目标类别(即目标对象的分类类别)以及角点的置信度。检测设备通过对目标图像进行角点特征提取处理,得到至少两个角热点图之后,就可以从每个角热点图中分别取出一个角点,组成角点对,组成角点对的各个角点均对应同一目标类别,之后,再根据得到的角点对构建目标框,并根据角点对确定该目标框的第一置信度和第一目标类别。需要注意的是,这里所说的角点对并不限定只是2个角点,可以是2点角点,也可以是3个角点,还可以是更多的角点,由角热点图的数量决定,此处不做限定。通过上述步骤得到的目标框中,其中有一些是质量较高的目标框,另一些则是错误目标框。因此需要对这些目标框进行判断,从中筛选出质量较高的目标框。要对这些目标框进行分类,首先要得到代表这些目标框的特征,再针对每个目标框包括的图像信息(可称为第一图像信息)进行内部特征提取处理,检测设备提取到各个目标框的内部特征后,就可依次判断每个目标框的内部特征是否满足预设条件,若确定是满足预设条件,就确定该目标框包括的第二置信度和第二目标类别。最后,检测设备根据第一置信度、第二置信度、第一目标类别和第二目标类别确定所述目标框包括的目标对象的目标检测结果。
在本申请上述实施方式中,首先通过对输入图像提取角点特征,生成角热带图,并基于角热点图,得到角点对,再基于角点对构建目标框,这种基于枚举的方法由于不考虑生成目标框的质量,过程简单快速,为下一步高质量目标框的筛选奠定基础;之后,通过对各个目标框包括的图像信息抠取内部特征,实现对枚举生成的目标框的进一步筛选,选出其中质量较高的目标框,去除质量低的目标框以及错误目标框,本申请与基于锚框(anchor)的目标检测方法相比,增加了目标框构建的灵活性和目标框尺寸的多样性,同时又充分利用了目标框包括的图像的内部信息,使目标框的判断更为准确。
在第一方面的一种可能实现方式中,检测设备对目标图像进行角点特征提取处理,得到至少两个角热点图的方式可以是:向训练后的第一神经网络输入该目标图像,得到该目标图像的初始特征图,再通过训练后的第二神经网络对该初始特征图进行角点特征提取处理,得到至少两个角点力图。其中,第一神经网络为一个深度神经网络,其包括较多的层,用于提取目标图像的特征,其对输入的目标图像进行卷积处理,得到该目标图像的卷积特征图(即初始特征图),所得到的卷积特征图就是输入图像的空间特征表示。本申请实施例中第一神经网络模块可以采用多种构架,比如VGG16、Hourglass等网络构架。第一神经网络的参数需要在目标检测的数据集(也可称为训练集)上进行预训练,从而得到训练后的第一神经网络。还需要注意的是,输入的目标图像的尺寸与经过第一神经网络卷积操作后得到的初始特征图之间一般为等比例缩放关系,假设目标图像的尺寸是高为H、宽为W(可记为H×W),缩放比例为n(n为整数),则初始特征图的尺寸是高为H/n、宽为W/n(可记为)。第二神经网络则可以是一个浅层的神经网络,用于对第一神经网络输出的初始特征图进行角点特征提取处理,得到至少两个角热点图。
在本申请上述实施方式中,阐述了如何得到角热点图,即先利用一个神经网络得到目标图像的初始特征图,再利用另一个神经网络得到角热点图,具备可实现性。
在第一方面的一种可能实现方式中,检测设备得到目标框包括的第一图像信息具体可以是通过但不限于如下方式:将目标框的坐标映射至由上述训练后的第一神经网络输出的初始特征图上,从而得到目标框包括的第一图像信息,或者,将上述训练后的第一神经网络输出的初始特征图作为训练后的第三神经网络的输入,从而输出第一特征图,再将目标框的坐标映射至该第一特征图,得到目标框包括的第一图像信息。
在本申请的上述实施方式中,阐述了得到目标框包括的第一图像信息的两种方式,具备灵活性。其中,直接将目标框坐标映射到初始特征图上这种方式是为了减小计算量,但只通过训练后的第一神经网络得到的初始特征图包括的信息可能没有区分度,例如,背景和前景都会作为同样重要的特征提取出来。为了使得目标框包括的第一图像信息能更有区分度,也可以再利用一个神经网络(即第三神经网络)对初始特征图进行再提取,经过对第三神经网络的迭代训练,得到的第一特征图就能够较好的区分图像中的前景和背景。
在第一方面的一种可能实现方式中,检测设备具体可以是先对所述目标框包括的第一图像信息进行内部特征提取处理,得到第一内部特征,所述第一内部特征用于表征所述第一图像信息的类型,所述类型包括背景和前景,之后,当该第一内部特征为前景,则将目标框的坐标映射至第二特征图,得到目标框包括的第二图像信息,该第二特征图为通过训练后的第四神经网络对初始特征图进行第二卷积操作得到,之后再对该目标框包括的第二图像信息再次进行内部特征提取处理,得到第二内部特征,此时提取的第二内部特征包括了该第二图像信息的多层次特征,最后再根据提取到的第二内部特征确定该目标框的第二置信度和第二目标类别。
在本申请的上述实施方式中,先区分前景和背景,此时第一内部特征则用于表征第一图像信息的类型(如,前景和背景),再对剩下的目标框,利用目标框包括的第二图像信息的第二内部特征进行进一步的区分,此时第二内部特征由于包括更多层次的特征,使得对目标对象的识别会更加准确,因此,通过上述两个阶段的区分,提高了目标框检测的准确率。
在第一方面的一种可能实现方式中,当第一内部特征为背景,则将该目标框去除。
在本申请的上述实施方式中,若确定某个目标框的内部特征为背景,则将该目标框去除。在这一步,就可剔除到绝大部分错误或准确率低的目标框,提高了目标检测的速度。
在第一方面的一种可能实现方式中,当第一目标类别和第二目标类别相同,则检测设备根据所述第一置信度和所述第二置信度确定所述目标框包括的目标对象为所述第一目标类别的第三置信度,该第三置信度就用于表示该目标框包括的目标对象属于第一目标类别的概率。
在本申请的上述实施方式中,当第一目标类别和第二目标类别相同,那么说明该目标框大概率是一个很准确的目标框,此时可以将根据第一置信度和第二置信度计算得到该目标框的第三置信度,通过再次计算的方式,提高该目标框所占权重,符合实际的真实应用场景。
在第一方面的一种可能实现方式中,计算第三置信度的原则是将该目标框包括的目标对象属于第一目标类别的概率提高,具体可以通过但不限于如下方式:将第一置信度与第一预设值x(0<x<1)相加得到的第一结果与第二置信度与第二预设值y(0<y<1)相加得到的第二结果进行运算(如,乘积运算),得到第三置信度,其中,x和y可以相同,也可以不同,此处不做限定。例如,可以把将目标框的第三置信度设置为(s1+0.5)(s2+0.5),意为如果任何一方(假设第一置信度为s1,第二置信度为s2)的置信度大于0.5,那么此目标框的第三置信度会相应的提高,这是设定是合理的,因为两方都判断该目标框包括的目标对象为同一类别,那么倾向于相信预测的类别就是真实的类别,因此将此目标框的第三置信度提高;或者,取第一置信度和第二置信度中取值更大的那个为第三置信度,这种方式是直接选取置信度取值更大的那个作为第三置信度,不增加计算量;或者,将第一置信度和第二置信度中取值更大的那个与第三预设值z进行运算得到的第三结果作为第三置信度。例如,假设s1>s2,则可以把将目标框的第三置信度设置为(s1×1.2),这样相应的提高了第三置信度的最终取值。
在本申请的上述实施方式中,提供了三种如何计算得到最终的目标框的第三置信度的方式,可根据实际需要选择任意一种实现方式,具备灵活性和可选择性。
在第一方面的一种可能实现方式中,当第一目标类别和第二目标类别不相同,此时可以通过如下几种方式进行处理:1)若第一置信度大于第二置信度,则根据第一置信度和第一目标类别确定目标框包括的目标对象的第一目标检测结果,也就是说,若通过角点预测的方式得到的置信度取值更高,就保留角点预测方式得到的目标框;2)若第二置信度大于第一置信度,则根据第二置信度和第二目标类别确定目标框包括的目标对象的第二目标检测结果,也就是说,若通过分类器预测的方式得到的置信度取值更高,就保留分类器预测方式得到的目标框;3)将此目标框复制一份,使其中一个目标框的类别和置信度来自角点预测方式,另一个目标框的类别和置信度来自分类器预测方式,这种情况由于不知道哪个目标框是准确的,因此都进行保留。
在本申请的上述实施方式中,当第一目标类别和第二目标类别不相同,说明通过角点预测的类别与通过分类器预测的类别存在较大分歧,此时可通过上述三种方式进行处理,可根据实际需要选择任意一种实现方式,具备灵活性和可选择性。
在第一方面的一种可能实现方式中,检测设备可以采用RoIAlign算法或RoIPooling算法对所述目标框包括的第一图像信息进行内部特征提取处理。
在本申请的上述实施方式中,具体给出了两种进行内部特征提取处理的方式,具备灵活性。
在第一方面的一种可能实现方式中,当至少两个角热点图包括第一角热点图和第二角热点图,且得到的角点对由第一角热点图中的第一角点和第二角热点图中的第二角点组成,且第一角点和第二角点均来自于各个角热点图的同一通道(如,第3通道,这样保证了组成的角点对为同一类别),其中,所述第一角点为所述目标图像中一个左上角点且所述第二角点为所述目标图像中一个右下角点,或,所述第一角点为所述目标图像中一个右上角点且所述第二角点为所述目标图像中一个左下角点;那么,根据所述目标角点对,生成矩形的目标框,所述第一角点和所述第二角点对应所述目标框对角线上的两个顶点。
在本申请的上述实施方式中,给出了一种根据角点对构建目标框的其中一种具体实现方式,具备可实现性。
在第一方面的一种可能实现方式中,当至少两个角热点图包括第三角热点图、第四角热点图、第五角热点图、第六角热点图,且得到的角点对由第三角热点图中的第三角点、第四角热点图中的第四角点、第五角热点图中的第五角点、第六角热点图中的第六角点组成,且第三角点至第六角点均来自于各个角热点图的同一通道(如,第3通道,这样保证了组成的角点对为同一类别),其中,第三角点为输入的目标图像中一个上方角点、第四角点为输入的目标图像中一个下方角点、第五角点为输入的目标图像中一个左方角点、第六角点为输入的目标图像中一个右方角点,那么就可根据该角点对,生成目标框,且第三角点至第六角点分别对应目标框上边框线、下边框线、左边框线、右边框线上的点。需要说明的是,在本申请实施例中,第三角点至第六角点在各自边框线上的位置不做限定,如,可以位于各自边框线的中点位置,也可以位于各自边框线的任意位置,此处不做限定。
在本申请的上述实施方式中,给出了一种根据角点对构建目标框的其中一种具体实现方式,具备可实现性。
在第一方面的一种可能实现方式中,当至少两个角热点图包括第七角热点图、第八角热点图、第九角热点图,且该角点对由第七角热点图中的第七角点、第八角热点图中的第八角点、第九角热点图中的第九角点组成,且第七角点至第九角点均来自于各个角热点图的同一通道(如,第3通道,这样保证了组成的角点对为同一类别),其中,第七角点为目标图像中一个上方角点、第八角点为目标图像中一个左方角点且第九角点为目标图像中一个右下角点,或,第七角点为目标图像中一个上方角点、第八角点为目标图像中一个右方角点且第九角点为所述目标图像中一个左下角点,或,第七角点为目标图像中一个下方角点、第八角点为目标图像中一个左方角点且第九角点为目标图像中一个右上角点,或,第七角点为目标图像中一个下方角点、第八角点为目标图像中一个右方角点且第九角点为所述目标图像中一个左上角点。最后,就可根据上述得到的角点对,生成目标框,其中,第七角点和第八角点分别对应目标框上相邻边框线上的点,且第九角点对应与相邻边框线的交点呈对角位置的一个顶点。类似地,在本申请实施例中,第七角点和第八角点在相邻的各自边框线上的位置不做限定,如,可以位于相邻的各自边框线的中点位置,也可以位于相邻的各自边框线的任意位置,此处不做限定。
在本申请的上述实施方式中,给出了一种根据角点对构建目标框的其中一种具体实现方式,具备可实现性。
在第一方面的一种可能实现方式中,当至少两个角热点图包括第十角热点图、第十一角热点图、第十二角热点图,且该角点对由第十角热点图中的第十角点、第十一角热点图中的第十一角点、第十二角热点图中的第十二角点组成,且第十角点至第十二角点均来自于各个角热点图的同一通道(如,第3通道,这样保证了组成的角点对为同一类别),其中,第十角点为目标图像中一个上方角点、第十一角点为目标图像中一个左方角点且第十二角点为目标图像中一个中心角点,或,第十角点为目标图像中一个上方角点、第十一角点为目标图像中一个右方角点且第十二角点为目标图像中一个中心角点,或,第十角点为目标图像中一个下方角点、第十一角点为目标图像中一个左方角点且第十二角点为所述目标图像中一个中心角点,或,第十角点为目标图像中一个下方角点、第十一角点为所述目标图像中一个右方角点且第十二角点为目标图像中一个中心角点。就可根据上述得到的角点对,生成矩形的目标框,第十角点和第十一角点分别对应目标框上相邻边框线上的点,且第十二角点对应目标框的中心点。类似地,在本申请实施例中,第十角点和第十一角点在相邻的各自边框线上的位置不做限定,如,可以位于相邻的各自边框线的中点位置,也可以位于相邻的各自边框线的任意位置,此处不做限定。
在本申请的上述实施方式中,给出了一种根据角点对构建目标框的其中一种具体实现方式,具备可实现性。
在第一方面的一种可能实现方式中,当至少两个角热点图包括第十三角热点图和第十四角热点图,且该角点对由第十三角热点图中的第十三角点和第十四角热点图中的第十四角点组成,且第十三角点至第十四角点均来自于各个角热点图的同一通道(如,第3通道,这样保证了组成的角点对为同一类别),其中,第十三角点为目标图像中一个左上角点、左下角点、右上角点、右下角点中的任意一个,且第十四角点为目标图像中一个中心角点。最后,就可根据上述得到的角点对,生成矩形的目标框,第十三角点对应目标框的任意一个顶点,且第十四角点对应目标框的中心点。
在本申请的上述实施方式中,给出了一种根据角点对构建目标框的其中一种具体实现方式,具备可实现性。
本申请实施例第二方面提供了一种目标检测框架,该目标检测框架可由如下部分组成:第一神经网络、第二神经网络、内部特征提取模块以及分类器,其中,第一神经网络为一个深度神经网络,包括较多的层,用于对输入的目标图像进行初步的特征提取,输出初始特征图,第二神经网络为一个浅层的神经网络,用于对第一神经网络输出的初始特征图进行角点特征提取处理,得到至少两个角热点图(也可称为角点热力图),每个角热点图用于表征各个角点的在目标图像上所处的位置、所属的目标类别(如,马、人、狗等分类类别)以及角点的置信度,再基于得到的角热点图构建目标框,具体地,从每个角热点图中分别取出一个角点,组成角点对,组成角点对的各个角点均对应同一目标类别,之后,再根据得到的角点对构建目标框,并根据角点对确定该目标框的第一置信度和第一目标类别。需要注意的是,这里所说的角点对并不限定只是2个角点,可以是2点角点,也可以是3个角点,还可以是更多的角点,由角热点图的数量决定,此处不做限定。之后,内部特征提取模块再基于构建的目标框得到各个目标框包括的图像信息的内部特征。最后分类器,用于判断提取到的内部特征是否满足预设条件,当所述内部特征满足所述预设条件,则确定目标框的第二置信度和第二目标类别,并用于根据目标框的第一置信度、目标框的第一目标类别、第二置信度和第二目标类别确定目标框包括的目标对象的目标检测结果,第一置信度为目标角点对的置信度,第一目标类别为上述同一目标类别。
在第二方面的一种可能的实现方式中,可以是将构建的目标框的坐标映射至初始特征图上,以得到各个目标框包括的图像信息。
在第二方面的一种可能的实现方式中,本申请实施例所述提供的目标检测框架还可以包括:第三神经网络,该第三神经网络,用于在训练后,对输入的初始特征图进行第一卷积操作,得到第一特征图,此时在这种实施方式中,可以是将构建的目标框的坐标映射至第一特征图上,以得到各个目标框包括的第一图像信息。这里需要解释的是,直接将目标框坐标映射到初始特征图上这种方式是为了减小计算量,但只通过训练后的第一神经网络得到的初始特征图包括的信息可能没有区分度,例如,背景和前景都会作为同样重要的特征提取出来。为了使得目标框包括的第一图像信息能更有区分度,就可再利用一个神经网络(即第三神经网络)对初始特征图进行再提取,经过对第三神经网络的迭代训练,得到的第一特征图就能够较好的区分图像中的前景和背景。
在第二方面的一种可能的实现方式中,本申请实施例所述提供的目标检测框架还可以包括:第四神经网络,分类器可以具体包括:二分类器和多分类器。其中,第四神经网络,用于在训练后,对输入的初始特征图进行第二卷积操作,得到第二特征图;内部特征提取模块,具体用于对目标框包括的第一图像信息进行内部特征提取处理,得到第一内部特征,第一内部特征用于表征所述第一图像信息的类型,所述类型包括背景和前景;二分类器,用于在训练后,当第一内部特征为前景,保留所述目标框;内部特征提取模块,具体还用于对目标框包括的第二图像信息进行内部特征提取处理,得到第二内部特征,所述第二内部特征包括所述第二图像信息的多层次特征,所述第二图像信息为将所述目标框映射至所述第二特征图得到;多分类器,用于在训练后,根据第二内部特征确定所述目标框的第二置信度和第二目标类别。
在第二方面的一种可能的实现方式中,该分类器,还用于在训练后,当内部特征不满足预设条件(如,为背景),则去除该目标框。
在第二方面的一种可能的实现方式中,当第一目标类别和第二目标类别相同,那么说明该目标框大概率是一个很准确的目标框,此时分类器将根据第一置信度和第二置信度计算得到该目标框的第三置信度,该第三置信度就用于表示该目标框包括的目标对象属于第一目标类别的概率。
在第二方面的一种可能的实现方式中,分类器计算第三置信度的原则是将该目标框包括的目标对象属于第一目标类别的概率提高,具体可以通过但不限于如下方式:1)将第一置信度与第一预设值x(0<x<1)相加得到的第一结果与第二置信度与第二预设值y(0<y<1)相加得到的第二结果进行运算(如,乘积运算),得到第三置信度,其中,x和y可以相同,也可以不同,此处不做限定。例如,可以把将目标框的第三置信度设置为(s1+0.5)(s2+0.5),意为如果任何一方(假设第一置信度为s1,第二置信度为s2)的置信度大于0.5,那么此目标框的第三置信度会相应的提高,这是设定是合理的,因为两方都判断该目标框包括的目标对象为同一类别,那么倾向于相信预测的类别就是真实的类别,因此将此目标框的第三置信度提高;2)取第一置信度和第二置信度中取值更大的那个为第三置信度,这种方式是直接选取置信度取值更大的那个作为第三置信度,不增加计算量;3)将第一置信度和第二置信度中取值更大的那个与第三预设值z进行运算得到的第三结果作为第三置信度。例如,假设s1>s2,则可以把将目标框的第三置信度设置为(s1×1.2),这样相应的提高了第三置信度的最终取值。
在第二方面的一种可能的实现方式中,当第一目标类别和第二目标类别不相同,说明通过角点预测的类别与通过分类器预测的类别存在较大分歧,此时分类器可以通过如下几种方式进行处理:1)若第一置信度大于第二置信度,则根据第一置信度和第一目标类别确定目标框包括的目标对象的第一目标检测结果,也就是说,若通过角点预测的方式得到的置信度取值更高,就保留角点预测方式得到的目标框;2)若第二置信度大于第一置信度,则根据第二置信度和第二目标类别确定目标框包括的目标对象的第二目标检测结果,也就是说,若通过分类器预测的方式得到的置信度取值更高,就保留分类器预测方式得到的目标框;3)将此目标框复制一份,使其中一个目标框的类别和置信度来自角点预测方式,另一个目标框的类别和置信度来自分类器预测方式,这种情况由于不知道哪个目标框是准确的,因此都进行保留。
在第二方面的一种可能的实现方式中,内部特征提取模块包括:RoIAlign算法或RoIPooling算法。
在第二方面的一种可能的实现方式中,训练后的目标检测框架部署在检测设备上,其中检测设备可以是具有显示界面的各种终端侧设备,如摄像机、录像机、智能家居等边缘设备,检测设备也可以是如手机、个人计算机、计算机工作站、平板电脑、智能可穿戴设备(如,智能手表、智能手环、智能耳机等)、游戏机、机顶盒、媒体消费设备等端侧设备;检测设备还可以是各种轮式移动设备(轮式施工设备、自动驾驶车辆、辅助驾驶车辆等),自动驾驶车辆还可以为轿车、卡车、摩托车、公共汽车、船、飞机、直升飞机、割草机、娱乐车、游乐场车辆、施工设备、电车、高尔夫球车、火车、和手推车等等。只要是能够部署本申请实施例所述的目标检测框架的设备,都可以认为是本申请实施例所述的检测设备,具体此处不做限定。
在第二方面的一种可能的实现方式中,部署有该训练后的目标检测框架的检测设备还可以部署有摄像头,用于采集该检测设备周围的环境信息,得到目标图像。
本申请实施例第三方面提供一种检测设备,该检测设备具有实现上述第一方面或第一方面任意一种可能实现方式的方法的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。
本申请实施例第四方面提供一种检测设备,可以包括存储器、处理器以及总线系统,其中,存储器用于存储程序,处理器用于调用该存储器中存储的程序以执行本申请实施例第一方面或第一方面任意一种可能实现方式的方法。
本申请第五方面提供一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机可以执行上述第一方面或第一方面任意一种可能实现方式的方法。
本申请实施例第六方面提供了一种计算机程序,当其在计算机上运行时,使得计算机执行上述第一方面或第一方面任意一种可能实现方式的方法。
附图说明
图1为本申请实施例提供的角点的示意图;
图2为CNN检测目标物体的一个基本过程的示意图;
图3为本申请实施例提供的人工智能主体框架的一种结构示意图;
图4为本申请实施例提供的目标检测方法的基本原理的一个示意图;
图5为本申请实施例提供的目标检测方法的一个流程图;
图6为本申请实施例提供的输入的目标图像与输出的初始特征图之间的缩放关系的一个示意图;
图7为本申请实施例提供的得到至少两个角热点图以及基于该至少两个角热点图构建目标框的一个示意图;
图8为本申请实施例提供的根据角点对构建目标框的一种实现方式的示意图;
图9为本申请实施例提供的根据角点对构建目标框的另一实现方式的示意图;
图10为本申请实施例提供的根据角点对构建目标框的另一实现方式的示意图;
图11为本申请实施例提供的根据角点对构建目标框的另一实现方式的示意图;
图12为本申请实施例提供的根据角点对构建目标框的另一实现方式的示意图;
图13为本申请实施例提供的判断目标框的内部特征是否满足预设条件的一个示意图;
图14为本申请实施例提供的判断目标框的内部特征是否满足预设条件的另一示意图;
图15为本申请实施例提供的确定目标框的第二置信度和第二目标类别的一个示意图;
图16为本申请实施例提供的确定目标框的第二置信度和第二目标类别的另一示意图;
图17为本申请实施例提供的对确定的目标框进行补偿的一个示意图;
图18为本申请实施例提供的目标检测框架的一个示意图;
图19为本申请实施例提供的目标检测框架的另一示意图;
图20为本申请实施例提供的图像处理系统的一个示意图;
图21为本申请实施例提供的应用场景的一个示意图;
图22为本申请实施例提供的应用场景的另一示意图;
图23为本申请实施例提供的应用场景的另一示意图;
图24为本申请实施例提供的检测设备的一个示意图;
图25为本申请实施例提供的检测设备的另一示意图;
图26为本申请实施例提供的芯片的一种结构示意图。
具体实施方式
本申请实施例提供了一种目标检测方法、目标检测框架及相关设备,通过角点对来构建目标框,再通过提取目标框包括的图像信息的内部特征,来进一步判断该目标框的准确性,既增加了目标框构建的灵活性和目标框尺寸的多样性,同时又充分利用了目标框包括的图像的内部信息,使目标框的判断更为准确。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,这仅仅是描述本申请的实施例中对相同属性的对象在描述时所采用的区分方式。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,以便包含一系列单元的过程、方法、系统、产品或设备不必限于那些单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它单元。
本申请实施例涉及了许多关于神经网络以及目标检测的相关知识,为了更好地理解本申请实施例的方案,下面先对本申请实施例可能涉及的神经网络及目标检测的相关术语和概念进行介绍。
(1)神经网络
神经网络可以是由神经单元组成的,具体可以理解为具有输入层、隐含层、输出层的神经网络,一般来说第一层是输入层,最后一层是输出层,中间的层数都是隐含层。其中,具有很多层隐含层的神经网络则称为深度神经网络(deep neural network,DNN)。神经网络中的每一层的工作可以用数学表达式来描述,从物理层面,神经网络中的每一层的工作可以理解为通过五种对输入空间(输入向量的集合)的操作,完成输入空间到输出空间的变换(即矩阵的行空间到列空间),这五种操作包括:1、升维/降维;2、放大/缩小;3、旋转;4、平移;5、“弯曲”。其中1、2、3的操作由/>完成,4的操作由“+b”完成,5的操作则由“a()”来实现。这里之所以用“空间”二字来表述是因为被分类的对象并不是单个事物,而是一类事物,空间是指这类事物所有个体的集合,其中,W是神经网络各层的权重矩阵,该矩阵中的每一个值表示该层的一个神经元的权重值。该矩阵W决定着上文所述的输入空间到输出空间的空间变换,即神经网络每一层的W控制着如何变换空间。训练神经网络的目的,也就是最终得到训练好的神经网络的所有层的权重矩阵。因此,神经网络的训练过程本质上就是学习控制空间变换的方式,更具体的就是学习权重矩阵。在训练神经网络的过程中,因为希望神经网络的输出尽可能的接近真正想要预测的值,可以通过比较当前网络的预测值和真正想要的目标值,再根据两者之间的差异情况来更新每一层神经网络的权重矩阵(当然,在第一次更新之前通常会有初始化的过程,即为神经网络中的各层预先配置参数),比如,如果网络的预测值高了,就调整权重矩阵让它预测低一些,不断的调整,直到神经网络能够预测出真正想要的目标值。因此,就需要预先定义“如何比较预测值和目标值之间的差异”,这便是损失函数(loss function)或目标函数(objective function),它们是用于衡量预测值和目标值的差异的重要方程。其中,以损失函数举例,损失函数的输出值(loss)越高表示差异越大,那么神经网络的训练就变成了尽可能缩小这个loss的过程。
(2)反向传播算法
在神经网络的训练过程中,可以采用误差反向传播(back propagation,BP)算法修正初始的神经网络模型中参数的大小,使得神经网络模型的重建误差损失越来越小。具体地,前向传递输入信号直至输出会产生误差损失,通过反向传播误差损失信息来更新初始的神经网络模型中的参数,从而使误差损失收敛。反向传播算法是以误差损失为主导的反向传播运动,旨在得到最优的神经网络模型的参数,例如权重矩阵。
(3)角点
角点可以从两个不同的角度定义:a、角点是两个边缘的交点;b、角点是邻域内具有两个主方向的特征点。角点所在的区域通常也是图像中稳定的、信息丰富的区域,这些区域可能具有某些特性,如旋转不变性、尺度不变性、仿射不变性和光照亮度不变性。因此,在计算机视觉和数字图像领域,研究角点具有重要的意义。人眼对角点的识别通常是在一个局部的小区域或小窗口完成的。如果在各个方向上移动这个特征的小窗口,窗口内区域的灰度发生了较大的变化,那么就认为在窗口内遇到了角点。如果这个特定的窗口在图像各个方向上移动时,窗口内图像的灰度没有发生变化,那么窗口内就不存在角点;如果窗口在某一个方向移动时,窗口内图像的灰度发生了较大的变化,而在另一些方向上没有发生变化,那么,窗口内的图像可能就是一条直线的线段。在本申请实施例中,如图1所示,角点可以对应图像中标注的目标框的顶点(如图1左边部分黑点所示),也可以是对应图像中标注的目标框的边框线上的点(如图1中间部分黑点所示,这里不限定角点具体位于边框线上什么位置,可以是在边框线的中点位置,也可以是在边框线上的任意位置),还可以对应图像中标注的目标框的中心点(如图1右边部分所示),具体此处不做限定。
(4)目标检测
目标检测,也叫目标提取,是一种基于目标几何和统计特征的图像分割,它将目标的分割和识别合二为一,其准确性和实时性是整个系统的一项重要能力。尤其是在复杂场景中,需要对多个目标进行实时处理时,目标自动提取和识别就显得特别重要。目标检测的实质是多目标的定位,即要在图片中定位多个目标物体,包括分类和定位。比如对某个图进行目标检测,得到的结果是好几只动物,每只动物的位置对应一个矩形框。随着计算机技术的发展和计算机视觉原理的广泛应用,利用计算机图像处理技术对目标进行实时跟踪研究越来越热门,对目标进行动态实时跟踪定位在智能化交通系统、智能监控系统、军事目标检测及医学导航手术中手术器械定位等方面具有广泛的应用价值。
通常目标检测技术主要包含三个阶段,即提取感知区域、特征抽取和方法建模。在早期的目标检测技术中,为了提取RoI区域,通常利用滑动窗口搜索图像中可能包含对象的位置,这些位置也称为感兴趣区域。特征抽取阶段主要是抽取一些基于颜色、纹理、边缘等底层视觉信息的图片特征;在方法建模方面,比较有代表性的方法是可变部件模型(deformable part based model,DPM)。近年来随着计算机硬件技术的发展,尤其是计算机图像处理器(graphics processing unit,GPU)并行计算能力的进步,以卷积神经网络(convolutional neural networks,CNN)为代表的深度学习技术引起了大家的关注,并且在目标检测领域取得了突破性进展。图2展示了CNN检测物体的一个基本过程。深度学习算法的训练往往需要大量具有完整标注的训练数据,近年来各种大规模数据库的提出与推广,如Pascal VOC、ImageNet、KITTI、Microsoft COCO、Visual Genome等也极大地推动了目标检测的发展。
下面结合附图,对本申请的实施例进行描述。本领域普通技术人员可知,随着技术的发展和新场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
首先对人工智能系统总体工作流程进行描述,请参见图3,图3示出的为人工智能主体框架的一种结构示意图,下面从“智能信息链”(水平轴)和“IT价值链”(垂直轴)两个维度对上述人工智能主题框架进行阐述。其中,“智能信息链”反映从数据的获取到处理的一列过程。举例来说,可以是智能信息感知、智能信息表示与形成、智能推理、智能决策、智能执行与输出的一般过程。在这个过程中,数据经历了“数据—信息—知识—智慧”的凝练过程。“IT价值链”从人智能的底层基础设施、信息(提供和处理技术实现)到系统的产业生态过程,反映人工智能为信息技术产业带来的价值。
(1)基础设施
基础设施为人工智能系统提供计算能力支持,实现与外部世界的沟通,并通过基础平台实现支撑。通过传感器与外部沟通;计算能力由智能芯片(CPU、NPU、GPU、ASIC、FPGA等硬件加速芯片)提供;基础平台包括分布式计算框架及网络等相关的平台保障和支持,可以包括云存储和计算、互联互通网络等。举例来说,传感器和外部沟通获取数据,这些数据提供给基础平台提供的分布式计算系统中的智能芯片进行计算。
(2)数据
基础设施的上一层的数据用于表示人工智能领域的数据来源。数据涉及到图形、图像、语音、文本,还涉及到传统设备的物联网数据,包括已有系统的业务数据以及力、位移、液位、温度、湿度等感知数据。
(3)数据处理
数据处理通常包括数据训练,机器学习,深度学习,搜索,推理,决策等方式。
其中,机器学习和深度学习可以对数据进行符号化和形式化的智能信息建模、抽取、预处理、训练等。
推理是指在计算机或智能系统中,模拟人类的智能推理方式,依据推理控制策略,利用形式化的信息进行机器思维和求解问题的过程,典型的功能是搜索与匹配。
决策是指智能信息经过推理后进行决策的过程,通常提供分类、排序、预测等功能。
(4)通用能力
对数据经过上面提到的数据处理后,进一步基于数据处理的结果可以形成一些通用的能力,比如可以是算法或者一个通用系统,例如,翻译,文本的分析,计算机视觉的处理,语音识别,图像的识别等等。
(5)智能产品及行业应用
智能产品及行业应用指人工智能系统在各领域的产品和应用,是对人工智能整体解决方案的封装,将智能信息决策产品化、实现落地应用,其应用领域主要包括:智能终端、智能制造、智能交通、智能家居、智能医疗、智能安防、自动驾驶、平安城市等。
本申请可应用于人工智能领域中的计算机视觉领域,具体涉及目标检测领域,具体的,结合图3来讲,本申请实施例中基础设施获取的数据是待检测的图像(每个待检测的图像可称为目标图像),之后再通过本申请实施例提供的目标检测方法所涉及的一系列操作,如,首先得到目标图像的多个角热点图(也可称为角点热力图),再基于角热点图构建目标框,最后通过提取目标框包括的图像信息的内部特征,来进一步判断该目标框的准确性。
这里先对本申请实施例的目标检测方法的基本原理进行介绍,具体请参阅图4,首先利用基于关键点目标检测的方法检测目标图像的各个角点(如,图4所示的左上角点和右下角点),获得角点后,再对角点进行组对(如,两两组合),得到多个角点对,基于角点对构建目标框。在这些目标框中,有一些目标框较为准确,而另一些目标框则为不准确的目标框甚至是错误的目标框,为了对这些目标框做出较为准确的判断,通过提取由角点对构建的目标框包括的图像信息的内部特征(如,利用RoIAlign算法进行抠取),将得到的内部特征送入分类器进行分类,保留较为准确的目标框,去除不准确的甚至错误的目标框。本方法利用角点生成目标框而非锚框(anchor,也可称为先验框),增加了被检目标框的灵活性与多样性,同时充分利用了目标图像的内部信息,使目标框的判断更为准确。
接下来介绍本申请实施例一种目标检测方法,请参阅图5:
501、对目标图像进行角点特征提取处理,得到至少两个角热点图。
首先,检测设备对于输入的目标图像进行角点特征提取处理,得到至少两个角热点图,角热点图用于表征各个角点的位置、所属目标类别(即目标对象的分类类别)以及角点的置信度。
需要说明的是,在本申请的一些实施方式中,检测设备对目标图像进行角点特征提取处理,得到至少两个角热点图的方式可以是:向训练后的第一神经网络输入该目标图像,得到该目标图像的初始特征图,再通过训练后的第二神经网络对该初始特征图进行角点特征提取处理,得到至少两个角点力图。其中,第一神经网络为一个深度神经网络,如图6所示,其包括较多的层,用于提取目标图像的特征,其对输入的目标图像进行卷积处理,得到该目标图像的卷积特征图(即初始特征图),所得到的卷积特征图就是输入图像的空间特征表示。本申请实施例中第一神经网络模块可以采用多种构架,比如VGG16、Hourglass等网络构架。第一神经网络的参数需要在目标检测的数据集(也可称为训练集)上进行预训练,从而得到训练后的第一神经网络。还需要注意的是,输入的目标图像的尺寸与经过第一神经网络卷积操作后得到的初始特征图之间一般为等比例缩放关系,如图6所示,假设目标图像的尺寸是高为H、宽为W(可记为H×W),缩放比例为n(n为整数),则初始特征图的尺寸是高为H/n、宽为W/n(可记为)。第二神经网络则可以是一个浅层的神经网络,用于对第一神经网络输出的初始特征图进行角点特征提取处理,得到至少两个角热点图。
502、根据目标角点对构建目标框,并根据目标角点对确定目标框的第一置信度和第一目标类别。
检测设备通过对目标图像进行角点特征提取处理,得到至少两个角热点图之后,就可以从每个角热点图中分别取出一个角点,组成角点对(也可称为目标角点对),组成角点对的各个角点均对应同一目标类别,之后,再根据得到的角点对构建目标框,并根据角点对确定该目标框的第一置信度和第一目标类别。需要注意的是,这里所说的角点对并不限定只是2个角点,可以是2点角点,也可以是3个角点,还可以是更多的角点,由角热点图的数量决定,此处不做限定。
需要说明的是,在本申请实施例中,构建的目标框为矩形框,且构成目标框的4条边框线与图像的4条边缘分别呈平行状态,因此,每组角点对,可唯一确定出一个目标框。
为便于理解,下面以图7为例,说明如何得到目标图像的至少两个角热点图以及如何根据角点对构建目标框,图7以该至少两个角热点图为第一角热点图和第二角热点图为例进行说明,假设该第一角热点图和该第二角热点图分别为左上角热点图(top-leftcorner heatmap)和右下角热点图(bottom-right corner heatmap),它们分别用于预测目标图像中左上角点和右下角点的类别和位置。具体地,在本申请的一些实施方式中,每个角热点图都为一个三维矩阵,其形状为其中C为类别总数,W为输入的目标图像的宽,H为输入的目标图像的高,n为输入的目标图像尺寸到角热点图尺寸的缩小倍数。在角热点图上某个位置/>的元素表示为一个置信度,该置信度表示在原输入的目标图像上,位置(wi,hi)是左上角点或右下角点的概率,并且该角点的类别为ci。如图7所示,卷积神经网络(convolutional neural networks,CNN)分别输出两个特征层,分别为左上角热点图(即第一角热点图)和右下角热点图(即第二角热点图),左上角热点图和右下角热点图分别用来预测目标图像的左上角点和右下角点。下面分别从训练阶段和测试阶段说明对图像的角点识别进行介绍:
在训练阶段,制作标签热点图(ground-truth heatmap),首先将类别进行编码,例如本数据集中有一共有4个类别(一个通道表示的是一个类别的角热点图),分别为马、车、人、狗,对四个类别分别编号为0,1,2,3(也可以是其他编号,此处仅为示意),因此C=4,将训练样本上已标注的左上角点的坐标和右下角点的坐标映射到左上角标签热点图(top-left ground-truth heatmap)和右下角标签热点图(bottom-right ground-truthheatmap)对应位置,又由于‘人’的编号为2,因此将标签热点图的第2个通道取出,在映射坐标的相应位置赋1,其余位置全部为0,如图7所示。基于上述所述方式,该CNN基于标签热点图进行迭代训练,直至该CNN的损失函数收敛,即输出的左上角热点图和右下角热点图的值与标签热点图的值之间的差异在预设范围内。具体地,在本申请的一些实施方式中,设pcij为某个角热点图上在位置(i,j)处的预测置信度,且类别为c(即此位置在第c个通道上),另设ycij为标签,且以(i,j)为中心服从高斯分布,据此可设计损失函数为公式(1):
其中,N为输入的训练样本中目标对象的个数,α和β分别为两个权重参数。
在测试阶段,针对输入的目标图像,该训练后的CNN分别分别输出左上角热点图和右下角热点图,那么分别从左上角热点图和右下角热点图中取出置信度(置信度取值均在0~1范围)取值靠前的K个角点,并记录其位置,这样就得到了K个被检左上角点和K个右下角点。例如,设置K=10(K值可自行设置,此处不做限定),即在左上角热点图和右下角热点图中取出置信度取值靠前的10个角点,并记录其位置,假设其中一个角点的置信度取值为0.8,它的位置在左上角热点图中,坐标为(2,3,2),这表示该角点位于第2通道,高为3,宽为2的位置,由通道为2可以完全确定其预测类别,由高为2,宽为3可完全确定角点的位置,而0.8则反映了此点为角点的置信度,其值越接近1表明实际为角点的概率越大,越接近0表明实际为角点的概率越小。同理可完全确定其他预测角点。在得到的这些预测角点中,可能有一些是较为准确的角点,而另一些预测角点则不准确甚至是错误的,接下来需要对这些角点进行两两组合,形成目标框,一共有k2种组合,那么需要从这k2种组合中选出那些正确的组合,去除不正确的组合。以图7中的输入的目标图像为例,只有TL1与BR1,TL2与BR2这两种组合才是正确的组合,其他组合均为不正确的组合。在这k2个目标框中,首先根据角点的几何关系可排除一些错误组合,例如左上角点与右下角点的类别不同、左上角点位于右下角点的右下方等。在本申请的一些实施方式中,也可以在对角点进行组合前,就考虑类别因素,如果分别来自两个不同角热点图的两个角点属于同一类别,则允许这两个角点组成角点对,并根据该角点对组成目标框,否则不组框。因此得到的目标框是带类别的,其类别与组成角点对的各个角点的类别相同,可称为第一目标类别;该目标框的置信度(可称为第一置信度)则根据组成该目标框的角点对确定,例如,目标框的第一置信度可以是组成角点对的各个角点的置信度的平均值,该第一置信度就用于反映目标框内包括的目标对象属于预测类别的概率,例如某个目标框左上角点和右下角点的类别都是‘人’,且左上角点和右下角点的置信度分别是0.8和0.9,则这个目标框的类别即为‘人’,目标框的第一置信度为(0.8+0.9)/2=0.85,表示这个目标框所包含的目标对象的类别是‘人’的概率是85%。
需要说明的是,上述实施例示意的是至少两个角热点图包括第一角热点图和第二角热点图,并且第一角热点图为左上角热点图,第二角热点图为右下角热点图,通过将位于所述左上角热点图第c个通道上的角点(可称为第一角点)与位于所述右下角热点图第c个通道上的角点(可称为第二角点)进行两两组合,得到角点对,再基于每组角点对构建目标框,组成角点对的这两个角点分别对应于目标框对角线上的两个顶点,具体可如图8左半部分所示,示意了通过上述方式组合得到了2组角点对,并通过这2组角点对分别组成2个目标框的情况。在本申请的一些实施方式中,得到的至少两个角热点图还可以是左下角热点图和右上角热点图,通过将位于所述左下角热点图第c个通道上的角点与位于所述右上角热点图第c个通道上的角点进行两两组合,得到角点对,再基于每组角点对构建目标框,组成角点对的这两个角点分别对应于目标框对角线上的两个顶点,具体可如图8右半部分所示,同样示意了通过上述方式组合得到2组角点对,并通过这2组角点对分别组成2个目标框的情况。
还需要说明的是,除了图8这种将角点作为目标框对角线的2个顶点的组框方式之外,根据角点对构建目标框还可以通过但不限于如下方式:
(1)当至少两个角点集包括4个角热点图。
当至少两个角热点图包括第三角热点图、第四角热点图、第五角热点图、第六角热点图,且得到的角点对由第三角热点图中的第三角点、第四角热点图中的第四角点、第五角热点图中的第五角点、第六角热点图中的第六角点组成,且第三角点至第六角点均来自于各个角热点图的同一通道(如,第3通道,这样保证了组成的角点对为同一类别),其中,第三角点为输入的目标图像中一个上方角点、第四角点为输入的目标图像中一个下方角点、第五角点为输入的目标图像中一个左方角点、第六角点为输入的目标图像中一个右方角点,那么就可根据该角点对,生成目标框,且第三角点至第六角点分别对应目标框上边框线、下边框线、左边框线、右边框线上的点,具体可如图9所示。需要说明的是,在本申请实施例中,第三角点至第六角点在各自边框线上的位置不做限定,如,可以位于各自边框线的中点位置,如图9左部分所示,也可以位于各自边框线的任意位置,如图9右部分所示,此处不做限定。
(2)当至少两个角热点图包括3个角热点图。
情形1:当至少两个角热点图包括第七角热点图、第八角热点图、第九角热点图,且该角点对由第七角热点图中的第七角点、第八角热点图中的第八角点、第九角热点图中的第九角点组成,且第七角点至第九角点均来自于各个角热点图的同一通道(如,第3通道,这样保证了组成的角点对为同一类别),其中,第七角点为目标图像中一个上方角点、第八角点为目标图像中一个左方角点且第九角点为目标图像中一个右下角点,或,第七角点为目标图像中一个上方角点、第八角点为目标图像中一个右方角点且第九角点为所述目标图像中一个左下角点,或,第七角点为目标图像中一个下方角点、第八角点为目标图像中一个左方角点且第九角点为目标图像中一个右上角点,或,第七角点为目标图像中一个下方角点、第八角点为目标图像中一个右方角点且第九角点为所述目标图像中一个左上角点。最后,就可根据上述得到的角点对,生成目标框,其中,第七角点和第八角点分别对应目标框上相邻边框线上的点,且第九角点对应与相邻边框线的交点呈对角位置的一个顶点,具体如图10所示的由角点对组成目标框的4种情况。类似地,在本申请实施例中,第七角点和第八角点在相邻的各自边框线上的位置不做限定,如,可以位于相邻的各自边框线的中点位置,也可以位于相邻的各自边框线的任意位置,此处不做限定。
情形2:当至少两个角热点图包括第十角热点图、第十一角热点图、第十二角热点图,且该角点对由第十角热点图中的第十角点、第十一角热点图中的第十一角点、第十二角热点图中的第十二角点组成,且第十角点至第十二角点均来自于各个角热点图的同一通道(如,第3通道,这样保证了组成的角点对为同一类别),其中,第十角点为目标图像中一个上方角点、第十一角点为目标图像中一个左方角点且第十二角点为目标图像中一个中心角点,或,第十角点为目标图像中一个上方角点、第十一角点为目标图像中一个右方角点且第十二角点为目标图像中一个中心角点,或,第十角点为目标图像中一个下方角点、第十一角点为目标图像中一个左方角点且第十二角点为所述目标图像中一个中心角点,或,第十角点为目标图像中一个下方角点、第十一角点为所述目标图像中一个右方角点且第十二角点为目标图像中一个中心角点。最后,就可根据上述得到的角点对,生成矩形的目标框,第十角点和第十一角点分别对应目标框上相邻边框线上的点,且第十二角点对应目标框的中心点。具体如图11所示的由角点对组成目标框的4种情况。类似地,在本申请实施例中,第十角点和第十一角点在相邻的各自边框线上的位置不做限定,如,可以位于相邻的各自边框线的中点位置,也可以位于相邻的各自边框线的任意位置,此处不做限定。
(3)当至少两个角热点图包括2个角热点图。
当至少两个角热点图包括第十三角热点图和第十四角热点图,且该角点对由第十三角热点图中的第十三角点和第十四角热点图中的第十四角点组成,且第十三角点至第十四角点均来自于各个角热点图的同一通道(如,第3通道,这样保证了组成的角点对为同一类别),其中,第十三角点为目标图像中一个左上角点、左下角点、右上角点、右下角点中的任意一个,且第十四角点为目标图像中一个中心角点。最后,就可根据上述得到的角点对,生成矩形的目标框,第十三角点对应目标框的任意一个顶点,且第十四角点对应目标框的中心点。具体如图12所示的由角点对组成目标框的4种情况。
需要说明的是,在本申请实施例中,不管根据角点对构建目标框是通过上述哪种方式,其得到的角热点图都可以基于图7对应的实施例所述的方式得到,此处不予赘述。
503、对目标框包括的第一图像信息进行内部特征提取处理。
通过上述步骤得到的目标框中,其中有一些是质量较高的目标框,另一些则是错误目标框。因此需要对这些目标框进行判断,从中筛选出质量较高的目标框。要对这些目标框进行分类,首先要得到代表这些目标框的特征,因此,就可针对每个目标框包括的图像信息(可称为第一图像信息)进行内部特征提取处理,例如,可以采用RoIAlign算法或RoIPooling算法对各个目标框包括的图像信息进行内部特征提取处理。
需要说明的是,由于通过上述步骤得到的仅仅是目标框,需要将目标框的坐标映射到特征图中,才能得到目标框包括的第一图像信息,将目标框映射到不同的特征图上,那么目标框包括的第一图像信息也不一样,因此,在本申请的一些实施方式中,得到目标框包括的第一图像信息通过但不限于如下方式:将目标框的坐标映射至由上述训练后的第一神经网络输出的初始特征图上,从而得到目标框包括的第一图像信息,或者,将上述训练后的第一神经网络输出的初始特征图作为训练后的第三神经网络的输入,从而输出第一特征图,再将目标框的坐标映射至该第一特征图,得到目标框包括的第一图像信息。这里需要解释的是,直接将目标框坐标映射到初始特征图上这种方式是为了减小计算量,但只通过训练后的第一神经网络得到的初始特征图包括的信息可能没有区分度,例如,背景和前景都会作为同样重要的特征提取出来。为了使得目标框包括的第一图像信息能更有区分度,就可再利用一个神经网络(即第三神经网络)对初始特征图进行再提取,经过对第三神经网络的迭代训练,得到的第一特征图就能够较好的区分图像中的前景和背景。
504、当提取到的内部特征满足预设条件,则确定目标框的第二置信度和第二目标类别。
检测设备提取到各个目标框的内部特征后,就可依次判断每个目标框的内部特征是否满足预设条件,若确定是满足预设条件,就确定该目标框包括的第二置信度和第二目标类别。
需要说明的是,在本申请的一些实施方式中,判断每个目标框的内部特征是否满足预设条件可以通过但不限于如下方式:1)判断该目标框的内部特征是前景还是背景,若是前景,则认为该目标框的内部特征满足预设条件,并保留该目标框,如图13所示,有2个目标框,其中一个目标框的内部特征是“天空”,由训练后的神经网络(如,上述第一神经网络或第三神经网络)确定“天空”为背景,因此判定该目标框的内部特征不满足预设条件,另一个目标框的内部特征是“人”,由训练后的神经网络确定“人”为前景,则判定该目标框的内部特征满足预设条件;2)判断该目标框的内部特征为前景的完整度,若前景的完整度超过预设阈值(如,80%),则认为该目标框的内部特征满足预设条件,并保留该目标框,如图14所示,有3个目标框,其中一个目标框的内部特征是“天空”,不属于训练后的神经网络判定的前景(即背景),则认为其前景完整度为0%,因此判定该目标框的内部特征不满足预设条件,另一个目标框的内部特征是只包括了“人”的一部分(假设完整度为50%),那么训练后的神经网络(如,上述第一神经网络或第三神经网络)也认为其为背景,因此判定该目标框的内部特征不满足预设条件,另一个目标框的内部特征是完整的“人”(假设完整度为100%),由训练后的神经网络确定这个完整的“人”为前景,则判定该目标框的内部特征满足预设条件。
还需要说明的是,在本申请的一些实施方式中,若确定某个目标框的内部特征不满足预设条件。如,背景,或,前景的完整度低于预设阈值(这种情况也认为是背景),则将该目标框去除。在这一步,就可剔除到绝大部分错误或准确率低的目标框。
还需要说明的是,在本申请的一些实施方式中,检测设备对目标框包括的第一图像信息进行内部特征提取处理,并进一步确定目标框的第二置信度和第二目标类别可以通过但不限于如下方式进行:
(1)通过一个多分类器来确定目标框的第二置信度和第二目标类别。
请参阅图15,以至少两个角热点图为第一角热点图和第二角热点图为例,首先检测设备可以将各个目标框坐标直接映射到训练后的第一神经网络输出的初始特征图上,得到各个目标框包括的第一图像信息,或者,将各个目标框坐标映射到训练后的第三神经网络输出的第一特征图上,得到各个目标框包括的第一图像信息,之后,再根据上述所述的方式对每个目标框包括的第一图像信息进行内部特征提取,得到每个目标框的第一内部特征,最后,在根据该第一内部特征,利用一个多分类器(也可称为多级分类器)来对各个目标框进行分类(即判断包括的是什么信息,人、马、树木、草地等,是前景还是背景等),首先,该多分类器根据第一内部特征将目标框区分为前景和背景(如前所述,此处不予赘述),并只保留具有前景的目标框,并进一步根据提取到的第一内部特征得到保留下来的目标框的第二置信度和第二目标类别。
(2)通过一个二分类器以及一个多分类器来确定目标框的第二置信度和第二目标类别。
方式(2)与前面的处理与方式(1)类似,不同的地方在于,方式(2)是先利用一个二分类器(也可称为二级分类器)区分前景和背景,此时第一内部特征则用于表征第一图像信息的类型(如,前景和背景),再利用一个多分类器(如,可以是由多个二分类器组成)进行进一步的区分,具体地,当该第一内部特征为前景,则将目标框的坐标映射至第二特征图,得到目标框包括的第二图像信息,该第二特征图为通过训练后的第四神经网络对初始特征图进行第二卷积操作得到,之后再对该目标框包括的第二图像信息再次进行内部特征提取处理,得到第二内部特征,此时提取的第二内部特征包括了该第二图像信息的多层次特征,最后再根据提取到的第二内部特征确定该目标框的第二置信度和第二目标类别。为便于理解,请参阅图15,依然以至少两个角热点图为第一角热点图和第二角热点图为例进行说明,通过角点对构建得到的目标框不仅数量庞大,而且在这些目标框中,有一些是质量较高的目标框,大部分则是错误目标框。因此,在第二阶段,需要设计分类器来对构建得到的这些目标框进行判断,从而从中筛选出质量较高的目标框。要对这些目标框进行分类,首先要得到代表这些目标框的特征,具体做法是将目标框的坐标映射至初始特征图或第一特征图上(图16示意的是映射到第一特征图),再利用内部特征提取算法(如,RoIAlign算法)抠取每一个目标框包括的第一图像信息的内部特征(即判断包括的是什么信息,人、马、树木、草地等)。由于只需判断目标框是否准确,因此使用二分类器,如图16所示,第三神经网络输出一个第一特征图(也可称为第一特征层),并将目标框的坐标映射至此第一特征图,实现对目标框的二分类,注意由于分类器只需要分两类,因此该第一特征图可以较‘薄’,如该第一特征图可以只有32个通道(通道数可自行设置,此处不做限定),这样做可以有效加速内部特征提取算法抠取每一个目标框内部特征的速度:因为通道数量将直接影响算法操作的速度,因此即使角点组合生成的目标框数量较多(如,多于3000个),整个过程也能以很快的速度完成。经过分类器二分类之后,便去除了在分类器看来是错误的或低质量的角点组合而成的目标框,留下质量较高的角点组合而成的目标框,这些角点组合形成的目标框在分类器看来是紧紧包围住目标对象的目标框。由于这些目标框是带有类别和置信度的,其类别与对应角点对的类别相同(即第一目标类别),其置信度为对应角点对的第一置信度。
然而,由于此时目标框的类别和置信度由继承角点的类别和置信度而来,这会带来新的问题,因为角点的类别和置信度不一定可靠,这是因为角点的预测是困难的,如图7所示,一张图像中大部分区域是非角点(即负样本),只有很少的位置是真正的角点(即正样本),因此,在训练过程中,这会导致严重的正负样本不平衡,不利角点识别的训练,从而最终会影响目标框的检测结果,因此再增加一个多分类器(即多类别分类器),目的是对角点生成的目标框再次分类,以分配给目标框新的类别与置信度,然后与目标框之前的第一目标类别和第一置信度相结合,最终得到最优的检测结果。具体做法可以如图16所示,训练后的第四神经网络输出一个第二特征图,将经过二分类器筛选之后的目标框坐标映射至此特征图,再次利用内部特征提取算法抠取目标框包括的第二图像信息的内部特征,将得到的特征进行多分类。由于此次是多分类,因此第二特征图将会变‘厚’,例如,第二特征图的通道数可设置为256(通道数可自行设置,此处不做限定),因为第二特征图越‘厚’,所包含的特征层次就越多,越有利于多分类。前面提到通道数量将直接影响内部特征提取算法操作的速度,当通道数变‘厚’之后,内部特征提取算法抠取每一个目标框内部特征的时间会加长,但是由于经过二分类器能够去除绝大部分(如,80%)的目标框,因此此次内部特征提取算法只需对剩余的小部分(如,20%)目标框进行处理,因此整体的处理速度依然很快。本次多分类由于充分利用了目标框包括的图像信息的内部特征,因此分类结果比直接继承角点更加可靠(角点的识别没有利用目标框的内部信息)。
需要说明的是,上述方式(1)和方式(2)所涉及到的神经网络和分类器均是训练好的神经网络和分类器,在将上述神经网络和分类器进行实际应用之前,还需要进行训练,下面以方式(2)的实施方式为例,简单说明训练过程:以训练集中的一个训练样本为例进行说明,基于某个训练样本,设M表示通过枚举角点所产生的目标框的数目,N表示其中的正样本数,正样本的确定方式可以是当构建的目标框与在训练样本上标注的目标框之间的交并比(Intersection over Union,IoU)大于预设阈值(如,大于等于0.7),pm表示N个正样本中第m个目标框的第二置信度,即经过核为1x7x7卷积操作之后的数值(每个正样本经过核为1x7x7卷积操作之后,其形状变为1x1x1维)。IoUm表示第m个目标框与所有标注的目标框的交并比中的最大值。τ为一个IoU阈值(如,可设为0.7),α为用来平滑损失函数的超参数,实验中可设为2,设计的二分类器损失函数则如公式(2)所示:
其中,
同理,设和/>分别表示经过二分类器过滤之后,剩余目标框的总数和正样本数,C为类别数,qm,c表示第m个目标框属于类别c的第二置信度,即经过核为Cx7x7卷积操作之后的数值。IoUm,c表示第m个目标框与所有类别为c的标注的目标框的交并比中的最大值。此时设计的多分类器损失函数则如公式(3)所示:
其中,
505、根据第一置信度、第二置信度、第一目标类别和第二目标类别确定目标框包括的目标对象的目标检测结果。
通过上述步骤,就可得到目标框的第一置信度、第二置信度、第一目标类别和第二目标类别,此时每个目标框将得到2组类别和置信度,第一组来自角点对的第一目标类别和第一置信度,第二组来自分类器的第二目标类别和第二置信度。设来自角点对的第一置信度为s1,来自分类器的第二置信度为s2,这里会出现两种情况,下面分别进行论述:
(1)第一目标类别和第二目标类别相同
当第一目标类别和第二目标类别相同,那么说明该目标框大概率是一个很准确的目标框,此时可以将根据第一置信度和第二置信度计算得到该目标框的第三置信度,该第三置信度就用于表示该目标框包括的目标对象属于第一目标类别的概率。
需要说明的是,计算第三置信度的原则是将该目标框包括的目标对象属于第一目标类别的概率提高,具体可以通过但不限于如下方式:1)将第一置信度与第一预设值x(0<x<1)相加得到的第一结果与第二置信度与第二预设值y(0<y<1)相加得到的第二结果进行运算(如,乘积运算),得到第三置信度,其中,x和y可以相同,也可以不同,此处不做限定。例如,可以把将目标框的第三置信度设置为(s1+0.5)(s2+0.5),意为如果任何一方(s1或s2)的置信度大于0.5,那么此目标框的第三置信度会相应的提高,这是设定是合理的,因为两方都判断该目标框包括的目标对象为同一类别,那么倾向于相信预测的类别就是真实的类别,因此将此目标框的第三置信度提高;2)取第一置信度和第二置信度中取值更大的那个为第三置信度,这种方式是直接选取置信度取值更大的那个作为第三置信度,不增加计算量;3)将第一置信度和第二置信度中取值更大的那个与第三预设值z进行运算得到的第三结果作为第三置信度。例如,假设s1>s2,则可以把将目标框的第三置信度设置为(s1×1.2),这样相应的提高了第三置信度的最终取值。
(2)第一目标类别和第二目标类别不相同
当第一目标类别和第二目标类别不相同,说明通过角点预测的类别与通过分类器预测的类别存在较大分歧,此时可以通过如下几种方式进行处理:1)若第一置信度大于第二置信度,则根据第一置信度和第一目标类别确定目标框包括的目标对象的第一目标检测结果,也就是说,若通过角点预测的方式得到的置信度取值更高,就保留角点预测方式得到的目标框;2)若第二置信度大于第一置信度,则根据第二置信度和第二目标类别确定目标框包括的目标对象的第二目标检测结果,也就是说,若通过分类器预测的方式得到的置信度取值更高,就保留分类器预测方式得到的目标框;3)将此目标框复制一份,使其中一个目标框的类别和置信度来自角点预测方式,另一个目标框的类别和置信度来自分类器预测方式,这种情况由于不知道哪个目标框是准确的,因此都进行保留。
这里需要说明的是,在本申请的一些实施方式中,由于最终保留的目标框还需要映射回原始输入的目标图像中,而由于输入的目标图像的尺寸与经过神经网络卷积操作后得到的特征图之间一般为等比例缩放关系,假设目标图像的尺寸是高为H、宽为W(可记为H×W),缩放比例为n(n为整数),则神经网络输出的特征图的尺寸是高为H/n、宽为W/n(可记为),那么当最终保留的目标框映射回原输入的目标图像上时,可能会存在信息丢失的问题,为了使目标框的预测更加准确,可对其进行补偿(offsets),offsets代表原输入的目标图像映射到角点热图时所丢失的信息,当关键点位置从角点热图映射回原输入的目标图像时可以补偿这些丢失的信息。图17展示了输入的目标图像,角点热图和offsets之间的关系。角点的预测是在角点热图上进行的,当角点预测完成后,其位置最终要映射回原目标图像。目标图像的尺寸与角点热图的尺寸成等比例放缩关系,输入图像映射到角点热图时会产生信息丢失,例如图17所示,当目标图像的尺寸与角点热图的尺寸成4倍的放缩关系时(即原图像的长宽分别为H和W,角点热图的分辨率为H/4,w/4),在目标图像中位置(102,102)映射到角点热图上坐标则为(102/4,102/4)=(25,25),若不加入补偿,则此坐标映射回目标图像时,变为(25×4,25×4)=(100,100)。因此需要让网络预测offsets来补偿丢失的信息。例如设offsets=(x1,x2),则映射回目标图像的坐标变为((25+x1)×4,(25+x2)×4)。理想情况下,坐标(102,102)下的(x1,x2)应为(102/4-102/4,102/4-102/4)=(25.5-25,25.5-25)=(0.5,0.5),因此期望网络能够学到这种规律,输出理想的(x1,x2)。
因此,在训练时,根据输入的训练样本中角点的坐标,算出offers,即offsets的标签。以图7为例,假设训练样本中左侧目标框的坐标为(123,99,254,300),其中(123,99)表示目标框的左上角的坐标,也就是目标框对应左上角点TL1的坐标,(254,300)表示目标框右下角的坐标,也就是目标框对应右下角点BR1的坐标,根据训练样本的尺寸与角热点图的尺寸成4倍的放缩关系,TL1的坐标映射至角热点图的坐标为(30.75,24.75),理想情况下在制作的左上角标签热点图中,要在属于‘人’那个通道中,位置(30.75,24.75)处赋值1,但实际情况是不可能存在小数位置,因此统一规定将所有坐标向下取整,变为(30,24),这样就可以在位置(30,24)处置1。当网络训练好后,在每个角热点图中选前K的最大值,记录其位置,这样就可以得到角点的类别,以及坐标。这K个角点中,有一个角点的坐标为(30,24),类别为‘人’。这时将角点的坐标映射回原图,假如没有offsets的话,映射结果为(30×4,24×4)=(120,96),而实际上其真实坐标应为(123,99),出现了偏差,因此希望网络能够输出一组补偿值offsets=(x1,x2),这样映射回训练样本的坐标变为((30+x1)×4,(24+x2)×4)。理想情况下希望(x1,x2)=(0.75,0.75),因为只有这样((30+x1)×4,(24+x2)×4)正好等于(123,99)。因此就用(0.75,0.75)这组值去训练网络,而(0.75,0.75)就是角点TL1的补偿标签,它由(123/4-123/4,99/4-99/4)=(30.75-30,24.75-24)=(0.75,0.75)计算得到。具体如图17所示,网络输出一个第三特征图(也可称为补偿特征层),该特征图有2个通道,分别是x方向补偿特征图和y方向补偿特征图。根据TL1的原图坐标和放缩关系计算得到TL1在角热点图上的坐标为(30,24),offsets标签为(0.75,0.75),分别在是x方向补偿特征图和y方向补偿特征图中取出(30,24)位置处的特征,得到(otx1,oty1),通过与(0.75,0.75)做对比训练网络,其他角点的补偿训练类似。设计的网络损失函数则如公式(4)所示:
其中,为角点k的offsets标签,/>为预测的offsets。N为训练样本包括的对象的个数。使用补偿时,首先在每个角热点图中选前K的最大值,记录其位置,这样就可以得到角点的类别以及坐标。这K个角点中,假设有一个角点的坐标为(x,y),然后分别在x方向补偿特征图和y方向补偿特征图中取出(x,y)位置处的值,得到(ox,oy),则此角点坐标映射回原图为((x+ox)×4,(y+oy)×4)。
在本申请实施方式中,首先通过对输入图像提取角点特征,生成角热带图,并基于角热点图,得到角点对,再基于角点对构建目标框,这种基于枚举的方法由于不考虑生成目标框的质量,过程简单快速,为下一步高质量目标框的筛选奠定基础;之后,通过对各个目标框包括的图像信息抠取内部特征(如,通过RoIAlign算法抠取),实现对枚举生成的目标框的进一步筛选,选出其中质量较高的目标框,去除质量低的目标框以及错误目标框,本申请与基于锚框(anchor)的目标检测方法相比,增加了目标框构建的灵活性和目标框尺寸的多样性,同时又充分利用了目标框包括的图像的内部信息,使目标框的判断更为准确。
在上述对本申请实施例的目标检测方法进行了论述之后,这里再对实现本申请实施例的目标检测方法的框架进行介绍,该框架可称为目标检测框架(也可称为目标检测算法、目标检测系统等),通过本申请构建的目标检测框架达到对待检测图像(即目标图像)中的目标对象进行检测的目的,具体请参阅图18,图18为本申请构建的一种经过训练后的目标检测框架100,该目标检测框架100可由如下部分组成:第一神经网络101、第二神经网络102、内部特征提取模块103以及分类器104,其中,第一神经网络101为一个深度神经网络,包括较多的层,用于对输入的目标图像进行初步的特征提取,输出初始特征图,第二神经网络102为一个浅层的神经网络,用于对第一神经网络101输出的初始特征图进行角点特征提取处理,得到至少两个角热点图(也可称为角点热力图),每个角热点图用于表征各个角点的在目标图像上所处的位置、所属的目标类别(如,马、人、狗等分类类别)以及角点的置信度,再基于得到的角热点图构建目标框,具体地,从每个角热点图中分别取出一个角点,组成角点对,组成角点对的各个角点均对应同一目标类别,之后,再根据得到的角点对构建目标框,并根据角点对确定该目标框的第一置信度和第一目标类别。需要注意的是,这里所说的角点对并不限定只是2个角点,可以是2点角点,也可以是3个角点,还可以是更多的角点,由角热点图的数量决定,此处不做限定。之后,再基于构建的目标框得到各个目标框包括的图像信息的内部特征。具体地,可以是将构建的目标框的坐标映射至初始特征图上,以得到各个目标框包括的图像信息,每个目标框包括的图像信息也可称为第一图像信息,之后,通过内部特征提取模块103(例如,可以是RoIAlign算法、RoIPooling算法等)对各个目标框包括的第一图像信息进行内部特征提取,得到第一图像信息的内部特征,并基于该内部特征可确定该目标框是否满足预测条件(如,是否是前景),若满足预测条件,那么分类器104将基于构建当前该目标框的角点对的置信度(即第一置信度)及目标类别(即第一目标类别),并结合基于内部特征得到的目标框的第二置信度和第二目标类别确定该目标框包括的目标对象的目标检测结果。
需要说明的是,在本申请的一些实施方式中,本申请实施例所述提供的目标检测框架100还可以包括:第三神经网络105,该第三神经网络105,用于在训练后,对输入的初始特征图进行第一卷积操作,得到第一特征图,此时在这种实施方式中,可以是将构建的目标框的坐标映射至第一特征图上,以得到各个目标框包括的第一图像信息。这里需要解释的是,直接将目标框坐标映射到初始特征图上这种方式是为了减小计算量,但只通过训练后的第一神经网络得到的初始特征图包括的信息可能没有区分度,例如,背景和前景都会作为同样重要的特征提取出来。为了使得目标框包括的第一图像信息能更有区分度,就可再利用一个神经网络(即第三神经网络)对初始特征图进行再提取,经过对第三神经网络的迭代训练,得到的第一特征图就能够较好的区分图像中的前景和背景。
还需说明的是,在本申请的一些实施方式中,该分类器104,还用于在训练后,当内部特征不满足预设条件(如,为背景),则去除该目标框。
还需要说明的是,在本申请的一些实施方式中,经过目标检测框架100的上述处理之后,就可得到目标框的第一置信度、第二置信度、第一目标类别和第二目标类别,此时每个目标框将得到2组类别和置信度,第一组来自角点对的第一目标类别和第一置信度,第二组来自分类器的第二目标类别和第二置信度。设来自角点对的第一置信度为s1,来自分类器的第二置信度为s2,这里会出现两种情况,下面分别进行论述:
(1)第一目标类别和第二目标类别相同
当第一目标类别和第二目标类别相同,那么说明该目标框大概率是一个很准确的目标框,此时分类器104将根据第一置信度和第二置信度计算得到该目标框的第三置信度,该第三置信度就用于表示该目标框包括的目标对象属于第一目标类别的概率。其中,分类器104计算第三置信度的原则是将该目标框包括的目标对象属于第一目标类别的概率提高,具体可以通过但不限于如下方式:1)将第一置信度与第一预设值x(0<x<1)相加得到的第一结果与第二置信度与第二预设值y(0<y<1)相加得到的第二结果进行运算(如,乘积运算),得到第三置信度,其中,x和y可以相同,也可以不同,此处不做限定。例如,可以把将目标框的第三置信度设置为(s1+0.5)(s2+0.5),意为如果任何一方(s1或s2)的置信度大于0.5,那么此目标框的第三置信度会相应的提高,这是设定是合理的,因为两方都判断该目标框包括的目标对象为同一类别,那么倾向于相信预测的类别就是真实的类别,因此将此目标框的第三置信度提高;2)取第一置信度和第二置信度中取值更大的那个为第三置信度,这种方式是直接选取置信度取值更大的那个作为第三置信度,不增加计算量;3)将第一置信度和第二置信度中取值更大的那个与第三预设值z进行运算得到的第三结果作为第三置信度。例如,假设s1>s2,则可以把将目标框的第三置信度设置为(s1×1.2),这样相应的提高了第三置信度的最终取值。
(2)第一目标类别和第二目标类别不相同
当第一目标类别和第二目标类别不相同,说明通过角点预测的类别与通过分类器预测的类别存在较大分歧,此时分类器104可以通过如下几种方式进行处理:1)若第一置信度大于第二置信度,则根据第一置信度和第一目标类别确定目标框包括的目标对象的第一目标检测结果,也就是说,若通过角点预测的方式得到的置信度取值更高,就保留角点预测方式得到的目标框;2)若第二置信度大于第一置信度,则根据第二置信度和第二目标类别确定目标框包括的目标对象的第二目标检测结果,也就是说,若通过分类器预测的方式得到的置信度取值更高,就保留分类器预测方式得到的目标框;3)将此目标框复制一份,使其中一个目标框的类别和置信度来自角点预测方式,另一个目标框的类别和置信度来自分类器预测方式,这种情况由于不知道哪个目标框是准确的,因此都进行保留。
还需要说明的是,在本申请的一些实施方式中,为了使得检测更为准确,目标检测框架还可以包括更多的单元或模块,以实现更多的功能,具体请参阅图19,图19为本申请构建的另一种经过训练后的目标检测框架,该目标检测框架200可由如下部分组成:第一神经网络201、第二神经网络202、第三神经网络203、第四神经网络204、内部特征提取模块205、二分类器206以及多分类器207,其中,第一神经网络201、第二神经网络202、第三神经网络203、内部特征提取模块205与上述图18对应实施例中的第一神经网络101、第二神经网络102、内部特征提取模块103的功能类似,此处不予赘述。在本申请实施例中,该第四神经网络204,则用于在训练后,对输入的初始特征图进行第二卷积操作,得到第二特征图;内部特征提取模块205,具体用于对目标框包括的第一图像信息进行内部特征提取处理,得到第一内部特征,该第一内部特征用于表征所述第一图像信息的类型(包括前景和背景);二分类器206,则用于在训练后,当第一内部特征为前景,保留该目标框;该内部特征提取模块205,具体还用于对该目标框包括的第二图像信息进行内部特征提取处理,得到第二内部特征,该第二内部特征包括第二图像信息的多层次特征,该第二图像信息为将目标框映射至第二特征图得到;多分类器207,则用于在训练后,根据第二内部特征确定目标框的第二置信度和第二目标类别。
综上所述,图19对应的目标检测框架200与图18对应的目标检测框架100不同的地方在于,图18对应的目标检测框架100是只利用一个分类器104不仅实现前景和背景的区别,还进一步通过该分类器104对目标框包括的目标对象的类别进行区分;而图19对应的目标检测框架200是先利用一个二分类器206区分前景和背景,此时第一内部特征则用于表征第一图像信息的类型(如,前景和背景),再利用一个多分类器207(如,可以是由多个二分类器组成)进行进一步的区分,此时该多分类器207与上述分类器104具备的功能类似,此处不予赘述,具体请参阅上述图18对应的实施例。具体地,当该第一内部特征为前景,则将目标框的坐标映射至第二特征图,得到目标框包括的第二图像信息,该第二特征图为通过训练后的第四神经网络204对初始特征图进行第二卷积操作得到,之后再通过内部特征提取模块205对该目标框包括的第二图像信息再次进行内部特征提取处理,得到第二内部特征,此时提取的第二内部特征包括了该第二图像信息的多层次特征,最后再根据提取到的第二内部特征确定该目标框的第二置信度和第二目标类别。
类似地,在本申请的一些实施方式中,若该二分类器206,还用于在训练后,当第一内部特征为背景,则去除该目标框。
需要说明的是,本申请实施例所提供的目标检测方法可基于上述图18、图19所示的训练后的目标检测框架进行,目标检测框架各个模块具体用于实现上述图5对应的目标检测方法的各个步骤,具体请参阅图5对应的实施方式,此处不予赘述。
还需要说明的是,本申请图18、图19对应的实施例提供的目标检测框架是已经经过训练后的目标检测框架,在构建好目标检测框架后,需要先对整个目标检测框架进行训练,训练好的目标检测框架才能应用到具体的目标检测任务中。具体地,可基于图20所示的图像处理系统300对目标检测框架的整个训练和检测的流程进行介绍,在图20中,图像处理系统300包括检测设备310、训练设备320、数据库330、客户设备340、数据存储系统350和数据采集设备360,检测设备310中包括计算模块311,所述计算模块311实质为本申请实施例提供的训练后的目标检测框架301,该目标检测框架301既可以是上述图18对应实施例包括的目标检测框架100,也可以是上述图19对应实施例包括的目标检测框架200。
其中,数据采集设备360(如,搭载在轮式移动设备上的摄像机)用于获取用户需要的开源的大规模数据集(即训练集),并将数据集存入数据库330中,训练设备320基于数据库330中的维护的数据集对目标检测框架301内的各个模型进行训练(如,对图18所示的第一神经网络101、第二神经网络102、分类器104等进行训练)。检测设备310可以调用数据存储系统350中的数据、代码等,也可以将数据、指令等存入数据存储系统350中。数据存储系统350可以置于检测设备310中,也可以为数据存储系统350相对检测设备310是外部存储器。
在图20中,检测设备310配置有I/O接口312,与外部设备进行数据交互,“用户”可以通过客户设备340向I/O接口312输入数据。如,客户设备340可以是自动驾驶车辆搭载的摄像设备,通过该摄像设备拍摄的图像作为输入数据输入至检测设备310的计算模块311,由计算模块311中的目标检测框架301对输入的该图像进行检测后得出检测结果,再将该检测结果输出至摄像设备或直接在检测设备310的显示界面(若有)进行显示;此外,在本申请的一些实施方式中,客户设备340也可以集成在检测设备310中,如,当检测设备310为自动驾驶车辆时,则可以直接通过该自动驾驶车辆的摄像头拍摄到图像或者接收其他设备(如,手机)发送的图像,再由该自动驾驶车辆内的计算模块311对该图像进行检测后得出检测结果,并直接将该检测结果呈现在手机的显示界面。此处对检测设备310与客户设备340的产品形态不做限定。
值得注意的,图20仅是本申请实施例提供的一种图像处理系统架构的示意图,图中所示设备、器件、模块等之间的位置关系不构成任何限制,例如,在图20中,数据存储系统350相对检测设备310是外部存储器,在其它情况下,也可以将数据存储系统350置于检测设备310中;在图20中,客户设备340相对检测设备310是外部设备,在其他情况下,客户设备340也可以集成在检测设备310中。
还需要说明的是,在本申请一些实施方式中,目标检测框架301还可以拆分成多个子模块/子单元以共同实现本申请实施例所提供的方案,具体此处不做限定。
还需要说明的是,上述实施例所述的目标检测框架301的训练可以是均在云侧实现,例如,可以由云侧的训练设备320(该训练设备320可设置在一个或多个服务器或者虚拟机上)获取训练集,并根据训练集内的多组训练数据对目标检测框架进行训练,得到训练后的目标检测框架301,之后,该训练后的目标检测框架301再发送给检测设备310进行应用,例如,发送给检测设备310进行目标检测,示例性地,图20对应的系统架构中所述,就是由训练设备320对目标检测框架301进行整体训练,训练后的目标检测框架301再发送给检测设备310进行使用;上述实施例所述的目标检测框架301的训练也可以是均在终端侧实现,即训练设备320可以是位于终端侧,例如,可以由终端设备(如,手机、智能手表等)、轮式移动设备(如,自动驾驶车辆、辅助驾驶车辆等)等获取训练集,并根据训练集内的多组训练数据对目标检测框架301进行训练,得到训练后的目标检测框架301,该训练后的目标检测框架301就可以直接在该终端设备使用,也可以由该终端设备发送给其他的设备进行使用。具体本申请实施例对目标检测框架301在哪个设备(云侧或终端侧)上进行训练或应用不做限定。
需要说明的是,在本申请的一些实施方式中,部署有训练后的目标检测框架301的检测设备310还可以包括有摄像头,用于采集该检测设备周围的环境信息,从而得到待输入的目标图像。
还需要说明的是,在本申请上述实施例中,经由训练设备320训练的目标检测框架301可以应用于不同的系统或设备(即检测设备310)中,例如,检测设备310可以是具有显示界面的各种终端侧设备,如摄像机、录像机、智能家居等边缘设备,检测设备310也可以是如手机、个人计算机、计算机工作站、平板电脑、智能可穿戴设备(如,智能手表、智能手环、智能耳机等)、游戏机、机顶盒、媒体消费设备等端侧设备;检测设备310还可以是各种轮式移动设备(轮式施工设备、自动驾驶车辆、辅助驾驶车辆等),自动驾驶车辆还可以为轿车、卡车、摩托车、公共汽车、船、飞机、直升飞机、割草机、娱乐车、游乐场车辆、施工设备、电车、高尔夫球车、火车、和手推车等等。只要是能够部署本申请实施例所述的目标检测框架的设备,都可以认为是本申请实施例所述的检测设备310,具体此处不做限定。
为了对本申请实施例所带来的有益效果有更为直观的认识,以下对本申请实施例所带来的技术效果作进一步的对比,表1给出了本申请实施例提供的目标检测方法(在表1中用CPN表示)和现有目标检测方法在MS COCO数据集上的检测结果。MS COCO数据集是目标检测领域最具挑战性的数据集之一,此数据集的衡量指标为平均精度均值(mean averageprecision,AP)和平均查全率(average recall,AR),分别反映了目标检测方法的检测精度和查全率,其中AP是最重要的衡量指标。此外,AP50和AP75分别表示在交并比阈值为50%和75%时的检测精度和查全率,APS、APM、APL分别表示小尺度目标、中等尺度目标和大尺度目标的检测精度和查全率。实验结果表明本方法获得了49.2%的AP,超过了所有已知的无锚框(anchor-free)的目标检测方法,并大幅度领先。
表1:本申请(CPN)方法与其他方法关于检测准确率的对比
表2则对比了本发明与基于锚框(anchor-based)的目标检测方法(如,(Faster R-CNN)以及其他anchor-free方法在特定条件下的查全率性能。在这里,为了更好的分析目标框的形状这一因素对检测结果的影响,将不考虑目标框的类别和得分排序对AR的影响。AR1+,AR2+,AR3+和AR4+分别表示目标框尺度在(962,2002],(2002,3002],(3002,4002]和(4002,+∞)范围内的查全率,AR5:1,AR6:1,AR7:1和AR8:1分别表示目标框长宽比5:1,6:1,7:1和8:1情况下的查全率。如前文所分析,anchor-based方法所生成的目标框形状受制于锚框的影响,一些“不常规”的物体(如,车道线)不容易被检测到。从表2可以看出,随着目标框的尺度的增加,Faster R-CNN的AR增长幅度逊于anchor-free方法,同时,在随着目标框的长宽比的增加,Faster R-CNN的AR的下降幅度也比CPN快。
表2:本申请(CPN)方法与其他方法关于检测召回率的对比
由于智能安防、平安城市、智能终端等领域中都可以用到本申请实施例提供的目标检测方法以及训练好的目标检测框架来对各种目标进行检测,下面将对多个落地到产品的多个应用场景进行介绍。
(1)图像处理场景
图像处理装置(例如手机、智能手表、平板电脑等)对采集的图像进行目标检测,得到该图像中各目标的分类和定位,进而将该图像中的目标(例如人像)分割出来以进行某种图像处理操作,例如调整景深、换背景、仅保留该目标对象所处区域的颜色、对该目标对象所处区域之外的图像区域进行虚化等。举例来说,用户利用移动终端拍摄图像后,该移动终端对该图像进行目标检测,确定人像区域,并仅保留该人像区域的颜色。
请参阅图21,以终端为手机为例,当用户使用手机拍照时,自动抓取人脸、动物等目标,可以帮助手机自动对焦、美化等。因此本申请训练好的目标检测框架可应用于手机,该训练好的目标检测框架由于最终得到的目标框尺寸更多样,能够很好的包围住图像中的目标物体,可以给用户带来更好的用户体验,提升手机产品品质。
(2)自动驾驶场景
自动驾驶装置(例如汽车)对采集的图像或视频实时进行目标检测,以定位出行人、障碍物以及车辆等的位置,进而执行相应的驾驶策略。在实际应用中,自动驾驶装置可通过摄像头采集的视频信息或图像来了解周围的交通状况,并基于部署的训练后的目标检测框架,得到自动驾驶装置前方的目标物体,并基于此绘制安全可靠的路线,以对前方的道路进行导航。
请参阅图22,以终端为自动驾驶车辆为例,本申请训练好的目标检测框架可应用于汽车A,汽车A通过摄像头对采集的图像实时进行目标检测,定位出正前方车道线内存在汽车B,而汽车A车速较快,此时汽车A就可根据该检测结果,绘制出如图21中实线箭头所示的路线,使得汽车A的运动系统执行对应该路线的相关驾驶指令。
(3)智能机器人交互场景
智能机器人未来将走进千家万户。智能机器人想要成为人类的助手,首先要能够感知周围的环境,并做出相应的动作。在实际应用中,智能机器人可采集周围环境的图像,并通过部署在其上的训练后的目标检测框架对采集到的图像进行目标检测,以定位到某个目标。举例来说,请参阅图23,房间中一位男主人正在做家务,此时他需要一个碗,因此让机器人管家帮忙把碗递给他。机器人管家接到指令后首先要对周围环境进行检测,找到碗的位置,然后才能进行后续一系列动作。其中,机器人管家对周围环境进行检测,找到碗的位置的过程就需要采集周围环境的图像,对采集的图像进行目标检测以便定位出碗的位置。
需要说明的是,本申请所述的训练好的目标检测框架不仅可以应用于上述图21至图23所述的应用场景中,还可以应用在人工智能领域的各个细分领域中,如,图像处理领域,计算机视觉领域,语义分析领域等等,只要能使用神经网络的领域和设备,都可应用本申请实施例提供的训练好的目标检测框架,此处不再举例示意。
在上述所对应的实施例的基础上,为了更好的实施本申请实施例的上述方案,下面还提供用于实施上述方案的相关设备。具体参阅图24,图24为本申请实施例提供的检测设备的一种结构示意图,检测设备2400包括:第一提取模块2401、构建模块2402、第二提取模块2403、第一确定模块2404、第二确定模块2405。其中,第一提取模块2401,用于对目标图像进行角点特征提取处理,得到至少两个角热点图,其中,角热点图用于表征各角点的位置、目标类别以及置信度;构建模块2402,用于根据目标角点对构建目标框,并根据所述目标角点对确定所述目标框的第一置信度和第一目标类别,所述目标角点对由所述至少两个角热点图中的每个角热点图各取出的一个角点共同组成,组成所述目标角点对的各个角点均对应同一目标类别,所述第一置信度为所述目标角点对的置信度,所述第一目标类别为所述同一目标类别;第二提取模块2403,用于对所述目标框包括的第一图像信息进行内部特征提取处理;第一确定模块2404,用于当提取到的内部特征满足预设条件,则确定所述目标框的第二置信度和第二目标类别;第二确定模块2405,用于根据所述第一置信度、所述第二置信度、所述第一目标类别和所述第二目标类别确定所述目标框包括的目标对象的目标检测结果。
在本申请实施方式中,首先通过第一提取模块2401对输入图像提取角点特征,生成角热带图,并基于角热点图,得到角点对,再通过构建模块2402,基于角点对构建目标框,这种基于枚举的方法由于不考虑生成目标框的质量,过程简单快速,为下一步高质量目标框的筛选奠定基础;之后,通过第二提取模块2403对各个目标框包括的图像信息抠取内部特征(如,通过RoIAlign算法抠取),最后通过第一确定模块2404和第二确定模块2405实现对枚举生成的目标框的进一步筛选,选出其中质量较高的目标框,去除质量低的目标框以及错误目标框,本申请与基于锚框(anchor)的目标检测方法相比,增加了目标框构建的灵活性和目标框尺寸的多样性,同时又充分利用了目标框包括的图像的内部信息,使目标框的判断更为准确。
在一种可能的设计中,该第一提取模块2401,具体用于:首先向训练后的第一神经网络输入所述目标图像,得到所述目标图像的初始特征图,之后,通过训练后的第二神经网络对所述初始特征图进行角点特征提取处理,得到所述至少两个角点力图。
在本申请的上述实施方式中,阐述了如何得到角热点图,即先利用一个神经网络得到目标图像的初始特征图,再利用另一个神经网络得到角热点图,具备可实现性。
在一种可能的设计中,该第二提取模块2403,还用于:将目标框的坐标映射至由上述训练后的第一神经网络输出的初始特征图上,从而得到目标框包括的第一图像信息,或者,将上述训练后的第一神经网络输出的初始特征图作为训练后的第三神经网络的输入,从而输出第一特征图,再将目标框的坐标映射至该第一特征图,得到目标框包括的第一图像信息。
在本申请的上述实施方式中,阐述了得到目标框包括的第一图像信息的两种方式,具备灵活性。其中,直接将目标框坐标映射到初始特征图上这种方式是为了减小计算量,但只通过训练后的第一神经网络得到的初始特征图包括的信息可能没有区分度,例如,背景和前景都会作为同样重要的特征提取出来。为了使得目标框包括的第一图像信息能更有区分度,也可以再利用一个神经网络(即第三神经网络)对初始特征图进行再提取,经过对第三神经网络的迭代训练,得到的第一特征图就能够较好的区分图像中的前景和背景。
在一种可能的设计中,该第二提取模块2403,具体还用于:先对所述目标框包括的第一图像信息进行内部特征提取处理,得到第一内部特征,所述第一内部特征用于表征所述第一图像信息的类型,所述类型包括背景和前景,之后,该第一确定模块2404,具体用于:当该第一内部特征为前景,则将目标框的坐标映射至第二特征图,得到目标框包括的第二图像信息,该第二特征图为通过训练后的第四神经网络对初始特征图进行第二卷积操作得到,之后再对该目标框包括的第二图像信息再次进行内部特征提取处理,得到第二内部特征,此时提取的第二内部特征包括了该第二图像信息的多层次特征,最后再根据提取到的第二内部特征确定该目标框的第二置信度和第二目标类别。
在本申请的上述实施方式中,先区分前景和背景,此时第一内部特征则用于表征第一图像信息的类型(如,前景和背景),再对剩下的目标框,利用目标框包括的第二图像信息的第二内部特征进行进一步的区分,此时第二内部特征由于包括更多层次的特征,使得对目标对象的识别会更加准确,因此,通过上述两个阶段的区分,提高了目标框检测的准确率。
在一种可能的设计中,该第一确定模块2404,具体还用于:当第一内部特征为前景,则将该目标框去除。
在本申请的上述实施方式中,若确定某个目标框的内部特征为背景,则将该目标框去除。在这一步,就可剔除到绝大部分错误或准确率低的目标框,提高了目标检测的速度。
在一种可能的设计中,该第二确定模块2405,具体用于:当第一目标类别和第二目标类别相同,则根据所述第一置信度和所述第二置信度确定所述目标框包括的目标对象为所述第一目标类别的第三置信度,该第三置信度就用于表示该目标框包括的目标对象属于第一目标类别的概率。
在本申请的上述实施方式中,当第一目标类别和第二目标类别相同,那么说明该目标框大概率是一个很准确的目标框,此时可以将根据第一置信度和第二置信度计算得到该目标框的第三置信度,通过再次计算的方式,提高该目标框所占权重,符合实际的真实应用场景。
在一种可能的设计中,该第二确定模块2405,具体还用于:将第一置信度与第一预设值x(0<x<1)相加得到的第一结果与第二置信度与第二预设值y(0<y<1)相加得到的第二结果进行运算(如,乘积运算),得到第三置信度,其中,x和y可以相同,也可以不同,此处不做限定。例如,可以把将目标框的第三置信度设置为(s1+0.5)(s2+0.5),意为如果任何一方(假设第一置信度为s1,第二置信度为s2)的置信度大于0.5,那么此目标框的第三置信度会相应的提高,这是设定是合理的,因为两方都判断该目标框包括的目标对象为同一类别,那么倾向于相信预测的类别就是真实的类别,因此将此目标框的第三置信度提高;或者,取第一置信度和第二置信度中取值更大的那个为第三置信度,这种方式是直接选取置信度取值更大的那个作为第三置信度,不增加计算量;或者,将第一置信度和第二置信度中取值更大的那个与第三预设值z进行运算得到的第三结果作为第三置信度。例如,假设s1>s2,则可以把将目标框的第三置信度设置为(s1×1.2),这样相应的提高了第三置信度的最终取值。
在本申请的上述实施方式中,提供了三种如何计算得到最终的目标框的第三置信度的方式,可根据实际需要选择任意一种实现方式,具备灵活性和可选择性。
在一种可能的设计中,该第二确定模块2405,具体还用于:若第一置信度大于第二置信度,则根据第一置信度和第一目标类别确定目标框包括的目标对象的第一目标检测结果,也就是说,若通过角点预测的方式得到的置信度取值更高,就保留角点预测方式得到的目标框;或者,若第二置信度大于第一置信度,则根据第二置信度和第二目标类别确定目标框包括的目标对象的第二目标检测结果,也就是说,若通过分类器预测的方式得到的置信度取值更高,就保留分类器预测方式得到的目标框;或者,将此目标框复制一份,使其中一个目标框的类别和置信度来自角点预测方式,另一个目标框的类别和置信度来自分类器预测方式,这种情况由于不知道哪个目标框是准确的,因此都进行保留。
在本申请的上述实施方式中,当第一目标类别和第二目标类别不相同,说明通过角点预测的类别与通过分类器预测的类别存在较大分歧,此时可通过上述三种方式进行处理,可根据实际需要选择任意一种实现方式,具备灵活性和可选择性。
在一种可能的设计中,该第二提取模块2403,具体用于:可以采用RoIAlign算法或RoIPooling算法对所述目标框包括的第一图像信息进行内部特征提取处理。
在本申请的上述实施方式中,具体给出了两种进行内部特征提取处理的方式,具备灵活性。
在一种可能的设计中,构建模块2402,具体用于:当至少两个角热点图包括第一角热点图和第二角热点图,且得到的角点对由第一角热点图中的第一角点和第二角热点图中的第二角点组成,且第一角点和第二角点均来自于各个角热点图的同一通道(如,第3通道,这样保证了组成的角点对为同一类别),其中,所述第一角点为所述目标图像中一个左上角点且所述第二角点为所述目标图像中一个右下角点,或,所述第一角点为所述目标图像中一个右上角点且所述第二角点为所述目标图像中一个左下角点;那么,根据所述目标角点对,生成矩形的目标框,所述第一角点和所述第二角点对应所述目标框对角线上的两个顶点。
在本申请的上述实施方式中,给出了一种根据角点对构建目标框的其中一种具体实现方式,具备可实现性。
在一种可能的设计中,构建模块2402,具体还用于:当至少两个角热点图包括第三角热点图、第四角热点图、第五角热点图、第六角热点图,且得到的角点对由第三角热点图中的第三角点、第四角热点图中的第四角点、第五角热点图中的第五角点、第六角热点图中的第六角点组成,且第三角点至第六角点均来自于各个角热点图的同一通道(如,第3通道,这样保证了组成的角点对为同一类别),其中,第三角点为输入的目标图像中一个上方角点、第四角点为输入的目标图像中一个下方角点、第五角点为输入的目标图像中一个左方角点、第六角点为输入的目标图像中一个右方角点,那么就可根据该角点对,生成目标框,且第三角点至第六角点分别对应目标框上边框线、下边框线、左边框线、右边框线上的点。需要说明的是,在本申请实施例中,第三角点至第六角点在各自边框线上的位置不做限定,如,可以位于各自边框线的中点位置,也可以位于各自边框线的任意位置,此处不做限定。
在本申请的上述实施方式中,给出了一种根据角点对构建目标框的其中一种具体实现方式,具备可实现性。
在一种可能的设计中,构建模块2402,具体还用于:当至少两个角热点图包括第七角热点图、第八角热点图、第九角热点图,且该角点对由第七角热点图中的第七角点、第八角热点图中的第八角点、第九角热点图中的第九角点组成,且第七角点至第九角点均来自于各个角热点图的同一通道(如,第3通道,这样保证了组成的角点对为同一类别),其中,第七角点为目标图像中一个上方角点、第八角点为目标图像中一个左方角点且第九角点为目标图像中一个右下角点,或,第七角点为目标图像中一个上方角点、第八角点为目标图像中一个右方角点且第九角点为所述目标图像中一个左下角点,或,第七角点为目标图像中一个下方角点、第八角点为目标图像中一个左方角点且第九角点为目标图像中一个右上角点,或,第七角点为目标图像中一个下方角点、第八角点为目标图像中一个右方角点且第九角点为所述目标图像中一个左上角点。最后,就可根据上述得到的角点对,生成目标框,其中,第七角点和第八角点分别对应目标框上相邻边框线上的点,且第九角点对应与相邻边框线的交点呈对角位置的一个顶点。类似地,在本申请实施例中,第七角点和第八角点在相邻的各自边框线上的位置不做限定,如,可以位于相邻的各自边框线的中点位置,也可以位于相邻的各自边框线的任意位置,此处不做限定。
在本申请的上述实施方式中,给出了一种根据角点对构建目标框的其中一种具体实现方式,具备可实现性。
在一种可能的设计中,构建模块2402,具体还用于:当至少两个角热点图包括第十角热点图、第十一角热点图、第十二角热点图,且该角点对由第十角热点图中的第十角点、第十一角热点图中的第十一角点、第十二角热点图中的第十二角点组成,且第十角点至第十二角点均来自于各个角热点图的同一通道(如,第3通道,这样保证了组成的角点对为同一类别),其中,第十角点为目标图像中一个上方角点、第十一角点为目标图像中一个左方角点且第十二角点为目标图像中一个中心角点,或,第十角点为目标图像中一个上方角点、第十一角点为目标图像中一个右方角点且第十二角点为目标图像中一个中心角点,或,第十角点为目标图像中一个下方角点、第十一角点为目标图像中一个左方角点且第十二角点为所述目标图像中一个中心角点,或,第十角点为目标图像中一个下方角点、第十一角点为所述目标图像中一个右方角点且第十二角点为目标图像中一个中心角点。就可根据上述得到的角点对,生成矩形的目标框,第十角点和第十一角点分别对应目标框上相邻边框线上的点,且第十二角点对应目标框的中心点。类似地,在本申请实施例中,第十角点和第十一角点在相邻的各自边框线上的位置不做限定,如,可以位于相邻的各自边框线的中点位置,也可以位于相邻的各自边框线的任意位置,此处不做限定。
在本申请的上述实施方式中,给出了一种根据角点对构建目标框的其中一种具体实现方式,具备可实现性。
在一种可能的设计中,构建模块2402,具体还用于:当至少两个角热点图包括第十三角热点图和第十四角热点图,且该角点对由第十三角热点图中的第十三角点和第十四角热点图中的第十四角点组成,且第十三角点至第十四角点均来自于各个角热点图的同一通道(如,第3通道,这样保证了组成的角点对为同一类别),其中,第十三角点为目标图像中一个左上角点、左下角点、右上角点、右下角点中的任意一个,且第十四角点为目标图像中一个中心角点。最后,就可根据上述得到的角点对,生成矩形的目标框,第十三角点对应目标框的任意一个顶点,且第十四角点对应目标框的中心点。
在本申请的上述实施方式中,给出了一种根据角点对构建目标框的其中一种具体实现方式,具备可实现性。
需要说明的是,检测设备2400中各模块/单元之间的信息交互、执行过程等内容,具体可应用于本申请中上述对应的方法实施例中的各种应用场景,具体内容可参见本申请前述所述的方法实施例中的叙述,此处不再赘述。
接下来介绍本申请实施例提供的另一种检测设备,请参阅图25,图25为本申请实施例提供的检测设备的一种结构示意图,检测设备2500具体可以表现为端侧设备、边缘设备或轮式可移动设备,如,虚拟现实VR设备、手机、平板、笔记本电脑、智能可穿戴设备等,自动驾驶车辆、辅助驾驶车辆等,此处不做限定。其中,检测设备2500上可以部署有图24对应实施例中所描述的各个模块,用于实现图24对应实施例中检测设备2400的功能。具体的,检测设备2500包括:接收器2501、发射器2502、处理器2503和存储器2504(其中检测设备2500中的处理器2503的数量可以一个或多个,图25中以一个处理器为例),其中,处理器2503可以包括应用处理器25031和通信处理器25032。在本申请的一些实施例中,接收器2501、发射器2502、处理器2503和存储器2504可通过总线或其它方式连接。
存储器2504可以包括只读存储器和随机存取存储器,并向处理器2503提供指令和数据。存储器2504的一部分还可以包括非易失性随机存取存储器(non-volatile randomaccess memory,NVRAM)。存储器2504存储有处理器和操作指令、可执行模块或者数据结构,或者它们的子集,或者它们的扩展集,其中,操作指令可包括各种操作指令,用于实现各种操作。
处理器2503控制检测设备2500的操作。具体的应用中,检测设备2500的各个组件通过总线系统耦合在一起,其中总线系统除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都称为总线系统。
上述本申请实施例揭示的方法可以应用于处理器2503中,或者由处理器2503实现。处理器2503可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器2503中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器2503可以是通用处理器、数字信号处理器(digital signal processing,DSP)、微处理器或微控制器,还可进一步包括专用集成电路(application specific integratedcircuit,ASIC)、现场可编程门阵列(field-programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。该处理器2503可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器2504,处理器2503读取存储器2504中的信息,结合其硬件完成上述方法的步骤。
接收器2501可用于接收输入的数字或字符信息,以及产生与检测设备2500的相关设置以及功能控制有关的信号输入。发射器2502可用于通过第一接口输出数字或字符信息;发射器2502还可用于通过第一接口向磁盘组发送指令,以修改磁盘组中的数据;发射器2502还可以包括显示屏等显示设备。
本申请实施例中,在一种情况下,处理器2503,用于执行上述图5对应的目标检测方法的各个步骤,例如,首先,对于输入的目标图像进行角点特征提取处理,得到至少两个角热点图,角热点图用于表征各个角点的位置、所属目标类别(即目标对象的分类类别)以及角点的置信度;之后,从每个角热点图中分别取出一个角点,组成角点对,组成角点对的各个角点均对应同一目标类别,再根据得到的角点对构建目标框,并根据角点对确定该目标框的第一置信度和第一目标类别;再针对每个目标框包括的图像信息(可称为第一图像信息)进行内部特征提取处理,并依次判断每个目标框的内部特征是否满足预设条件,若确定是满足预设条件,就确定该目标框包括的第二置信度和第二目标类别;通过上述步骤,就可得到目标框的第一置信度、第二置信度、第一目标类别和第二目标类别,此时每个目标框将得到2组类别和置信度,第一组来自角点对的第一目标类别和第一置信度,第二组来自分类器的第二目标类别和第二置信度,最后,再根据第一置信度、第二置信度、第一目标类别和第二目标类别确定目标框包括的目标对象的目标检测结果。
本申请实施例中,在另一种情况下,处理器2503,还用于执行上述图21至图23对应实施例中各种应用场景下对训练好的目标检测框架的各种应用,具体请参阅上述实施例所述,此处不予赘述。
本申请实施例中还提供一种包括计算机程序产品,当其在计算机上运行时,使得计算机执行如前述所示实施例描述的方法中检测设备所执行的步骤,或者,使得计算机执行如前述所示实施例描述的方法中训练设备所执行的步骤。
本申请实施例中还提供一种计算机可读存储介质,该计算机可读存储介质中存储有用于进行信号处理的程序,当其在计算机上运行时,使得计算机执行如前述所示实施例描述的方法中检测设备所执行的步骤,或者,使得计算机执行如前述所示实施例描述的方法中训练设备所执行的步骤。
本申请实施例提供的检测设备、训练设备具体可以为芯片,芯片包括:处理单元和通信单元,所述处理单元例如可以是处理器,所述通信单元例如可以是输入/输出接口、管脚或电路等。该处理单元可执行存储单元存储的计算机执行指令,以使训练设备执行上述所示实施例描述的神经网络的优化方法,或者,检测设备内的芯片执行上述所示实施例描述的图像处理方法或音频处理方法。可选地,所述存储单元为所述芯片内的存储单元,如寄存器、缓存等,所述存储单元还可以是所述无线接入设备端内的位于所述芯片外部的存储单元,如只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)等。
具体的,请参阅图26,图26为本申请实施例提供的芯片的一种结构示意图,所述芯片可以表现为神经网络处理器NPU 200,NPU 200作为协处理器挂载到主CPU(Host CPU)上,由Host CPU分配任务。NPU的核心部分为运算电路2003,通过控制器2004控制运算电路2003提取存储器中的矩阵数据并进行乘法运算。
在一些实现中,运算电路2003内部包括多个处理单元(process engine,PE)。在一些实现中,运算电路2003是二维脉动阵列。运算电路2003还可以是一维脉动阵列或者能够执行例如乘法和加法这样的数学运算的其它电子线路。在一些实现中,运算电路2003是通用的矩阵处理器。
举例来说,假设有输入矩阵A,权重矩阵B,输出矩阵C。运算电路从权重存储器2002中取矩阵B相应的数据,并缓存在运算电路中每一个PE上。运算电路从输入存储器2001中取矩阵A数据与矩阵B进行矩阵运算,得到的矩阵的部分结果或最终结果,保存在累加器(accumulator)2008中。
统一存储器2006用于存放输入数据以及输出数据。权重数据直接通过存储单元访问控制器(Direct Memory Access Controller,DMAC)2005,DMAC被搬运到权重存储器2002中。输入数据也通过DMAC被搬运到统一存储器2006中。
BIU为Bus Interface Unit即,总线接口单元2010,用于AXI总线与DMAC和取指存储器(Instruction Fetch Buffer,IFB)2009的交互。
总线接口单元2010(Bus Interface Unit,简称BIU),用于取指存储器2009从外部存储器获取指令,还用于存储单元访问控制器2005从外部存储器获取输入矩阵A或者权重矩阵B的原数据。
DMAC主要用于将外部存储器DDR中的输入数据搬运到统一存储器2006或将权重数据搬运到权重存储器2002中或将输入数据数据搬运到输入存储器2001中。
向量计算单元2007包括多个运算处理单元,在需要的情况下,对运算电路的输出做进一步处理,如向量乘,向量加,指数运算,对数运算,大小比较等等。主要用于神经网络中非卷积/全连接层网络计算,如Batch Normalization(批归一化),像素级求和,对特征平面进行上采样等。
在一些实现中,向量计算单元2007能将经处理的输出的向量存储到统一存储器2006。例如,向量计算单元2007可以将线性函数和/或非线性函数应用到运算电路2003的输出,例如对卷积层提取的特征平面进行线性插值,再例如累加值的向量,用以生成激活值。在一些实现中,向量计算单元2007生成归一化的值、像素级求和的值,或二者均有。在一些实现中,处理过的输出的向量能够用作到运算电路2003的激活输入,例如用于在神经网络中的后续层中的使用。
控制器2004连接的取指存储器(instruction fetch buffer)2009,用于存储控制器2004使用的指令;
统一存储器2006,输入存储器2001,权重存储器2002以及取指存储器2009均为On-Chip存储器。外部存储器私有于该NPU硬件架构。
其中,上述所示的第一神经网络中各层的运算、第二神经网络各层的运算以及这两个神经网络的联合迭代训练过程可以由运算电路2003或向量计算单元2007执行。
其中,上述任一处提到的处理器,可以是一个通用中央处理器,微处理器,ASIC,或一个或多个用于控制上述第一方面方法的程序执行的集成电路。
另外需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本申请提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本申请而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘、U盘、移动硬盘、只读存储器(read only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,训练设备,或者网络设备等)执行本申请各个实施例所述的方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、训练设备或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、训练设备或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的训练设备、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(digitalvideo disc,DVD)、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
Claims (28)
1.一种目标检测方法,其特征在于,包括:
对目标图像进行角点特征提取处理,得到至少两个角热点图,其中,角热点图用于表征各角点的位置、目标类别以及置信度;
根据目标角点对构建目标框,并根据所述目标角点对确定所述目标框的第一置信度和第一目标类别,所述目标角点对由所述至少两个角热点图中的每个角热点图各取出的一个角点共同组成,组成所述目标角点对的各个角点均对应同一目标类别,所述第一置信度为所述目标角点对的置信度,所述第一目标类别为所述同一目标类别;
对所述目标框包括的第一图像信息进行内部特征提取处理,得到第一内部特征,所述第一内部特征用于表征所述第一图像信息的类型,所述类型包括背景和前景;
当所述第一内部特征为前景,则将所述目标框的坐标映射至第二特征图,得到所述目标框包括的第二图像信息,所述第二特征图为通过训练后的第四神经网络对初始特征图进行第二卷积操作得到;
对所述第二图像信息进行内部特征提取处理,得到第二内部特征,所述第二内部特征包括所述第二图像信息的多层次特征;
根据所述第二内部特征确定所述目标框的第二置信度和第二目标类别;
根据所述第一置信度、所述第二置信度、所述第一目标类别和所述第二目标类别确定所述目标框包括的目标对象的目标检测结果。
2.根据权利要求1所述的方法,其特征在于,所述对目标图像进行角点特征提取处理,得到至少两个角热点图包括:
向训练后的第一神经网络输入所述目标图像,得到所述目标图像的初始特征图;
通过训练后的第二神经网络对所述初始特征图进行角点特征提取处理,得到所述至少两个角点力图。
3.根据权利要求2所述的方法,其特征在于,在对所述目标框包括的第一图像信息进行内部特征提取处理之前,所述方法还包括:
将所述目标框的坐标映射至所述初始特征图,得到所述目标框包括的第一图像信息;
或,
将所述目标框的坐标映射至第一特征图,得到所述目标框包括的第一图像信息,所述第一特征图为通过训练后的第三神经网络对所述初始特征图进行第一卷积操作得到;
根据所述第二内部特征确定所述目标框的第二置信度和第二目标类别。
4.根据权利要求1-3中任一项所述的方法,其特征在于,所述方法还包括:
当所述第一内部特征为背景,则去除所述目标框。
5.根据权利要求1-3中任一项所述的方法,其特征在于,所述根据所述第一置信度、所述第二置信度、所述第一目标类别和所述第二目标类别确定所述目标框包括的目标对象的目标检测结果包括:
当所述第一目标类别和所述第二目标类别相同,则根据所述第一置信度和所述第二置信度确定所述目标框包括的目标对象为所述第一目标类别的第三置信度。
6.根据权利要求5所述的方法,其特征在于,所述根据所述第一置信度和所述第二置信度确定所述目标框包括的目标对象为所述第一目标类别的第三置信度包括:
将所述第一置信度与第一预设值相加得到的第一结果与所述第二置信度与第二预设值相加得到的第二结果进行运算,得到所述第三置信度,所述第一预设值与所述第二预设值均为大于0且小于1的值;
或,
取所述第一置信度和所述第二置信度中取值更大的那个为所述第三置信度;
或,
将所述第一置信度和所述第二置信度中取值更大的那个与第三预设值进行运算得到的第三结果作为所述第三置信度。
7.根据权利要求1-3中任一项所述的方法,其特征在于,所述根据所述第一置信度、所述第二置信度、所述第一目标类别和所述第二目标类别确定所述目标框包括的目标对象的目标检测结果包括:
当所述第一目标类别和所述第二目标类别不相同,则根据所述第一置信度和所述第一目标类别确定所述目标框包括的目标对象的第一目标检测结果;
和/或,
根据所述第二置信度和所述第二目标类别确定所述目标框包括的目标对象的第二目标检测结果。
8.根据权利要求1-3中任一项所述的方法,其特征在于,所述对所述目标框包括的第一图像信息进行内部特征提取处理包括:
采用RoIAlign算法或RoIPooling算法对所述目标框包括的第一图像信息进行内部特征提取处理。
9.根据权利要求1-3中任一项所述的方法,其特征在于,所述根据目标角点对构建目标框包括:
当所述至少两个角热点图包括第一角热点图和第二角热点图,且所述目标角点对由所述第一角热点图中的第一角点和所述第二角热点图中的第二角点组成;
其中,所述第一角点为所述目标图像中一个左上角点且所述第二角点为所述目标图像中一个右下角点,或,所述第一角点为所述目标图像中一个右上角点且所述第二角点为所述目标图像中一个左下角点;
根据所述目标角点对,生成矩形的目标框,所述第一角点和所述第二角点对应所述目标框对角线上的两个顶点。
10.根据权利要求1-3中任一项所述的方法,其特征在于,所述根据目标角点对构建目标框包括:
当所述至少两个角热点图包括第三角热点图、第四角热点图、第五角热点图、第六角热点图,且所述目标角点对由所述第三角热点图中的第三角点、所述第四角热点图中的第四角点、所述第五角热点图中的第五角点、所述第六角热点图中的第六角点组成;
其中,所述第三角点为所述目标图像中一个上方角点、所述第四角点为所述目标图像中一个下方角点、所述第五角点为所述目标图像中一个左方角点、所述第六角点为所述目标图像中一个右方角点;
根据所述目标角点对,生成矩形的目标框,所述第三角点至所述第六角点分别对应所述目标框上边框线、下边框线、左边框线、右边框线上的点。
11.根据权利要求1-3中任一项所述的方法,其特征在于,所述根据目标角点对构建目标框包括:
当所述至少两个角热点图包括第七角热点图、第八角热点图、第九角热点图,且所述目标角点对由所述第七角热点图中的第七角点、所述第八角热点图中的第八角点、所述第九角热点图中的第九角点组成;
其中,所述第七角点为所述目标图像中一个上方角点、所述第八角点为所述目标图像中一个左方角点且所述第九角点为所述目标图像中一个右下角点,或,所述第七角点为所述目标图像中一个上方角点、所述第八角点为所述目标图像中一个右方角点且所述第九角点为所述目标图像中一个左下角点,或,所述第七角点为所述目标图像中一个下方角点、所述第八角点为所述目标图像中一个左方角点且所述第九角点为所述目标图像中一个右上角点,或,所述第七角点为所述目标图像中一个下方角点、所述第八角点为所述目标图像中一个右方角点且所述第九角点为所述目标图像中一个左上角点;
根据所述目标角点对,生成矩形的目标框,所述第七角点和所述第八角点分别对应所述目标框上相邻边框线上的点,且所述第九角点对应与所述相邻边框线的交点呈对角位置的一个顶点。
12.根据权利要求1-3中任一项所述的方法,其特征在于,所述根据目标角点对构建目标框包括:
当所述至少两个角热点图包括第十角热点图、第十一角热点图、第十二角热点图,且所述目标角点对由所述第十角热点图中的第十角点、所述第十一角热点图中的第十一角点、所述第十二角热点图中的第十二角点组成;
其中,所述第十角点为所述目标图像中一个上方角点、所述第十一角点为所述目标图像中一个左方角点且所述第十二角点为所述目标图像中一个中心角点,或,所述第十角点为所述目标图像中一个上方角点、所述第十一角点为所述目标图像中一个右方角点且所述第十二角点为所述目标图像中一个中心角点,或,所述第十角点为所述目标图像中一个下方角点、所述第十一角点为所述目标图像中一个左方角点且所述第十二角点为所述目标图像中一个中心角点,或,所述第十角点为所述目标图像中一个下方角点、所述第十一角点为所述目标图像中一个右方角点且所述第十二角点为所述目标图像中一个中心角点;
根据所述目标角点对,生成矩形的目标框,所述第十角点和所述第十一角点分别对应所述目标框上相邻边框线上的点,且所述第十二角点对应所述目标框的中心点。
13.根据权利要求1-3中任一项所述的方法,其特征在于,所述根据目标角点对构建目标框包括:
当所述至少两个角热点图包括第十三角热点图和第十四角热点图,且所述目标角点对由所述第十三角热点图中的第十三角点和所述第十四角热点图中的第十四角点组成;
其中,所述第十三角点为所述目标图像中一个左上角点、左下角点、右上角点、右下角点中的任意一个,且所述第十四角点为所述目标图像中一个中心角点;
根据所述目标角点对,生成矩形的目标框,所述第十三角点对应所述目标框的任意一个顶点,且所述第十四角点对应所述目标框的中心点。
14.一种目标检测框架,其特征在于,包括:第一神经网络、第二神经网络、第四神经网络、内部特征提取模块以及分类器;
所述第一神经网络,用于在训练后,对输入的目标图像进行特征提取,得到所述目标图像的初始特征图;
所述第二神经网络,用于在训练后,对所述初始特征图进行角点特征提取处理,得到至少两个角热点图,其中,角热点图用于表征各角点的位置、目标类别以及置信度;
所述内部特征提取模块,用于对目标框包括的第一图像信息进行内部特征提取处理,所述目标框根据目标角点对构建得到,所述目标角点对由所述至少两个角热点图中的每个角热点图各取出的一个角点共同组成,组成所述目标角点对的各个角点均对应同一目标类别;
所述分类器,用于判断提取到的内部特征是否满足预设条件,当所述内部特征满足所述预设条件,则确定所述目标框的第二置信度和第二目标类别,并用于根据所述目标框的第一置信度、所述目标框的第一目标类别、所述第二置信度和所述第二目标类别确定所述目标框包括的目标对象的目标检测结果,所述第一置信度为所述目标角点对的置信度,所述第一目标类别为所述同一目标类别;
所述分类器具体包括:二分类器和多分类器;
所述第四神经网络,用于在训练后,对输入的所述初始特征图进行第二卷积操作,得到第二特征图;
所述内部特征提取模块,具体用于对所述目标框包括的第一图像信息进行内部特征提取处理,得到第一内部特征,所述第一内部特征用于表征所述第一图像信息的类型,所述类型包括背景和前景;
所述二分类器,用于在训练后,当所述第一内部特征为前景,保留所述目标框;
所述内部特征提取模块,具体还用于对所述目标框包括的第二图像信息进行内部特征提取处理,得到第二内部特征,所述第二内部特征包括所述第二图像信息的多层次特征,所述第二图像信息为将所述目标框映射至所述第二特征图得到;
所述多分类器,用于在训练后,根据所述第二内部特征确定所述目标框的第二置信度和第二目标类别。
15.根据权利要求14所述的框架,其特征在于,所述目标框包括的第一图像信息为将所述目标框的坐标映射至所述初始特征图上得到。
16.根据权利要求14所述的框架,其特征在于,所述框架还包括:
第三神经网络,用于在训练后,对输入的所述初始特征图进行第一卷积操作,得到第一特征图,其中,所述目标框包括的第一图像信息为将所述目标框的坐标映射至所述第一特征图上得到。
17.根据权利要求14-16中任一项所述的框架,其特征在于,所述二分类器,还用于:
在训练后,当所述第一内部特征为背景,去除所述目标框。
18.根据权利要求14-17中任一项所述的框架,其特征在于,所述分类器,具体用于:
当所述第一目标类别和所述第二目标类别相同,则根据所述第一置信度和所述第二置信度确定所述目标框包括的目标对象为所述第一目标类别的第三置信度。
19.根据权利要求18所述的框架,其特征在于,所述分类器,具体还用于:
将所述第一置信度与第一预设值相加得到的第一结果与所述第二置信度与第二预设值相加得到的第二结果进行运算,得到所述第三置信度,所述第一预设值与所述第二预设值均为大于0且小于1的值;
或,
取所述第一置信度和所述第二置信度中取值更大的那个为所述第三置信度;
或,
将所述第一置信度和所述第二置信度中取值更大的那个与第三预设值进行运算得到的第三结果作为所述第三置信度。
20.根据权利要求14-17中任一项所述的框架,其特征在于,所述分类器,具体还用于:
当所述第一目标类别和所述第二目标类别不相同,则根据所述第一置信度和所述第一目标类别确定所述目标框包括的目标对象的第一目标检测结果;
和/或,
根据所述第二置信度和所述第二目标类别确定所述目标框包括的目标对象的第二目标检测结果。
21.根据权利要求14-17中任一项所述的框架,其特征在于,所述内部特征提取模块包括:
RoIAlign算法或RoIPooling算法。
22.根据权利要求14-17中任一项所述的框架,其特征在于,训练后的所述框架部署在检测设备上。
23.根据权利要求22所述的框架,其特征在于,所述检测设备包括:摄像头;
所述摄像头,用于采集所述检测设备周围的环境信息,得到所述目标图像。
24.一种检测设备,其特征在于,所述检测设备具有实现所述权利要求1-13中任一项方法的功能,所述功能可以通过硬件实现,或,通过硬件执行相应的软件实现,所述硬件所述软件包括一个或多个与所述功能相对应的模块。
25.一种检测设备,包括处理器和存储器,所述处理器与所述存储器耦合,其特征在于,
所述存储器,用于存储程序;
所述处理器,用于执行所述存储器中的程序,使得所述检测设备执行如权利要求1-13中任一项所述的方法。
26.一种计算机可读存储介质,包括程序,当其在计算机上运行时,使得计算机执行如权利要求1-13中任一项所述的方法。
27.一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行如权利要求1-13中任一项所述的方法。
28.一种芯片,所述芯片包括处理器与数据接口,所述处理器通过所述数据接口读取存储器上存储的指令,执行如权利要求1-13中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010615011.6A CN111931764B (zh) | 2020-06-30 | 2020-06-30 | 一种目标检测方法、目标检测框架及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010615011.6A CN111931764B (zh) | 2020-06-30 | 2020-06-30 | 一种目标检测方法、目标检测框架及相关设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111931764A CN111931764A (zh) | 2020-11-13 |
CN111931764B true CN111931764B (zh) | 2024-04-16 |
Family
ID=73316269
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010615011.6A Active CN111931764B (zh) | 2020-06-30 | 2020-06-30 | 一种目标检测方法、目标检测框架及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111931764B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11132780B2 (en) * | 2020-02-14 | 2021-09-28 | Huawei Technologies Co., Ltd. | Target detection method, training method, electronic device, and computer-readable medium |
CN112561863B (zh) * | 2020-12-03 | 2022-06-10 | 吉林大学 | 一种基于改进ResNet的医学图像多分类识别系统 |
CN112434715B (zh) * | 2020-12-10 | 2022-07-22 | 腾讯科技(深圳)有限公司 | 基于人工智能的目标识别方法、装置及存储介质 |
CN112598070B (zh) * | 2020-12-25 | 2023-07-28 | 创新奇智(广州)科技有限公司 | 目标检测方法、装置、电子设备及存储介质 |
CN113673576A (zh) * | 2021-07-26 | 2021-11-19 | 浙江大华技术股份有限公司 | 图像检测方法、终端及其计算机可读存储介质 |
CN114187666B (zh) * | 2021-12-23 | 2022-09-02 | 中海油信息科技有限公司 | 边走路边看手机的识别方法及其系统 |
CN114897066A (zh) * | 2022-05-06 | 2022-08-12 | 中国人民解放军海军工程大学 | 基于机器视觉与毫米波雷达的螺栓松动检测方法及装置 |
CN114882560A (zh) * | 2022-05-10 | 2022-08-09 | 福州大学 | 一种基于轻量级人像检测的图像智能裁剪方法 |
CN115830638A (zh) * | 2022-12-14 | 2023-03-21 | 中国电信股份有限公司 | 基于注意力机制的小尺寸人头检测方法及相关设备 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110378891A (zh) * | 2019-07-24 | 2019-10-25 | 广东工业大学 | 一种基于太赫兹图像的危险品检测方法、装置及设备 |
CN110532894A (zh) * | 2019-08-05 | 2019-12-03 | 西安电子科技大学 | 基于边界约束CenterNet的遥感目标检测方法 |
CN110569719A (zh) * | 2019-07-30 | 2019-12-13 | 中国科学技术大学 | 一种动物头部姿态估计方法及系统 |
CN110765906A (zh) * | 2019-10-12 | 2020-02-07 | 上海雪湖科技有限公司 | 一种基于关键点的行人检测算法 |
CN110942000A (zh) * | 2019-11-13 | 2020-03-31 | 南京理工大学 | 一种基于深度学习的无人驾驶车辆目标检测方法 |
CN110969138A (zh) * | 2019-12-10 | 2020-04-07 | 上海芯翌智能科技有限公司 | 人体姿态估计方法及设备 |
CN111091123A (zh) * | 2019-12-02 | 2020-05-01 | 上海眼控科技股份有限公司 | 文本区域检测方法及设备 |
CN111310770A (zh) * | 2020-02-21 | 2020-06-19 | 集美大学 | 目标检测方法和装置 |
-
2020
- 2020-06-30 CN CN202010615011.6A patent/CN111931764B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110378891A (zh) * | 2019-07-24 | 2019-10-25 | 广东工业大学 | 一种基于太赫兹图像的危险品检测方法、装置及设备 |
CN110569719A (zh) * | 2019-07-30 | 2019-12-13 | 中国科学技术大学 | 一种动物头部姿态估计方法及系统 |
CN110532894A (zh) * | 2019-08-05 | 2019-12-03 | 西安电子科技大学 | 基于边界约束CenterNet的遥感目标检测方法 |
CN110765906A (zh) * | 2019-10-12 | 2020-02-07 | 上海雪湖科技有限公司 | 一种基于关键点的行人检测算法 |
CN110942000A (zh) * | 2019-11-13 | 2020-03-31 | 南京理工大学 | 一种基于深度学习的无人驾驶车辆目标检测方法 |
CN111091123A (zh) * | 2019-12-02 | 2020-05-01 | 上海眼控科技股份有限公司 | 文本区域检测方法及设备 |
CN110969138A (zh) * | 2019-12-10 | 2020-04-07 | 上海芯翌智能科技有限公司 | 人体姿态估计方法及设备 |
CN111310770A (zh) * | 2020-02-21 | 2020-06-19 | 集美大学 | 目标检测方法和装置 |
Non-Patent Citations (1)
Title |
---|
"Bottom-up Object Detection by Grouping Extreme and Center Points";Xingyi Zhou;《CVPR》;参见正文第1-5章 * |
Also Published As
Publication number | Publication date |
---|---|
CN111931764A (zh) | 2020-11-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111931764B (zh) | 一种目标检测方法、目标检测框架及相关设备 | |
WO2020253416A1 (zh) | 物体检测方法、装置和计算机存储介质 | |
CN110298262B (zh) | 物体识别方法及装置 | |
CN112446270B (zh) | 行人再识别网络的训练方法、行人再识别方法和装置 | |
WO2021043112A1 (zh) | 图像分类方法以及装置 | |
CN112990211B (zh) | 一种神经网络的训练方法、图像处理方法以及装置 | |
CN111274916B (zh) | 人脸识别方法和人脸识别装置 | |
CN109902548B (zh) | 一种对象属性识别方法、装置、计算设备及系统 | |
CN111291809B (zh) | 一种处理装置、方法及存储介质 | |
CN113807399B (zh) | 一种神经网络训练方法、检测方法以及装置 | |
CN111797893A (zh) | 一种神经网络的训练方法、图像分类系统及相关设备 | |
CN110363817B (zh) | 目标位姿估计方法、电子设备和介质 | |
US20230076266A1 (en) | Data processing system, object detection method, and apparatus thereof | |
CN107545263B (zh) | 一种物体检测方法及装置 | |
WO2022179587A1 (zh) | 一种特征提取的方法以及装置 | |
CN110222718B (zh) | 图像处理的方法及装置 | |
CN111738403B (zh) | 一种神经网络的优化方法及相关设备 | |
US20210319242A1 (en) | Dense and Discriminative Neural Network Architectures for Improved Object Detection and Instance Segmentation | |
CN113052295B (zh) | 一种神经网络的训练方法、物体检测方法、装置及设备 | |
CN113781519A (zh) | 目标跟踪方法和目标跟踪装置 | |
WO2023083030A1 (zh) | 一种姿态识别方法及其相关设备 | |
CN115018039A (zh) | 一种神经网络蒸馏方法、目标检测方法以及装置 | |
CN115063447A (zh) | 一种基于视频序列的目标动物运动追踪方法及相关设备 | |
CN111652181A (zh) | 目标跟踪方法、装置及电子设备 | |
CN115018999A (zh) | 一种多机器人协作的稠密点云地图构建方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20220223 Address after: 550025 Huawei cloud data center, jiaoxinggong Road, Qianzhong Avenue, Gui'an New District, Guiyang City, Guizhou Province Applicant after: Huawei Cloud Computing Technologies Co.,Ltd. Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Applicant before: HUAWEI TECHNOLOGIES Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |