首页> 中国专利> 目标检测网络构建方法、目标检测方法、装置和存储介质

目标检测网络构建方法、目标检测方法、装置和存储介质

摘要

本申请提供了目标检测网络的构建方法、目标检测方法、装置和计算机可读存储介质。涉及人工智能领域,具体涉及计算机视觉领域。其中,该构建方法包括:确定目标检测网络的搜索空间;根据该目标检测网络的搜索空间确定目标检测网络的初始网络架构,并根据目标检测网络的搜索空间对目标检测网络的初始网络架构进行更新迭代,直到得到满足预设要求的所述目标检测网络。其中,目标检测网络中的特征融合层的可选连接关系包括特征融合层中任意两层相邻两层神经网络之间的一层神经网络的任意一个节点与另一层神经网络的任意一个节点的连接。本申请能够简化目标检测网络的复杂度。

著录项

  • 公开/公告号CN112464930A

    专利类型发明专利

  • 公开/公告日2021-03-09

    原文格式PDF

  • 申请/专利权人 华为技术有限公司;

    申请/专利号CN201910857984.8

  • 申请日2019-09-09

  • 分类号G06K9/32(20060101);G06K9/62(20060101);G06N3/04(20060101);G06N3/08(20060101);

  • 代理机构11329 北京龙双利达知识产权代理有限公司;

  • 代理人张振;王君

  • 地址 518129 广东省深圳市龙岗区坂田华为总部办公楼

  • 入库时间 2023-06-19 10:08:35

说明书

技术领域

本申请涉及人工智能领域,并且更具体地,涉及一种目标检测网络构建方法、目标检测方法、装置和存储介质。

背景技术

