CN114254727A - 一种处理三维数据的方法及设备 - Google Patents

一种处理三维数据的方法及设备 Download PDF

Info

Publication number
CN114254727A
CN114254727A CN202011010600.8A CN202011010600A CN114254727A CN 114254727 A CN114254727 A CN 114254727A CN 202011010600 A CN202011010600 A CN 202011010600A CN 114254727 A CN114254727 A CN 114254727A
Authority
CN
China
Prior art keywords
background
data
subnet
sparse distribution
convolution operator
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.)
Pending
Application number
CN202011010600.8A
Other languages
English (en)
Inventor
杜云开
陈易龙
杨扬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202011010600.8A priority Critical patent/CN114254727A/zh
Priority to EP21870838.6A priority patent/EP4209964A4/en
Priority to PCT/CN2021/096589 priority patent/WO2022062451A1/zh
Publication of CN114254727A publication Critical patent/CN114254727A/zh
Priority to US18/187,771 priority patent/US20230222732A1/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0464Convolutional networks [CNN, ConvNet]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/20Image enhancement or restoration using local operators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Computing Systems (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Databases & Information Systems (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Neurology (AREA)
  • Image Analysis (AREA)
  • Image Generation (AREA)

Abstract

本申请公开了一种处理三维数据的方法,该方法可以应用于智能驾驶领域。该方法包括:针对卷积神经网络中的目标卷积算子,可以通过三维数据的一个或多个背景值先计算出对应的中间结果,然后,在对第一数据进行处理时,只需要根据稀疏分布图中的背景标识查找相应的中间结果,再根据该中间结果得到第二数据的体素的值,不需要重复多次卷积处理的过程,从而实现了卷积加速。另外,本申请实施例提供的方案尤其适用于有多个背景值的广义稀疏数据。

Description

一种处理三维数据的方法及设备
技术领域
本申请涉及计算机技术领域,具体涉及一种处理三维数据的方法、构建卷积神经网络的方法及设备。
背景技术
卷积神经网络(convolutional neuron nrtwork,CNN)近年被广泛应用于计算机视觉中,CNN用于在计算机视觉中执行分类、检测或分割等任务。这些任务一般都是针对图像进行的,使用的是二维(2Dimensions,2D)卷积。二维卷积仅提取单张静态图片空间维度特征,面对视频数据或三维(3Dimensions,3D)图像等具有3D数据特征的场景,则需要使用3D卷积。
深度卷积神经网络(如ResNet、ForkNet等)在3D领域具有广泛的应用前景。但是,其面临最大挑战是三维卷积的计算复杂度非常高,算力需求通常比同等规模的二维卷积神经网络高10倍以上。尤其在推理侧,对时延非常敏感,网络的推理速度慢会出现卡顿,直接影响端侧的用户体验。在时延要求更高的自动驾驶领域,大量的三维数据很适合使用三维卷积神经网络处理,但由于三维卷积神经网络的性能达不到实时性要求导致无法应用。
目前加速三维卷积神经网络对三维数据的处理过程成为亟待解决的问题。
发明内容
本申请实施例提供一种处理三维数据的方法,用于提高三维卷积的计算速度。本申请实施例还提供了相应的构建卷积神经网络的方法、相应设备、系统、计算机可读存储介质以及计算机程序产品等。
本申请第一方面提供一种处理三维数据的方法,该方法可应用于智能驾驶领域。该方法包括:将第一数据、第一数据的至少一个第一背景值,以及第一数据的第一稀疏分布图输入到卷积神经网络的目标卷积算子中,其中,卷积神经网络包括至少一个第一卷积算子,目标卷积算子为至少一个第一卷积算子中的任意一个,第一数据包括多个第一体素,至少一个第一背景值指示第一数据中的至少一种背景,至少一个第一背景值与至少一种背景一一对应,第一稀疏分布图通过背景标识和非背景标识描述多个第一体素的稀疏分布,背景标识指示第一数据中对应背景标识的第一体素为背景,非背景标识指示第一数据中对应非背景标识的第一体素为非背景;根据第一数据上指示背景的第一体素在第一稀疏分布图上对应的背景点的背景标识,从对应关系中查找背景点的背景标识所对应的中间结果,对应关系指示至少一个第一背景值各自的中间结果与至少一个第一背景值各自所对应的背景标识之间的关系,至少一个第一背景值中的一个第一背景值的中间结果是第一背景值与目标卷积算子的卷积核计算得到的,背景点的背景标识所对应的中间结果用于确定第二数据中第二体素的值;控制目标卷积算子输出第二数据,第二数据包括多个第二体素。
该第一方面中,卷积神经网络指的是三维卷积神经网络,如ResNet、ForkNet等,该卷积神经网络包括多个三维卷积算子的神经网络,用于处理三维数据。三维数据指的是有三个维度的数据,三维数据通常为稀疏数据。三维数据可以是视频数据、语音数据或文本数据。稀疏数据是有大量重复元素的数据,这些重复元素称为该数据的背景。
本申请中,第一数据为视频数据、语音数据或文本数据的多维数组(tensor)。第一背景值有至少一个,即为一个或多个。本申请中的“多个”包括两个或两个以上,也可以描述为至少两个。通常来说,“背景值”指的是用于描述重复元素背景的数值,可以为0、1、2,…101、102、103,或者其他任意数值,例如:小数、负数或复数都可以作为背景值。在一个三维数据中,可以包括一种或多种背景,针对每一种背景可以设置一个背景值,如:空气作为背景时,该空气背景的背景值设置为101、物体表面作为背景时,该物理表面背景的背景值设置为102、深度相机未探测到的区域作为背景时,该未探测到的区域的背景的背景值设置为102。稀疏分布指的是三维数据的背景分布,背景分布可以用各体素的背景标识来表示,背景标识可以是对背景进行编号的数值或字符,如:1、2、3或A、B、C等。背景标识与背景值的相关联的,如:背景标识1与背景值101相关联,背景标识2与背景值102相关联,背景标识3与背景值103相关联。
本申请中,三维数据包括体素,体素是体积元素的简称,指示的是三维数据在空间分割上的最小单位,类似于二维数据中的像素。第一体素为第一数据中的体素。第二体素为第二数据中的体素,
本申请中,第一稀疏分布图指的是对应第一数据的稀疏分布图。第一稀疏分布图中的一个单位可以称为一个“点”。其中,指示背景的第一体素对应的点可以称为“背景点”,指示非背景的第一体素对应的点可以称为“非背景点”,非背景点也可以称为“稠密点”。背景点用背景标识来标记,如:1、2、3,非背景点用统一的非背景标识来标记。
本申请中,背景标识与第一背景值是对应的,第一背景值有101、102和103三个,背景标识有1、2和3,可以是采用如下方式对应:101->1、102->2和103->3。第一背景值与背景标识之间的对应关系通常是按照各自的顺序隐式对应的,也可以是通过表格或映射关系的形式显示对应。非背景标识可以统一用M来表示,M是Max的缩写,表示非背景点。
本申请中,在从第一对应关系中查找中间结果之前,会计算每个第一背景值与卷积核的中间结果,如:101与卷积核的中间结果1,102与卷积核的中间结果2,103卷积核的中间结果3。因为第一背景值与背景标识对应,那么就可以建立起背景标识与卷积结果的对应关系,如:1->中间结果1、2->中间结果2和3->中间结果3。通常第一数据都包括很多个第一体素,现有技术中卷积处理第一数据的过程就是将这些第一体素的值逐个与卷积核做计算的过程,而这些第一体素中指示背景的体素通常占绝大多数,而这些指示背景的体素的值又存在大量重复,逐个与卷积核进行计算,速度很低。而该第一方面中,先针对每个第一背景值先于卷积核做计算,得到中间结果后就将该中间结果与背景标识的对应关系存储起来,在卷积处理第一数据时,针对第一数据中指示背景的第一体素就可以通过查找对应关系的方式直接查找到中间结果,然后利用中间结果得到第二数据中第二体素的值。不需要再针对每个第一体素的值与卷积核做大量的计算,从而节省了计算开销,实现了卷积加速。例如:第一数据中有1000个第一体素,其中,有950个指示背景的第一体素,950个指示背景的第一体素中只有3个指示不同背景种类的第一背景值,那么,该第一方面中,只需要将3个第一背景值与卷积核进行计算,然后从对应关系中执行查找操作,而不需要950个值都与卷积核进行计算,查找的速度要比与卷积核计算快的多,因此,可以极大的节省开销,卷积处理的速度上会提高很多。
在第一方面的一种可能的实现方式中,卷积神经网络包括:运算子网、背景推导子网和稀疏分布推导子网,背景推导子网和稀疏分布推导子网的网络结构均与运算子网的网络结构相同;运算子网包括至少一个第一卷积算子;第一稀疏分布图来自向第二卷积算子输入第一稀疏分布图的算子,第二卷积算子在稀疏分布推导子网中所处的位置与目标卷积算子在运算子网中所处的位置对应;至少一个第一背景值来自向第三卷积算子输入至少一个第一背景值的算子,第三卷积算子在背景推导子网中所处的位置与目标卷积算子在运算子网中所处的位置对应。
该种可能的实现方式中,可以通过运算子网、背景推导子网和稀疏分布推导子网这三个子网配合来实现向目标卷积算子中输入至少一个第一背景值和第一稀疏分布图,从而确保运算子网中的目标卷积算子在处理三维数据时可以实现卷积加速。
在第一方面的一种可能的实现方式中,卷积神经网络包括:运算子网和稀疏分布推导子网,稀疏分布推导子网的网络结构与运算子网的网络结构相同;运算子网包括至少一个第一卷积算子;第一稀疏分布图来自向第二卷积算子输入第一稀疏分布图的算子,第二卷积算子在稀疏分布推导子网中所处的位置与目标卷积算子在运算子网中所处的位置对应;至少一个第一背景值是预先配置给目标卷积算子的。
该种可能的实现方式中,可以预先配置好第一背景值,这样通过运算子网和稀疏分布推导子网这两个子网配合来实现向目标卷积算子中输入至少一个第一背景值和第一稀疏分布图,从而确保运算子网中的目标卷积算子在处理三维数据时可以实现卷积加速,而且,不需要再通过背景推导子网计算第一背景值,可以节省推理侧设备的计算资源。
在第一方面的一种可能的实现方式中,上述对应关系中的中间结果为第一背景值在卷积核的不同位置进行计算得到的结果;上述步骤:根据第一数据上指示背景的第一体素在第一稀疏分布图上对应的背景点的背景标识,从对应关系中查找背景点的背景标识所对应的中间结果,包括:针对第一数据的滑窗中的每个指示背景的第一体素,根据每个指示背景的第一体素在第一稀疏分布图中对应的背景标识,以及每个指示背景的第一体素在滑窗中的位置,从对应关系中查找相应位置处的背景标识对应的中间结果,第一数据的滑窗与目标卷积算子的卷积核的大小相同。
该种可能的实现方式中,在三维卷积算子中,卷积核通常是一个多维数组的形态,该卷积核的大小通常是预先设置好的,例如:3*3*1*L,其中,第一个3表示宽度、第二个3表示高度,1表示深度,L表示通道维度的个数。在对三维视频数据进行卷积处理过程中,通道维度通常表示颜色,当然,通道维度也可以有其他定义。在一个通道维度上,该卷积核就像是该一个通道维度上的三维数据的滑窗。若卷积核有多个通道维度,在计算背景值的中间结果时,针对3*3*1这9个位置中的任意一个位置,都要将该背景值与L个通道维度上对应位置的向量做乘积,然后再对这个位置的L个通道维度上的乘积进行累加,就可以得到这个位置的中间结果。据的滑窗指的是可以在三维数据的多个体素上滑动的窗口,该窗口一次可以覆盖多个体素,如:该滑窗的尺寸是3*3的窗口,则滑窗滑动一次可以覆盖9个体素,也可以称为该滑窗覆盖9个体素。这样,在查找中间结果时,根据第一体素的滑窗中的位置以及对应的背景标识,就可以查找到所对应的中间结果,提高了查找的速度,进而提高了处理三维数据的速度。
在第一方面的一种可能的实现方式中,该方法还包括:将第一数据的滑窗中指示背景的第一体素的中间结果进行累加,得到一个第二体素的值,第一数据的滑窗中的第一体素都指示背景。
该种可能的实现方式中,只需要通过中间结果的累加就可以得到第二体素的值,相比于每次都需要通过与卷积核做计算才能得到第二体素的值相比,提高了处理三维数据的速度。
在第一方面的一种可能的实现方式中,该方法还包括:将第一数据的滑窗中指示背景的第一体素的中间结果进行累加,再加上指示非背景的第一体素的中间结果,得到一个第二体素的值,指示非背景的第一体素的中间结果是通过指示非背景的第一体素的值与卷积核进行计算得到的。
该种可能的实现方式中,只需要对个别的指示非背景的第一体素与卷积核计算,然后再与指示背景的第一体素的中间结果进行累加就可以得到第二体素的值,相比于每次都需要通过与卷积核做计算才能得到第二体素的值相比,提高了处理三维数据的速度。
在第一方面的一种可能的实现方式中,目标卷积算子为运算子网中的第一个卷积算子,则第一稀疏分布图为稀疏分布推导子网中的初始化算子对第一数据中的每个第一体素进行逐个扫描得到的,其中,针对指示背景的第一体素,则根据指示背景的第一体素对应的第一背景值,在与第一数据对应的空白位图中的相应点写入对应的背景标识,相应点为空白位图中与指示背景的数据对应的点,针对指示非背景的第一体素,则在空白位图中与指示非背景的第一体素对应的点写入非背景标识。
在第一方面的一种可能的实现方式中,第一数据的至少一个第一背景值以一维数组的形式来表示。
在第一方面的一种可能的实现方式中,目标卷积算子不是运算子网中的第一个卷积算子,则第一数据具有多个通道维度,其中,每个通道维度上的子数据的稀疏分布图都与第一数据的第一稀疏分布图相同。
在第一方面的一种可能的实现方式中,不同通道维度上的子数据的第一背景值不相同。
该种可能的实现方式中,第一背景值不相同,经过卷积处理后的三维数据的效果更好。
在第一方面的一种可能的实现方式中,第一数据的至少一个第一背景值以二维数组的形式来表示。
在第一方面的一种可能的实现方式中,第一数据为视频数据、语音数据或文本数据的多维数组。
本申请第二方面提供一种处理三维数据的方法,包括:将第一数据输入卷积神经网络的目标卷积算子中,卷积神经网络包括至少一个第一卷积算子,目标卷积算子为至少一个第一卷积算子中的任意一个,第一数据包括多个第一体素,目标卷积算子还输入有:对第一数据的至少一个背景值进行卷积处理得到的至少一个第二背景值,以及对第一稀疏分布图进行行标识核对操作后得到的第二稀疏分布图,标识核对操作为核对第一稀疏分布图的滑窗所覆盖的点的标识全部相同或不全部相同,标识包括背景标识和非背景标识,至少一个第一背景值指示第一数据中的至少一种背景,至少一个第一背景值与至少一种背景一一对应,第一稀疏分布图通过背景标识和非背景标识描述多个第一体素的稀疏分布,背景标识指示第一数据中对应背景标识的第一体素为背景,非背景标识指示第一数据中对应非背景标识的第一体素为非背景;根据第二稀疏分布图上的表示背景点的背景标识,查找背景点的背景标识所对应的第二背景值,背景点的背景标识所对应的第二背景值为第二数据中与背景点对应的第二体素的值;控制目标卷积算子输出第二数据,第二数据包括多个第二体素。
该第二方面中与第一方面重复的内容不再重复赘述。从第一背景值得到第二背景值的过程可以是第一背景值与第二卷积算子的卷积核进行卷积处理得到的,在根据第一稀疏分布图得到第二稀疏分布图的过程中,只需要核对滑窗中的标识是否完全相同就可以得到第二稀疏分布图的标识,可以节省计算资源。该第二方面在目标卷积算子在接收到第一数据、第二背景值和第二稀疏分布图后,可以通过第二稀疏分布图中的背景标识直接查找对应的第二背景值,该查找到的第二背景值即为对应该背景标识位置处的第二体素的值。可见,本申请实施例提供的方案,针对第二稀疏分布图中的背景标识所指示的第二体素,可以直接查找到对应的值,不需要再进行卷积处理的过程,从而实现了卷积加速。
在第二方面的一种可能的实现方式中,该方法还包括:针对第二稀疏分布图上的非背景点,根据第一稀疏分布图上目标点的背景标识,从对应关系中查找目标点的背景标识所对应的中间结果,目标点为第二稀疏分布图上的非背景点定位到第一稀疏分布图上所对应的指示背景的点,该对应关系指示至少一个第一背景值各自的中间结果与至少一个第一背景值各自所对应的背景标识之间的关系,至少一个第一背景值中的一个第一背景值的中间结果是第一背景值与目标卷积算子的卷积核计算得到的,该对应关系中的中间结果为第一背景值在卷积核的不同位置进行计算得到的结果,目标点的背景标识所对应的中间结果用于确定第二稀疏分布图上的非背景点所对应的第二体素的值。
该种可能的实现方式中,可以通过两次查找来得到第二数据中第二体素的值,可以更进一步的提高处理三维数据的速度。
在第二方面的一种可能的实现方式中,该卷积神经网络包括:运算子网、背景推导子网和稀疏分布推导子网,背景推导子网和稀疏分布推导子网的网络结构均与运算子网的网络结构相同;运算子网包括至少一个第一卷积算子;第一稀疏分布图来自向第二卷积算子输入第一稀疏分布图的算子,第二稀疏分布图为第二卷积算子对第一稀疏分布图进行行标识核对操作后得到的,第二卷积算子在稀疏分布推导子网中所处的位置与目标卷积算子在运算子网中所处的位置对应;至少一个第一背景值来自向第三卷积算子输入至少一个第一背景值的算子,至少一个第二背景值为第三卷积算子对至少一个第一背景值进行卷积处理得到的,第三卷积算子在背景推导子网中所处的位置与目标卷积算子在运算子网中所处的位置对应。
在第二方面的一种可能的实现方式中,该卷积神经网络包括:运算子网和稀疏分布推导子网,稀疏分布推导子网的网络结构与运算子网的网络结构相同;运算子网包括至少一个第一卷积算子;第一稀疏分布图来自向第二卷积算子输入第一稀疏分布图的算子,第二稀疏分布图为第二卷积算子对第一稀疏分布图进行行标识核对操作后得到的,第二卷积算子在稀疏分布推导子网中所处的位置与目标卷积算子在运算子网中所处的位置对应;至少一个第一背景值和至少一个第二背景值是预先配置给目标卷积算子的。
在第二方面的一种可能的实现方式中,该方法还包括:将查找到的每个目标点对应的中间结果进行累加,得到非背景点所对应的第二体素的值,非背景点定位到第一稀疏分布图上所对应的点都为指示背景的点。
在第二方面的一种可能的实现方式中,该方法还包括:将查找到的每个目标点对应的中间结果进行累加,再加上非背景点定位到第一稀疏分布图上对应的稠密点对应的中间结果,得到非背景点所对应的第二体素的值,稠密点为第一稀疏分布图中指示非背景的点,稠密点对应的中间结果为稠密点在第一数据中对应的指示非背景的第一体素的值与卷积核进行计算得到的。
在第二方面的一种可能的实现方式中,该目标卷积算子为运算子网中的第一个卷积算子,则第一稀疏分布图为稀疏分布推导子网中的初始化算子对第一数据中的每个第一体素进行逐个扫描得到的,其中,针对指示背景的第一体素,则根据指示背景的第一体素对应的第一背景值,在与第一数据对应的空白位图中的相应点写入对应的背景标识,相应点为空白位图中与指示背景的数据对应的点,针对指示非背景的第一体素,则在空白位图中与指示非背景的第一体素对应的点写入非背景标识。
在第二方面的一种可能的实现方式中,该第一数据的至少一个第一背景值以一维数组的形式来表示,至少一个第二背景值以二维数组的形式来表示。
在第二方面的一种可能的实现方式中,该目标卷积算子不是运算子网中的第一个卷积算子,则第一数据具有多个通道维度,其中,每个通道维度上的子数据的稀疏分布图都与第一数据的第一稀疏分布图相同。
在第二方面的一种可能的实现方式中,该不同通道维度上的子数据的第一背景值不相同。
在第二方面的一种可能的实现方式中,该第一数据的至少一个第一背景值以二维数组的形式来表示。
在第二方面的一种可能的实现方式中,该第一数据为视频数据、语音数据或文本数据的多维数组。
上述第二方面及第二方面的任一种可能的实现方式中所描述的方案,针对与第一方面及第一方面任一种可能的实现方式中所描述的相类似的方案,在第二方面中不再重复赘述,可以参阅第一方面及第一方面任一种可能的实现方式中所描述的相类似的方案中的相关介绍进行理解。
本申请第三方面提供一种构建卷积神经网络的方法,包括:获取初始卷积神经网络,初始卷积神经网络包括运算子网,运算子网中包括至少一个第一卷积算子;按照运算子网,复制出稀疏分布推导子网;构建第一输入关系和第二输入关系中的至少一个,第一输入关系为从稀疏分布推导子网中的第二卷积算子到对应位置的第一卷积算子的输入关系,第二输入关系为稀疏分布推导子网中向第二卷积算子输入数据的算子到对应位置的第一卷积算子的输入关系,以得到目标卷积神经网络。
该第三方面中,该运算子网可以是整个初始卷积神经网络,也可以是初始卷积神经网络中的一部分。第一卷积算子是三维卷积算子,这些三维卷积算子以及其他算子按一定的网络结构排布,即可执行对三维数据的处理。稀疏分布推导子网的网络结构均与运算子网的网络结构相同。稀疏分布推导子网用于推导三维数据的稀疏分布图。该第三方面,在只用于处理三维数据的初始卷积神经网络的基础上,针对运算子网增加了相同结构的稀疏分布推导子网,这样,就可以确保在运算子网中处于不同位置处的卷积算子对三维数据进行卷积处理的过程中,可以从稀疏分布推导子网得到相应位置处的稀疏分布图,可以从预配置的背景值中获取相应的背景值,从而可以确保本申请构建出的目标卷积神经网络可以提高卷积处理的速度。
在第三方面的一种可能的实现方式中,在上述得到目标卷积神经网络之前,该方法还包括:按照运算子网,复制出背景推导子网;构建第三输入关系和第四输入关系中的至少一个,第三输入关系为从背景推导子网中的第三卷积算子到对应位置的第一卷积算子的输入关系,第四输入关系为从背景推导子网中向第三卷积算子输入数据的算子到对应位置的第一卷积算子的输入关系,第一输入关系与第三输入关系对应,第二输入关系与第四输入关系对应。
该种可能的实现方式中,背景推导子网与运算子网的网络结构相同。背景推导子网用于推导三维数据的背景值。增加了背景推导子网,在处理三维数据时可以从该背景推导子网得到背景值,从而可以确保本申请构建出的目标卷积神经网络可以提高卷积处理的速度。
在第三方面的一种可能的实现方式中,该方法还包括:从初始卷积神经网络中确定出运算子网,运算子网中每个算子的输入数据在通道维度上稀疏分布相同,每个算子的输出数据在通道维度上稀疏分布相同,通道维度表示不同于三维空间的维度。
该种可能的实现方式中,在确定出运算子网后,可以直接按照确定出的运算子网进行复制,也可以将该运算子网从初始卷积神经网络中剪切出来,然后再进行复制,在复制得到稀疏分布推导子网和背景推导子网,并建立三个子网中算子之间的输入关系后,可以将初始卷积神经网络中除运算子网外的剩余网络拼接到与运算子网分离前的位置。
本申请第四方面提供一种处理三维数据的装置,该装置具有实现上述第一方面或第一方面任意一种可能实现方式的方法的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块,例如:第一处理单元、第二处理单元和第三处理单元,这三个处理单元也可以通过一个或两个处理单元来实现。
本申请第五方面提供一种处理三维数据的装置,该装置具有实现上述第二方面或第二方面任意一种可能实现方式的方法的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块,例如:第一处理单元、第二处理单元和第三处理单元,这三个处理单元也可以通过一个或两个处理单元来实现。
本申请第六方面提供一种构建卷积神经网络的装置,该装置具有实现上述第三方面或第三方面任意一种可能实现方式的方法的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块,例如:获取单元、第一处理单元和第二处理单元,这两个处理单元也可以通过一个处理单元来实现。
本申请第七方面提供一种计算机设备,该计算机设备包括至少一个处理器、存储器、输入/输出(input/output,I/O)接口以及存储在存储器中并可在处理器上运行的计算机执行指令,当计算机执行指令被处理器执行时,处理器执行如上述第一方面或第一方面任意一种可能的实现方式的方法。
本申请第八方面提供一种计算机设备,该计算机设备包括至少一个处理器、存储器、输入/输出(input/output,I/O)接口以及存储在存储器中并可在处理器上运行的计算机执行指令,当计算机执行指令被处理器执行时,处理器执行如上述第二方面或第二方面任意一种可能的实现方式的方法。
本申请第九方面提供一种计算机设备,该计算机设备包括至少一个处理器、存储器、输入/输出(input/output,I/O)接口以及存储在存储器中并可在处理器上运行的计算机执行指令,当计算机执行指令被处理器执行时,处理器执行如上述第三方面或第三方面任意一种可能的实现方式的方法。
本申请第十方面提供一种存储一个或多个计算机执行指令的计算机可读存储介质,当计算机执行指令被处理器执行时,处理器执行如上述第一方面或第一方面任意一种可能的实现方式的方法。
本申请第十一方面提供一种存储一个或多个计算机执行指令的计算机可读存储介质,当计算机执行指令被处理器执行时,处理器执行如上述第二方面或第二方面任意一种可能的实现方式的方法。
本申请第十二方面提供一种存储一个或多个计算机执行指令的计算机可读存储介质,当计算机执行指令被处理器执行时,处理器执行如上述第三方面或第三方面任意一种可能的实现方式的方法。
本申请第十三方面提供一种存储一个或多个计算机执行指令的计算机程序产品,当计算机执行指令被处理器执行时,处理器执行如上述第一方面或第一方面任意一种可能的实现方式的方法。
本申请第十四方面提供一种存储一个或多个计算机执行指令的计算机程序产品,当计算机执行指令被处理器执行时,处理器执行如上述第二方面或第二方面任意一种可能的实现方式的方法。
本申请第十五方面提供一种存储一个或多个计算机执行指令的计算机程序产品,当计算机执行指令被处理器执行时,处理器执行如上述第三方面或第三方面任意一种可能的实现方式的方法。
本申请第十六方面提供了一种芯片系统,该芯片系统包括至少一个处理器,至少一个处理器用于实现上述第一方面或第一方面任意一种可能的实现方式中的功能。在一种可能的设计中,芯片系统还可以包括存储器,存储器,用于保存处理三维数据的装置必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包含芯片和其他分立器件。
本申请第十七方面提供了一种芯片系统,该芯片系统包括至少一个处理器,至少一个处理器用于实现上述第二方面或第二方面任意一种可能的实现方式中的功能。在一种可能的设计中,芯片系统还可以包括存储器,存储器,用于保存处理三维数据的装置必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包含芯片和其他分立器件。
本申请第十八方面提供了一种芯片系统,该芯片系统包括至少一个处理器,至少一个处理器用于实现上述第三方面或第三方面任意一种可能的实现方式中的功能。在一种可能的设计中,芯片系统还可以包括存储器,存储器,用于保存构建卷积神经网络的装置必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包含芯片和其他分立器件。
本申请第十九方面提供一种应用于上述第一方面或第二方面所描述的处理三维数据的方法中的数据结构,该处理三维数据的方法中应用到第一数据的至少一个第一背景值,该至少一个背景值以一维数组或多维数组的形式来表示。
本申请第二十方面提供一种应用于上述第一方面或第二方面所描述的处理三维数据的方法中的数据结构,该处理三维数据的方法中应用到第一数据的第一稀疏分布图,该第一稀疏分布图通过多维数组的形式来表示。
本申请第二十一方面提供一种应用于上述第一方面或第二方面所描述的处理三维数据的方法中的数据结构,该处理三维数据的方法中应用到第一数据,所述第一数据在不同通道维度上稀疏分布是同分布的,该同分布的通道维度的序号用一维数组的形式表示。
本申请实施例提供的方案,在从第一对应关系中查找中间结果之前,会计算每个第一背景值与卷积核的中间结果,如:101与卷积核的中间结果1,102与卷积核的中间结果2,103卷积核的中间结果3。因为第一背景值与背景标识对应,那么就可以建立起背景标识与卷积结果的对应关系,如:1->中间结果1、2->中间结果2和3->中间结果3。通常第一数据都包括很多个第一体素,现有技术中卷积处理第一数据的过程就是将这些第一体素的值逐个与卷积核做计算的过程,而这些第一体素中指示背景的体素通常占绝大多数,而这些指示背景的体素的值又存在大量重复,逐个与卷积核进行计算,速度很低。而本申请中,先针对每个第一背景值先于卷积核做计算,得到中间结果后就将该中间结果与背景标识的对应关系存储起来,在卷积处理第一数据时,针对第一数据中指示背景的第一体素就可以通过查找对应关系的方式直接查找到中间结果,然后利用中间结果得到第二数据中第二体素的值。不需要再针对每个第一体素的值与卷积核做大量的计算,从而节省了计算开销,实现了卷积加速。
附图说明
图1A是本申请实施例提供的人工智能系统的一实施例示意图;
图1B是本申请实施例提供的人工智能系统的一实施例示意图;
图2是本申请实施例提供的服务器的一结构示意图;
图3是本申请实施例提供的构建卷积神经网络的方法的一实施例示意图;
图4A至图4G是本申请实施例提供的构建卷积神经网络过程中不同阶段的场景示例示意图;
图5是本申请实施例提供的处理三维数据的方法的一实施例示意图;
图6是本申请实施例提供的一示例示意图;
图7是本申请实施例提供的另一示例示意图;
图8是本申请实施例提供的处理三维数据的方法的另一实施例示意图;
图9是本申请实施例提供的处理三维数据的方法的另一实施例示意图;
图10是本申请实施例提供的处理三维数据的方法的另一实施例示意图;
图11是本申请实施例提供的另一示例示意图;
图12是本申请实施例提供的另一示例示意图;
图13是本申请实施例提供的处理三维数据的装置的一实施例示意图;
图14是本申请实施例提供的处理三维数据的装置的一实施例示意图;
图15是本申请实施例提供的构建卷积神经网络的装置的一实施例示意图;
图16是本申请实施例提供的计算机设备的一实施例示意图。
具体实施方式
下面结合附图,对本申请的实施例进行描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。本领域普通技术人员可知,随着技术的发展和新场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本申请实施例提供一种处理三维数据的方法,用于提高三维卷积的计算速度。本申请实施例还提供了相应的构建卷积神经网络的方法、相应装置、系统、计算机可读存储介质以及计算机程序产品等。以下分别进行详细说明。
本申请实施例涉及到了构建卷积神经网络,以及利用构建好的卷积神经网络处理三维数据,为了便利理解,下面先介绍与本申请相关的一些词汇。
本申请中的卷积神经网络指的是三维卷积神经网络,如ResNet、ForkNet等,该卷积神经网络包括多个三维卷积算子的神经网络,用于处理三维数据。
三维数据指的是有三个维度的数据,三维数据通常为稀疏数据。三维数据可以是视频数据、语音数据或文本数据。
稀疏数据是有大量重复元素的数据,这些重复元素称为该数据的背景。
稀疏数据又分为广义稀疏数据和狭义稀疏数据,广义稀疏数据指的是三维数据的背景中包括多个背景值。狭义稀疏数据指的是三维数据的背景中只有一个背景值,本申请所提供的方案,即适用于对广义稀疏数据的处理,也适用于对狭义稀疏数据的处理。
背景值指的是用于描述重复元素背景的数值,可以为0、1、2,…101、102、103,或者其他任意数值,例如:小数、负数或复数都可以作为背景值。在一个三维数据中,可以包括一种或多种背景,针对每一种背景可以设置一个背景值,如:空气作为背景时,该空气背景的背景值设置为101、物体表面作为背景时,该物理表面背景的背景值设置为102、深度相机未探测到的区域作为背景时,该未探测到的区域的背景的背景值设置为102。
稀疏分布指的是三维数据的背景分布,背景分布可以用各体素的背景标识来表示,背景标识可以是对背景进行编号的数值或字符,如:1、2、3或A、B、C等。背景标识与背景值的相关联的,如:背景标识1与背景值101相关联,背景标识2与背景值102相关联,背景标识3与背景值103相关联。
三维数据包括体素,体素是体积元素的简称,指示的是三维数据在空间分割上的最小单位,类似于二维数据中的像素。
卷积处理指的是用一个数值与卷积算子的卷积核的各位置相乘,然后再累加,得到该数值的卷积结果,该数值可以是背景值,也可以是非背景值。若只相乘得到乘积,不执行累加,则会得到多个中间结果,中间结果的数量与卷积核的大小相对应。
在三维卷积算子中,卷积核通常是一个多维数组的形态,该卷积核的大小通常是预先设置好的,例如:3*3*1*L,其中,第一个3表示宽度、第二个3表示高度,1表示深度,L表示通道维度的个数。在对三维视频数据进行卷积处理过程中,通道维度通常表示颜色,当然,通道维度也可以有其他定义。在一个通道维度上,该卷积核就像是该一个通道维度上的三维数据的滑窗。
若卷积核有多个通道维度,在计算背景值的中间结果时,针对3*3*1这9个位置中的任意一个位置,都要将该背景值与L个通道维度上对应位置的向量做乘积,然后再对这个位置的L个通道维度上的乘积进行累加,就可以得到这个位置的中间结果。如果再将这9个中间结果进行累加,就会得到卷积结果,卷积结果通常为一个向量。
三维数据的滑窗指的是可以在三维数据的多个体素上滑动的窗口,该窗口一次可以覆盖多个体素,如:该滑窗的尺寸是3*3的窗口,则滑窗滑动一次可以覆盖9个体素,也可以称为该滑窗覆盖9个体素。
本申请实施例所提供的人工智能(artificial intelligence,AI)系统包括构建卷积神经网络的方案与处理三维数据的方案可以是在不同设备中实现的,该构建卷积神经网络的方案可以是离线进行的,得到可以应用的目标卷积神经网络后,可以通过文件的形式将该目标卷积神经网络发送给终端设备或其他服务器,由终端设备或其他服务器使用该目标卷积神经网络执行处理三维数据的过程。下面分别结合图1A和图1B所示的人工系统的架构示意图进行介绍。
如图1A所示,第一服务器获取初始卷积神经网络,然后执行构建网络的过程,进而得到目标卷积神经网络。该初始卷积神经网络可以是结合所使用的应用场景由开发人员预先配置好的。如为自动驾驶场景所配置的初始卷积神经网络与为其他场景配置的初始卷积神经网络会有不同,但构建原理都是相同的。从初始卷积神经网络到目标卷积神经网络的过程后文再做介绍。
第一服务器构建好目标卷积神经网络后,可以将该目标卷积神经网络发送给相应的终端设备,由终端设备使用该目标卷积神经网络来处理终端设备所要处理的三维数据,该三维数据可以是终端设备直接采集到的,也可以是终端设备采集到二维数据,然后对该二维数据进行深度上的扩展得到的。
也可以是如图1B所示,第一服务器构建好目标卷积神经网络后,可以将该目标卷积神经网络发送给第二服务器,终端设备将要处理的三维数据发送给第二服务器,由第二服务器来处理终端设备发送来的三维数据,处理完成后,第二服务器再将处理结果返回给终端设备。
本申请实施例提供的处理三维数据的方案可应用于人工智能(artificialintelligence,AI)应该的多个领域,如:智能制造、智能交通、智能家居、智能医疗、智能安防、自动驾驶,平安城市,智能终端等。
第一服务器和第二服务器都可以是物理机,也可以是虚拟机(virtual machine,VM)或容器(container)。VM或容器都可以是在物理机的硬件资源上采用虚拟化的方式划分出来的虚拟化的设备。
终端设备(也可以称为用户设备(user equipment,UE))是一种具有无线收发功能的设备,可以部署在陆地上,包括室内或室外、手持或车载;也可以部署在水面上(如轮船等);还可以部署在空中(例如飞机、气球和卫星上等)。所述终端可以是手机(mobilephone)、平板电脑(pad)、带无线收发功能的电脑、虚拟现实(virtual reality,VR)终端、增强现实(augmented reality,AR)终端、工业控制(industrial control)中的无线终端、无人驾驶(self driving)中的无线终端、远程医疗(remote medical)中的无线终端、智能电网(smart grid)中的无线终端、运输安全(transportation safety)中的无线终端、智慧城市(smart city)中的无线终端、智慧家庭(smart home)中的无线终端等。
本申请中,如图2所示,上述第一服务器中可以包括硬件层和软件层,硬件层可以包括存储器、以及一种或多个处理器,这些处理器可以包括中央处理器(centralprocessing unit,CPU)、图形处理器(graphic processing unit GPU)或专用芯片,该专用芯片指的是专门用于构建网络的芯片,该专用芯片可以是专用集成电路(applicationspecific integrated circuit,ASIC)或现场可编程门阵列(field-programmable gatearray,FPGA)等。
软件层可以包括源代码和AI编译器,其中,源代码中包括初始卷积神经网络,以及通过该初始卷积神经网络构建出的目标卷积神经网络所应用的场景中三维数据的描述信息,如:在自动驾驶场景中,在输入到目标卷积神经网络的三维的图像数据或视频数据的大小、类型等的定义。源代码中还包括对输入到目标卷积神经网络的三维数据中所包括的背景值,如:101、102和103三个背景值。
AI编译器中包括背景参数解析逻辑、稀疏编译优化逻辑,AI编译器会根据源代码中的内容执行该参数解析逻辑和稀疏编译优化逻辑,进而得到目标卷积神经网络。
图2介绍了用于构建卷积神经网络的第一服务器的结构,下面结合附图介绍本申请实施例提供的构建卷积神经网络的方法。
图3为本申请实施例中构建卷积神经网络的方法的一实施例示意图。
如图3所示,本申请实施例提供的构建卷积神经网络的方法的一实施例包括:
101、获取初始卷积神经网络。
初始卷积神经网络包括运算子网,运算子网中包括至少一个第一卷积算子。
该运算子网可以是整个初始卷积神经网络,也可以是初始卷积神经网络中的一部分。
第一卷积算子是三维卷积算子,这些三维卷积算子以及其他算子按一定的网络结构排布,即可执行对三维数据的处理。
执行步骤101之后,可以执行步骤102,也可以执行步骤103。
102、按照运算子网,复制出稀疏分布推导子网。
稀疏分布推导子网的网络结构与运算子网的网络结构相同,稀疏分布推导子网用于推导三维数据的稀疏分布图。
步骤102之后执行步骤104。
103、按照运算子网,复制出背景推导子网和稀疏分布推导子网。
背景推导子网和稀疏分布推导子网的网络结构均与运算子网的网络结构相同。背景推导子网用于推导三维数据的背景值,稀疏分布推导子网用于推导三维数据的稀疏分布图。
步骤103之后执行步骤105。
104、构建第一输入关系和第二输入关系中的至少一个,以得到目标卷积神经网络。
第一输入关系为从稀疏分布推导子网中的第二卷积算子到对应位置的第一卷积算子的输入关系,第二输入关系为稀疏分布推导子网中向第二卷积算子输入数据的算子到对应位置的第一卷积算子的输入关系,以得到目标卷积神经网络。
105、构建第一输入关系和第二输入关系中的至少一个,构建第三输入关系和第四输入关系中的至少一个,以得到目标卷积神经网络。
第一输入关系为从稀疏分布推导子网中的第二卷积算子到对应位置的第一卷积算子的输入关系,第二输入关系为稀疏分布推导子网中向第二卷积算子输入数据的算子到对应位置的第一卷积算子的输入关系。
构建第三输入关系和第四输入关系中的至少一个,第三输入关系为从背景推导子网中的第三卷积算子到对应位置的第一卷积算子的输入关系,第四输入关系为从背景推导子网中向第三卷积算子输入数据的算子到对应位置的第一卷积算子的输入关系,第一输入关系与第三输入关系对应,第二输入关系与第四输入关系对应。
本申请中,将运算子网中的三维卷积算子称为第一卷积算子,将稀疏分布推导子网中的三维卷积算子称为第二卷积算子,将背景推导子网中的三维卷积算子称为第三卷积算子。
上述步骤101、102和104组合得到的目标卷积神经网络包括运算子网和稀疏分布推导子网,而不包括背景推导子网,这种情况下,第一服务器也需要根据运算子网复制一份背景推导子网,然后将三维数据的背景值输入该背景推导子网进行运行,就可以得到运算子网中的第一卷积算子所需要的第一背景值和第二背景值,然后通过数据文件的形式与运算子网连接。
上述步骤101、103和105组合得到的目标卷积神经网络包括运算子网、稀疏分布推导子网和背景推导子网。
本申请实施例提供的方案,在只用于处理三维数据的初始卷积神经网络的基础上,针对运算子网增加了相同结构的背景推导子网和稀疏分布推导子网,这样,就可以确保在运算子网中处于不同位置处的卷积算子对三维数据进行卷积处理的过程中,可以从背景推导子网得到相应位置处的背景值,从稀疏分布推导子网得到相应位置处的稀疏分布图,从而可以确保本申请构建出的目标卷积神经网络可以提高卷积处理的速度。
可选地,上述图3所介绍的实施例的步骤102之后,还包括:从初始卷积神经网络中确定出运算子网,运算子网中每个算子的输入数据在通道维度上稀疏分布相同,每个算子的输出数据在通道维度上稀疏分布相同,通道维度表示不同于三维空间的维度。
在确定出运算子网后,可以直接按照确定出的运算子网进行复制,也可以将该运算子网从初始卷积神经网络中剪切出来,然后再进行复制,在复制得到稀疏分布推导子网和背景推导子网,并建立三个子网中算子之间的上述步骤104或105的输入关系后,可以将初始卷积神经网络中除运算子网外的剩余网络拼接到与运算子网分离前的位置。
本申请实施例中,在获取到初始卷积神经网络后,需要对初始卷积神经网络进行检测,从中检测出运算子网。关于检测运算子网的过程可以是从初始卷积神经网络的第一个算子开始,逐个检测卷积神经网络中的每个算子,若连续被检测到的算子是白名单上的算子,卷积算子也位于白名单上,则可以继续向下检测。若检测到一个算子不是白名单上的算子,则终止检测,并将从第一个算子开始到终止检测的算子之前的最后一个卷积算子为止的一段子网确定出来,也可以是剪切出来,形成该运算子网。其中,白名单是预先配置的。白名单中的每个算子在输入数据在每个通道维度上稀疏分布相同的情况下,都可以确保该算子的输出数据在每个通道维度上稀疏分布相同。通道维度可以是颜色维度,也可以是表示其他特征的维度。稀疏分布相同,也可以称为“同分布”。
该剪切运算子网的过程可以参阅图4A和图4B的场景示例进行理解。如图4A所示,初始卷积神经网络包括占位符算子(placeholder)、三维卷积算子(Conv3D)1、加常数算子(BiasAdd)1、三维卷积算子2、加常数算子2、累加算子(Add)、三维卷积算子3、加常数算子3、缩减求和算子(ReduceSum)和三维卷积算子4。从占位符算子开始逐个算子检测,若检测到该算子为三维卷积算子或白名单上的算子,则继续检测下一个算子,该图4A所示的场景中,当检测到缩减求和算子时,确定该缩减求和算子没有在白名单上,则终止检测。然后,将从占位符算子开始到三维卷积算子3为止的相关卷积算子划分到如图4B所示的运算子网中,然后可以将该运算子网中初始卷积神经网络中剪切出来。该场景中,缩减求和算子无法保持输出数据的不同通道维度的稀疏分布相同。
在从初始卷积神经网络中剪切出运算子网后,按照该运算子网,复制出背景推导子网和稀疏分布推导子网。复制出背景推导子网和稀疏分布推导子网后,可以对背景推导子网和稀疏分布推导子网的算子进行名称调整。如图4C所示,将背景推导子网和稀疏分布推导子网中的第一个算子都调整为初始化算子,将运算子网中的三维卷积算子描述为“LN_Conv3D”,将背景推导子网中的三维卷积算子描述为“Conc3D背景”,将稀疏分布推导子网中的三维卷积算子描述为“Conv3D稀疏分布”。另外,因为稀疏分布推导子网中加常数算子(BiasAdd)不影响稀疏分布,则可以将该加常数算子调整为一个空算子,可以在三维数据处理过程中节省一些计算量。
然后,再分别建立背景推导子网和稀疏分布推导子网中与至少一个第一卷积算子对应处的算子与所对应的第一卷积算子的输入关系。也就是上述步骤104和105中的第一输入关系、第二输入关系、第三输入关系和第四输入关系。
如图4D所示,可以是建立背景推导子网中向“Conc3D背景”输入数据的算子与该“Conc3D背景”对应的“LN_Conv3D”之间的输入关系,也就是第四输入关系。建立稀疏分布推导子网中向“Conv3D稀疏分布”输入数据的算子与该“Conv3D稀疏分布”对应的“LN_Conv3D”之间的连接,也就是第二输入关系。如图4D所示,将背景推导子网中的初始化算子与“LN_Conv3D1”建立输入关系,将稀疏分布推导子网中的初始化算子与“LN_Conv3D1”建立输入关系。同理,将背景推导子网中的BaisAdd1与“LN_Conv3D2”建立输入关系,将稀疏分布推导子网中的第一个空算子与“LN_Conv3D2”建立输入关系。将背景推导子网中的Add与“LN_Conv3D3”建立输入关系,将稀疏分布推导子网中的Add与“LN_Conv3D3”建立输入关系,以得到如图4D所示的目标卷积神经网络。
也可以是,如图4E所示,建立“Conc3D背景”以及“Conv3D稀疏分布”与对应的“LN_Conv3D”之间的连接,也就是第三输入关系和第一输入关系。如图4E中,将背景推导子网中的“Conc3D背景1”与“LN_Conv3D1”建立输入关系,将稀疏分布推导子网中的“Conv3D稀疏分布1”与“LN_Conv3D1”建立输入关系。同理,将背景推导子网中的“Conc3D背景2”与“LN_Conv3D2”建立输入关系,将稀疏分布推导子网中的“Conv3D稀疏分布2”与“LN_Conv3D2”建立输入关系。将背景推导子网中的“Conc3D背景3”与“LN_Conv3D3”建立输入关系,将稀疏分布推导子网中的“Conv3D稀疏分布3”与“LN_Conv3D3”建立输入关系,以得到如图4E所示的目标卷积神经网络。
本申请中,也可以在图4E的基础上,再建立第二对应关系和第四对应关系,即可以得到如图4F所示的目标卷积神经网络。
另外,上述图4A至图4F所描述的是目标卷积神经网络包括三个子网的场景。如上述执行步骤101、102和104得到的目标卷积神经网络不包括背景推导子网。这样,对应上述图4D、图4E和4F去掉背景推导子网,但保留第三输入关系和第四输入关系中的至少一个,就可以得到对应的三个只包括运算子网和稀疏背景推导子网的目标卷积神经网络的场景示意图。下面以图4F所对应的场景为例,就可以得到如图4G所示的目标卷积神经网络。第三输入关系和第四输入关系中要输入的背景值可以通过文件的形式输入给对应的“LN_Conv3D”。第三输入关系和第四输入关系中要输入的背景值可以存储到一块内存中,或存储在不同的寄存器中,在不同的“LN_Conv3D”对应的背景值时可以到内存中或不同的寄存器中去读取。
上述构建好目标卷积神经网络后,可以转化为适用于终端设备或第二服务器的二进制代码文件,然后发送给相应的终端设备或第二服务器,或者,等待相应的终端设备或第二服务器发送加载请求后再发送。也可以不做二进制代码转换,直接发送该目标卷积神经网络。
以上实施例介绍了本申请实施例提供的构建卷积神经网络的方式,下面结合附图介绍本申请实施例提供的处理三维数据的方法。
本申请实施例提供的处理三维数据的方法可以包括通过三种方案来实现,即:1、向卷积神经网络的目标算子中输入第一数据、至少一个第一背景值,以及第一稀疏分布图;2、向卷积神经网络的目标算子中输入第一数据、至少一个第二背景值,以及第二稀疏分布图;3、向卷积神经网络的目标算子中输入第一数据、至少一个第一背景值、至少一个第二背景值、第一稀疏分布图,以及第二稀疏分布图。无论采用哪种方案,目标卷积算子都可以输出第二数据,只是速度上略有差异,下面分别进行介绍。
另外,需要说明的是,在处理三维数据的方法的实施例中使用的是“卷积神经网络”,该“卷积神经网络”即为上述实施例中所构建的目标卷积神经网络。
1、向卷积神经网络的目标算子中输入第一数据、至少一个第一背景值,以及第一稀疏分布图。
如图5所示,本申请实施例提供的处理三维数据的方法的一实施例包括:
201、将第一数据、第一数据的至少一个第一背景值,以及第一数据的第一稀疏分布图输入到卷积神经网络的目标卷积算子中。
其中,卷积神经网络包括至少一个第一卷积算子,目标卷积算子为至少一个第一卷积算子中的任意一个,第一数据包括多个第一体素,至少一个第一背景值指示第一数据中的至少一种背景,至少一个第一背景值与至少一种背景一一对应,第一稀疏分布图通过背景标识和非背景标识描述多个第一体素的稀疏分布,背景标识指示第一数据中对应背景标识的第一体素为背景,非背景标识指示第一数据中对应非背景标识的第一体素为非背景。
本申请中,第一数据为视频数据、语音数据或文本数据的多维数组(tensor)。
第一背景值有至少一个,即为一个或多个。本申请中的“多个”包括两个或两个以上,也可以描述为至少两个。第一背景值表示第一数据中背景的数值,如:0、1、2,101、102或103等,不限于正数、负数、小数或复数,该第一背景值可以随机取值,对此本申请中不做限定。
第一数据中体素称为第一体素。每个第一体素都会有一个值,该第一体素的值可以是向量。第一体素的值指示的是背景,则表示该第一体素为指示背景的体素,第一体素的值指示的是非背景,则表示该第一体素为指示非背景的体素。第一数据的背景值会有很多是重复的,如:第一数据包括1000个第一体素,这1000中有950个为指示背景的体素,这950个第一体素可能只有三个背景值,如:101、102和103。当然,101、102和103这三个背景值只是举例,第一数据中也可以涉及到更多的背景值或更少的背景值。本申请中第一数据的第一背景值即指该示例中的101、102、103,表示有三类背景,每类背景对应一个背景值。
第一稀疏分布图结构与第一数据的结构是对应的。如图6所示的示例中,若第一数据的结构是个5*5*1的结构,那么第一稀疏分布图为5*5的稀疏分布图。第一数据中的一个单位为一个第一体素,第一稀疏分布图中的一个单位可以称为一个“点”。其中,指示背景的第一体素对应的点可以称为“背景点”,指示非背景的第一体素对应的点可以称为“非背景点”,非背景点也可以称为“稠密点”。背景点用背景标识来标记,如:1、2、3,非背景点用统一的非背景标识来标记。
背景标识与第一背景值是对应的,例如:图6所示的示例中,第一背景值有101、102和103三个,背景标识有1、2和3,可以是采用如下方式对应:101->1、102->2和103->3。第一背景值与背景标识之间的对应关系通常是按照各自的顺序隐式对应的,也可以是通过表格或映射关系的形式显示对应。非背景标识可以统一用M来表示,M是Max的缩写,表示非背景点。
202、根据第一数据上指示背景的第一体素在第一稀疏分布图上对应的背景点的背景标识,从对应关系中查找背景点的背景标识所对应的中间结果。
该对应关系指示至少一个第一背景值各自的中间结果与至少一个第一背景值各自所对应的背景标识之间的关系,至少一个第一背景值中的一个第一背景值的中间结果是第一背景值与目标卷积算子的卷积核计算得到的,背景点的背景标识所对应的中间结果用于确定第二数据中第二体素的值。
在使用该对应关系查找中间结果前,通常会先建立并存储该对应关系。关于卷积核的含义可以参阅前面的介绍进行理解。
203、控制目标卷积算子输出第二数据,第二数据包括多个第二体素。
本申请实施例提供的方案,在从第一对应关系中查找中间结果之前,会计算每个第一背景值与卷积核的中间结果,如:101与卷积核的中间结果1,102与卷积核的中间结果2,103卷积核的中间结果3。因为第一背景值与背景标识对应,那么就可以建立起背景标识与卷积结果的对应关系,如:1->中间结果1、2->中间结果2和3->中间结果3。通常第一数据都包括很多个第一体素,现有技术中卷积处理第一数据的过程就是将这些第一体素的值逐个与卷积核做计算的过程,而这些第一体素中指示背景的体素通常占绝大多数,而这些指示背景的体素的值又存在大量重复,逐个与卷积核进行计算,速度很低。而本申请中,先针对每个第一背景值先于卷积核做计算,得到中间结果后就将该中间结果与背景标识的对应关系存储起来,在卷积处理第一数据时,针对第一数据中指示背景的第一体素就可以通过查找对应关系的方式直接查找到中间结果,然后利用中间结果得到第二数据中第二体素的值。不需要再针对每个第一体素的值与卷积核做大量的计算,从而节省了计算开销,实现了卷积加速。
可选地,上述对应关系中的中间结果为第一背景值在卷积核的不同位置进行计算得到的结果。这样,上述步骤102就包括:针对第一数据的滑窗中的每个指示背景的第一体素,根据每个指示背景的第一体素在第一稀疏分布图中对应的背景标识,以及每个指示背景的第一体素在滑窗中的位置,从对应关系中查找相应位置处的背景标识对应的中间结果,第一数据的滑窗与目标卷积算子的卷积核的大小相同。
本申请实施例中,向目标卷积算子输入至少一个第一背景值后,可以使用各第一背景值与卷积核做计算,以3*3*1*4的卷积核为例,表示该卷积核有4个通道维度,在一个通道维度上有9个位置,其他通道维度上可以共用该位置。第一个通道维度上这9个位置的向量用如下表1所示的方式来表示:
表1:卷积核第一个通道维度上9个位置的向量
A1 B1 C1
D1 E1 F1
G1 H1 I1
如果第一背景值是101,那么在第一个通道维度上通过与9个位置的向量的乘积可以得到如表2所示的形式:
表2:卷积核第一个通道维度上9个位置的向量
101A1 101B1 101C1
101D1 101E1 101F1
101G1 101H1 101I1
若第二个通道维度上的9个位置的向量用A2、B2、C2、D2、E2、F2、G2、H2和I2来表示,则第一背景值是101与9个位置的向量的乘积可以得到101A2、101B2、101C2、101D2、101E2、101F2、101G2、101H2和101I2。
同理,在第三个通道维度上的9个位置的向量用A3、B3、C3、D3、E3、F3、G3、H3和I3来表示,则第一背景值是101与9个位置的向量的乘积可以得到101A3、101B3、101C3、101D3、101E3、101F3、101G3、101H3和101I3。
在第三个通道维度上的9个位置的向量用A4、B4、C4、D4、E4、F4、G4、H4和I4来表示,则第一背景值是101与9个位置的向量的乘积可以得到101A4、101B4、101C4、101D4、101E4、101F4、101G4、101H4和101I4。
其中,A1、A2、A3和A4属于同一位置在不同维度的向量,那么在A1所在的位置的中间结果就是101A1+101A2+101A3+104A4,同理,其他位置的第一背景值与向量的乘积做累加就可以得到第一背景值是101的如下表3所示的不同位置的中间结果。
表3:第一背景值101与卷积核不同位置计算得到的中间结果
101A1+101A2+101A3+101A4 101B1+101B2+101B3+101B4 101C1+101C2+101C3+101C4
101D1+101D2+101D3+101D4 101E1+101E2+101E3+101E4 101F1+101F2+101F3+101F4
101G1+101G2+101G3+101G4 101H1+101H2+101H3+101H4 101I1+101I2+101I3+101I4
同理,第一背景值是102、103或者其他数值,都可以按照上述方式得到该数值在卷积核的不同位置对应的中间结果。
第一背景值101对应的背景标识用“1”表示,那么对应关系就是“1”与上述表3的对应关系。
在第一数据上通过滑窗的方式来得到第二体素的值的过程中,因为第一数据的滑窗与卷积核的大小相同,滑窗通常是二维或三维的,因为卷积核是3*3*1*4,所以该滑窗可以表示为3*3,也可以表示为3*3*1,第一数据的滑窗在一次滑动中会覆盖9个第一体素,如果滑窗中的9个第一体素都为背景值,如表4所示:
表4:第一数据的滑窗中的9个第一体素的第一背景值
101 102 103
101 102 102
101 101 101
其中,101出现在一行一列、二行一列、三行一列、三行二列和三行三列的5个位置,那么就需要从1与表3的对应关系中获取这几个位置的中间结果,分别为:101A1+101A2+101A3+101A4、101D1+101D2+101D3+101D4、101G1+101G2+101G3+101G4、101H1+101H2+101H3+101H4和101I1+101I2+101I3+101I4,同理,可以从2与第一背景值102的中间结果的表中,获取到3个中间结果,分别为102B1+102B2+102B3+102B4、102E1+102E2+102E3+102E4和102F1+102F2+102F3+102F4,从3与第一背景值103的中间结果的表中,获取到1个中间结果103C1+103C2+103C3+103C4。然后,将这9个中间结果进行累加,就可以得到上述表4中的9个第一体素对应的一个第二体素的值。
上述所描述的第一数据的滑窗中的9个第一体素都为指示背景的体素,若第一数据的滑窗中包括指示非背景的第一体素,那么该计算过程可以参阅下列过程进行理解。如表5所示,包含8个指示背景的第一体素,1个指示非背景的第一体素。
表5:第一数据的滑窗中的9个第一体素的第一背景值
101 102 103
101 102 500
101 101 101
这种情况,针对8个指示背景的第一体素可以参阅上述9个第一体素的方案,分别获取到这8个第一体素的背景标识所对应的中间结果,然后针对二行三列上的指示非背景的第一体素,可以使用该500与卷积核9个位置四个通道维度上的向量相乘,然后再将相同位置不同通道维度的结果相加,得到类似于表3的中间结果,从中查找出二行三列上的中间结果,如:500F1+500F2+500F3+500F4,然后将另外8个的中间结果与该500F1+500F2+500F3+500F4进行累加,就得到了表5中9个第一体素对应的一个第二体素的值。
上述所描述的根据第一背景值确定对应的中间结果,以及背景标识与中间结果的对应关系的过程也可以称为目标卷积算子内建表的过程。针对第一数据的滑窗内的9个体素,根据背景标识查表的过程上述实施例中只是列举了一个通道维度的场景,第一数据通常是多通道维度的,每个通道维度上的第一背景可以不相同,但不管有多少个通道维度,每个通道维度上子数据的稀疏分布都是相同的,所以,这些通道维度共用一个第一稀疏分布图。但针对不同通道维度,第一稀疏分布图上的背景标识所映射的背景值是不同的。
如图7所示,上述所介绍的4个通道维度的第一数据,在第一个通道维度上有3个第一背景值,分别为101、102和103,在第二个通道维度上有3个第一背景值,分别为201、202和203,在第三个通道维度上有3个第一背景值,分别为301、302和303,在第四个通道维度上有3个第一背景值,分别为401、402和403。这4个通道维度共用一个第一稀疏分布图,这样,在不同的通道维度,同一个背景标识所对应的是不同第一背景值的中间结果。如:背景标识1对应101、201、301和401的中间结果,背景标识2对应102、202、302和402的中间结果,背景标识3对应103、203、303和403的中间结果。这样,在计算不同通道维度的子数据的第二体素的值时,都可以采用上述针对第一个通道维度上的计算过程,通过查表的方式找到对应的中间结果,进而计算得到第二体素的值,不需要每次都使用滑窗中9个体素的值与卷积核做乘积,然后再累加,从而实现了在每个通道维度上的卷积加速。
由前述构建卷积神经网络的实施例,以及图4A至图4G的示例可知,该输入至少一个第一背景值和第一稀疏分布图的方案中,卷积神经网络包括:运算子网、背景推导子网和稀疏分布推导子网,背景推导子网和稀疏分布推导子网的网络结构均与运算子网的网络结构相同;运算子网包括至少一个第一卷积算子;第一稀疏分布图来自向第二卷积算子输入第一稀疏分布图的算子,第二卷积算子在稀疏分布推导子网中所处的位置与目标卷积算子在运算子网中所处的位置对应;至少一个第一背景值来自向第三卷积算子输入至少一个第一背景值的算子,第三卷积算子在背景推导子网中所处的位置与目标卷积算子在运算子网中所处的位置对应。该包括三个子网的结构可以参阅图4D进行理解。
另外,还可以是:卷积神经网络包括运算子网和稀疏分布推导子网,稀疏分布推导子网的网络结构与运算子网的网络结构相同;运算子网包括至少一个第一卷积算子;第一稀疏分布图来自向第二卷积算子输入第一稀疏分布图的算子,第二卷积算子在稀疏分布推导子网中所处的位置与目标卷积算子在运算子网中所处的位置对应;至少一个第一背景值是预先配置给目标卷积算子的。该结构虽然图中未示出,但可以参阅图4D,在图4D的基础上删除其中背景推导子网的部分进行理解。
关于运算子网、背景推导子网和稀疏分布推导子网的关系可以参阅上述构建卷积神经网络的过程进行理解,下面结合图8介绍使用该卷积神经网络处理三维数据的过程。
如图8所示,将初始数据输入到运算子网的第一个算子(占位符算子)中、将初始数据的至少一个背景值输入背景推导子网的第一个算子(初始化算子)中,将初始数据以及初始数据的至少一个背景值输入稀疏分布推导子网的第一个算子(初始化算子)中。该初始数据为三维数据,针对运算子网中的第一个卷积算子作为目标卷积算子来说,该初始数据即为该第一个卷积算子的第一数据,初始数据的至少一个背景值即为第一数据的至少一个第一背景值。这种情况下,该第一数据为一个通道维度的三维数据。至少一个第一背景值是以一维数组形式来表示,如:{101、102、103}。若目标卷积算子不是运算子网中的第一个卷积算子,则第一数据具有多个通道维度,其中,每个通道维度上的子数据的稀疏分布图都与第一数据的第一稀疏分布图相同。这个过程可以参阅图7的示例进行理解。这种情况下,第一数据的至少一个第一背景值以二维数组的形式来表示。如图7中示例的四个通道维度的第一背景值可以表示为:
Figure BDA0002697444520000201
背景推导子网中的初始化算子接收到一维数组形式的初始数据的至少一个背景值后,不对该初始数据的至少一个背景值做处理,直接将初始数据的至少一个背景值作为运算子网中第一个卷积算子的至少一个第一背景值输入给背景推导子网中的Conv3D背景1和运算子网中的LN_Conv3D1。
稀疏分布推导子网中的初始化算子接收到等同于第一数据的初始数据后和等同于初始数据的至少一个背景值的至少一个第一背景值后,对第一数据中的每个第一体素进行逐个扫描,其中,针对指示背景的第一体素,则根据指示背景的第一体素对应的第一背景值,在与第一数据对应的空白位图中的相应点写入对应的背景标识,相应点为空白位图中与指示背景的数据对应的点,针对指示非背景的第一体素,则在空白位图中与指示非背景的第一体素对应的点写入非背景标识。
该过程可以参阅前述图6进行理解,如前述图6所示,以第一数据以一个5*5的三维数据为例,该第一数据包括25个第一体素,每个第一体素都有其对应的背景值,在该示例中,该一维数组形式的第一背景值可以表示为{101、102、103},通过对每个第一体素的扫描,可以将背景值101在稀疏分布图用1来标识,将背景值102在稀疏分布图用2来标识,将背景值103在稀疏分布图用3来标识,这样,按照25个第一体素的位置,就可以得到图6中所示的第一稀疏分布图。目标稀疏分布图中每个“格子”称为一个点,对应一个第一体素,格子中的背景标识对应该相应位置处的第一体素的第一背景值。
稀疏分布推导子网中的初始化算子可以将得到的第一稀疏分布图输出给运算子网中的LN_Conv3D1,还可以将该目标稀疏分布图作为第一稀疏分布图传递给稀疏分布推导子网中的Conv3D稀疏分布1。
如图8中所示,针对运算子网中不同的卷积算子(LN_Conv3D1、LN_Conv3D2和LN_Conv3D3),输入数据都称为第一数据、输入的背景值都称为第一背景值、输入的稀疏分布图都称为第一稀疏分布图,但针对不同的卷积算子,这些输入是不同的。
LN_Conv3D1、LN_Conv3D2或LN_Conv3D3接收到第一数据、至少一个第一背景值和第一稀疏分布图后,就会按照上述实施例所描述的建表、查表的过程来完成对第一数据的处理,从而得到第二数据的第二体素的值。
以上描述了向目标卷积算子中输入第一数据、第一数据的至少一个第一背景值和第一稀疏分布图的方案。以上方案在处理三维数据的过程中可以通过查表的方式来实现卷积加速。
2、向卷积神经网络的目标算子中输入第一数据、至少一个第二背景值,以及第二稀疏分布图。
如图9所示,本申请实施例提供的处理三维数据的方法的另一实施例包括:
301、将第一数据输入卷积神经网络的目标卷积算子中。
卷积神经网络包括至少一个第一卷积算子,目标卷积算子为至少一个第一卷积算子中的任意一个,第一数据包括多个第一体素,目标卷积算子还输入有:对第一数据的至少一个背景值进行卷积处理得到的至少一个第二背景值,以及对第一稀疏分布图进行行标识核对操作后得到的第二稀疏分布图,标识核对操作为核对第一稀疏分布图的滑窗所覆盖的点的标识全部相同或不全部相同,标识包括背景标识和非背景标识,至少一个第一背景值指示第一数据中的至少一种背景,至少一个第一背景值与至少一种背景一一对应,第一稀疏分布图通过背景标识和非背景标识描述多个第一体素的稀疏分布,背景标识指示第一数据中对应背景标识的第一体素为背景,非背景标识指示第一数据中对应非背景标识的第一体素为非背景。
该实施例可以结合图10进行理解。关于从第一背景值得到第二背景值的过程可以是第一背景值与第二卷积算子的卷积核进行卷积处理得到的,上述过程可以参阅第一背景值与卷积核得到中间结果的过程理解前半部分,然后只需要将得到的9个中间结果进行累加,就可以得到第二背景值。
关于从第一稀疏分布图到第二稀疏分布图的过程可以参阅图11进行理解。可以通过一个3*3的滑窗对输入到Conv3D稀疏分布1的第一稀疏分布图进行卷积处理,也就是该3*3的滑窗在第一稀疏分布图上从左向右,从上向下按照一定步长滑动,如逐格滑动,针对左侧、右侧、上侧和下侧的格子,可以采用虚拟外延(pending)的方式增加虚拟行和虚拟列,虚拟行和虚拟列中背景标识的数值可以用标识1来标记,这样,然后每次核对该滑窗内的9个格子中的背景标识进行核对,若全相同,如:全都为1,则这次滑窗所在位置的点的背景标识就取1,若滑窗内的9个格子中的背景标识不全相同,则这次滑窗所在位置的点的标识就设置为M,表示该位置为非背景点。依次滑动,就可以得到第二稀疏分布图。
302、根据第二稀疏分布图上的表示背景点的背景标识,查找背景点的背景标识所对应的第二背景值。
背景点的背景标识所对应的第二背景值为第二数据中与背景点对应的第二体素的值。
第二稀疏分布图和第二背景值归属于目标卷积算子要输出的第二数据。所以,在已知第二稀疏分布图和第二背景值的情况下,可以根据第二稀疏分布图中的背景标识直接查找到对应的第二背景值。
关于查找方案:若目标卷积算子的第二数据所输入的算子是一元算子,一元算子也就是该算子只有来自目标卷积算子这一个输入,则也可以跳过查找该第二背景值,默认该第二背景值已经存储在相应的位置。
若目标卷积算子的第二数据所输入的算子是二元算子,二元算子也就是该算子除了来自目标卷积算子这一个输入外,还有来自其他算子的输入,这种情况下,就需要查找该第二背景值。
303、控制目标卷积算子输出第二数据,第二数据包括多个第二体素。
本申请实施例提供的方案,在目标卷积算子在接收到第一数据、第二背景值和第二稀疏分布图后,可以通过第二稀疏分布图中的背景标识直接查找对应的第二背景值,该查找到的第二背景值即为对应该背景标识位置处的第二体素的值。可见,本申请实施例提供的方案,针对第二稀疏分布图中的背景标识所指示的第二体素,可以直接查找到对应的值,不需要再进行卷积处理的过程,从而实现了卷积加速。
在上述图9对应的实施例的基础上,还可以向目标卷积算子中增加输入至少一个第一背景值和第一稀疏分布图。也就是如下方案3。
3、向卷积神经网络的目标算子中输入第一数据、至少一个第一背景值、至少一个第二背景值,第一稀疏分布图以及第二稀疏分布图。
该种方案,相当于将上述方案1和方案2结合。不同的是在查找顺序上,先根据第二稀疏分布图上的表示背景点的背景标识,查找背景点的背景标识所对应的第二背景值。针对第二稀疏分布图上的非背景点,则根据第一稀疏分布图上目标点的背景标识,从对应关系中查找目标点的背景标识所对应的中间结果,目标点为第二稀疏分布图上的非背景点定位到第一稀疏分布图上所对应的指示背景的点,对应关系指示至少一个第一背景值各自的中间结果与至少一个第一背景值各自所对应的背景标识之间的关系,至少一个第一背景值中的一个第一背景值的中间结果是第一背景值与目标卷积算子的卷积核计算得到的,该对应关系中的中间结果为第一背景值在卷积核的不同位置进行计算得到的结果,目标点的背景标识所对应的中间结果用于确定第二稀疏分布图上的非背景点所对应的第二体素的值。
也就是针对第二稀疏分布图上的一个非背景点,定位到第一稀疏分布图上的一个滑窗,滑窗中的9个点可以称为目标点,然后使用滑窗中的9个点来得到该第二稀疏分布图上的一个非背景点的第二体素的值。如图12所示,对于第二稀疏分布图上二行二列的M,可以在第一稀疏分布图上对应到一个滑窗,该滑窗中包括9个点,这9个点都为背景点,背景标识有7个1和2个2,然后就可以根据这9个背景标识,以及这9个背景标识在滑窗中的位置执行上述方案1中所描述的查表的过程,将查找到的中间结果进行累加,就可以得到第二稀疏分布图上的该非背景点对应的第二体素的值。若第一稀疏分布图的滑窗中包括非背景标识,则针对背景标识的部分可以查找中间结果进行累加,针对非背景标识的点,可以参阅上述方案1中介绍的针对非背景标识的点对应的第一体素的值与目标卷积算子的卷积核进行计算,得到中间结果后再与第一稀疏分布图上背景标识的点的中间结果进行累加,从而得到第二稀疏分布图上非背景点对应的第二体素的值。
该方案3的卷积神经网络可以包括:运算子网、背景推导子网和稀疏分布推导子网,背景推导子网和稀疏分布推导子网的网络结构均与运算子网的网络结构相同;运算子网包括至少一个第一卷积算子;第一稀疏分布图来自向第二卷积算子输入第一稀疏分布图的算子,第二稀疏分布图为第二卷积算子对第一稀疏分布图进行行标识核对操作后得到的,第二卷积算子在稀疏分布推导子网中所处的位置与目标卷积算子在运算子网中所处的位置对应;至少一个第一背景值来自向第三卷积算子输入至少一个第一背景值的算子,至少一个第二背景值为第三卷积算子对至少一个第一背景值进行卷积处理得到的,第三卷积算子在背景推导子网中所处的位置与目标卷积算子在运算子网中所处的位置对应。该结构可以参阅图4F进行理解。
该方案3的卷积神经网络还可以是:卷积神经网络包括:运算子网和稀疏分布推导子网,稀疏分布推导子网的网络结构与运算子网的网络结构相同;运算子网包括至少一个第一卷积算子;第一稀疏分布图来自向第二卷积算子输入第一稀疏分布图的算子,第二稀疏分布图为第二卷积算子对第一稀疏分布图进行行标识核对操作后得到的,第二卷积算子在稀疏分布推导子网中所处的位置与目标卷积算子在运算子网中所处的位置对应;至少一个第一背景值和至少一个第二背景值是预先配置给目标卷积算子的。该结构可以参阅图4G进行理解。
在结合图4F和图4G的结构上,若目标卷积算子为所述运算子网中的第一个卷积算子,则所述第一稀疏分布图为所述稀疏分布推导子网中的初始化算子对所述第一数据中的每个第一体素进行逐个扫描得到的,其中,针对指示背景的第一体素,则根据所述指示背景的第一体素对应的第一背景值,在与所述第一数据对应的空白位图中的相应点写入对应的背景标识,所述相应点为所述空白位图中与所述指示背景的数据对应的点,针对指示非背景的第一体素,则在所述空白位图中与所述指示非背景的第一体素对应的点写入非背景标识。
该过程与方案1中的相应过程相同,另外,关于至少一个第一背景值、至少一个第二背景值、第一数据和第二数据的形式都可以参阅前述方案1和方案2的介绍进行理解,此处不再重复介绍。
该方案3所描述的方案中,相比于方案1和方案3,可以执行两次查找,卷积的加速效果进一步提升。
本申请实施例上述所提供的方案中,运算子网、背景推导子网和稀疏分布推导子网相互配合,可以通过不同的子网来完成不同功能,如:通过背景推导子网来完成在不同阶段的背景值的推导,通过稀疏分布推导子网来完成不同阶段的背景稀疏分布的推导,再结合运算子网,可以在处理三维数据的不同阶段,结合相应阶段的背景值来完成预先的卷积处理,在处理第二体素时,再结合相应阶段的背景标识来查找对应的卷积结果,可见,通过三个子网的配合可以高效的进行卷积处理,提高了卷积处理的速度。
为了便于说明本申请的效果,下面结合一组实验数据来进行说明。本申请实施例在ArmV8.2架构服务器上测试ForkNet卷积网络的单核性能数据见表6。
ForkNet是用于3D语义分割和3D重建的卷积网络,它的输入数据是一个存储空间体素值的三维数组,三维数组中的每个点有三种取值,分别对应空气(背景0),物体表面(背景1)和深度相机未探测到的区域(背景2)。ForkNet中的12个卷积算子可以被稀疏加速,加速效果逐行列在了表3中。每经过一层卷积,背景和稀疏分布都会发生变化,但背景的个数始终是3,表3中列出了各个卷积的输入数据中三个背景所占的比例,而“稠密度”指非背景点所占的比例。表中“性能”列是对性能数据的统计,其中“本申请”列是使用本申请实施例所提供的方案后的耗时,“稠密”列是使用稠密Conv3D算子时的耗时,“耗时比”列时“本申请”列除以“稠密”列。
表6:ForkNet卷积网络中卷积算子的单核性能统计表
Figure BDA0002697444520000241
如表6,在ForkNet网络中,输入数据的广义稀疏性被有效利用,12个卷积算子总计耗时减少为稠密Conv3D耗时的70.56%。输入数据的稀疏背景不等于0,不唯一,表明本发明充分利用了广义稀疏性。
本申请充分利用多背景的数据特征对多个卷积算子加速,从而可以覆盖狭义稀疏优化方法所不能覆盖的广义稀疏场景,达到整网加速的效果。
以上介绍了本申请实施例提供的构建卷积神经网络的方法以及处理三维数据的方法,下面结合附图介绍本申请实施例提供的装置。
如图13所示,本申请实施例提供的处理三维数据的装置40的一实施例包括:
第一处理单元401,用于将第一数据、第一数据的至少一个第一背景值,以及第一数据的第一稀疏分布图输入到卷积神经网络的目标卷积算子中,其中,卷积神经网络包括至少一个第一卷积算子,目标卷积算子为至少一个第一卷积算子中的任意一个,第一数据包括多个第一体素,至少一个第一背景值指示第一数据中的至少一种背景,至少一个第一背景值与至少一种背景一一对应,第一稀疏分布图通过背景标识和非背景标识描述多个第一体素的稀疏分布,背景标识指示第一数据中对应背景标识的第一体素为背景,非背景标识指示第一数据中对应非背景标识的第一体素为非背景。
第二处理单元402,根据第一处理单元401输入的第一数据上指示背景的第一体素在第一稀疏分布图上对应的背景点的背景标识,从对应关系中查找背景点的背景标识所对应的中间结果,对应关系指示至少一个第一背景值各自的中间结果与至少一个第一背景值各自所对应的背景标识之间的关系,至少一个第一背景值中的一个第一背景值的中间结果是第一背景值与目标卷积算子的卷积核计算得到的,背景点的背景标识所对应的中间结果用于确定第二数据中第二体素的值;控制目标卷积算子输出第二数据。
第三处理单元403,控制目标卷积算子输出第二数据,第二数据包括多个第二体素。
本申请实施例提供的方案,在从第一对应关系中查找中间结果之前,会计算每个第一背景值与卷积核的中间结果,如:101与卷积核的中间结果1,102与卷积核的中间结果2,103卷积核的中间结果3。因为第一背景值与背景标识对应,那么就可以建立起背景标识与卷积结果的对应关系,如:1->中间结果1、2->中间结果2和3->中间结果3。通常第一数据都包括很多个第一体素,现有技术中卷积处理第一数据的过程就是将这些第一体素的值逐个与卷积核做计算的过程,而这些第一体素中指示背景的体素通常占绝大多数,而这些指示背景的体素的值又存在大量重复,逐个与卷积核进行计算,速度很低。而本申请中,先针对每个第一背景值先于卷积核做计算,得到中间结果后就将该中间结果与背景标识的对应关系存储起来,在卷积处理第一数据时,针对第一数据中指示背景的第一体素就可以通过查找对应关系的方式直接查找到中间结果,然后利用中间结果得到第二数据中第二体素的值。不需要再针对每个第一体素的值与卷积核做大量的计算,从而节省了计算开销,实现了卷积加速。
可选地,卷积神经网络包括:运算子网、背景推导子网和稀疏分布推导子网,背景推导子网和稀疏分布推导子网的网络结构均与运算子网的网络结构相同;运算子网包括至少一个第一卷积算子;第一稀疏分布图来自向第二卷积算子输入第一稀疏分布图的算子,第二卷积算子在稀疏分布推导子网中所处的位置与目标卷积算子在运算子网中所处的位置对应;至少一个第一背景值来自向第三卷积算子输入至少一个第一背景值的算子,第三卷积算子在背景推导子网中所处的位置与目标卷积算子在运算子网中所处的位置对应。
可选地,卷积神经网络包括:运算子网和稀疏分布推导子网,稀疏分布推导子网的网络结构与运算子网的网络结构相同;运算子网包括至少一个第一卷积算子;第一稀疏分布图来自向第二卷积算子输入第一稀疏分布图的算子,第二卷积算子在稀疏分布推导子网中所处的位置与目标卷积算子在运算子网中所处的位置对应;至少一个第一背景值是预先配置给目标卷积算子的。
可选地,对应关系中的中间结果为第一背景值在卷积核的不同位置进行计算得到的结果;第二处理单元402,用于针对第一数据的滑窗中的每个指示背景的第一体素,根据每个指示背景的第一体素在第一稀疏分布图中对应的背景标识,以及每个指示背景的第一体素在滑窗中的位置,从对应关系中查找相应位置处的背景标识对应的中间结果,第一数据的滑窗与目标卷积算子的卷积核的大小相同。
可选地,第二处理单元402,还用于将第一数据的滑窗中指示背景的第一体素的中间结果进行累加,得到一个第二体素的值,第一数据的滑窗中的第一体素都指示背景。
可选地,第二处理单元402,还用于将第一数据的滑窗中指示背景的第一体素的中间结果进行累加,再加上指示非背景的第一体素的中间结果,得到一个第二体素的值,指示非背景的第一体素的中间结果是通过指示非背景的第一体素的值与卷积核进行计算得到的。
可选地,目标卷积算子为运算子网中的第一个卷积算子,则第一稀疏分布图为稀疏分布推导子网中的初始化算子对第一数据中的每个第一体素进行逐个扫描得到的,其中,针对指示背景的第一体素,则根据指示背景的第一体素对应的第一背景值,在与第一数据对应的空白位图中的相应点写入对应的背景标识,相应点为空白位图中与指示背景的数据对应的点,针对指示非背景的第一体素,则在空白位图中与指示非背景的第一体素对应的点写入非背景标识。
可选地,第一数据的至少一个第一背景值以一维数组的形式来表示。
可选地,目标卷积算子不是运算子网中的第一个卷积算子,则第一数据具有多个通道维度,其中,每个通道维度上的子数据的稀疏分布图都与第一数据的第一稀疏分布图相同。
可选地,不同通道维度上的子数据的第一背景值不相同。
可选地,第一数据的至少一个第一背景值以二维数组的形式来表示。
可选地,第一数据为视频数据、语音数据或文本数据的多维数组。
以上处理三维数据的装置40的相应功能还可以参阅上述处理三维数据的方法部分的相关内容进行理解,此处不再重复赘述。
如图14所示,本申请实施例提供的处理三维数据的装置50的一实施例包括:
第一处理单元501,用于将第一数据输入卷积神经网络的目标卷积算子中,卷积神经网络包括至少一个第一卷积算子,目标卷积算子为至少一个第一卷积算子中的任意一个,第一数据包括多个第一体素,目标卷积算子还输入有:对第一数据的至少一个背景值进行卷积处理得到的至少一个第二背景值,以及对第一稀疏分布图进行行标识核对操作后得到的第二稀疏分布图,标识核对操作为核对第一稀疏分布图的滑窗所覆盖的点的标识全部相同或不全部相同,标识包括背景标识和非背景标识,至少一个第一背景值指示第一数据中的至少一种背景,至少一个第一背景值与至少一种背景一一对应,第一稀疏分布图通过背景标识和非背景标识描述多个第一体素的稀疏分布,背景标识指示第一数据中对应背景标识的第一体素为背景,非背景标识指示第一数据中对应非背景标识的第一体素为非背景。
第二处理单元502,用于根据第二稀疏分布图上的表示背景点的背景标识,查找背景点的背景标识所对应的第二背景值,背景点的背景标识所对应的第二背景值为第二数据中与背景点对应的第二体素的值。
第三处理单元503,用于控制目标卷积算子输出第二数据,第二数据包括多个第二体素。
本申请实施例提供的方案,在目标卷积算子在接收到第一数据、第二背景值和第二稀疏分布图后,可以通过第二稀疏分布图中的背景标识直接查找对应的第二背景值,该查找到的第二背景值即为对应该背景标识位置处的第二体素的值。可见,本申请实施例提供的方案,针对第二稀疏分布图中的背景标识所指示的第二体素,可以直接查找到对应的值,不需要再进行卷积处理的过程,从而实现了卷积加速。
可选地,第二处理单元502,还用于针对第二稀疏分布图上的非背景点,根据第一稀疏分布图上目标点的背景标识,从对应关系中查找目标点的背景标识所对应的中间结果,目标点为第二稀疏分布图上的非背景点定位到第一稀疏分布图上所对应的指示背景的点,对应关系指示至少一个第一背景值各自的中间结果与至少一个第一背景值各自所对应的背景标识之间的关系,至少一个第一背景值中的一个第一背景值的中间结果是第一背景值与目标卷积算子的卷积核计算得到的,该对应关系中的中间结果为第一背景值在卷积核的不同位置进行计算得到的结果,目标点的背景标识所对应的中间结果用于确定第二稀疏分布图上的非背景点所对应的第二体素的值。
可选地,卷积神经网络包括:运算子网、背景推导子网和稀疏分布推导子网,背景推导子网和稀疏分布推导子网的网络结构均与运算子网的网络结构相同;运算子网包括至少一个第一卷积算子;第一稀疏分布图来自向第二卷积算子输入第一稀疏分布图的算子,第二稀疏分布图为第二卷积算子对第一稀疏分布图进行行标识核对操作后得到的,第二卷积算子在稀疏分布推导子网中所处的位置与目标卷积算子在运算子网中所处的位置对应;至少一个第一背景值来自向第三卷积算子输入至少一个第一背景值的算子,至少一个第二背景值为第三卷积算子对至少一个第一背景值进行卷积处理得到的,第三卷积算子在背景推导子网中所处的位置与目标卷积算子在运算子网中所处的位置对应。
可选地,卷积神经网络包括:运算子网和稀疏分布推导子网,稀疏分布推导子网的网络结构与运算子网的网络结构相同;运算子网包括至少一个第一卷积算子;第一稀疏分布图来自向第二卷积算子输入第一稀疏分布图的算子,第二稀疏分布图为第二卷积算子对第一稀疏分布图进行行标识核对操作后得到的,第二卷积算子在稀疏分布推导子网中所处的位置与目标卷积算子在运算子网中所处的位置对应;至少一个第一背景值和至少一个第二背景值是预先配置给目标卷积算子的。
可选地,第二处理单元502,还用于将查找到的每个目标点对应的中间结果进行累加,得到非背景点所对应的第二体素的值,非背景点定位到第一稀疏分布图上所对应的点都为指示背景的点。
可选地,第二处理单元502,还用于将查找到的每个目标点对应的中间结果进行累加,得到非背景点所对应的第二体素的值,非背景点定位到第一稀疏分布图上所对应的点都为指示背景的点。
可选地,第二处理单元502,还用于将查找到的每个目标点对应的中间结果进行累加,再加上非背景点定位到第一稀疏分布图上对应的稠密点对应的中间结果,得到非背景点所对应的第二体素的值,稠密点为第一稀疏分布图中指示非背景的点,稠密点对应的中间结果为稠密点在第一数据中对应的指示非背景的第一体素的值与卷积核进行计算得到的。
可选地,目标卷积算子为运算子网中的第一个卷积算子,则第一稀疏分布图为稀疏分布推导子网中的初始化算子对第一数据中的每个第一体素进行逐个扫描得到的,其中,针对指示背景的第一体素,则根据指示背景的第一体素对应的第一背景值,在与第一数据对应的空白位图中的相应点写入对应的背景标识,相应点为空白位图中与指示背景的数据对应的点,针对指示非背景的第一体素,则在空白位图中与指示非背景的第一体素对应的点写入非背景标识。
可选地,第一数据的至少一个第一背景值以一维数组的形式来表示,至少一个第二背景值以二维数组的形式来表示。
可选地,目标卷积算子不是运算子网中的第一个卷积算子,则第一数据具有多个通道维度,其中,每个通道维度上的子数据的稀疏分布图都与第一数据的第一稀疏分布图相同。
可选地,不同通道维度上的子数据的第一背景值不相同。
可选地,第一数据的至少一个第一背景值以二维数组的形式来表示。
可选地,第一数据为视频数据、语音数据或文本数据的多维数组。
以上处理三维数据的装置50的相应功能还可以参阅上述处理三维数据的方法部分的相关内容进行理解,此处不再重复赘述。
如图15所示,本申请实施例提供的构建卷积神经网络的装置60的一实施例包括:
获取单元601,用于获取初始卷积神经网络,初始卷积神经网络包括运算子网,运算子网中包括至少一个第一卷积算子。
第一处理单元602,用于按照运算子网,复制出稀疏分布推导子网。
第二处理单元603,用于构建第一输入关系和第二输入关系中的至少一个,第一输入关系为从稀疏分布推导子网中的第二卷积算子到对应位置的第一卷积算子的输入关系,第二输入关系为稀疏分布推导子网中向第二卷积算子输入数据的算子到对应位置的第一卷积算子的输入关系,以得到目标卷积神经网络。
本申请实施例提供的方案,在只用于处理三维数据的初始卷积神经网络的基础上,针对运算子网增加了相同结构的背景推导子网和稀疏分布推导子网,这样,就可以确保在运算子网中处于不同位置处的卷积算子对三维数据进行卷积处理的过程中,可以从背景推导子网得到相应位置处的背景值,从稀疏分布推导子网得到相应位置处的稀疏分布图,从而可以确保本申请构建出的目标卷积神经网络可以提高卷积处理的速度。
可选地,得到目标卷积神经网络之前,方法还包括:按照运算子网,复制出背景推导子网;第二处理单元603,还用于构建第三输入关系和第四输入关系中的至少一个,第三输入关系为从背景推导子网中的第三卷积算子到对应位置的第一卷积算子的输入关系,第四输入关系为从背景推导子网中向第三卷积算子输入数据的算子到对应位置的第一卷积算子的输入关系,第一输入关系与第三输入关系对应,第二输入关系与第四输入关系对应。
可选地,第一处理单元602,还用于从初始卷积神经网络中确定出运算子网,运算子网中每个算子的输入数据在通道维度上稀疏分布相同,每个算子的输出数据在通道维度上稀疏分布相同,通道维度表示不同于三维空间的维度。
以上构建卷积神经网络的装置60的相应功能还可以参阅上述构建卷积神经网络的方法部分的相关内容进行理解,此处不再重复赘述。
图16所示,为本申请的实施例提供的计算机设备70的一种可能的逻辑结构示意图。该计算机设备70可以是处理三维数据的装置40、处理三维数据的装置50,也可以是构建卷积神经网络的装置60。该计算机设备70包括:处理器701、通信接口702、存储器703以及总线704。处理器701、通信接口702以及存储器703通过总线704相互连接。在本申请的实施例中,处理器701用于对计算机设备70的动作进行控制管理,例如,处理器701用于执行图3至图12的方法实施例中获取和处理的过程,通信接口702用于支持计算机设备70进行通信。存储器703,用于存储计算机设备70的程序代码和数据。
其中,处理器701可以是中央处理器单元,通用处理器,数字信号处理器,专用集成电路,现场可编程门阵列或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器701也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,数字信号处理器和微处理器的组合等等。总线704可以是外设部件互连标准(PeripheralComponent Interconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图16中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
在本申请的另一实施例中,还提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,当设备的处理器执行该计算机执行指令时,计算机备执行上述图3至图4G中构建卷积神经网络的方法,或者执行上述图5至图12中处理三维数据的方法。
在本申请的另一实施例中,还提供一种计算机程序产品,该计算机程序产品包括计算机执行指令,该计算机执行指令存储在计算机可读存储介质中;当设备的处理器执行该计算机执行指令时,计算机备执行上述图3至图4G中构建卷积神经网络的方法,或者执行上述图5至图12中处理三维数据的方法。
在本申请的另一实施例中,还提供一种芯片系统,该芯片系统包括处理器,该处理器用于实现上述图3至图4G中构建卷积神经网络的方法,或者执行上述图5至图12中处理三维数据的方法。在一种可能的设计中,芯片系统还可以包括存储器,存储器,用于保存进程间通信的装置必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包含芯片和其他分立器件。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请实施例的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请实施例所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请实施例各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请实施例各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上,仅为本申请实施例的具体实施方式,但本申请实施例的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请实施例揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请实施例的保护范围之内。因此,本申请实施例的保护范围应以权利要求的保护范围为准。

Claims (33)

1.一种处理三维数据的方法,其特征在于,包括:
将第一数据、所述第一数据的至少一个第一背景值,以及所述第一数据的第一稀疏分布图输入到卷积神经网络的目标卷积算子中,其中,所述卷积神经网络包括至少一个第一卷积算子,所述目标卷积算子为所述至少一个第一卷积算子中的任意一个,所述第一数据包括多个第一体素,所述至少一个第一背景值指示所述第一数据中的至少一种背景,所述至少一个第一背景值与所述至少一种背景一一对应,所述第一稀疏分布图通过背景标识和非背景标识描述所述多个第一体素的稀疏分布,所述背景标识指示所述第一数据中对应所述背景标识的第一体素为背景,所述非背景标识指示所述第一数据中对应所述非背景标识的第一体素为非背景;
根据所述第一数据上指示背景的第一体素在所述第一稀疏分布图上对应的背景点的背景标识,从对应关系中查找所述背景点的背景标识所对应的中间结果,所述对应关系指示所述至少一个第一背景值各自的中间结果与所述至少一个第一背景值各自所对应的背景标识之间的关系,所述至少一个第一背景值中的一个第一背景值的中间结果是所述第一背景值与所述目标卷积算子的卷积核计算得到的,所述背景点的背景标识所对应的中间结果用于确定第二数据中第二体素的值;
控制所述目标卷积算子输出所述第二数据,所述第二数据包括多个第二体素。
2.根据权利要求1所述的方法,其特征在于,所述卷积神经网络包括:运算子网、背景推导子网和稀疏分布推导子网,所述背景推导子网和所述稀疏分布推导子网的网络结构均与所述运算子网的网络结构相同;
所述运算子网包括所述至少一个第一卷积算子;
所述第一稀疏分布图来自向第二卷积算子输入所述第一稀疏分布图的算子,所述第二卷积算子在所述稀疏分布推导子网中所处的位置与所述目标卷积算子在所述运算子网中所处的位置对应;
所述至少一个第一背景值来自向第三卷积算子输入所述至少一个第一背景值的算子,所述第三卷积算子在所述背景推导子网中所处的位置与所述目标卷积算子在所述运算子网中所处的位置对应。
3.根据权利要求1所述的方法,其特征在于,所述卷积神经网络包括:运算子网和稀疏分布推导子网,所述稀疏分布推导子网的网络结构与所述运算子网的网络结构相同;
所述运算子网包括所述至少一个第一卷积算子;
所述第一稀疏分布图来自向第二卷积算子输入所述第一稀疏分布图的算子,所述第二卷积算子在所述稀疏分布推导子网中所处的位置与所述目标卷积算子在所述运算子网中所处的位置对应;
所述至少一个第一背景值是预先配置给所述目标卷积算子的。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述对应关系中的中间结果为所述第一背景值在所述卷积核的不同位置进行计算得到的结果;
所述根据所述第一数据上指示背景的第一体素在所述第一稀疏分布图上对应的背景点的背景标识,从对应关系中查找所述背景点的背景标识所对应的中间结果,包括:
针对所述第一数据的滑窗中的每个指示背景的第一体素,根据所述每个指示背景的第一体素在所述第一稀疏分布图中对应的背景标识,以及所述每个指示背景的第一体素在滑窗中的位置,从所述对应关系中查找相应位置处的所述背景标识对应的中间结果,所述第一数据的滑窗与所述目标卷积算子的所述卷积核的大小相同。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述方法还包括:
将所述第一数据的滑窗中所述指示背景的第一体素的中间结果进行累加,得到一个第二体素的值,所述第一数据的滑窗中的第一体素都指示背景。
6.根据权利要求1-4任一项所述的方法,其特征在于,所述方法还包括:
将所述第一数据的滑窗中所述指示背景的第一体素的中间结果进行累加,再加上指示非背景的第一体素的中间结果,得到一个第二体素的值,所述指示非背景的第一体素的中间结果是通过所述指示非背景的第一体素的值与所述卷积核进行计算得到的。
7.根据权利要求2或3所述的方法,其特征在于,所述目标卷积算子为所述运算子网中的第一个卷积算子,则所述第一稀疏分布图为所述稀疏分布推导子网中的初始化算子对所述第一数据中的每个第一体素进行逐个扫描得到的,其中,针对指示背景的第一体素,则根据所述指示背景的第一体素对应的第一背景值,在与所述第一数据对应的空白位图中的相应点写入对应的背景标识,所述相应点为所述空白位图中与所述指示背景的数据对应的点,针对指示非背景的第一体素,则在所述空白位图中与所述指示非背景的第一体素对应的点写入非背景标识。
8.根据权利要求7所述的方法,其特征在于,所述第一数据的至少一个第一背景值以一维数组的形式来表示。
9.根据权利要求2或3所述的方法,其特征在于,所述目标卷积算子不是所述运算子网中的第一个卷积算子,则所述第一数据具有多个通道维度,其中,每个通道维度上的子数据的稀疏分布图都与所述第一数据的第一稀疏分布图相同。
10.根据权利要求9所述的方法,其特征在于,不同通道维度上的子数据的第一背景值不相同。
11.根据权利要求9或10所述的方法,其特征在于,所述第一数据的至少一个第一背景值以二维数组的形式来表示。
12.根据权利要求1-11任一项所述的方法,其特征在于,所述第一数据为视频数据、语音数据或文本数据的多维数组。
13.一种处理三维数据的方法,其特征在于,包括:
将第一数据输入卷积神经网络的目标卷积算子中,所述卷积神经网络包括至少一个第一卷积算子,所述目标卷积算子为所述至少一个第一卷积算子中的任意一个,所述第一数据包括多个第一体素,所述目标卷积算子还输入有:对所述第一数据的至少一个背景值进行卷积处理得到的至少一个第二背景值,以及对第一稀疏分布图进行行标识核对操作后得到的第二稀疏分布图,所述标识核对操作为核对所述第一稀疏分布图的滑窗所覆盖的点的标识全部相同或不全部相同,所述标识包括背景标识和非背景标识,所述至少一个第一背景值指示所述第一数据中的至少一种背景,所述至少一个第一背景值与所述至少一种背景一一对应,所述第一稀疏分布图通过所述背景标识和所述非背景标识描述所述多个第一体素的稀疏分布,所述背景标识指示所述第一数据中对应所述背景标识的第一体素为背景,所述非背景标识指示所述第一数据中对应所述非背景标识的第一体素为非背景;
根据所述第二稀疏分布图上的表示背景点的背景标识,查找所述背景点的背景标识所对应的第二背景值,所述背景点的背景标识所对应的第二背景值为第二数据中与所述背景点对应的第二体素的值;
控制所述目标卷积算子输出所述第二数据,所述第二数据包括多个第二体素。
14.根据权利要求13所述的方法,其特征在于,所述方法还包括:
针对所述第二稀疏分布图上的非背景点,根据所述第一稀疏分布图上目标点的背景标识,从对应关系中查找所述目标点的背景标识所对应的中间结果,所述目标点为所述第二稀疏分布图上的非背景点定位到所述第一稀疏分布图上所对应的指示背景的点,所述对应关系指示所述至少一个第一背景值各自的中间结果与所述至少一个第一背景值各自所对应的背景标识之间的关系,所述至少一个第一背景值中的一个第一背景值的中间结果是所述第一背景值与所述目标卷积算子的卷积核计算得到的,所述对应关系中的中间结果为所述第一背景值在所述卷积核的不同位置进行计算得到的结果,所述目标点的背景标识所对应的中间结果用于确定所述第二稀疏分布图上的非背景点所对应的第二体素的值。
15.根据权利要求13或14所述的方法,其特征在于,所述卷积神经网络包括:运算子网、背景推导子网和稀疏分布推导子网,所述背景推导子网和所述稀疏分布推导子网的网络结构均与所述运算子网的网络结构相同;
所述运算子网包括所述至少一个第一卷积算子;
所述第一稀疏分布图来自向第二卷积算子输入所述第一稀疏分布图的算子,所述第二稀疏分布图为所述第二卷积算子对所述第一稀疏分布图进行行标识核对操作后得到的,所述第二卷积算子在所述稀疏分布推导子网中所处的位置与所述目标卷积算子在所述运算子网中所处的位置对应;
所述至少一个第一背景值来自向第三卷积算子输入所述至少一个第一背景值的算子,所述至少一个第二背景值为所述第三卷积算子对至少一个第一背景值进行卷积处理得到的,所述第三卷积算子在所述背景推导子网中所处的位置与所述目标卷积算子在所述运算子网中所处的位置对应。
16.根据权利要求13或14所述的方法,其特征在于,所述卷积神经网络包括:运算子网和稀疏分布推导子网,所述稀疏分布推导子网的网络结构与所述运算子网的网络结构相同;
所述运算子网包括所述至少一个第一卷积算子;
所述第一稀疏分布图来自向第二卷积算子输入所述第一稀疏分布图的算子,所述第二稀疏分布图为所述第二卷积算子对所述第一稀疏分布图进行行标识核对操作后得到的,所述第二卷积算子在所述稀疏分布推导子网中所处的位置与所述目标卷积算子在所述运算子网中所处的位置对应;
所述至少一个第一背景值和所述至少一个第二背景值是预先配置给所述目标卷积算子的。
17.根据权利要求14所述的方法,其特征在于,所述方法还包括:
将查找到的每个目标点对应的中间结果进行累加,得到所述非背景点所对应的第二体素的值,所述非背景点定位到所述第一稀疏分布图上所对应的点都为指示背景的点。
18.根据权利要求14所述的方法,其特征在于,所述方法还包括:
将查找到的每个目标点对应的中间结果进行累加,再加上所述非背景点定位到所述第一稀疏分布图上对应的稠密点对应的中间结果,得到所述非背景点所对应的第二体素的值,所述稠密点为所述第一稀疏分布图中指示非背景的点,所述稠密点对应的中间结果为所述稠密点在第一数据中对应的指示非背景的第一体素的值与所述卷积核进行计算得到的。
19.根据权利要求15或16所述的方法,其特征在于,所述目标卷积算子为所述运算子网中的第一个卷积算子,则所述第一稀疏分布图为所述稀疏分布推导子网中的初始化算子对所述第一数据中的每个第一体素进行逐个扫描得到的,其中,针对指示背景的第一体素,则根据所述指示背景的第一体素对应的第一背景值,在与所述第一数据对应的空白位图中的相应点写入对应的背景标识,所述相应点为所述空白位图中与所述指示背景的数据对应的点,针对指示非背景的第一体素,则在所述空白位图中与所述指示非背景的第一体素对应的点写入非背景标识。
20.根据权利要求19所述的方法,其特征在于,所述第一数据的至少一个第一背景值以一维数组的形式来表示,所述至少一个第二背景值以二维数组的形式来表示。
21.根据权利要求15或16所述的方法,其特征在于,所述目标卷积算子不是所述运算子网中的第一个卷积算子,则所述第一数据具有多个通道维度,其中,每个通道维度上的子数据的稀疏分布图都与所述第一数据的第一稀疏分布图相同。
22.根据权利要求21所述的方法,其特征在于,不同通道维度上的子数据的第一背景值不相同。
23.根据权利要求21或22所述的方法,其特征在于,所述第一数据的至少一个第一背景值以二维数组的形式来表示。
24.根据权利要求13-23任一项所述的方法,其特征在于,所述第一数据为视频数据、语音数据或文本数据的多维数组。
25.一种构建卷积神经网络的方法,其特征在于,包括:
获取初始卷积神经网络,所述初始卷积神经网络包括运算子网,所述运算子网中包括至少一个第一卷积算子;
按照所述运算子网,复制出稀疏分布推导子网;
构建第一输入关系和第二输入关系中的至少一个,所述第一输入关系为从所述稀疏分布推导子网中的第二卷积算子到对应位置的第一卷积算子的输入关系,所述第二输入关系为所述稀疏分布推导子网中向所述第二卷积算子输入数据的算子到所述对应位置的第一卷积算子的输入关系,以得到目标卷积神经网络。
26.根据权利要求25所述的方法,其特征在于,所述得到目标卷积神经网络之前,所述方法还包括:按照所述运算子网,复制出背景推导子网;
构建第三输入关系和第四输入关系中的至少一个,所述第三输入关系为从所述背景推导子网中的第三卷积算子到对应位置的第一卷积算子的输入关系,所述第四输入关系为从所述背景推导子网中向所述第三卷积算子输入数据的算子到所述对应位置的第一卷积算子的输入关系,所述第一输入关系与所述第三输入关系对应,所述第二输入关系与所述第四输入关系对应。
27.根据权利要求25或26所述的方法,其特征在于,所述方法还包括:
从所述初始卷积神经网络中确定出所述运算子网,所述运算子网中每个算子的输入数据在通道维度上稀疏分布相同,所述每个算子的输出数据在通道维度上稀疏分布相同,所述通道维度表示不同于三维空间的维度。
28.一种处理三维数据的装置,其特征在于,包括:
第一处理单元,用于将第一数据、所述第一数据的至少一个第一背景值,以及所述第一数据的第一稀疏分布图输入到卷积神经网络的目标卷积算子中,其中,所述卷积神经网络包括至少一个第一卷积算子,所述目标卷积算子为所述至少一个第一卷积算子中的任意一个,所述第一数据包括多个第一体素,所述至少一个第一背景值指示所述第一数据中的至少一种背景,所述至少一个第一背景值与所述至少一种背景一一对应,所述第一稀疏分布图通过背景标识和非背景标识描述所述多个第一体素的稀疏分布,所述背景标识指示所述第一数据中对应所述背景标识的第一体素为背景,所述非背景标识指示所述第一数据中对应所述非背景标识的第一体素为非背景;
第二处理单元,用于根据所述第一处理单元输入的第一数据上指示背景的第一体素在所述第一稀疏分布图上对应的背景点的背景标识,从对应关系中查找所述背景点的背景标识所对应的中间结果,所述对应关系指示所述至少一个第一背景值各自的中间结果与所述至少一个第一背景值各自所对应的背景标识之间的关系,所述至少一个第一背景值中的一个第一背景值的中间结果是所述第一背景值与所述目标卷积算子的卷积核计算得到的,所述背景点的背景标识所对应的中间结果用于确定第二数据中第二体素的值;
第三处理单元,用于控制所述目标卷积算子输出所述第二处理单元得到的第二数据,所述第二数据包括多个第二体素。
29.一种处理三维数据的装置,其特征在于,包括:
第一处理单元,用于将第一数据输入卷积神经网络的目标卷积算子中,所述卷积神经网络包括至少一个第一卷积算子,所述目标卷积算子为所述至少一个第一卷积算子中的任意一个,所述第一数据包括多个第一体素,所述目标卷积算子还输入有:对所述第一数据的至少一个背景值进行卷积处理得到的至少一个第二背景值,以及对第一稀疏分布图进行行标识核对操作后得到的第二稀疏分布图,所述标识核对操作为核对所述第一稀疏分布图的滑窗所覆盖的点的标识全部相同或不全部相同,所述标识包括背景标识和非背景标识,所述至少一个第一背景值指示所述第一数据中的至少一种背景,所述至少一个第一背景值与所述至少一种背景一一对应,所述第一稀疏分布图通过所述背景标识和所述非背景标识描述所述多个第一体素的稀疏分布,所述背景标识指示所述第一数据中对应所述背景标识的第一体素为背景,所述非背景标识指示所述第一数据中对应所述非背景标识的第一体素为非背景;
第二处理单元,用于根据所述第一处理单元输入的第二稀疏分布图上的表示背景点的背景标识,查找所述背景点的背景标识所对应的第二背景值,所述背景点的背景标识所对应的第二背景值为第二数据中与所述背景点对应的第二体素的值;
第三处理单元,用于控制所述目标卷积算子输出所述第二处理单元得到的第二数据,所述第二数据包括多个第二体素。
30.一种构建卷积神经网络的装置,其特征在于,包括:
获取单元,用于获取初始卷积神经网络,所述初始卷积神经网络包括运算子网,所述运算子网中包括至少一个第一卷积算子;
第一处理单元,用于按照所述获取单元获取的初始卷积神经网络中的运算子网,复制出稀疏分布推导子网;
第二处理单元,用于构建第一输入关系和第二输入关系中的至少一个,所述第一输入关系为从所述第一处理单元复制的稀疏分布推导子网中的第二卷积算子到对应位置的第一卷积算子的输入关系,所述第二输入关系为所述稀疏分布推导子网中向所述第二卷积算子输入数据的算子到所述对应位置的第一卷积算子的输入关系,以得到目标卷积神经网络。
31.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-12任一项所述的方法,或者实现如权利要求13-24任一项所述的方法,或者如权利要求25-27任一项所述的方法。
32.一种计算设备,其特征在于,包括处理器和存储有计算机程序的计算机可读存储介质;
所述处理器与所述计算机可读存储介质耦合,所述计算机程序被所述处理器执行时实现如权利要求1-12任一项所述的方法,或者实现如权利要求13-24任一项所述的方法,或者如权利要求25-27任一项所述的方法。
33.一种芯片系统,其特征在于,包括处理器,所述处理器被调用用于执行如权利要求1-12任一项所述的方法,或者实现如权利要求13-24任一项所述的方法,或者如权利要求25-27任一项所述的方法。
CN202011010600.8A 2020-09-23 2020-09-23 一种处理三维数据的方法及设备 Pending CN114254727A (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN202011010600.8A CN114254727A (zh) 2020-09-23 2020-09-23 一种处理三维数据的方法及设备
EP21870838.6A EP4209964A4 (en) 2020-09-23 2021-05-28 THREE-DIMENSIONAL DATA PROCESSING METHOD AND DEVICE
PCT/CN2021/096589 WO2022062451A1 (zh) 2020-09-23 2021-05-28 一种处理三维数据的方法及设备
US18/187,771 US20230222732A1 (en) 2020-09-23 2023-03-22 Method for processing three-dimensional data and device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011010600.8A CN114254727A (zh) 2020-09-23 2020-09-23 一种处理三维数据的方法及设备

Publications (1)

Publication Number Publication Date
CN114254727A true CN114254727A (zh) 2022-03-29

Family

ID=80788639

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011010600.8A Pending CN114254727A (zh) 2020-09-23 2020-09-23 一种处理三维数据的方法及设备

Country Status (4)

Country Link
US (1) US20230222732A1 (zh)
EP (1) EP4209964A4 (zh)
CN (1) CN114254727A (zh)
WO (1) WO2022062451A1 (zh)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190087713A1 (en) * 2017-09-21 2019-03-21 Qualcomm Incorporated Compression of sparse deep convolutional network weights
EP3711031A4 (en) * 2017-11-17 2021-01-13 Facebook, Inc. ANALYSIS OF SPATIAL DISTRIBUTED DATA BASED ON DISTRIBUTED NEURAL FOLDING NETWORKS WITH SUBCOLLECTOR
US11176439B2 (en) * 2017-12-01 2021-11-16 International Business Machines Corporation Convolutional neural network with sparse and complementary kernels
WO2020047823A1 (en) * 2018-09-07 2020-03-12 Intel Corporation Convolution over sparse and quantization neural networks
US11188744B2 (en) * 2019-03-15 2021-11-30 Microsoft Technology Licensing, Llc Spatially sparse convolutional neural networks for inking applications

Also Published As

Publication number Publication date
US20230222732A1 (en) 2023-07-13
EP4209964A4 (en) 2024-04-03
EP4209964A1 (en) 2023-07-12
WO2022062451A1 (zh) 2022-03-31

Similar Documents

Publication Publication Date Title
KR100762670B1 (ko) 스테레오 이미지로부터 디스패리티 맵을 생성하는 방법 및장치와 그를 위한 스테레오 매칭 방법 및 장치
US10789761B2 (en) Method and device for processing spatial data
CN107067371B (zh) 大幅面皮革图像拼接方法
CN111932570B (zh) 一种基于网格数据的边缘检测方法、装置、介质及设备
KR102207408B1 (ko) 이미지 처리를 위한 방법, 장치 및 컴퓨터 판독 가능한 매체
WO2019209751A1 (en) Superpixel merging
CN104254868A (zh) 使用至少一个较高帧速率图像流提高图像流帧速率的方法和装置
CN110207702B (zh) 目标定位的方法及装置
KR102239588B1 (ko) 이미지 처리 방법 및 장치
CN114254727A (zh) 一种处理三维数据的方法及设备
CN111860465A (zh) 基于超像素的遥感图像提取方法、装置、设备及存储介质
CN111967449A (zh) 文本检测方法、电子设备及计算机可读介质
US20190318494A1 (en) Parallelism in disparity map generation
CN111062473A (zh) 神经网络模型中的数据计算方法、图像处理方法及装置
WO2022017133A1 (zh) 一种点云数据处理方法及装置
CN112669346B (zh) 一种路面突发状况确定方法及装置
CN113808196A (zh) 平面融合定位方法、装置、电子设备及存储介质
CN113239216A (zh) 点云的处理方法、装置、设备及存储介质
CN111862077A (zh) 视差图的处理方法及装置、存储介质、电子装置
CN113673531B (zh) 基于形状感知卷积的rgb-d图像语义分割方法及系统
CN116993798B (zh) 一种图像处理方法和电子设备
CN110517180B (zh) 基于高精度神经网络的图像处理方法、装置及电子设备
CN114359204A (zh) 点云空洞的检测方法、装置及电子设备
KR20240052258A (ko) 인공지능 기반 포인트 클라우드 정사영상의 자동 도화 방법 및 장치
CN113139975B (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