人工智能(artificial intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式作出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。人工智能领域的研究包括机器人,自然语言处理,计算机视觉,决策与推理,人机交互,推荐与搜索,AI基础理论等。

随着人工智能技术的快速发展,神经网络(例如,深度神经网络)近年来在图像、视频以及语音等多种媒体信号的处理与分析中取得了很大的成就。一个性能优良的神经网络往往拥有精妙的网络结构,而这需要具有高超技能和丰富经验的人类专家花费大量精力进行构建。为了更好地构建神经网络,人们提出了通过神经网络结构搜索(neuralarchitecturesearch,NAS)的方法来搭建神经网络,通过自动化地搜索神经网络结构,从而得到性能优异的神经网络结构。

目标检测是计算机视觉领域的基本任务之一,目标检测一般是在图像中定位目标物体并赋予目标物体相应的标签。当前主流的目标检测系统主要由骨干网络、特征融合层、区域候选网络(region proposal network,RPN)和区域卷积神经网络(regionconvolutionalneural network head,RCNN)头组成。

传统方案一般是由专家按照一定的策略来手工设计目标检测网络,需要消耗大量的人力成本和时间成本,设计得到的目标检测网络的性能也比较一般。

发明内容

本申请提供一种目标检测网络构建方法、目标检测方法、装置和存储介质,以构建出复杂度更低的目标检测网络。

第一方面,提供了一种目标检测网络的构建方法,该目标检测网络包括骨干网络、特征融合层、区域候选网络RPN和区域卷积神经网络RCNN,该方法包括:确定目标检测网络的搜索空间,其中,该目标检测网络的搜索空间包括特征融合层的搜索空间;根据目标检测网络的搜索空间确定目标检测网络的初始网络架构;根据目标检测网络的搜索空间对目标检测网络的初始网络架构进行迭代更新,直到得到满足预设要求的目标检测网络。

其中,上述目标检测网络的搜索空间包括特征融合层的搜索空间。

上述特征融合层的搜索空间包括特征融合层的可选连接关系,该特征融合层的可选连接关系具体包括多层神经网络中的相邻两层神经网络中的一层神经网络的任意一个节点与另一层神经网络中的任意一个节点的连接。

另外,上述目标检测网络的初始网络架构中的特征融合层是根据特征融合层的搜索空间确定的。也就是说,在根据目标检测网络的搜索空间确定目标检测网络的初始网络架构时,具体可以根据特征融合层的搜索空间来确定目标检测网络的初始网络架构中的特征融合层的网络架构。

应理解,在目标检测网络的搜索空间确定目标检测网络的初始网络架构时,目标检测网络的网络层次数目以及目标检测网络包含的节点个数可以是预先确定好的,具体地,可以根据目标检测网络的应用需求或者目标检测性能的要求来确定目标检测网络的网络层次数目和目标检测网络包含的节点个数。

例如,当对目标检测网络的目标检测性能要求较高时,目标检测网络的网络层次数目和目标检测网络包含的节点个数可以比较大,而当对目标检测网络的目标检测速度/复杂度要求较高时,目标检测网络的网络层次数目和目标检测网络包含的节点个数可以比较小。

本申请中,由于特征融合层的搜索空间中包含的特征融合层的可选连接关系更多,因此,本申请可以根据更多可选的连接关系来更合理的确定目标检测网络的初始网络架构中的特征融合层的网络架构,并对特征融合层的网络架构进行更新,能够简化最终得到的目标检测网络的复杂度。

具体地,在本申请中,针对特征融合层的搜索空间来说,由于采用了可选连接关系更加自由的搜索空间,因此,与手工设定网络架构的方式相比,本申请在根据特征融合层的搜索空间确定目标检测网络的初始网络架构中的特征融合层的网络架构,并对特征融合层的网络架构进行更新时,能够得到更加简化的特征融合层的网络结构,从而能够最终简化目标检测网络的复杂度,减少目标检测网络部署时需要占用的存储空间。

此外,由于特征融合层的搜索空间中包含了更多可选的连接关系,因此,在根据特征融合层的搜索空间确定目标检测网络的初始网络架构中的特征融合层的网络架构,并对特征融合层的网络架构进行更新,最终能够构建出性能更好的目标检测网络。

上述第一方面的目标检测网络的构建方法可以是一种神经网络的自动构建方法,上述第一方面的目标检测网络的构建方法可以由目标检测网络的构建装置来自动执行。

可选地,在上述目标检测网络中,骨干网络的网络架构以及RPN的网络结构是预先确定好的。

也就是说,在对上述目标检测网络的初始网络架构进行更新的过程中,可以只对目标检测网络的初始网络架构中的特征融合层和RCNN进行更新。

另外,上述骨干网络的网络架构以及RPN的网络结构也可以是事先未确定好的网络架构,这样在对目标检测网络的初始网络架构进行更新的过程中,可以对目标检测网络的骨干网络、特征融合层、RPN以及RCNN的网络架构进行更新。

结合第一方面,在第一方面的某些实现方式中,上述根据目标检测网络的搜索空间,对目标检测网络的初始网络架构进行迭代更新,直到得到满足预设要求的目标检测网络,包括:根据目标检测网络的搜索空间,对目标检测网络的初始网络架构进行迭代更新,以减小目标检测网络对应的损失函数的取值,进而得到满足预设要求的目标检测网络。

其中,上述损失函数包括目标检测网络的目标检测误差和/或目标检测网络的复杂度。

应理解,在上述迭代更新过程中可以根据目标检测网络对应的损失函数的取值来对目标检测网络的初始网络架构进行迭代更新,以使得目标检测网络对应的损失函数的取值尽可能的小,直到得到满足预设要求的目标检测网络。

具体地,在对目标检测网络的初始网络架构进行迭代更新时,可以对目标检测网络的网络结构(网络中不同节点之间的连接关系)进行调整,并且在每次调整后计算目标检测网络对应的损失函数的取值,然后再根据目标检测网络对应的损失函数的取值再对目标检测网络的网络结构进行更新,这样一直迭代下去,直到得到满足预设要求的目标检测网络。

在上述迭代更新过程中,可以在每次对目标检测网络的网络架构进行更新后计算目标检测网络对应的损失函数的取值,如果损失函数的取值满足要求则停止更新对目标检测网络架构的更新,此时得到的目标检测网络架构就是满足预设要求的目标检测网络,如果损失函数的取值不满足要求,则可以根据该损失函数的取值继续来更新目标检测网络的网络参数,直到得到满足预设要求的目标检测网络。

结合第一方面,在第一方面的某些实现方式中,特征融合层的搜索空间还包括特征融合层的可选操作类型,该特征融合层的可选操作类型包括多层神经网络中的相邻两层神经网络中的一层神经网络的任意一个节点与另一层神经网络中的任意一个节点的连接所对应的卷积操作。

其中,上述卷积操作包括空洞卷积操作。

本申请中,当特征融合层中的可选操作类型包括空洞卷积操作时,能够在采用更少的卷积参数来实现基本相同的目标检测性能。

此外,当特征融合层中的可选操作类型包括空洞卷积操作时,能够在卷积参数量基本相同的情况下,获得具有更好目标检测性能的目标检测网络。

具体地,在相同参数量的情况下,采用空洞卷积进行卷积处理能够取得比传统卷积更大的感受野,因此,能够使得最终得到的目标检测网络具有更好的目标检测性能。

结合第一方面,在第一方面的某些实现方式中,RCNN包括多个基本单元,多个基本单元中的每个基本单元由至少两个节点构成,目标检测网络的搜索空间还包括RCNN的搜索空间,RCNN的搜索空间包括多个基本单元中的每个基本单元的搜索空间,每个基本单元的搜索空间包括每个基本单元的可选连接关系,每个基本单元的可选连接关系包括每个基本单元内的任意两个节点之间的连接;目标检测网络的初始网络架构中的RCNN是根据RCNN的搜索空间确定的。

应理解,在上述每个基本单元内,节点是按照输入到输出的方向进行连接的。

本申请中,在RCNN的搜索空间内,由于RCNN的每个基本单元内的任意两个节点之间都可以连接,因此,本申请能够根据更宽松的RCNN的搜索空间来更合理的确定RCNN的初始网络结构,并对RCNN的初始网络结构进行更新,能够简化目标检测网络的复杂度。

进一步的,在本申请中,当根据特征融合层的搜索空间确定目标检测网络的初始网络架构中的特征融合层,并对特征融合层的网络架构进行更新,根据RCNN的搜索空间确定目标检测网络的初始网络架构中的RCNN的网络架构,并对RCNN的网络架构进行更新时,能够同时实现对特征融合层的网络结构和RCNN的网络结构的更新和优化,从而使得最终优化得到的RCNN的网络结构与特征融合层的网络结构更加匹配,可以得到目标检测性能更好的目标检测网络。

结合第一方面,在第一方面的某些实现方式中,每个基本单元的搜索空间还包括每个基本单元的可选操作类型,每个基本单元的可选操作类型包括每个基本单元内的任意两个节点之间的连接所对应的卷积操作,该卷积操作包括空洞卷积操作。

本申请中,当RCNN中的可选操作类型包括空洞卷积操作时,能够在采用更少的卷积参数来实现基本相同的目标检测性能。

另外,当RCNN的可选操作类型包括空洞卷积操作时,能够在卷积参数量基本相同的情况下,获得具有更好目标检测性能的目标检测网络。

具体地,在相同参数量的情况下,采用空洞卷积进行卷积处理能够取得比传统卷积更大的感受野,因此,能够使得最终得到的目标检测网络具有更好的目标检测性能。

结合第一方面,在第一方面的某些实现方式中,每个基本单元内的任意两个节点之间的连接所对应的卷积操作包括间隔数为2的空洞卷积操作。

由于RCNN中处理的特征图的分辨率一般比较低,比较适合采用间隔数较小的空洞卷积操作,因此,对于RCNN中的每个基本单元来说,当可选的操作包括间隔数为2的空洞卷积时,能够提高最终得到的RCNN的性能,进而提高最终得到的目标检测网络的性能。

结合第一方面,在第一方面的某些实现方式中,多个基本单元中的至少两个基本单元分别由不同数目的节点构成。

本申请中,当RCNN中的多个基本单元中的至少两个基本单元可以由不同数目的节点构成时,使得RCNN中基本单元的构成更加自由,从而能够在确定RCNN的初始网络结构和对RCNN的初始网络结构进行更新时增加RCNN的网络结构的可能性,便于搜索到更好的RCNN的网络结构,使得最终更有可能得到目标检测性能更好的目标检测网络。

结合第一方面,在第一方面的某些实现方式中,每个基本单元的输入特征图的分辨率与每个基本单元的输出特征图的分辨率相同。

当RCNN中的每个基本单元的输入特征图的分辨率与每个基本单元的输出特征图的分辨率相同时,RCNN中的每个基本单元在处理特征图时不改变特征图的分辨率,便于保留特征图的信息,另外,也有利于跳转链接,否则每个跳转链接都需要额外对齐输出与待输入的特征图大小,效率较低。

结合第一方面,在第一方面的某些实现方式中,上述满足预设要求的目标检测网络满足下列条件中的至少一种:目标检测网络的检测性能满足预设性能要求;对目标检测网络的网络架构的更新次数大于或者等于预设次数;目标检测网络的复杂度小于或者等于预设复杂度。

结合第一方面,在第一方面的某些实现方式中,目标检测网络的复杂度是根据目标检测网络的模型参数的数量或者大小、目标检测网络的内存访问成本MAC以及目标检测网络的浮点运算次数中的至少一种确定的。

第二方面,提供了一种目标检测网络的构建方法,目标检测网络包括骨干网络、特征融合层、区域候选网络RPN和区域卷积神经网络RCNN,该方法包括:确定目标检测网络的搜索空间,其中,RCNN包括多个基本单元,多个基本单元中的每个基本单元由至少两个节点构成,目标检测网络的搜索空间包括RCNN的搜索空间,RCNN的搜索空间包括多个基本单元中的每个基本单元的搜索空间,每个基本单元的搜索空间包括每个基本单元的可选连接关系,每个基本单元的可选连接关系包括每个基本单元内的任意两个节点之间的连接;根据目标检测网络的搜索空间确定目标检测网络的初始网络架构,其中,目标检测网络的初始网络架构中的RCNN是根据RCNN的搜索空间确定的;根据目标检测网络的搜索空间,对目标检测网络的初始网络架构进行迭代更新,直到得到满足预设要求的目标检测网络。

应理解,RCNN的搜索空间可以由RCNN中的每个基本单元的搜索空间组成。

本申请中,在RCNN的搜索空间内,RCNN的每个基本单元内的任意两个节点之间都可以连接,与手工设定网络架构的方式相比,本申请能够根据更宽松的RCNN的搜索空间来更合理的确定RCNN的初始网络结构,并对RCNN的初始网络结构进行更新,可以简化目标检测网络的复杂度。

此外,由于RCNN的搜索空间中包含了更多可选的连接关系,因此,在根据RCNN的搜索空间确定目标检测网络的初始网络架构中的RCNN,并对RCNN的网络架构进行更新,最终能够构建出性能更好的目标检测网络。

上述第二方面的目标检测网络的构建方法可以是一种神经网络的自动构建方法,上述第二方面的目标检测网络的构建方法可以由目标检测网络的构建装置来自动执行。

可选地,上述骨干网络的网络架构以及RPN的网络结构是预先确定好的。

如果上述骨干网络的网络架构以及RPN的网络结构是预先确定好的,那么,在对上述目标检测网络的初始网络架构进行更新时,可以只对目标检测网络的初始网络架构中的特征融合层和RCNN进行更新。

结合第二方面,在第二方面的某些实现方式中,根据目标检测网络的搜索空间,对目标检测网络的初始网络架构进行迭代更新,直到得到满足预设要求的目标检测网络,包括:根据目标检测网络的搜索空间,对目标检测网络的初始网络架构进行迭代更新,以减小目标检测网络对应的损失函数的取值,进而得到满足预设要求的目标检测网络。

其中,上述损失函数包括目标检测网络的目标检测误差和/或目标检测网络的复杂度。

在上述迭代更新过程中可以根据目标检测网络对应的损失函数的取值来对目标检测网络的初始网络架构进行迭代更新,以使得目标检测网络对应的损失函数的取值尽可能的小,直到得到满足预设要求的目标检测网络。

具体地,在上述迭代更新过程中,可以在每次对目标检测网络的网络架构进行更新后计算目标检测网络对应的损失函数的取值,如果损失函数的取值满足要求则停止更新对目标检测网络架构的更新,此时得到的目标检测网络架构就是满足预设要求的目标检测网络,如果损失函数的取值不满足要求,则可以根据该损失函数的取值继续来更新目标检测网络的网络参数,直到得到满足预设要求的目标检测网络。

结合第二方面,在第二方面的某些实现方式中,每个基本单元的搜索空间还包括每个基本单元的可选操作类型,每个基本单元的可选操作类型包括每个基本单元内的任意两个节点之间的连接所对应的卷积操作,该卷积操作包括空洞卷积操作。

当RCNN中的可选操作类型包括空洞卷积操作时,能够在采用更少的卷积参数来实现基本相同的目标检测性能。

当RCNN的可选操作类型包括空洞卷积操作时,能够在卷积参数量基本相同的情况下,获得具有更好目标检测性能的目标检测网络。

具体地,在相同参数量的情况下,采用空洞卷积进行卷积处理能够取得比传统卷积更大的感受野,因此,能够使得最终得到的目标检测网络具有更好的目标检测性能。

结合第二方面,在第二方面的某些实现方式中,每个基本单元内的任意两个节点之间的连接所对应的卷积操作包括间隔数为2的空洞卷积操作。

由于RCNN中处理的特征图的分辨率一般比较低,比较适合采用间隔数较小的空洞卷积操作,因此,对于RCNN中的每个基本单元来说,当可选的操作包括间隔数为2的空洞卷积时,能够提高最终得到的RCNN的性能,进而提高最终得到的目标检测网络的性能。

结合第二方面,在第二方面的某些实现方式中,多个基本单元中的至少两个基本单元分别由不同数目的节点构成。

当RCNN中的多个基本单元中的至少两个基本单元可以由不同数目的节点构成时,使得RCNN中基本单元的构成更加自由,从而能够在确定RCNN的初始网络结构和对RCNN的初始网络结构进行更新时增加RCNN的网络结构的可能性,便于搜索到更好的RCNN的网络结构,使得最终更有可能得到目标检测性能更好的目标检测网络。

结合第二方面,在第二方面的某些实现方式中,每个基本单元的输入特征图的分辨率与每个基本单元的输出特征图的分辨率相同。

当RCNN中的每个基本单元的输入特征图的分辨率与每个基本单元的输出特征图的分辨率相同时,说明RCNN中的每个基本单元在处理特征图时不改变特征图的分辨率,便于保留特征图的信息。

结合第二方面,在第二方面的某些实现方式中,目标检测网络的搜索空间还包括特征融合层的搜索空间,特征融合层的搜索空间包括特征融合层的可选连接关系,特征融合层的可选连接关系包括多层神经网络中的相邻两层神经网络中的一层神经网络的任意一个节点与另一层神经网络中的任意一个节点的连接;目标检测网络的初始网络架构中的特征融合层是根据特征融合层的搜索空间确定的。

在本申请中,当根据特征融合层的搜索空间确定目标检测网络的初始网络架构中的特征融合层,并对特征融合层的网络架构进行更新,根据RCNN的搜索空间确定目标检测网络的初始网络架构中的RCNN,并对RCNN的网络架构进行更新时,能够同时实现对特征融合层的网络结构和RCNN的网络结构的更新和优化,从而使得最终优化得到的RCNN的网络结构与特征融合层的网络结构更加匹配,可以得到目标检测性能更好的目标检测网络。

结合第二方面,在第二方面的某些实现方式中,特征融合层的搜索空间还包括特征融合层的可选操作类型,特征融合层的可选操作类型包括多层神经网络中的相邻两层神经网络中的一层神经网络的任意一个节点与另一层神经网络中的任意一个节点的连接所对应的卷积操作,其中,多层神经网络中的相邻两层神经网络中的一层神经网络的任意一个节点与另一层神经网络中的任意一个节点的连接所对应的卷积操作包括空洞卷积操作。

当特征融合层中的可选操作类型包括空洞卷积操作时,能够在采用更少的卷积参数来实现基本相同的目标检测性能。

此外,当特征融合层中的可选操作类型包括空洞卷积操作时,能够在卷积参数量基本相同的情况下,获得具有更好目标检测性能的目标检测网络。

具体地,在相同参数量的情况下,采用空洞卷积进行卷积处理能够取得比传统卷积更大的感受野,因此,能够使得最终得到的目标检测网络具有更好的目标检测性能。

结合第二方面,在第二方面的某些实现方式中,满足预设要求的目标检测网络满足下列条件中的至少一种:目标检测网络的检测性能满足预设性能要求;对目标检测网络的网络架构的更新次数大于或者等于预设次数;目标检测网络的复杂度小于或者等于预设复杂度。

结合第二方面,在第二方面的某些实现方式中,目标检测网络的复杂度是根据目标检测网络的模型参数的数量或者大小、目标检测网络的内存访问成本MAC以及目标检测网络的浮点运算次数中的至少一种确定的。

第三方面,提供了一种目标检测方法,该方法包括:获取图像;采用目标检测网络对图像进行处理,得到图像的目标检测结果,目标检测结果包括图像中的检测目标所处的位置和检测目标所属的分类结果;其中,目标检测网络包括骨干网络、特征融合层、区域候选网络RPN和区域卷积神经网络RCNN,目标检测网络是满足预设要求的检测网络,目标检测网络是根据目标检测网络的搜索空间对目标检测网络的初始网络架构进行迭代更新得到的,目标检测网络的初始网络架构是根据目标检测网络的搜索空间确定的;目标检测网络的搜索空间包括特征融合层的搜索空间,目标检测网络的初始网络架构中的特征融合层是根据特征融合层的搜索空间确定的,特征融合层的搜索空间包括特征融合层的可选连接关系,特征融合层的可选连接关系包括多层神经网络中的相邻两层神经网络中的一层神经网络的任意一个节点与另一层神经网络中的任意一个节点的连接。

由于上述目标检测方法采用的目标检测网络在构建过程中采用的特征融合层的搜索空间中包含的特征融合层的可选连接关系更多,因此,在根据特征融合层的搜索空间确定的特征融合层能够更好地进行特征融合,进而使得最终的到的目标检测网络在进行目标检测时具有更好的性能。

结合第三方面,在第三方面的某些实现方式中,特征融合层的搜索空间还包括特征融合层的可选操作类型,特征融合层的可选操作类型包括多层神经网络中的相邻两层神经网络中的一层神经网络的任意一个节点与另一层神经网络中的任意一个节点的连接所对应的卷积操作,其中,该卷积操作包括空洞卷积操作。

当特征融合层中的可选操作类型包括空洞卷积操作时,能够在采用更少的卷积参数来实现基本相同的目标检测性能。另外,在卷积参数具有相同参数量的情况下,采用空洞卷积进行卷积处理能够取得比传统卷积更大的感受野,因此,能够使得最终得到的目标检测网络具有更好的目标检测性能。

结合第三方面,在第三方面的某些实现方式中,RCNN包括多个基本单元,多个基本单元中的每个基本单元由至少两个节点构成,目标检测网络的搜索空间还包括RCNN的搜索空间,RCNN的搜索空间包括多个基本单元中的每个基本单元的搜索空间,每个基本单元的搜索空间包括每个基本单元的可选连接关系,每个基本单元的可选连接关系包括每个基本单元内的任意两个节点之间的连接;目标检测网络的初始网络架构中的RCNN是根据RCNN的搜索空间确定的。

结合第三方面,在第三方面的某些实现方式中,每个基本单元的搜索空间还包括每个基本单元的可选操作类型,每个基本单元的可选操作类型包括每个基本单元内的任意两个节点之间的连接所对应的卷积操作,每个基本单元内的任意两个节点之间的连接所对应的卷积操作包括空洞卷积操作。

当RCNN中的可选操作类型包括空洞卷积操作时,能够在采用更少的卷积参数来实现基本相同的目标检测性能。另外,当RCNN的可选操作类型包括空洞卷积操作时,能够在卷积参数量基本相同的情况下,获得具有更好目标检测性能的目标检测网络。

具体地,在卷积参数具有相同参数量的情况下,采用空洞卷积进行卷积处理能够取得比传统卷积更大的感受野,因此,采用上述目标检测网络具有更好的目标检测性能。

结合第三方面,在第三方面的某些实现方式中,每个基本单元内的任意两个节点之间的连接所对应的卷积操作包括间隔数为2的空洞卷积操作。

由于RCNN中处理的特征图的分辨率一般比较低,比较适合采用间隔数较小的空洞卷积操作,对于RCNN中的每个基本单元来说,当可选的操作包括间隔数为2的空洞卷积时,能够最终提高目标检测网络的目标检测性能。

结合第三方面,在第三方面的某些实现方式中,多个基本单元中的至少两个基本单元分别由不同数目的节点构成。

结合第三方面,在第三方面的某些实现方式中,每个基本单元的输入特征图的分辨率与每个基本单元的输出特征图的分辨率相同。

当RCNN中的每个基本单元的输入特征图的分辨率与每个基本单元的输出特征图的分辨率相同时,RCNN中的每个基本单元在处理特征图时不改变特征图的分辨率,便于保留特征图的信息,进而保证目标检测网络的目标检测性能。

结合第三方面,在第三方面的某些实现方式中,上述目标检测网络满足下列条件中的至少一种:目标检测网络的检测性能满足预设性能要求;对目标检测网络的网络架构的更新次数大于或者等于预设次数;目标检测网络的复杂度小于或者等于预设复杂度。

结合第三方面,在第三方面的某些实现方式中,上述目标检测网络的复杂度是根据目标检测网络的模型参数的数量或者大小、目标检测网络的内存访问成本MAC以及目标检测网络的浮点运算次数中的至少一种确定的。

第四方面,提供了一种目标检测方法,该方法包括:获取图像;采用目标检测网络对图像进行处理,得到图像的目标检测结果,目标检测结果包括图像中的检测目标所处的位置和检测目标所属的分类结果;其中,目标检测网络包括骨干网络、特征融合层、区域候选网络RPN和区域卷积神经网络RCNN,目标检测网络是满足预设要求的检测网络,目标检测网络是根据目标检测网络的搜索空间对目标检测网络的初始网络架构进行迭代更新得到的,目标检测网络的初始网络架构是根据目标检测网络的搜索空间确定的;RCNN包括多个基本单元,多个基本单元中的每个基本单元由至少两个节点构成,目标检测网络的搜索空间包括RCNN的搜索空间,RCNN的搜索空间包括多个基本单元中的每个基本单元的搜索空间,每个基本单元的搜索空间包括每个基本单元的可选连接关系,每个基本单元的可选连接关系包括每个基本单元内的任意两个节点之间的连接,目标检测网络的初始网络架构中的RCNN是根据RCNN的搜索空间确定的。

由于上述目标检测方法采用的目标检测网络在构建过程中采用的RCNN的搜索空间中包含的RCNN的可选连接关系更多,因此,在根据RCNN的搜索空间确定的RCNN能够更好地进行特征融合,进而使得最终的到的目标检测网络在进行目标检测时具有更好的性能。此外,由于能够根据更多可选的连接关系来更合理的确定目标检测网络的初始网络架构中的RCNN的网络结构并对RCNN的网络架构进行更新,能够简化最终得到的目标检测网络的复杂度。

具体地,在本申请中,对于RCNN的搜索空间来说,由于采用了可选连接关系更加自由的搜索空间,因此,与手工设定网络架构的方式相比,本申请在根据RCNN的搜索空间确定目标检测网络的初始网络架构中的RCNN,并对RCNN的网络架构进行更新时,能够得到更加简化的RCNN的网络结构,从而能够最终简化目标检测网络的复杂度,减少目标检测网络部署时需要占用的存储空间。

结合第四方面,在第四方面的某些实现方式中,每个基本单元的搜索空间还包括每个基本单元的可选操作类型,每个基本单元的可选操作类型包括每个基本单元内的任意两个节点之间的连接所对应的卷积操作,每个基本单元内的任意两个节点之间的连接所对应的卷积操作包括空洞卷积操作。

当RCNN中的可选操作类型包括空洞卷积操作时,目标检测网络能够利用更少的卷积参数来实现基本相同的目标检测性能。当RCNN的可选操作类型包括空洞卷积操作时,能够在卷积参数量基本相同的情况下,利用上述目标检测网络进行目标检测具有更好的检测性能。

结合第四方面,在第四方面的某些实现方式中,每个基本单元内的任意两个节点之间的连接所对应的卷积操作包括间隔数为2的空洞卷积操作。

由于RCNN中处理的特征图的分辨率一般比较低,比较适合采用间隔数较小的空洞卷积操作,因此,对于RCNN中的每个基本单元来说,当可选的操作包括间隔数为2的空洞卷积时,能够提高最终得到的RCNN的性能,进而提高最终得到的目标检测网络的性能。

结合第四方面,在第四方面的某些实现方式中,多个基本单元中的至少两个基本单元分别由不同数目的节点构成。

结合第四方面,在第四方面的某些实现方式中,每个基本单元的输入特征图的分辨率与每个基本单元的输出特征图的分辨率相同。

当RCNN中的每个基本单元的输入特征图的分辨率与每个基本单元的输出特征图的分辨率相同时,说明RCNN中的每个基本单元在处理特征图时不改变特征图的分辨率,便于保留特征图的信息。

结合第四方面,在第四方面的某些实现方式中,目标检测网络的搜索空间还包括特征融合层的搜索空间,特征融合层的搜索空间包括特征融合层的可选连接关系,特征融合层的可选连接关系包括多层神经网络中的相邻两层神经网络中的一层神经网络的任意一个节点与另一层神经网络中的任意一个节点的连接;目标检测网络的初始网络架构中的特征融合层是根据特征融合层的搜索空间确定的。

由于上述目标检测方法采用的目标检测网络在构建过程中采用的特征融合层的搜索空间中包含的特征融合层的可选连接关系更多,因此,在根据特征融合层的搜索空间确定的特征融合层能够更好地进行特征融合,进而使得最终的到的目标检测网络在进行目标检测时具有更好的性能。

结合第四方面,在第四方面的某些实现方式中,特征融合层的搜索空间还包括特征融合层的可选操作类型,特征融合层的可选操作类型包括多层神经网络中的相邻两层神经网络中的一层神经网络的任意一个节点与另一层神经网络中的任意一个节点的连接所对应的卷积操作,其中,多层神经网络中的相邻两层神经网络中的一层神经网络的任意一个节点与另一层神经网络中的任意一个节点的连接所对应的卷积操作包括空洞卷积操作。

当特征融合层中的可选操作类型包括空洞卷积操作时,能够在采用更少的卷积参数来实现基本相同的目标检测性能。另外,在卷积参数具有相同参数量的情况下,采用空洞卷积进行卷积处理能够取得比传统卷积更大的感受野,因此,能够使得最终得到的目标检测网络具有更好的目标检测性能。

结合第四方面,在第四方面的某些实现方式中,目标检测网络满足下列条件中的至少一种:目标检测网络的检测性能满足预设性能要求;对目标检测网络的网络架构的更新次数大于或者等于预设次数;目标检测网络的复杂度小于或者等于预设复杂度。

结合第四方面,在第四方面的某些实现方式中,目标检测网络的复杂度是根据目标检测网络的模型参数的数量或者大小、目标检测网络的内存访问成本MAC以及目标检测网络的浮点运算次数中的至少一种确定的。

第五方面,提供了一种目标检测网络的构建装置,该装置包括用于执行上述第一方面或者第二方面中的任意一种实现方式中的方法的模块。

第五方面,提供了一种目标检测装置,该装置包括用于执行上述第三方面或者第四方面中的任意一种实现方式中的方法的模块。

第六方面,提供了一种目标检测网络的构建装置,该装置包括:存储器,用于存储程序;处理器,用于执行所述存储器存储的程序,当所述存储器存储的程序被执行时,所述处理器用于执行第一方面或者第二方面中的任意一种实现方式中的方法。

第七方面,提供了一种目标检测装置,该装置包括:存储器,用于存储程序;处理器,用于执行所述存储器存储的程序,当所述存储器存储的程序被执行时,所述处理器用于执行第三方面或者第四方面中的任意一种实现方式中的方法。

第八方面,提供一种计算机可读介质,该计算机可读介质存储用于设备执行的程序代码,该程序代码包括用于执行第一方面至第四方面中的任意一种实现方式中的方法。

第九方面,提供一种包含指令的计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述第一方面至第四方面中的任意一种实现方式中的方法。

第十方面,提供一种芯片,所述芯片包括处理器与数据接口,所述处理器通过所述数据接口读取存储器上存储的指令,执行上述第一方面至第四方面中的任意一种实现方式中的方法。

可选地,作为一种实现方式,所述芯片还可以包括存储器,所述存储器中存储有指令,所述处理器用于执行所述存储器上存储的指令,当所述指令被执行时,所述处理器用于执行第一方面至第四方面中的任意一种实现方式中的方法。

附图说明

图1是本申请实施例提供的系统架构的结构示意图;

图2是利用本申请实施例提供的卷积神经网络模型进行目标检测的示意图;

图3是本申请实施例提供的一种芯片硬件结构示意图;

图4是本申请实施例提供的一种系统架构的示意图;

图5是本申请实施例的目标检测系统的示意图;

图6是目标检测系统应用在自动驾驶领域的示意图;

图7是本申请实施例的目标检测网络的构建方法的示意性流程图;

图8是特征融合层一种可能的结构示意图;

图9是RCNN的一种可能的结构的示意图;

图10是特征融合层一种可能的结构示意图;

图11是RCNN的一种可能的结构的示意图;

图12是本申请实施例的目标检测网络的构建方法的示意性流程图;

图13是本申请实施例的目标检测方法的示意性流程图;

图14是本申请实施例的目标检测网络的构建装置的示意性框图;

图15是本申请实施例的目标检测装置的示意性框图;

图16是本申请实施例的目标检测网络的构建装置的示意性框图;

图17是本申请实施例的目标检测装置的示意性框图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。

本申请的方案可以应用在辅助驾驶、自动驾驶、平安城市、智能终端等需要进行目标检测(例如,对图像中的行人进行检测)的领域。下面对两种较为常用的应用场景进行简单的介绍。

应用场景一:辅助/自动驾驶系统

在高级驾驶辅助系统(advanced driving assistant system,ADAS)和自动驾驶系统(autonomous driving system,ADS)中需要对路面上行人或者障碍物进行检测和躲避,尤其是要避免碰撞行人,这就需要进行较为准确的目标检测。

应用场景二:平安城市/视频监控系统

在平安城市系统和视频监控系统中通过实时进行目标检测(检测行人或者车辆),标出检测结果,并将检测结果系统的分析单元中,可以用于查找犯罪嫌疑人、失踪人口以及特定车辆等。

本申请的方案涉及神经网络的构建和利用神经网络进行目标检测,为了更好地理解本申请方案,下面先对神经网络的相关术语和概念进行介绍。

(1)神经网络

神经网络可以是由神经单元组成的,神经单元可以是指以x

其中,s=1、2、……n,n为大于1的自然数,W

(2)深度神经网络

深度神经网络(deep neural network,DNN),也称多层神经网络,可以理解为具有多层隐含层的神经网络。按照不同层的位置对DNN进行划分,DNN内部的神经网络可以分为三类:输入层,隐含层,输出层。一般来说第一层是输入层,最后一层是输出层,中间的层数都是隐含层。层与层之间是全连接的,也就是说,第i层的任意一个神经元一定与第i+1层的任意一个神经元相连。

虽然DNN看起来很复杂,但是就每一层的工作来说,其实并不复杂,简单来说就是如下线性关系表达式:

综上,第L-1层的第k个神经元到第L层的第j个神经元的系数定义为

需要注意的是,输入层是没有W参数的。在深度神经网络中,更多的隐含层让网络更能够刻画现实世界中的复杂情形。理论上而言,参数越多的模型复杂度越高,“容量”也就越大,也就意味着它能完成更复杂的学习任务。训练深度神经网络的也就是学习权重矩阵的过程,其最终目的是得到训练好的深度神经网络的所有层的权重矩阵(由很多层的向量W形成的权重矩阵)。

(3)卷积神经网络

卷积神经网络(convolutional neuron network,CNN)是一种带有卷积结构的深度神经网络。卷积神经网络包含了一个由卷积层和子采样层构成的特征抽取器,该特征抽取器可以看作是滤波器。卷积层是指卷积神经网络中对输入信号进行卷积处理的神经元层。在卷积神经网络的卷积层中,一个神经元可以只与部分邻层神经元连接。一个卷积层中,通常包含若干个特征平面,每个特征平面可以由一些矩形排列的神经单元组成。同一特征平面的神经单元共享权重,这里共享的权重就是卷积核。共享权重可以理解为提取图像信息的方式与位置无关。卷积核可以以随机大小的矩阵的形式初始化,在卷积神经网络的训练过程中卷积核可以通过学习得到合理的权重。另外,共享权重带来的直接好处是减少卷积神经网络各层之间的连接,同时又降低了过拟合的风险。

(4)残差网络

残差网络是在2015年提出的一种深度卷积网络,相比于传统的卷积神经网络,残差网络更容易优化,并且能够通过增加相当的深度来提高准确率。残差网络的核心是解决了增加深度带来的副作用(退化问题),这样能够通过单纯地增加网络深度,来提高网络性能。残差网络一般会包含很多结构相同的子模块,通常会采用残差网络(residualnetwork,ResNet)连接一个数字表示子模块重复的次数,比如ResNet50表示残差网络中有50个子模块。

(6)分类器

很多神经网络结构最后都有一个分类器,用于对图像中的物体进行分类。分类器一般由全连接层(fully connected layer)和softmax函数(可以称为归一化指数函数)组成,能够根据输入而输出不同类别的概率。

(7)损失函数

在训练深度神经网络的过程中,因为希望深度神经网络的输出尽可能的接近真正想要预测的值,所以可以通过比较当前网络的预测值和真正想要的目标值,再根据两者之间的差异情况来更新每一层神经网络的权重向量(当然,在第一次更新之前通常会有初始化的过程,即为深度神经网络中的各层预先配置参数),比如,如果网络的预测值高了,就调整权重向量让它预测低一些,不断地调整,直到深度神经网络能够预测出真正想要的目标值或与真正想要的目标值非常接近的值。因此,就需要预先定义“如何比较预测值和目标值之间的差异”,这便是损失函数(loss function)或目标函数(objective function),它们是用于衡量预测值和目标值的差异的重要方程。其中,以损失函数举例,损失函数的输出值(loss)越高表示差异越大,那么深度神经网络的训练就变成了尽可能缩小这个loss的过程。

(8)反向传播算法

神经网络可以采用误差反向传播(back propagation,BP)算法在训练过程中修正初始的神经网络模型中参数的数值,使得神经网络模型的重建误差损失越来越小。具体地,前向传递输入信号直至输出会产生误差损失,通过反向传播误差损失信息来更新初始的神经网络模型中参数,从而使误差损失收敛。反向传播算法是以误差损失为主导的反向传播运动,旨在得到最优的神经网络模型的参数,例如权重矩阵。

以上对神经网络的一些基本内容做了简单介绍,下面针对图像数据处理时可能用到的一些特定神经网络进行介绍。

下面结合图1对本申请实施例的系统架构进行详细的介绍。

图1是本申请实施例的系统架构的示意图。如图1所示,系统架构100包括执行设备110、训练设备120、数据库130、客户设备140、数据存储系统150、以及数据采集系统160。

另外,执行设备110包括计算模块111、I/O接口112、预处理模块113和预处理模块114。其中,计算模块111中可以包括目标模型/规则101,预处理模块113和预处理模块114是可选的。

数据采集设备160用于采集训练数据。针对本申请实施例的目标检测方法来说,训练数据可以包括训练图像(该训练图像中包括行人)以及标注数据,其中,标注数据中给出了训练图片中的存在行人的包围框(bounding box)的坐标。在采集到训练数据之后,数据采集设备160将这些训练数据存入数据库130,训练设备120基于数据库130中维护的训练数据训练得到目标模型/规则101。

下面对训练设备120基于训练数据得到目标模型/规则101进行描述,训练设备120对输入的训练图像进行物体检测,将输出的目标检测结果(图像中行人车辆等目标的包围框以及包围框的置信度)与标注结果进行对比,直到训练设备120输出的物体的目标检测结果与预先标注的结果的差异小于一定的阈值,从而完成目标模型/规则101的训练。

上述目标模型/规则101能够用于实现本申请实施例的目标检测方法,即,将待处理图像(通过相关预处理后)输入该目标模型/规则101,即可得到待处理图像的目标检测结果。本申请实施例中的目标模型/规则101具体可以为神经网络。需要说明的是,在实际应用中,数据库130中维护的训练数据不一定都来自于数据采集设备160的采集,也有可能是从其他设备接收得到的。另外需要说明的是,训练设备120也不一定完全基于数据库130维护的训练数据进行目标模型/规则101的训练,也有可能从云端或其他地方获取训练数据进行模型训练,上述描述不应该作为对本申请实施例的限定。

根据训练设备120训练得到的目标模型/规则101可以应用于不同的系统或设备中,如应用于图1所示的执行设备110,所述执行设备110可以是终端,如手机终端,平板电脑,笔记本电脑,增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR),车载终端等,还可以是服务器或者云端等。在图1中,执行设备110配置输入/输出(input/output,I/O)接口112,用于与外部设备进行数据交互,用户可以通过客户设备140向I/O接口112输入数据,所述输入数据在本申请实施例中可以包括:客户设备输入的待处理图像。这里的客户设备140具体可以是终端设备。

预处理模块113和预处理模块114用于根据I/O接口112接收到的输入数据(如待处理图像)进行预处理,在本申请实施例中,可以没有预处理模块113和预处理模块114或者只有的一个预处理模块。当不存在预处理模块113和预处理模块114时,可以直接采用计算模块111对输入数据进行处理。

在执行设备110对输入数据进行预处理,或者在执行设备110的计算模块111执行计算等相关的处理过程中,执行设备110可以调用数据存储系统150中的数据、代码等以用于相应的处理,也可以将相应处理得到的数据、指令等存入数据存储系统150中。

最后,I/O接口112将处理结果,如将目标模型/规则101计算得到的目标检测结果呈现给客户设备140,从而提供给用户。

具体地,经过计算模块111中的目标模型/规则101处理得到的目标检测结果可以通过预处理模块113(也可以再加上预处理模块114的处理)的处理后将处理结果送入到I/O接口,再由I/O接口将处理结果送入到客户设备140中显示。

应理解,当上述系统架构100中不存在预处理模块113和预处理模块114时,计算模块111还可以将处理得到的目标检测结果传输到I/O接口,然后再由I/O接口将处理结果送入到客户设备140中显示。

值得说明的是,训练设备120可以针对不同的目标或称不同的任务,基于不同的训练数据生成相应的目标模型/规则101,该相应的目标模型/规则101即可以用于实现上述目标或完成上述任务,从而为用户提供所需的结果。

在图1中,用户可以手动给定输入数据,该手动给定可以通过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。

值得注意的是,图1仅是本申请实施例提供的一种系统架构的示意图,图中所示设备、器件、模块等之间的位置关系不构成任何限制,例如,在图1中,数据存储系统150相对执行设备110是外部存储器,在其它情况下,也可以将数据存储系统150置于执行设备110中。

如图1所示,根据训练设备120训练得到目标模型/规则101,可以是本申请实施例中的神经网络,具体的,本申请实施例提供的神经网络可以是CNN以及深度卷积神经网络(deep convolutional neural networks,DCNN)等等。

由于CNN是一种非常常见的神经网络,下面结合图2重点对CNN的结构进行详细的介绍。如上文的基础概念介绍所述,卷积神经网络是一种带有卷积结构的深度神经网络,是一种深度学习(deep learning)架构,深度学习架构是指通过机器学习的算法,在不同的抽象层级上进行多个层次的学习。作为一种深度学习架构,CNN是一种前馈(feed-forward)人工神经网络,该前馈人工神经网络中的各个神经元可以对输入其中的图像作出响应。

如图2所示,卷积神经网络(CNN)200可以包括输入层210,卷积层/池化层220(其中池化层为可选的),以及全连接层(fully connected layer)230。下面对这些层的相关内容做详细介绍。

卷积层/池化层220:

卷积层:

如图2所示卷积层/池化层220可以包括如示例221-226层,举例来说:在一种实现中,221层为卷积层,222层为池化层,223层为卷积层,224层为池化层,225为卷积层,226为池化层;在另一种实现方式中,221、222为卷积层,223为池化层,224、225为卷积层,226为池化层。即卷积层的输出可以作为随后的池化层的输入,也可以作为另一个卷积层的输入以继续进行卷积操作。

下面将以卷积层221为例,介绍一层卷积层的内部工作原理。

卷积层221可以包括很多个卷积算子,卷积算子也称为核,其在图像处理中的作用相当于一个从输入图像矩阵中提取特定信息的过滤器,卷积算子本质上可以是一个权重矩阵,这个权重矩阵通常被预先定义,在对图像进行卷积操作的过程中,权重矩阵通常在输入图像上沿着水平方向一个像素接着一个像素(或两个像素接着两个像素……这取决于步长stride的取值)的进行处理,从而完成从图像中提取特定特征的工作。该权重矩阵的大小应该与图像的大小相关,需要注意的是,权重矩阵的纵深维度(depth dimension)和输入图像的纵深维度是相同的,在进行卷积运算的过程中,权重矩阵会延伸到输入图像的整个深度。因此,和一个单一的权重矩阵进行卷积会产生一个单一纵深维度的卷积化输出,但是大多数情况下不使用单一权重矩阵,而是应用多个尺寸(行×列)相同的权重矩阵,即多个同型矩阵。每个权重矩阵的输出被堆叠起来形成卷积图像的纵深维度,这里的维度可以理解为由上面所述的“多个”来决定。不同的权重矩阵可以用来提取图像中不同的特征,例如一个权重矩阵用来提取图像边缘信息,另一个权重矩阵用来提取图像的特定颜色,又一个权重矩阵用来对图像中不需要的噪点进行模糊化等。该多个权重矩阵尺寸(行×列)相同,经过该多个尺寸相同的权重矩阵提取后的卷积特征图的尺寸也相同,再将提取到的多个尺寸相同的卷积特征图合并形成卷积运算的输出。

这些权重矩阵中的权重值在实际应用中需要经过大量的训练得到,通过训练得到的权重值形成的各个权重矩阵可以用来从输入图像中提取信息,从而使得卷积神经网络200进行正确的预测。

当卷积神经网络200有多个卷积层的时候,初始的卷积层(例如221)往往提取较多的一般特征,该一般特征也可以称之为低级别的特征;随着卷积神经网络200深度的加深,越往后的卷积层(例如226)提取到的特征越来越复杂,比如高级别的语义之类的特征,语义越高的特征越适用于待解决的问题。

池化层:

由于常常需要减少训练参数的数量,因此卷积层之后常常需要周期性的引入池化层,在如图2中220所示例的221-226各层,可以是一层卷积层后面跟一层池化层,也可以是多层卷积层后面接一层或多层池化层。在图像处理过程中,池化层的唯一目的就是减少图像的空间大小。池化层可以包括平均池化算子和/或最大池化算子,以用于对输入图像进行采样得到较小尺寸的图像。平均池化算子可以在特定范围内对图像中的像素值进行计算产生平均值作为平均池化的结果。最大池化算子可以在特定范围内取该范围内值最大的像素作为最大池化的结果。另外,就像卷积层中用权重矩阵的大小应该与图像尺寸相关一样,池化层中的运算符也应该与图像的大小相关。通过池化层处理后输出的图像尺寸可以小于输入池化层的图像的尺寸,池化层输出的图像中每个像素点表示输入池化层的图像的对应子区域的平均值或最大值。

全连接层230:

在经过卷积层/池化层220的处理后,卷积神经网络200还不足以输出所需要的输出信息。因为如前所述,卷积层/池化层220只会提取特征,并减少输入图像带来的参数。然而为了生成最终的输出信息(所需要的类信息或其他相关信息),卷积神经网络200需要利用全连接层230来生成一个或者一组所需要的类的数量的输出。因此,在全连接层230中可以包括多层隐含层(如图2所示的231、232至23n)以及输出层240,该多层隐含层中所包含的参数可以根据具体的任务类型的相关训练数据进行预先训练得到,例如该任务类型可以包括图像识别,图像分类,图像超分辨率重建等等。

在全连接层230中的多层隐含层之后,也就是整个卷积神经网络200的最后层为输出层240,该输出层240具有类似分类交叉熵的损失函数,具体用于计算预测误差,一旦整个卷积神经网络200的前向传播(如图2由210至240方向的传播为前向传播)完成,反向传播(如图2由240至210方向的传播为反向传播)就会开始更新前面提到的各层的权重值以及偏差,以减少卷积神经网络200的损失,及卷积神经网络200通过输出层输出的结果和理想结果之间的误差。

需要说明的是,如图2所示的卷积神经网络200仅作为一种卷积神经网络的示例,在具体的应用中,卷积神经网络还可以以其他网络模型的形式存在。

应理解,可以采用图2所示的卷积神经网络(CNN)200执行本申请实施例的目标检测方法,如图2所示,待处理图像经过输入层210、卷积层/池化层220和全连接层230的处理之后可以得到待处理图像的检测结果(待处理图像中的存在行人的包围框以及图像中存在行人的包围框的置信度)。

图3为本申请实施例提供的一种芯片硬件结构,该芯片包括神经网络处理器50。该芯片可以被设置在如图1所示的执行设备110中,用以完成计算模块111的计算工作。该芯片也可以被设置在如图1所示的训练设备120中,用以完成训练设备120的训练工作并输出目标模型/规则101。如图2所示的卷积神经网络中各层的算法均可在如图3所示的芯片中得以实现。

神经网络处理器(neural-network processing unit,NPU)50作为协处理器挂载到主中央处理器(central processing unit,CPU)(host CPU)上,由主CPU分配任务。NPU的核心部分为运算电路503,控制器504控制运算电路503提取存储器(权重存储器或输入存储器)中的数据并进行运算。

在一些实现中,运算电路503内部包括多个处理单元(process engine,PE)。在一些实现中,运算电路503是二维脉动阵列。运算电路503还可以是一维脉动阵列或者能够执行例如乘法和加法这样的数学运算的其它电子线路。在一些实现中,运算电路503是通用的矩阵处理器。

举例来说,假设有输入矩阵A,权重矩阵B,输出矩阵C。运算电路503从权重存储器502中取矩阵B相应的数据,并缓存在运算电路503中每一个PE上。运算电路503从输入存储器501中取矩阵A数据与矩阵B进行矩阵运算,得到的矩阵的部分结果或最终结果,保存在累加器(accumulator)508中。

向量计算单元507可以对运算电路503的输出做进一步处理,如向量乘,向量加,指数运算,对数运算,大小比较等等。例如,向量计算单元507可以用于神经网络中非卷积/非FC层的网络计算,如池化(pooling),批归一化(batch normalization),局部响应归一化(local response normalization)等。

在一些实现中,向量计算单元能507将经处理的输出的向量存储到统一缓存器506。例如,向量计算单元507可以将非线性函数应用到运算电路503的输出,例如累加值的向量,用以生成激活值。在一些实现中,向量计算单元507生成归一化的值、合并值,或二者均有。在一些实现中,处理过的输出的向量能够用作到运算电路503的激活输入,例如用于在神经网络中的后续层中的使用。

统一存储器506用于存放输入数据以及输出数据。

权重数据直接通过存储单元访问控制器505(direct memory accesscontroller,DMAC)将外部存储器中的输入数据搬运到输入存储器501和/或统一存储器506、将外部存储器中的权重数据存入权重存储器502,以及将统一存储器506中的数据存入外部存储器。

总线接口单元(bus interface unit,BIU)510,用于通过总线实现主CPU、DMAC和取指存储器509之间进行交互。

与控制器504连接的取指存储器(instruction fetch buffer)509,用于存储控制器504使用的指令;

控制器504,用于调用指存储器509中缓存的指令,实现控制该运算加速器的工作过程。

一般地,统一存储器506,输入存储器501,权重存储器502以及取指存储器509均为片上(on-chip)存储器,外部存储器为该NPU外部的存储器,该外部存储器可以为双倍数据率同步动态随机存储器(double data rate synchronous dynamic randomaccessmemory,简称DDR SDRAM)、高带宽存储器(high bandwidth memory,HBM)或其他可读可写的存储器。

另外,在本申请中,图2所示的卷积神经网络中各层的运算可以由运算电路503或向量计算单元507执行。

如图4所示,本申请实施例提供了一种系统架构300。该系统架构包括本地设备301、本地设备302以及执行设备210和数据存储系统250,其中,本地设备301和本地设备302通过通信网络与执行设备210连接。

执行设备210可以由一个或多个服务器实现。可选的,执行设备210可以与其它计算设备配合使用,例如:数据存储器、路由器、负载均衡器等设备。执行设备210可以布置在一个物理站点上,或者分布在多个物理站点上。执行设备210可以使用数据存储系统250中的数据,或者调用数据存储系统250中的程序代码来实现本申请实施例的搜索神经网络结构的方法。

具体地,执行设备210可以执行以下过程:确定目标检测网络的搜索空间;根据目标检测网络的搜索空间确定目标检测网络的初始网络架构;根据目标检测网络的搜索空间,对目标检测网络的初始网络架构进行迭代更新,直到得到满足预设要求的所述目标检测网络。

通过上述过程执行设备210能够搭建成一个目标神经网络,该目标神经网络可以用于目标检测。

用户可以操作各自的用户设备(例如本地设备301和本地设备302)与执行设备210进行交互。每个本地设备可以表示任何计算设备,例如个人计算机、计算机工作站、智能手机、平板电脑、智能摄像头、智能汽车或其他类型蜂窝电话、媒体消费设备、可穿戴设备、机顶盒、游戏机等。

每个用户的本地设备可以通过任何通信机制/通信标准的通信网络与执行设备210进行交互,通信网络可以是广域网、局域网、点对点连接等方式,或它们的任意组合。

在一种实现方式中,本地设备301、本地设备302从执行设备210获取到目标神经网络的相关参数,将目标神经网络部署在本地设备301、本地设备302上,利用该目标神经网络进行目标检测。

在另一种实现中,执行设备210上可以直接部署目标神经网络,执行设备210通过从本地设备301和本地设备302获取待处理图像(本地设备301和本地设备302可以将图待处理图像上传给执行设备210),并根据目标神经网络对待处理图像进行目标检测,并将目标检测结果发送给本地设备301和本地设备302。

上述执行设备210也可以称为云端设备,此时执行设备210一般部署在云端。

下面结合图5对目标检测系统进行详细的介绍。

图5是本申请实施例的目标检测系统的示意图。

如图5所示,目标检测系统包括骨干网络(backbone)、特征融合层、候选区域生成网络(region proposal network,RPN)以及区域卷积神经网络(region CNN,RCNN),其中,骨干网络还可以称为主干网络,下面对目标检测网络中的这四部分网络结构分别进行详细的介绍。

骨干网络:

骨干网络用于提取底层图片信息,是基于视觉的深度神经网络模型的通用结构。在实际中,骨干网络通常是基于一般的深度卷积神经网络的架构微调而成。例如,骨干网络可以基于视觉几何组(visual geometry group,VGG)网络(该网络是牛津大学的视觉几何组(visual geometry group)提出一种网络)的架构微调而成。再如,骨干网络还可以基于深度残差网络(deep residual network,ResNet)的架构微调而成。

如图5所示,骨干网络可以对待检测图像进行特征提取,得到待检测图像的图像特征。

特征融合层:

特征融合层用于对骨干网络提取得到的多尺度多层次的特征进行筛选融合,生成更紧凑更有表现力的特征向量,以便于输入分类器后作进一步处理。特征融合层在基于多尺度多层次特征的神经网络设计中被广泛使用。在实际应用中,一方面可以利用金字塔结构调整不同尺度特征的大小形状和权重,并把结果相加融合成单一的特征向量,另一方面通过跳转链接同时把不同层次的特征连接起来,挖掘出更富有表现力的多层次特征。

如图5所示,特征融合层对骨干网络提取的待检测图像的图像特征进行融合处理,得到待检测图像的多层次特征。

RPN:

RPN是一个用于生成粗糙的目标位置和类标信息(类别标签信息)的快速回归分类器。在实际应用中,RPN可以采用包含二值分类器和边框回归(边框回归是一个用于目标检测的回归模型,在滑动窗口得到的目标定位附近寻找一个与真实窗口更接近,损失函数值更小的回归窗口)的两层简单网络来实现。

如图5所示,RPN对特征融合层得到的待检测图像的多层次特征进行处理,得到目标的初步分类检测结果。

RCNN:

RCNN也可以称为RCNN头,RCNN是目标检测网络的特有部分,用于进一步优化RPN得到的初步分类检测结果,在实际应用中,RCNN一般要通过比RPN复杂的多的多层网络来实现。通过RCNN与RPN的结合,可以使得目标检测系统能快速的去除大量无效的图像区域,并能集中力量细致的检测更有潜力的图像区域,从而提高目标检测的效果。

如图5所示,RCNN对RPN得到的初步分类检测结果进行进一步处理,得到目标的分类和目标的包围框。

利用本申请实施例的目标检测网络的构建方法得到的目标检测系统可以应用在自动驾驶场景中。在自动驾驶的目标识别场景中,需要准确识别出道路上的车辆行人等目标。自动驾驶系统需要实时对道路上突发事件做出响应,因此要求搭载的目标检测系统能在有限的硬件资源上得到高效准确的目标识别结果。由于本申请实施例的目标检测网络的构建方法构建得到的目标检测系统能够更有效的进行目标检测,因此,采用本申请实施例的目标检测网络的构建方法得到的目标检测系统能够提高目标检测效果,提高自动驾驶的安全性能。

图6是目标检测系统应用在自动驾驶领域的示意图。

如图6所示,通过车载摄像头可以获取视频数据,该视频数据有一系列道路画面组成。通过目标检测模块对视频数据进行处理,能够检测出道路画面中存在的障碍物和障碍物的位置。接下来,目标检测模块可以将检测结果(道路画面中存在的障碍物和障碍物的位置)输入到行动检测模块,使得行动检测模块能够根据该检测结果生成驾驶操作信号,并将驾驶操作信号发送给相应的自动驾驶的执行设备,从而实现对车辆的自动控制。

另外,图6的目标检测模块中的目标检测系统可以是根据本申请实施例的目标检测网络的构建方法得到的神经网络(模型)。

图7是本申请实施例的目标检测网络的构建方法的示意性流程图。图7所示的方法可以由本申请实施例的目标检测网络的构建装置执行(例如,图7所示的方法可以由下文中的图14或者图16所示的装置来执行),图7所示的方法包括步骤1001至1003,下面对这些步骤分别进行详细的介绍。

1001、确定目标检测网络的搜索空间。

上述目标检测网络的搜索空间包括可以特征融合层的搜索空间。

对于特征融合层的搜索空间来说,可以包括特征融合层的可选连接关系。

具体地,特征融合层的可选连接关系可以包括特征融合层的多层神经网络中的相邻两层神经网络中的一层神经网络的任意一个节点与另一层神经网络中的任意一个节点的连接。

例如,如图8所示,特征融合层包括A层神经网络、B层神经网络和C层神经网络。其中,各层神经网络的组成节点如下所示。

A层神经网络:P_{0}_1、P_{0}_2、P_{0}_3和P_{0}_4。

B层神经网络:P_{1}_1、P_{2}_2、P_{3}_3和P_{4}_4。

C层神经网络:P_{2}_1、P_{2}_2、P_{2}_3和P_{2}_4。

在图8中,A层神经网络中的任意一个节点可以与B层神经网络中的任意一个节点相连,B层神经网络中的任意一个节点可以与C层神经网络中的任意一个节点相连。

由于从A层神经网络到B层神经网络,以及从B层神经网络到C层神经网络,考虑到了所有层之间的跳转链接,可以构建出网络结构更好的特征融合层。

为了便于显示,图8仅示出了A层神经网络中的一个节点与B层神经网络中的节点的连接关系,以及B层中的一个节点与C层神经网络中的节点的连接关系。

具体地,如图8所示,A层神经网络中的节点P_{0}_2可以与B层神经网络中的节点P_{1}_1,P_{1}_2,P_{1}_3和P_{1}_4连接;B层神经网络中的节点P_{1}_1可以与C层神经网络中的节点P_{2}_1,P_{2}_2,P_{2}_3和P_{2}_4连接。应理解,图8仅仅示出了特征融合层的一种具体情况,本申请对特征融合层中包含的神经网络的层数以及每层神经网络包含的节点的个数不做限定。

此外,上述目标检测网络的搜索空间还可以包括RCNN的搜索空间。

其中,上述目标检测网络的RCNN包括多个基本单元,该多个基本单元中的每个基本单元由至少两个节点构成,上述RCNN的搜索空间包括多个基本单元中的每个基本单元的搜索空间,每个基本单元的搜索空间包括每个基本单元的可选连接关系,每个基本单元的可选连接关系包括每个基本单元内的任意两个节点之间的连接。

例如,如图9所示,RCNN包括图9上方的基本单元1和图9下方的基本单元2,下面分别对基本单元1和基本单元2进行介绍。

基本单元1:

基本单元1由7个节点构成,其中包括2个输入节点(H_{0},H_{0}),4个中间节点(0,1,2,3)和1个输出节点(H_{1})。

在基本单元1中,除了2个输入节点之间不能直接相连之外,剩余的任意两个节点之间可以直接相连。

基本单元2:

基本单元2由7个节点构成,其中包括2个输入节点(H_{0},H_{1}),4个中间节点(0,1,2,3)和1个输出节点(H_{2})。

在基本单元1中,除了2个输入节点之间不能直接相连之外,剩余的任意两个节点之间可以直接相连。

上述图9仅示出了基本单元1和基本单元2其中的一种可能的连接关系。

对于上述基本单元1和基本单元2来说,基本单元1或者基本单元2内部的节点在进行连接的时候是按照从输入到输出的方向进行连接的。

1002、根据目标检测网络的搜索空间确定目标检测网络的初始网络架构。

其中,上述目标检测网络的初始网络架构包括特征融合层的网络架构,该特征融合层的网络架构是根据特征融合层的搜索空间确定的,也就是说,在步骤1002中,可以是根据特征融合层的搜索空间来确定目标检测网络的初始网络架构中的特征融合层的网络架构。

另外,上述目标检测网络的初始网络架构也可以包括RCNN的网络架构,该RCNN的网络架构是根据RCNN的搜索空间确定的,也就是说,在步骤1002中,可以是根据RCNN的搜索空间来确定RCNN的网络架构。

应理解,在上述步骤1002中确定目标检测网络的初始网络架构时,目标检测网络的网络层次数目以及目标检测网络包含的节点个数可以是预先确定好的。

具体地,在构建目标检测网络之前,可以先根据待构建的目标检测网络的应用需求或者目标检测性能的要求来确定目标检测网络的网络层次数目和目标检测网络包含的节点个数。

例如,当对目标检测网络的目标检测性能要求较高时,目标检测网络的网络层次数目可以比较多,目标检测网络包含的节点个数也可以比较多,而当对目标检测网络的目标检测性能要求较低时,目标检测网络的网络层次数目可以较少,目标检测网络包含的节点个数也可以比较少。

1003、根据目标检测网络的搜索空间,对目标检测网络的初始网络架构进行迭代更新,直到得到满足预设要求的目标检测网络。

应理解,在步骤1003中,在对目标检测网络的初始网络架构进行迭代更新时,既可以对目标检测网络中的目标检测网络的初始网络架构中的特征融合层的网络架构和RCNN的网络架构中的任意一种进行更新,也可以对目标检测网络的初始网络架构中的特征融合层的网络架构和RCNN的网络架构同时进行更新。

具体地,在步骤1003中,可以在每次对目标检测网络的网络架构进行迭代更新后,确认更新网络的目标检测网络是否满足要求,如果不满足预设要求的话,继续更新该目标检测网络的网络架构,直到得到满足预设要求的目标检测网络。

在上述目标检测网络中,骨干网络的网络架构以及RPN的网络结构可以是预先确定好的。这样在对上述目标检测网络的初始网络架构进行更新的过程中,可以只对目标检测网络的初始网络架构中的特征融合层的网络架构或者目标检测网络的初始网络架构中的RCNN的网络架构进行更新。

另外,上述骨干网络的网络架构以及RPN的网络结构也可以是事先未确定好的网络架构,这样在对目标检测网络的初始网络架构进行更新的过程中,可以对目标检测网络的骨干网络、特征融合层、RPN以及RCNN的网络架构都进行更新。

本申请中,由于特征融合层的搜索空间中包含的特征融合层的可选连接关系更多,因此,本申请可以根据更多可选的连接关系来更合理的确定目标检测网络的初始网络架构中的特征融合层,并对特征融合层的网络架构进行更新,能够简化最终得到的目标检测网络的复杂度。

具体地,在本申请中,针对特征融合层的搜索空间来说,由于采用了可选连接关系更加自由的搜索空间,因此,在根据特征融合层的搜索空间确定目标检测网络的初始网络架构中的特征融合层,并对特征融合层的网络架构进行更新时,能够得到更加简化的特征融合层的网络架构,从而能够最终简化目标检测网络的复杂度,减少目标检测网络部署时需要占用的存储空间。

此外,由于特征融合层的搜索空间中包含了更多可选的连接关系,因此,在根据特征融合层的搜索空间确定目标检测网络的初始网络架构中的特征融合层,并对特征融合层的网络架构进行更新,最终能够构建出性能更好的目标检测网络。

本申请中,在RCNN的搜索空间内,RCNN的每个基本单元内的任意两个节点之间都可以连接,因此,本申请能够根据更宽松的RCNN的搜索空间来更合理的确定RCNN的初始网络结构,并对RCNN的初始网络结构进行更新,能够简化目标检测网络的复杂度。

此外,由于RCNN的搜索空间中包含了更多可选的连接关系,因此,在根据RCNN的搜索空间确定目标检测网络的初始网络架构中的RCNN的网络架构,并对RCNN的网络架构进行更新,最终能够构建出性能更好的目标检测网络。

图7所示的方法可以是一种神经网络的自动构建方法,图7所示的方法可以由本申请实施例的目标检测网络的构建装置来自动执行。

当对目标检测网络中的目标检测网络的初始网络架构的特征融合层的网络架构和RCNN的网络架构同时进行更新时,能够在使得最终得到的特征融合层与RCNN的结构更加匹配,从而能够提高最终得到的目标检测网络的性能。

可选地,上述步骤1003具体包括:根据目标检测网络的搜索空间,对目标检测网络的初始网络架构进行迭代更新,以减小目标检测网络对应的损失函数的取值,进而得到满足预设要求的目标检测网络。

其中,上述损失函数可以包括目标检测网络的目标检测误差和/或目标检测网络的复杂度。

在对目标检测网络的初始网络架构进行迭代更新时,可以对目标检测网络的网络结构(网络中不同节点之间的连接关系)进行调整,并且在每次调整后计算目标检测网络对应的损失函数的取值,然后再根据目标检测网络对应的损失函数的取值再对目标检测网络的网络结构进行更新,这样一直迭代下去,直到得到满足预设要求的目标检测网络。

具体地,在上述过程中,可以在每次对目标检测网络的网络架构进行更新后确定目标检测网络对应的损失函数的取值(也可以称为函数值),如果目标检测网络对应的损失函数的取值的大小已经小于预设的阈值,则可以停止对目标检测网络的网络架构进行更新,此时得到的目标检测网络就是满足预设要求的目标检测网络,如果目标检测网络对应的损失函数的取值不小于预设的阈值,那么,可以根据目标检测网络对应的损失函数的取值的大小决定是否继续对目标检测网络的网络架构进行更新,这样一直迭代下去,直到得到满足预设要求的目标检测网络。

可选地,上述满足预设要求的目标检测网络满足下列条件(1)至(3)中的至少一种:

(1)目标检测网络的检测性能满足预设性能要求;

(2)对目标检测网络的网络架构的更新次数大于或者等于预设次数;

(3)目标检测网络的复杂度小于或者等于预设复杂度。

其中,上述目标检测网络的复杂度(也可以称为目标检测网络的网络结构的复杂度)可以是根据目标检测网络的模型参数的数量或者大小、目标检测网络的内存访问成本MAC以及目标检测网络的浮点运算次数中的至少一种确定的。

对于特征融合层的搜索空间来说,除了可以包括特征融合层的可选连接关系之外,还可以包括特征融合层的可选操作类型。

具体地,特征融合层的可选操作类型可以包括多层神经网络中的相邻两层神经网络中的一层神经网络的任意一个节点与另一层神经网络中的任意一个节点的连接所对应的卷积操作。

其中,上述多层神经网络中的相邻两层神经网络中的一层神经网络的任意一个节点与另一层神经网络中的任意一个节点的连接所对应的卷积操作包括空洞卷积操作。

特征融合层的可选操作可以包括以下操作中的任意一种:

(1)无连接;

(2)5×5空洞卷积,间隔数为2;

(3)跳过连接(恒等映射);

(4)5×5空洞卷积,间隔数为3;

(5)3×3空洞卷积,间隔数为2;

(6)3×3深度可分卷积;

(7)3×3空洞卷积,间隔数为3;

(8)5×5深度可分卷积。

与传统卷积算子相比,在可学参数量相同的情况下,空洞卷积算子比空洞卷积算子具有更大的感受野,使得采用空洞卷积算子能够从图像中提取出更大视觉范围的特征。或者,为了提取到相同视觉范围的特征,采用空洞卷积算子能够减少特征融合层的网络参数的数量和大小。因此,当特征融合层中的可选操作类型包括空洞卷积操作时,能够在采用更少的卷积参数来实现基本相同的目标检测性能。

此外,当特征融合层中的可选操作类型包括空洞卷积操作时,能够在卷积参数量基本相同的情况下,获得具有更好目标检测性能的目标检测网络。

具体地,在相同参数量的情况下,采用空洞卷积进行卷积处理能够取得比传统卷积更大的感受野,因此,能够使得最终得到的目标检测网络具有更好的目标检测性能。

下面结合附图对最终得到的目标检测网络的特征融合层的网络结构进行描述。

如图10所示,该特征融合层包括的神经网络的层数,以及每层神经网络中的节点均与图8所示的特征融合层相同。图10所示的是最终得到的特征融合层的一种可能的连接方式,具体地,在图10中,具体地,在图8中,B层神经网络中的P_{1}_1和P_{1}_4接收第一组的所有节点(4个节点)的输出,B层神经网络中的P_{1}_2和P_{1}_3接收A层神经网络中的3个节点的输出;C层神经网络中的P_{2}_4接收B层神经网络中的所有节点(4个节点)的输出,C层神经网络中的P_{2}_1、P_{2}_2、P_{2}_3均接收A层神经网络中的3个节点的输出。

表1示出了B层神经网络中的每个节点对应的输入节点。

表1

表2示出了B层神经网络中的每个节点对应的输入节点。

表2

另外,图10还示出节点之间一种可能的操作空间的选择方式,具体地,在A层神经网络到B层神经网络之间的部分节点之间的操作如表3所示,除了表3所示的操作关系之外,A层神经网络和第二节点之间对应的操作均为identity。

表3

在B层神经网络到C层神经网络之间的部分节点之间的操作如表4所示,除了表4所示的操作关系之外,B层神经网络和C层神经网络之间对应的操作均为identity。

表4

上述步骤1002中的目标检测网络的搜索空间还可以包括RCNN的搜索空间,RCNN可以包括多个基本单元,该多个基本单元中的每个基本单元由至少两个节点构成,RCNN的搜索空间包括多个基本单元中的每个基本单元的搜索空间,每个基本单元的搜索空间包括每个基本单元的可选连接关系,每个基本单元的可选连接关系包括每个基本单元内的任意两个节点之间的连接。

当上述步骤1002中的目标检测网络的搜索空间包括RCNN的搜索空间时,上述目标检测网络中的目标检测网络的初始网络架构中的RCNN可以是根据RCNN的搜索空间确定的。也就是说,在步骤1002中,可以根据RCNN的搜索空间的来确定目标检测网络的初始网络架构中的RCNN的网络架构。

本申请中,在RCNN的搜索空间内,由于RCNN的每个基本单元内的任意两个节点之间都可以连接,因此,本申请能够根据更宽松的RCNN的搜索空间来更合理的确定RCNN的初始网络结构,并对RCNN的初始网络结构进行更新,能够简化目标检测网络的复杂度。

进一步的,在本申请中,当根据特征融合层的搜索空间确定目标检测网络的初始网络架构的特征融合层,并对特征融合层的网络架构进行更新,与手工设定网络架构的方式相比,本申请根据RCNN的搜索空间确定目标检测网络的初始网络架构的RCNN,并对RCNN的网络架构进行更新时,能够同时实现对特征融合层的网络结构和RCNN的网络结构的更新和优化,从而使得最终优化得到的RCNN的网络结构与特征融合层的网络结构更加匹配,可以得到目标检测性能更好的目标检测网络。

可选地,在上述RCNN的搜索空间内,每个基本单元的搜索空间还包括每个基本单元的可选操作类型,每个基本单元的可选操作类型包括每个基本单元内的任意两个节点之间的连接所对应的卷积操作,该卷积操作包括空洞卷积操作。

本申请中,当RCNN中的可选操作类型包括空洞卷积操作时,能够在采用更少的卷积参数来实现基本相同的目标检测性能。

另外,当RCNN的可选操作类型包括空洞卷积操作时,能够在卷积参数量基本相同的情况下,获得具有更好目标检测性能的目标检测网络。

具体地,在相同参数量的情况下,采用空洞卷积进行卷积处理能够取得比传统卷积更大的感受野,因此,能够使得最终得到的目标检测网络具有更好的目标检测性能。

可选地,上述每个基本单元内的任意两个节点之间的连接所对应的卷积操作包括间隔数为2的空洞卷积操作。

由于RCNN中处理的特征图的分辨率一般比较低,比较适合采用间隔数较小的空洞卷积操作,因此,对于RCNN中的每个基本单元来说,当可选的操作包括间隔数为2的空洞卷积时,能够提高最终得到的RCNN的性能,进而提高最终得到的目标检测网络的性能。

可选地,上述RCNN中的基本单元可以由不同数目的节点构成。

在传统方案中,RCNN中的基本单元一般都是由相同数目的节点构成,这种方式在优化RCNN网络结构时不够灵活。而本申请中的RCNN中的基本单元可以由不同数目的节点构成,使得RCNN中基本单元的构成更加自由,从而能够在确定RCNN的初始网络结构和对RCNN的初始网络结构进行更新时增加RCNN的网络结构的可能性,便于搜索到更好的RCNN的网络结构,使得最终更有可能得到目标检测性能更好的目标检测网络。

另外,RCNN中每个基本单元的节点构成数目可以是在构建目标检测网络之前预先确定好的。

可选地,上述每个基本单元的输入特征图的分辨率与每个基本单元的输出特征图的分辨率相同。

当RCNN中的每个基本单元的输入特征图的分辨率与每个基本单元的输出特征图的分辨率相同时,RCNN中的每个基本单元在处理特征图时不改变特征图的分辨率,便于保留特征图的信息。

下面结合附图对最终得到的目标检测网络的RCNN的网络结构进行描述。

如图11所示,该RCNN包括的基本单元,以及每个基本单元中包含的节点个数均与图9所示的RCNN相同,图11所示的RCNN所示的网络架构可以是最终得到的RCNN的网络架构。

具体地,如图11所示,对于RCNN的基本单元1来说,由两个相同的输入节点(H_{0}),输入节点(H_{0})输入的特征图经过中间节点0至3的处理后,在输出节点处进行加权求和,得到第一个卷积单元的输出(H_{1})。其中,输入节点到中间节点以及中间节点到输出节点的操作均为5×5的卷积(conv_5×5)。

对于RCNN的基本单元2来说,输入节点H_{0}和H_{1}输入的特征图经过中间节点0至3的处理后,在输出节点处进行加权求和,得到第一个卷积单元的输出(H_{2})。其中,输入节点到中间节点以及中间节点到输出节点的操作均为5×5的卷积(conv_5×5)。

下面结合图12对本申请实施例目标检测网络的构建方法的过程进行更详细的介绍。

图12是本申请实施例的目标检测网络的构建方法的流程图。图12所示的方法可以由本申请实施例的目标检测网络的构建装置执行,图12所示的方法包括步骤2001至步骤2006,下面对这些步骤分别进行详细的介绍。

2001、初始化目标检测网络的网络架构。

在步骤2001中,可以先确定目标检测网络的初始网络架构。

具体地,由于目标检测网络包括骨干网络、特征融合层、RPN和RCNN,因此,在步骤2001中,确定目标检测网络的初始网络架构也就是需要确定目标检测网络中的骨干网络、特征融合层、RPN和RCNN的网络架构。

其中,骨干网络和RPN可以是预先构建好的网络,因此,初始化目标检测网络的网络结构相当于初始化特征融合层和RCNN的网络结构。

经过步骤2001之后,可以确定出特征融合层的初始网络结构和RCNN的初始网络结构。

2002a、对特征融合层进行性能评估。

具体地,在步骤2002a中,可以对特征融合层的性能和特征融合层占用的资源进行评估,便于后续根据特征融合层的性能和占用资源的评估情况来更新特征融合层的网络架构。

2002b、对RCNN进行性能评估。

与步骤2002a类似,在步骤2002b中,也可以对RCNN的性能和资源占用情况进行评估,便于后续根据RCNN的性能和资源占用情况来更新RCNN的网络架构。

上述步骤2002a和步骤2002b既可以同时发生,也可以先后发生,本申请对步骤2002a和步骤2002b发生的先后顺序不做限定。

2003a、更新特征融合层的网络架构。

在经过步骤2002a得到特征融合层的性能和资源占用情况之后,可以根据特征融合层的性能和资源占用情况对特征融合层的网络架构进行更新。

具体地,当特征融合层的性能不满足要求时,可以在更新特征融合层时,适当增加特征融合层的复杂度,使得更新后的特征融合层具有更好的性能;而当特征融合层占用的资源过多时,可以在更新特征融合层时降低特征融合层的复杂度,使得更新后的特征融合层具有更简单的结构,从而使得更新后的特征融合层占用的资源减少。

2003b、更新RCNN的网络架构。

在经过步骤2002b得到RCNN的性能和资源占用情况之后,可以根据RCNN的性能和资源占用情况对RCNN的网络架构进行更新。

具体地,当RCNN的性能不满足要求时,可以在更新RCNN时,将RCNN的复杂度提高,使得更新后的RCNN具有更好的性能;而当RCNN占用的资源过多时,可以在更新RCNN时降低RCNN的复杂度,使得更新后的RCNN具有更简单的结构,从而使得更新后的RCNN占用的资源减少。

应理解,上述步骤2003a和2003b既可以同时发生,也可以先后发生,本申请对步骤2003a和2003b的先后顺序不做限定。

2004、更新目标检测网络的网络参数。

在更新了特征融合层和RCNN的网络架构之后,可以对目标检测网络的网络参数进行更新,这里的目标检测网络的网络参数包括骨干网络、特征融合层、RPN和RCNN的网络参数(该网络参数具体可以包括卷积参数)。

2005、确定目标检测网络是否满足预设条件。

具体地,在步骤2005中,可以确定目标检测网络是否满足下列条件:

(1)目标检测网络的检测性能满足预设要求;

(2)目标检测网络的网络架构更新次数是否达到预设次数;

(3)目标检测网络的复杂度小于或者等于预设复杂度。

当目标网络满足上述条件(1)至(3)中的任意一个时,可以确定目标检测网络满足预设要求。

上述目标检测网络的性能满足预设要求具体可以是目标检测网络进行目标检测的准确率大于某个准确率阈值。例如,目标检测网络进行目标检测的准确率大于60%时,确定目标检测网络的性能满足预设要求。

当步骤2005中确定目标检测网络满足预设条件时,继续执行步骤2006,输出目标检测网络。当步骤2005中确定目标检测网络不满足预设条件时,继续执行步骤2002a和步骤2002b,以继续更新目标检测网络的网络架构。

2006、输出目标检测网络。

经过步骤2005确定目标检测网络满足预设条件后,目标神经网络的构建完成,可以输出目标检测网络。

图13是本申请实施例的目标检测方法的示意性流程图。图13所示方法可以由本申请实施例的目标检测装置来执行,例如,图13所示的方法可以由图15或者图17所示的装置来执行。

图13所示的方法包括步骤3001和3002,下面对这两个步骤以及相关内容进行详细介绍。

3001、获取图像。

3002、采用目标检测网络对上述图像进行处理,得到该图像的目标检测结果。

上述步骤3002中得到的图像的目标检测结果包括图像中的检测目标所处的位置和检测目标所属的分类结果。

上述步骤3002中采用的目标检测网络可以是根据本申请实施例的目标检测网络的构建方法构建得到的。上文在介绍本申请实施例时对目标检测网络的限定和解释也适用于步骤3002中的目标检测网络。

具体地,上述步骤3002中采用的目标检测网络可以是根据图7或者图12所示的方法构建得到的。

本申请中的目标检测方法采用的目标检测网络在构建过程中采用的特征融合层的搜索空间中包含的特征融合层的可选连接关系更多,因此,在根据特征融合层的搜索空间确定的特征融合层能够更好地进行特征融合,进而使得最终的到的目标检测网络在进行目标检测时具有更好的性能。

上述图13所示的方法中的目标检测网络的初始网络架构是根据目标检测网络的搜索空间确定的,而目标检测网络最终的网络架构可以是根据目标检测网络的搜索空间对目标检测网络的初始网络架构进行迭代更新得到的。

在获取上述图13所示的方法中采用的目标检测网络时,目标检测网络的搜索空间可以包括特征融合层的搜索空间和/或RCNN的搜索空间。

当上述目标检测网络的搜索空间包括特征融合层的搜索空间时,目标检测网络的初始网络架构中的特征融合层是根据特征融合层的搜索空间确定的,目标检测网络中的特征融合层的最终网络架构是根据特征融合层的搜索空间对目标检测网络的初始网络架构中的特征融合层的网络架构进行迭代更新得到的。

当上述目标检测网络的搜索空间包括RCNN的搜索空间时,目标检测网络的初始网络架构中的RCNN是根据RCNN的搜索空间确定的,目标检测网络中的RCNN的最终网络架构是根据RCNN的搜索空间对目标检测网络的初始网络架构中的RCNN的网络架构进行迭代更新得到的。

可选地,上述目标检测网络的搜索空间包括特征融合层的搜索空间,特征融合层的搜索空间包括特征融合层的可选连接关系,特征融合层的可选连接关系包括特征融合层的多层神经网络中的相邻两层神经网络中的一层神经网络的任意一个节点与另一层神经网络中的任意一个节点的连接。

可选地,上述特征融合层的搜索空间还包括特征融合层的可选操作类型,特征融合层的可选操作类型包括多层神经网络中的相邻两层神经网络中的一层神经网络的任意一个节点与另一层神经网络中的任意一个节点的连接所对应的卷积操作,其中,该卷积操作包括空洞卷积操作。

当特征融合层中的可选操作类型包括空洞卷积操作时,能够在采用更少的卷积参数来实现基本相同的目标检测性能。另外,在卷积参数具有相同参数量的情况下,采用空洞卷积进行卷积处理能够取得比传统卷积更大的感受野,因此,能够在利用目标检测网络进行目标检测时取得更好的目标检测性能。

可选地,上述RCNN包括多个基本单元,多个基本单元中的每个基本单元由至少两个节点构成,目标检测网络的搜索空间还包括RCNN的搜索空间,RCNN的搜索空间包括多个基本单元中的每个基本单元的搜索空间,每个基本单元的搜索空间包括每个基本单元的可选连接关系,每个基本单元的可选连接关系包括每个基本单元内的任意两个节点之间的连接;目标检测网络的初始网络架构中的RCNN是根据RCNN的搜索空间确定的。

可选地,上述每个基本单元的搜索空间还包括每个基本单元的可选操作类型,每个基本单元的可选操作类型包括每个基本单元内的任意两个节点之间的连接所对应的卷积操作,该卷积操作包括空洞卷积操作。

当RCNN中的可选操作类型包括空洞卷积操作时,能够在采用更少的卷积参数来实现基本相同的目标检测性能。另外,当RCNN的可选操作类型包括空洞卷积操作时,能够在卷积参数量基本相同的情况下,取得更好的目标检测性能。

具体地,在卷积参数具有相同参数量的情况下,采用空洞卷积进行卷积处理能够取得比传统卷积更大的感受野,因此,采用上述目标检测网络进行目标检测时具有更好的目标检测性能。

可选地,每个基本单元内的任意两个节点之间的连接所对应的卷积操作包括间隔数为2的空洞卷积操作。

由于RCNN中处理的特征图的分辨率一般比较低,比较适合采用间隔数较小的空洞卷积操作,对于RCNN中的每个基本单元来说,当可选的操作包括间隔数为2的空洞卷积时,能够最终提高目标检测网络的目标检测性能。

可选地,上述多个基本单元中的至少两个基本单元分别由不同数目的节点构成。

可选地,每个基本单元的输入特征图的分辨率与每个基本单元的输出特征图的分辨率相同。

当RCNN中的每个基本单元的输入特征图的分辨率与每个基本单元的输出特征图的分辨率相同时,RCNN中的每个基本单元在处理特征图时不改变特征图的分辨率,便于保留特征图的信息,进而保证采用目标检测网络进行目标检测时取得较好的目标检测效果。

可选地,上述目标检测网络满足下列条件中的至少一种:目标检测网络的检测性能满足预设性能要求;对目标检测网络的网络架构的更新次数大于或者等于预设次数;目标检测网络的复杂度小于或者等于预设复杂度。

可选地,上述目标检测网络的复杂度是根据目标检测网络的模型参数的数量或者大小、目标检测网络的内存访问成本MAC以及目标检测网络的浮点运算次数中的至少一种确定的。

为了说明本申请实施例的目标检测网络的构建方法的效果,下面结合具体的测试结果对本申请实施例的目标检测网络的构建方法得到的神经网络的复杂度,以及利用本申请的目标检测网络的构建方法得到的神经网络进行目标检测的准确率进行分析。

表5

表5示出了采用不同方案得到的目标检测网络的复杂度。

其中,现有方案1至现有方案6的具体方案分别如下:

现有方案1:引导锚定更快RCNN(guided anchoring faster RCNN);

现有方案2:路径集合网络(path aggregation network)2018年在CVPR发表;

现有方案3:使用区域探测网络进行实时对象检测(towards real-time objectdetection with region proposal networks),2015年于NIPS发表;

现有方案4:特征金字塔网络(feature pyramid network),2017年于CVPR发表;

现有方案5:用于对象检测的关系网络(relation networks for objectdetection),CVPR,2018年在CVPR发表;

现有方案6:密集物体检测的焦点损失(focal loss for dense objectdetection),2017年在ICCV发表。

由表5可知,在数据集COCO进行测试时,在骨干网络分别为ResNet-50和ResNet-101时利用本申请方案得到的神经网络进行目标检测时的平均精度(mean averageprecision,mAP)均高于利用现有方案得到的神经网络进行目标检测时的平均精度。

具体地,当骨干网络为ResNet-50时,采用本申请方案得到的神经网络进行目标检测的平均精度为40.5,而采用现有方案1或者现有方案2得到的神经网络进行目标检测的平均精度均为39.8,与现有方案1和现有方案2相比,采用本申请方案得到的神经网络进行目标检测的平均精度提高了40.5-39.8=0.7。

当骨干网络为ResNet-101时,采用本申请方案得到的神经网络进行目标检测的平均精度为42.5,而采用现有方案3至现有方案6得到的神经网络进行目标检测的平均精度最高是39.1,与现有方案3至现有方案6相比,采用本申请方案得到的神经网络进行目标检测的平均精度至少提高了42.5-39.1=3.4(与现有方案3相比,本申请方案对应的目标检测的平均精度更是提高了42.5-34.9=7.6)。

表6

表6示出了现有方案和本申请方案构建得到的目标检测网络包含的参数量,以及采用现有方案和本申请方案构建得到的目标检测网络进行目标检测时的平均精度。如表6所示,本申请方案分别在三种数据集(VOC数据集,COCO数据集以及BDD数据集)上构建得到的目标检测网络的参数总量均低于现有方案构建得到的目标检测网络的参数总量。另外,本申请方案分别在三种数据集上构建得到的目标检测网络在测试数据集(PASCALVOC数据集)上进行目标检测的mAP也高于现有方案构建得到的目标检测网络在测试数据集(PASCALVOC数据集)上进行目标检测的mAP。

表7

与表6类似,表7也示出了现有方案和本申请方案构建得到的目标检测网络包含的参数量,以及采用现有方案和本申请方案构建得到的目标检测网络进行目标检测时的平均精度。

如表7所示,本申请方案分别在三种数据集(BDD数据集,COCO数据集以及VOC数据集)上构建得到的目标检测网络的参数总量均低于现有方案构建得到的目标检测网络的参数总量。另外,本申请方案分别在三种数据集上构建得到的目标检测网络在测试数据集(BDD数据集)上进行目标检测的mAP也高于现有方案构建得到的目标检测网络在测试数据集(BDD数据集)上进行目标检测的mAP。

上文结合附图对本申请实施例的目标检测网络的构建方法和本申请实施例的目标检测方法进行了详细的介绍,下面结合附图对本申请实施例的目标检测网络的构建装置和目标检测装置进行描述。

应理解,下文中介绍的目标检测网络的构建装置能够执行本申请实施例的目标检测网络的构建方法的各个步骤,下文中介绍的目标检测装置能够执行本申请实施例的目标检测方法的各个步骤,下面在介绍本申请实施例的目标检测网络的构建装置和目标检测装置适当省略重复的描述。

图14是本申请实施例的目标检测网络的构建装置的示意性框图。图14所示的装置5000包括确定单元5001和构建单元5002。

装置5000可以执行本申请实施例的目标检测网络的构建方法的各个步骤,具体地,装置5000既可以执行图7所示的方法,也可以执行图12所示的方法。

具体地,当装置5000执行图7所示的方法时,确定单元5001具体可以用于执行步骤1001和1002,构建单元5002可以用于执行步骤1003。

当装置5000执行图12所示的方法时,确定单元5001具体可以用于执行步骤2001,构建单元5002可以用于执行步骤2002至2006,其中,步骤2002包括步骤2002a和2002b,步骤2003包括步骤2003a和2003b。

上述装置5000中的确定单元5001和构建单元5002相当于下文中图16所示的装置7000中的处理器7002。

图15是本申请实施例的目标检测装置的示意性框图。图15所示的装置6000包括获取单元6001和检测单元6002。

装置6000可以执行本申请实施例的目标检测方法的各个步骤,具体地,装置6000既可以执行图7所示的方法,也可以执行图12所示的方法。

具体地,当装置5000执行图7所示的方法时,确定单元5001具体可以用于执行步骤1001和1002,构建单元5002可以用于执行步骤1003。

当装置5000执行图12所示的方法时,确定单元5001具体可以用于执行步骤2001,构建单元5002可以用于执行步骤2002至2006,其中,步骤2002包括步骤2002a和2002b,步骤2003包括步骤2003a和2003b。

上述装置5000中的确定单元5001和构建单元5002相当于下文中图16所示的装置7000中的处理器7002。

图16是本申请实施例提供的神经网络结构搜索装置的硬件结构示意图。图16所示的神经网络结构搜索装置3000(该装置3000具体可以是一种计算机设备)包括存储器3001、处理器3002、通信接口3003以及总线3004。其中,存储器3001、处理器3002、通信接口3003通过总线3004实现彼此之间的通信连接。

存储器3001可以是只读存储器(read only memory,ROM),静态存储设备,动态存储设备或者随机存取存储器(random access memory,RAM)。存储器3001可以存储程序,当存储器3001中存储的程序被处理器3002执行时,处理器3002用于执行本申请实施例的目标检测网络的构建方法的各个步骤。

处理器3002可以采用通用的中央处理器(central processing unit,CPU),微处理器,应用专用集成电路(application specific integrated circuit,ASIC),图形处理器(graphics processing unit,GPU)或者一个或多个集成电路,用于执行相关程序,以实现本申请实施例的目标检测网络的构建方法。

处理器3002还可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,本申请的目标检测网络的构建方法的各个步骤可以通过处理器3002中的硬件的集成逻辑电路或者软件形式的指令完成。

上述处理器3002还可以是通用处理器、数字信号处理器(digital signalprocessing,DSP)、专用集成电路(ASIC)、现成可编程门阵列(field programmable gatearray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器3001,处理器3002读取存储器3001中的信息,结合其硬件完成本神经网络结构搜索装置中包括的单元所需执行的功能,或者执行本申请实施例的目标检测网络的构建方法。

通信接口3003使用例如但不限于收发器一类的收发装置,来实现装置3000与其他设备或通信网络之间的通信。例如,可以通过通信接口3003获取待构建的神经网络的信息以及构建神经网络过程中需要的训练数据。

总线3004可包括在装置3000各个部件(例如,存储器3001、处理器3002、通信接口3003)之间传送信息的通路。

图17是本申请实施例的目标检测装置的硬件结构示意图。图17所示的目标检测装置4000包括存储器4001、处理器4002、通信接口4003以及总线4004。其中,存储器4001、处理器4002、通信接口4003通过总线4004实现彼此之间的通信连接。

存储器4001可以是ROM,静态存储设备和RAM。存储器4001可以存储程序,当存储器4001中存储的程序被处理器4002执行时,处理器4002和通信接口4003用于执行本申请实施例的目标检测方法的各个步骤。

处理器4002可以采用通用的,CPU,微处理器,ASIC,GPU或者一个或多个集成电路,用于执行相关程序,以实现本申请实施例的目标检测装置中的单元所需执行的功能,或者执行本申请实施例的目标检测方法。

处理器4002还可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,本申请实施例的目标检测方法的各个步骤可以通过处理器4002中的硬件的集成逻辑电路或者软件形式的指令完成。

上述处理器4002还可以是通用处理器、DSP、ASIC、FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器4001,处理器4002读取存储器4001中的信息,结合其硬件完成本申请实施例的目标检测装置中包括的单元所需执行的功能,或者执行本申请实施例的目标检测方法。

通信接口4003使用例如但不限于收发器一类的收发装置,来实现装置4000与其他设备或通信网络之间的通信。例如,可以通过通信接口4003获取待处理图像。

总线4004可包括在装置4000各个部件(例如,存储器4001、处理器4002、通信接口4003)之间传送信息的通路。

应注意,尽管上述装置7000和装置5000仅仅示出了存储器、处理器、通信接口,但是在具体实现过程中,本领域的技术人员应当理解,装置7000和装置8000还可以包括实现正常运行所必须的其他器件。同时,根据具体需要,本领域的技术人员应当理解,装置7000和装置8000还可包括实现其他附加功能的硬件器件。此外,本领域的技术人员应当理解,装置7000和装置8000也可仅仅包括实现本申请实施例所必须的器件,而不必包括图16和图17中所示的全部器件。

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

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

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

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

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

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

以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号