CN113971712A - 一种点云数据的处理方法、装置、电子设备及存储介质 - Google Patents

一种点云数据的处理方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN113971712A
CN113971712A CN202010712674.XA CN202010712674A CN113971712A CN 113971712 A CN113971712 A CN 113971712A CN 202010712674 A CN202010712674 A CN 202010712674A CN 113971712 A CN113971712 A CN 113971712A
Authority
CN
China
Prior art keywords
matrix
grid
convolution
grid matrix
point cloud
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
CN202010712674.XA
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.)
Shanghai Sensetime Lingang Intelligent Technology Co Ltd
Original Assignee
Shanghai Sensetime Lingang Intelligent Technology 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 Shanghai Sensetime Lingang Intelligent Technology Co Ltd filed Critical Shanghai Sensetime Lingang Intelligent Technology Co Ltd
Priority to CN202010712674.XA priority Critical patent/CN113971712A/zh
Priority to PCT/CN2021/103037 priority patent/WO2022017134A1/zh
Priority to KR1020227007211A priority patent/KR20220043186A/ko
Priority to JP2022514519A priority patent/JP2022546828A/ja
Publication of CN113971712A publication Critical patent/CN113971712A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • 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
    • 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
    • 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
    • G06T7/00Image analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/0002Inspection of images, e.g. flaw detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10028Range image; Depth image; 3D point clouds
    • 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/20081Training; Learning
    • 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)
  • Computer Graphics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Health & Medical Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • Biomedical Technology (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Quality & Reliability (AREA)
  • Image Analysis (AREA)

Abstract

本公开提供了一种点云数据的处理方法、装置、电子设备及存储介质,其中,该处理方法包括:对获取的目标场景中的点云数据进行栅格化处理,得到栅格矩阵;栅格矩阵中每个元素的值用于表征对应的栅格处是否存在点云点;根据所述栅格矩阵以及所述目标场景中的待识别对象的尺寸信息,生成与所述待识别对象对应的稀疏矩阵;基于生成的所述稀疏矩阵,确定所述待识别对象在所述目标场景中的位置。本公开通过栅格化处理以及尺寸信息约束下的稀疏处理实现了稀疏矩阵的自动生成以根据生成的稀疏矩阵进行对象识别,省时省力。

Description

一种点云数据的处理方法、装置、电子设备及存储介质
技术领域
本公开涉及点云数据处理技术领域,具体而言,涉及一种点云数据的处理方法、装置、电子设备及存储介质。
背景技术
随着激光雷达技术的不断发展,因激光雷达采集的点云数据包括目标物体的准确位置信息,应用激光雷达进行点云数据的采集广泛应用于各个领域,如目标检测、三维目标重建、自动驾驶等。点云数据作为一种稀疏化数据,通常需要对采集的点云数据进行处理以实现上述应用。
为了便于进行应用,相关技术中的点云处理方案需要针对不同的应用环境采用不同的编程语言进行定制化设计,这将耗费大量的大力物力。
发明内容
本公开实施例至少提供一种点云数据的处理方法、装置、电子设备及存储介质,通过栅格化处理以及尺寸信息约束下的稀疏处理实现了稀疏矩阵的自动生成以根据生成的稀疏矩阵实现场景应用,省时省力。
主要包括以下几个方面:
第一方面,本公开实施例提供了一种点云数据的处理方法,所述方法包括:
获取目标场景对应的点云数据;
对获取的所述点云数据进行栅格化处理,得到栅格矩阵;所述栅格矩阵中每个元素的值用于表征对应的栅格处是否存在点云点;
根据所述栅格矩阵以及所述目标场景中的待识别对象的尺寸信息,生成与所述待识别对象对应的稀疏矩阵;
基于生成的所述稀疏矩阵,确定所述待识别对象在所述目标场景中的位置。
采用上述点云数据的处理方法,可以在获取到目标场景对应的点云数据的情况下,首先对该点云数据进行栅格化处理以得到栅格矩阵,该栅格矩阵中元素的值可以表征对应的栅格处是否存在点云点,这样,可以根据目标场景中待识别对象的尺寸信息对栅格矩阵中表征对应的栅格处存在点云点的元素进行处理,以生成与待识别对象对应的稀疏矩阵,从而根据生成的稀疏矩阵确定待识别对象在目标场景中的位置。
在一种实施方式中,所述根据所述栅格矩阵以及所述目标场景中的待识别对象的尺寸信息,生成与所述待识别对象对应的稀疏矩阵,包括:
根据所述栅格矩阵以及所述目标场景中的待识别对象的尺寸信息,对所述栅格矩阵中的目标元素进行至少一次膨胀处理操作或者腐蚀处理操作,生成与所述待识别对象对应的稀疏矩阵;
其中,所述目标元素为表征对应的栅格处存在点云点的元素。
在一种实施方式中,根据所述栅格矩阵以及所述目标场景中的待识别对象的尺寸信息,对所述栅格矩阵中的目标元素进行至少一次膨胀处理操作或者腐蚀处理操作,生成与所述待识别对象对应的稀疏矩阵,包括:
对所述栅格矩阵中的目标元素进行至少一次移位处理以及逻辑运算处理,得到与所述待识别对象对应的稀疏矩阵,其中得到的稀疏矩阵的坐标范围大小与所述目标场景中的待识别对象的尺寸大小之间的差值属于预设阈值范围。
在一种实施方式中,根据所述栅格矩阵以及所述目标场景中的待识别对象的尺寸信息,对所述栅格矩阵中的元素进行至少一次膨胀处理操作,生成与所述待识别对象对应的稀疏矩阵,包括:
对当前次膨胀处理操作前的栅格矩阵中的元素进行第一取反操作,得到第一取反操作后的栅格矩阵;
基于第一预设卷积核对所述第一取反操作后的栅格矩阵进行至少一次卷积运算,得到至少一次卷积运算后的具有预设稀疏度的栅格矩阵;所述预设稀疏度由所述目标场景中的待识别对象的尺寸信息来确定;
对所述至少一次卷积运算后的具有预设稀疏度的栅格矩阵中的元素进行第二取反操作,得到所述稀疏矩阵。
在一种实施方式中,所述对当前次膨胀处理操作前的栅格矩阵中的元素进行第一取反操作,得到第一取反操作后的栅格矩阵,包括:
基于第二预设卷积核,对当前次膨胀处理操作前的栅格矩阵中除所述目标元素外的其它元素进行卷积运算,得到第一取反元素,以及基于第二预设卷积核,对当前次膨胀处理操作前的栅格矩阵中的目标元素进行卷积运算,得到第二取反元素;
基于所述第一取反元素和所述第二取反元素,得到第一取反操作后的栅格矩阵。
在一种实施方式中,所述基于第一预设卷积核对所述第一取反操作后的栅格矩阵进行至少一次卷积运算,得到至少一次卷积运算后的具有预设稀疏度的栅格矩阵,包括:
针对首次卷积运算,将所述第一取反操作后的栅格矩阵与所述第一预设卷积核进行卷积运算,得到首次卷积运算后的栅格矩阵;
判断所述首次卷积运算后的栅格矩阵的稀疏度是否达到预设稀疏度;
若否,则循环执行将上一次卷积运算后的栅格矩阵与所述第一预设卷积核进行卷积运算,得到当前次卷积运算后的栅格矩阵的步骤,直至得到至少一次卷积运算后的具有预设稀疏度的栅格矩阵。
这里,针对首次卷积运算,可以基于第一取反操作后的栅格矩阵与第一预设卷积核之间的卷积运算,确定首次卷积运算后的栅格矩阵,而后可以基于首次卷积运算后的栅格矩阵与第一预设卷积核进行卷积运算,以确定第二次卷积运算后的栅格矩阵,依此类推,直至得到具有预设稀疏度的栅格矩阵。
在一种实施方式中,所述第一预设卷积核具有权值矩阵以及与该权值矩阵对应的偏置量;针对首次卷积运算,将所述第一取反操作后的栅格矩阵与所述第一预设卷积核进行卷积运算,得到首次卷积运算后的栅格矩阵,包括:
针对首次卷积运算,按照第一预设卷积核的大小以及预设步长,从所述第一取反操作后的栅格矩阵中选取每个栅格子矩阵;
针对选取的每个所述栅格子矩阵,将该栅格子矩阵与所述权值矩阵进行卷积运算,得到第一运算结果,并将所述第一运算结果与所述偏置量进行加法运算,得到第二运算结果;
基于各个所述栅格子矩阵对应的第二运算结果,确定首次卷积运算后的栅格矩阵。
在一种实施方式中,根据所述栅格矩阵以及所述目标场景中的待识别对象的尺寸信息,对所述栅格矩阵中的元素进行至少一次腐蚀处理操作,生成与所述待识别对象对应的稀疏矩阵,包括:
基于第三预设卷积核对栅格矩阵进行至少一次卷积运算,得到至少一次卷积运算后的具有预设稀疏度的栅格矩阵;所述预设稀疏度由所述目标场景中的待识别对象的尺寸信息来确定;
将所述至少一次卷积运算后的具有预设稀疏度的栅格矩阵,确定为与所述待识别对象对应的稀疏矩阵。
在一种实施方式中,对获取的所述点云数据进行栅格化处理,得到栅格矩阵,包括:
对获取的所述点云数据进行栅格化处理,得到栅格矩阵以及该栅格矩阵中各个元素与各个点云点坐标范围信息之间的对应关系;
所述基于生成的所述稀疏矩阵,确定所述待识别对象在所述目标场景中的位置,包括:
基于所述栅格矩阵中各个元素与各个点云点坐标范围信息之间的对应关系,确定生成的所述稀疏矩阵中每个目标元素所对应的坐标信息;
将所述稀疏矩阵中各个所述目标元素所对应的坐标信息进行组合,确定所述待识别对象在所述目标场景中的位置。
这里,可以基于栅格矩阵中各个元素与各个点云点坐标范围信息之间的对应关系,确定生成的稀疏矩阵中的目标元素的坐标信息,进而基于坐标信息的组合确定待识别对象在稀疏矩阵中的坐标范围,而后基于稀疏矩阵所在坐标系与物理坐标系之间的转换关系,确定待识别对象在目标场景中的位置。
在一种实施方式中,所述基于生成的所述稀疏矩阵,确定所述待识别对象在所述目标场景中的位置,包括:
基于训练好的卷积神经网络对生成的所述稀疏矩阵中的每个目标元素进行至少一次卷积处理,得到卷积结果;
基于所述卷积结果,确定所述待识别对象在所述目标场景中的位置。
这里,可以基于训练好的卷积神经网络对生成的稀疏矩阵进行卷积处理,以通过处理得到的卷积结果确定待识别对象在目标场景中的位置。考虑到在进行卷积处理的过程中,可以仅对稀疏矩阵中对应的栅格处存在点云点的目标元素进行卷积操作,这一定程度上降低了卷积计算量,提升了目标检测的效率。
第二方面,本公开实施例还提供了一种点云数据的处理装置,所述装置包括:
获取模块,用于获取目标场景对应的点云数据;
处理模块,用于对获取的所述点云数据进行栅格化处理,得到栅格矩阵;所述栅格矩阵中每个元素的值用于表征对应的栅格处是否存在点云点;
生成模块,用于根据所述栅格矩阵以及所述目标场景中的待识别对象的尺寸信息,生成与所述待识别对象对应的稀疏矩阵;
确定模块,用于基于生成的所述稀疏矩阵,确定所述待识别对象在所述目标场景中的位置。
第三方面,本公开实施例还提供了一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如第一方面及其各种实施方式任一所述的点云数据的处理方法的步骤。
第四方面,本公开实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如第一方面及其各种实施方式任一所述的点云数据的处理方法的步骤。
关于上述点云数据的处理装置、电子设备、及计算机可读存储介质的效果描述参见上述点云数据的处理方法的说明,这里不再赘述。
为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,此处的附图被并入说明书中并构成本说明书中的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本公开实施例一所提供的一种点云数据的处理方法的流程图;
图2(a)示出了本公开实施例一所提供的一种编码前栅格矩阵的示意图;
图2(b)示出了本公开实施例一所提供的一种稀疏矩阵的示意图;
图2(c)示出了本公开实施例一所提供的一种编码后栅格矩阵的示意图;
图3(a)示出了本公开实施例一所提供的一种左移后的栅格矩阵的示意图;
图3(b)示出了本公开实施例一所提供的一种逻辑或运算的示意图;
图4(a)示出了本公开实施例一所提供的一种第一取反操作后的栅格矩阵的示意图;
图4(b)示出了本公开实施例一所提供的一种卷积运算后的栅格矩阵的示意图;
图5示出了本公开实施例二所提供的一种点云数据的处理装置的示意图;
图6示出了本公开实施例三所提供的一种电子设备的示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
经研究发现,相关技术中的点云处理方案需要针对不同的应用环境采用不同的编程语言进行定制化设计,这将耗费大量的大力物力。
基于上述研究,本公开至少提供了一种点云数据的处理方案,通过栅格化处理以及尺寸信息约束下的稀疏处理实现了稀疏矩阵的自动生成以根据生成的稀疏矩阵实现场景应用,省时省力。
针对以上方案所存在的缺陷,均是发明人在经过实践并仔细研究后得出的结果,因此,上述问题的发现过程以及下文中本公开针对上述问题所提出的解决方案,都应该是发明人在本公开过程中对本公开做出的贡献。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
为便于对本实施例进行理解,首先对本公开实施例所公开的一种点云数据的处理方法进行详细介绍,本公开实施例所提供的点云数据的处理方法的执行主体一般为具有一定计算能力的电子设备,该电子设备例如包括:终端设备或服务器或其它处理设备,终端设备可以为用户设备(User Equipment,UE)、移动设备、用户终端、终端、蜂窝电话、无绳电话、个人数字处理(Personal Digital Assistant,PDA)、手持设备、计算设备、车载设备、可穿戴设备等。在一些可能的实现方式中,该点云数据的处理方法可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。
下面对本公开实施例提供的点云数据的处理方法加以说明。
实施例一
参见图1所示,为本公开实施例提供的点云数据的处理方法的流程图,方法包括步骤S101~S104,其中:
S101、获取目标场景对应的点云数据;
S102、对获取的点云数据进行栅格化处理,得到栅格矩阵;栅格矩阵中每个元素的值用于表征对应的栅格处是否存在点云点;
S103、根据栅格矩阵以及目标场景中的待识别对象的尺寸信息,生成与待识别对象对应的稀疏矩阵;
S104、基于生成的稀疏矩阵,确定待识别对象在目标场景中的位置。
这里,为了便于理解本公开实施例所提供的点云数据的处理方法,接下来首先对该处理方法的具体应用场景进行详细说明。本公开实施例提供的点云数据的处理方法主要可以应用于目标检测、三维目标重建等领域。这里以目标检测为例进行示例说明。相关技术中,为了确定与目标相关的位置等信息,在获取到与应用场景相关的数据信息(例如点云数据)之后,可以基于预先训练的卷积神经网络来实现目标检测。这里,考虑到在依赖于卷积神经网络进行目标检测的过程中,需要对点云数据的各个点云点进行卷积操作,这一定程度上导致卷积计算量较大。
正是为了解决上述问题,本公开实施例才提供了一种基于栅格化处理和尺寸限定下的稀疏处理生成稀疏矩阵以进行目标检测的方案。一方面,由于上述稀疏矩阵是结合目标场景中的待识别对象的尺寸信息所生成的,因此,生成的稀疏矩阵一定程度上可以直接表征待识别对象的相关信息,这在目标检测精度要求不高的情况下,可以直接作为目标检测结果,另一方面,在基于上述相关技术中所采用的卷积神经网络进行目标检测的过程中,由于仅需对生成的稀疏矩阵中对应的栅格处存在点云点的元素进行卷积运算,因此一定程度上可以降低卷积计算量,提升目标检测的效率。
本公开实施例中,针对获取的点云数据,首先可以进行栅格化处理,而后可以对栅格化处理得到的栅格矩阵进行稀疏处理,以生成稀疏矩阵。这里的栅格化处理的过程可以指的是将空间分布的包含各个点云点的点云数据映射到设定的栅格内,并基于栅格所对应的点云点进行栅格编码(对应零一矩阵)的过程,稀疏处理的过程则可以指的是基于目标场景中的待识别对象的尺寸信息对上述零一矩阵进行膨胀处理操作(对应增多零一矩阵中指示为1的元素的处理结果)或者腐蚀处理操作(对应减少零一矩阵中指示为1的元素的处理结果)的过程。接下来对上述栅格化处理的过程以及稀疏处理的过程进行更进一步的描述。
其中,上述栅格化处理的过程中,可以是将分布在笛卡尔连续实数坐标系的点云点转换到栅格化的离散坐标系。
为了便于理解上述栅格化的处理过程,接下来可以结合一个示例进行具体说明。本公开实施例具有点A(0.32m,0.48m)、点B(0.6m,0.4801m)和点C(2.1m,3.2m)等点云点,以1m为栅格宽度做栅格化,(0m,0m)到(1m,1m)的范围对应第一个栅格,(0m,1m)到(1m,2m)的范围对应第二个栅格,以此类推。栅格化后的A'(0,0),B'(0,0)均在第一行第一列的栅格里,C'(2,3)可以在第二行第三列的栅格里,从而实现了笛卡尔连续实数坐标系到离散坐标系的转换。其中,有关点云点的坐标信息可以是参照基准点(例如采集点云数据的雷达设备所在位置)确定的,这里不做赘述。
本公开实施例中可以进行二维栅格化,也可以进行三维栅格化,三维栅格化相对于在二维栅格化的基础上增加了高度信息。接下来可以以二维栅格化为例进行具体描述。
针对二维栅格化而言,可以将有限空间划分为N*M的栅格,一般是等间隔划分,间隔大小可配置。此时可以使用零一矩阵(即上述栅格矩阵)编码栅格化后的点云数据,每一个栅格可以使用一个唯一的行号和列号组成的坐标表示,如果该栅格中存在一个及以上点云点,则将该栅格编码为1,否则为0,从而可以得到编码后的零一矩阵。
在按照上述方法确定栅格矩阵之后,即可以根据目标场景的待识别对象的尺寸信息,对上述栅格矩阵中的元素进行稀疏处理操作,以生成对应的稀疏矩阵。
其中,有关待识别对象的尺寸信息可以是预先获取的,这里,可以结合点云数据所同步采集的图像数据来确定待识别对象的尺寸信息,还可以是基于本公开实施例所提供的点云数据的处理方法的具体应用场景来粗略估计上述待识别对象的尺寸信息。例如,针对自动驾驶领域,车辆前方的物体可以是车辆,可以确定其通用的尺寸信息为4m×4m。除此之外,本公开实施例还可以基于其它方式确定待识别对象的尺寸信息,本公开实施例对此不做具体的限制。
本公开实施例中,有关稀疏处理操作可以是对栅格矩阵中的目标元素(即表征对应的栅格处存在点云点的元素)进行至少一次膨胀处理操作,这里的膨胀处理操作可以是在栅格矩阵的坐标范围大小小于目标场景中的待识别对象的尺寸大小的情况下进行的,也即,通过一次或多次膨胀处理操作,可以对表征对应的栅格处存在点云点的元素范围进行逐级扩大,以使得扩大后的元素范围可以是与待识别对象相匹配的,进而实现位置确定;除此之外,本公开实施例中的稀疏处理操作还可以是对栅格矩阵中的目标元素进行至少一次腐蚀处理操作,这里的腐蚀处理操作可以是在栅格矩阵的坐标范围大小大于目标场景中的待识别对象的尺寸大小的情况下进行的,也即,通过一次或多次腐蚀处理操作,可以对表征对应的栅格处存在点云点的元素范围进行逐级缩小,以使得缩小后的元素范围可以是与待识别对象相匹配的,进而实现位置确定。
在具体应用中,是进行一次膨胀处理操作、还是多次膨胀处理操作、还是一次腐蚀处理操作、还是多次腐蚀处理操作,取决于进行至少一次移位处理以及逻辑运算处理所得到的稀疏矩阵的坐标范围大小与所述目标场景中的待识别对象的尺寸大小之间的差值是否属于预设阈值范围,也即,本公开所采用的膨胀或腐蚀处理操作是基于待识别对象的尺寸信息的约束来进行的,以使得所确定的稀疏矩阵所表征的信息更为符合待识别对象的相关信息。
可以理解的是,不管是基于膨胀处理操作还是腐蚀处理操作所实现的稀疏处理的目的在于使得生成的稀疏矩阵能够表征更为准确的待识别对象的相关信息。
本公开实施例中,上述膨胀处理操作可以是基于移位操作和逻辑或操作所实现的,还可以是基于取反后卷积,卷积后再取反所实现的。两种操作所具体采用的方法不同,但最终所生成的稀疏矩阵的效果可以是一致的。
另外,上述腐蚀处理操作可以是基于移位操作和逻辑与操作所实现的,还可以是直接基于卷积操作所实现的。同理,尽管两种操作所具体采用的方法不同,但最终所生成的稀疏矩阵的效果也可以是一致的。
接下来以膨胀处理操作为例,结合图2(a)~图2(b)所示的生成稀疏矩阵的具体示例图,进一步说明上述稀疏矩阵的生成过程。
如图2(a)为栅格化处理后所得到的栅格矩阵(对应未编码前)的示意图,通过对该栅格矩阵中的每个目标元素(对应具有填充效果的栅格)进行一次八邻域的膨胀操作,即可以得到对应的稀疏矩阵如图2(b)所示。可知的是,本公开实施例针对图2(a)中对应的栅格处存在点云点的目标元素而言,进行了八邻域的膨胀操作,从而使得每个目标元素在膨胀后成为一个元素集,该元素集所对应的栅格宽度可以是与待识别对象的尺寸大小相匹配的。
其中,上述八邻域的膨胀操作可以是确定与该元素的横坐标或纵坐标差的绝对值都不超过1的元素的过程,除了栅格边缘的元素,一般一个元素的邻域内都有八个元素(对应上述元素集),膨胀处理结果输入可以是6个目标元素的坐标信息,输出则可以是该目标元素八邻域内的元素集的坐标信息,如图2(b)所示。
需要说明的是,在实际应用中,除了可以进行上述八邻域的膨胀操作,还可以进行四邻域的膨胀操作,后者其它膨胀操作,在此不做具体的限制。除此之外,本公开实施例还可以进行多次膨胀操作,例如,在图2(b)所示的膨胀结果的基础之上,再次进行膨胀操作,以得到更大元素集范围的稀疏矩阵,在此不再赘述。
本公开实施例中基于生成的稀疏矩阵,可以确定待识别对象在目标场景中的位置。本公开实施例中可以通过如下两个方面来具体实现。
第一方面:这里可以基于栅格矩阵中各个元素与各个点云点坐标范围信息之间的对应关系,来确定待识别对象的位置范围,具体可以通过如下步骤来实现:
步骤一、基于栅格矩阵中各个元素与各个点云点坐标范围信息之间的对应关系,确定与生成的稀疏矩阵中每个目标元素所对应的坐标信息;
步骤二、将稀疏矩阵中各个目标元素所对应的坐标信息进行组合,确定待识别对象在目标场景中的位置。
这里,基于上述有关栅格化处理的相关描述可知,栅格矩阵中的每个目标元素可以对应多个点云点,这样,有关元素与多个点云点所对应的点云点坐标范围信息可以是预先确定的。这里,仍以N*M维度的栅格矩阵为例,存在点云点的目标元素可以对应P个点云点,每个点的坐标为(Xi,Yi),i属于0到P-1,Xi,Yi表示点云点在栅格矩阵中的位置,0<=Xi<N,0<=Yi<M。
这样,在生成稀疏矩阵之后,可以采用基于预先确定的上述各个元素与各个点云点坐标范围信息之间的对应关系来确定与该稀疏矩阵中每个目标元素所对应的坐标信息,也即,进行了反栅格化的处理操作。
需要说明的是,由于稀疏矩阵是基于对栅格矩阵中表征对应的栅格处存在点云点的元素进行稀疏处理得到的,因而,这里的稀疏矩阵中的目标元素表征的也可以是对应的栅格处存在点云点的元素,
为了便于理解上述反栅格化的处理过程,接下来可以结合一个示例进行具体说明。这里以稀疏矩阵指示的点A'(0,0),点B'(0,0)在第一行第一列栅格里;点C'(2,3)在第二行第三列的栅格为例,在进行反栅格化处理的过程中,第一个栅格(0,0),利用其中心映射回笛卡尔坐标系后,可以得到(0.5m,0.5m),第二行第三列的栅格(2,3),利用其中心映射回笛卡尔坐标系,可以得到(2.5m,3.5m),即可以将(0.5m,0.5m)和(2.5m,3.5m)确定为映射后的坐标信息,这样,将映射后的坐标信息进行组合,即可以确定待识别对象在目标场景中的位置。
本公开实施例不仅可以基于上述稀疏矩阵与目标检测结果的近似关系来实现待识别对象的位置范围的确定,还可以基于训练的卷积神经网络确定待识别对象的位置范围。
第二方面:本公开实施例首先可以基于训练好的卷积神经网络对生成的稀疏矩阵进行至少一次卷积处理,而后即可以基于卷积处理得到的卷积结果确定待识别对象的位置范围。
在相关利用卷积神经网络来实现目标检测的技术中,需要遍历全部的输入数据,依次找到输入点的邻域点进行卷积运算,最后输出所有领域点的集合,而本公开实施例提供的点云数据的处理方法仅需要通过快速遍历稀疏矩阵中的目标元素,来找到有效点所在位置(即零一矩阵中为1的元素)进行卷积运算即可,从而大大加快卷积神经网络的计算过程,提升待识别对象的位置范围确定的效率。
考虑到稀疏处理操作对本公开实施例所提供的点云数据的处理方法的关键作用,接下来可以通过如下两个方面分别进行说明。
第一方面:在稀疏处理操作为膨胀处理操作的情况下,本公开实施例可以结合移位处理和逻辑运算来实现,还可以基于取反后卷积,卷积后再取反来实现。
其一、本公开实施例中,可以基于至少一次移位处理和逻辑或运算进行一次或多次膨胀处理操作,在具体实现过程中,具体的膨胀处理操作的次数可以结合目标场景中的待识别对象的尺寸信息来确定。
这里,针对首次膨胀处理操作,可以对表征对应的栅格处存在点云点的目标元素进行多个预设方向的移位处理,得到对应的多个移位后的栅格矩阵,然后即可以对栅格矩阵和首次膨胀处理操作对应的多个移位后的栅格矩阵进行逻辑或运算,从而可以得到首次膨胀处理操作后的稀疏矩阵,这里,可以判断所得到的稀疏矩阵的坐标范围大小是否小于待识别对象的尺寸大小,且对应的差值是否足够大(如大于预设阈值),若是,则可以按照上述方法对首次膨胀处理操作后的稀疏矩阵中的目标元素进行多个预设方向的移位处理和逻辑或运算,得到第二次膨胀处理操作后的稀疏矩阵,以此类推,直至确定最新得到的稀疏矩阵的坐标范围大小与目标场景中的待识别对象的尺寸大小之间的差值属于预设阈值范围的情况下,确定稀疏矩阵。
需要说明的是,不管是哪次膨胀处理操作后所得到的稀疏矩阵,其本质上也是一个零一矩阵。随着膨胀处理操作次数的增加,所得到的稀疏矩阵中表征对应的栅格处存在点云点的目标元素的个数也在增加,且由于零一矩阵所映射的栅格是具有宽度信息的,这里,即可以利用稀疏矩阵中各个目标元素所对应的坐标范围大小来验证是否达到目标场景中的待识别对象的尺寸大小,从而提升了后续目标检测应用的准确性。
其中,上述逻辑或运算可以按照如下步骤来实现:
步骤一、从多个移位后的栅格矩阵中选取一个移位后的栅格矩阵;
步骤二、将当前次膨胀处理操作前的栅格矩阵与选取出的移位后的栅格矩阵进行逻辑或运算,得到运算结果;
步骤三、循环从多个移位后的栅格矩阵中选取未参与运算的栅格矩阵,并对选取出的栅格矩阵与最近一次运算结果进行逻辑或运算,直至选取完所有的栅格矩阵,得到当前次膨胀处理操作后的稀疏矩阵。
这里,首先可以从多个移位后的栅格矩阵中选取一个移位后的栅格矩阵,这样,即可以将当前次膨胀处理操作前的栅格矩阵与选取出的移位后的栅格矩阵进行逻辑或运算,得到运算结果,这里,可以循环从多个移位后的栅格矩阵中选取未参与运算的栅格矩阵,并参与到逻辑或运算中,直至在选取完所有移位后的栅格矩阵,即可得到当前次膨胀处理操作后的稀疏矩阵。
本公开实施例中的膨胀处理操作可以是以目标元素为中心的四邻域膨胀,还可以是以目标元素为中心的八领域膨胀,还可以是其它领域处理操作方式,在具体应用中,可以基于待识别对象的尺寸信息来选择对应的领域处理操作方式,这里不做具体的限制。
需要说明的是,针对不同的领域处理操作方式,所对应移位处理的预设方向并不相同,以四领域膨胀为例,可以分别对栅格矩阵按照四个预设方向进行移位处理,分别是左移、右移、上移和下移,以八领域膨胀为例,可以分别对栅格矩阵按照四个预设方向进行移位处理,分别是左移、右移、上移、下移、在左移前提下的上移和下移、以及右移前提下的上移和下移。除此之外,为了适配后续的逻辑或运算,可以是在基于多个移位方向确定移位后的栅格矩阵之后,先进行一次逻辑或运算,而后将逻辑或运算结果再进行多个移位方向的移位操作,而后再进行下一次逻辑或运算,以此类推,直至得到膨胀处理后的稀疏矩阵。
为了便于理解上述膨胀处理操作,可以先将图2(a)所示的编码前的栅格矩阵转换为如图2(c)所示的编码后的栅格矩阵,而后结合图3(a)~图3(b)对首次膨胀处理操作进行示例说明。
如图2(c)所示的栅格矩阵,该栅格矩阵作为零一矩阵,矩阵中所有的1的位置可以表示目标元素所在的栅格,矩阵中所有0可以表示背景。
本公开实施例中,首先可以使用矩阵移位确定零一矩阵中所有元素值为1的元素的邻域。这里可以定义四个预设方向的移位处理,分别是左移、右移、上移和下移。其中,左移即零一矩阵中所有元素值为1的元素对应的列坐标减一,如图3(a)所示;右移即零一矩阵中所有元素值为1的元素对应的列坐标加一;上移即零一矩阵中所有元素值为1的元素对应的行坐标减一;下移即零一矩阵中所有元素值为1的元素对应的行坐标加一。
其次,本公开实施例可以使用矩阵逻辑或操作合并所有邻域的结果。矩阵逻辑或,即在接收到两组大小相同的零一矩阵输入的情况下,依次对两组矩阵相同位置的零一进行逻辑或操作,得到的结果组成一个新的零一矩阵作为输出,如图3(b)所示为一个逻辑或运算的具体示例。
在实现逻辑或的具体过程中,可以依次选取左移后的栅格矩阵、右移后的栅格矩阵、上移后的栅格矩阵、下移后的栅格矩阵参与到逻辑或的运算中。例如,可以先将栅格矩阵与左移以后的栅格矩阵逻辑或起来,得到的运算结果可以再和右移以后的栅格矩阵逻辑或起来,针对得到的运算结果可以再和上移以后的栅格矩阵逻辑或起来,针对得到的运算结果可以再和下移以后的栅格矩阵逻辑或起来,从而得到首次膨胀处理操作后的稀疏矩阵。
需要说明的是,上述有关平移后的栅格矩阵的选取顺序仅为一个具体的示例,在实际应用中,还可以结合其它方式来选取,考虑到平移操作的对称性,这里可以选取上移和下移配对后进行逻辑或运算,左移和右移配对后进行逻辑运算,两个逻辑或运算可以同步进行,可以节省计算时间。
其二、本公开实施例中,可以结合卷积和两次取反处理来实现膨胀处理操作,具体可以通过如下步骤来实现:
步骤一、对当前膨胀处理操作前的栅格矩阵中的元素进行第一取反操作,得到第一取反操作后的栅格矩阵;
步骤二、基于第一预设卷积核对第一取反操作后的栅格矩阵进行至少一次卷积运算,得到至少一次卷积运算后的具有预设稀疏度的栅格矩阵;预设稀疏度由目标场景中的待识别对象的尺寸信息来确定;
步骤三、对至少一次卷积运算后的具有预设稀疏度的栅格矩阵中的元素进行第二取反操作,得到稀疏矩阵。
本公开实施例可以通过取反后卷积,卷积后再取反的操作实现膨胀处理操作,所得到的稀疏矩阵一定程度上也可以表征待识别对象的相关信息,除此之外,考虑到上述卷积操作可以自动的与后续进行目标检测等应用所采用的卷积神经网络进行结合,因而一定程度上可以提升检测效率。
本公开实施例中,取反操作可以是基于卷积运算实现的,还可以是基于其它的取反操作方式实现的。为了便于配合后续的应用网络(如进行目标检测所采用的卷积神经网络),这里,可以采用卷积运算来具体实现,接下来对上述第一取反操作进行具体说明。
这里,可以基于第二预设卷积核对当前次膨胀处理操作前的栅格矩阵中除目标元素外的其它元素进行卷积运算,得到第一取反元素,还可以基于第二预设卷积核,对当前次膨胀处理操作前的栅格矩阵中的目标元素进行卷积运算,得到第二取反元素,基于上述第一取反元素和第二取反元素,即可确定第一取反操作后的栅格矩阵。
有关第二取反操作的实现过程可以参照上述第一取反操作的实现过程,在此不再赘述。
本公开实施例中,可以利用第一预设卷积核对第一取反操作后的栅格矩阵进行至少一次卷积运算,从而得到具有预设稀疏度的栅格矩阵。如果膨胀处理操作可以作为一种扩增栅格矩阵中的目标元素个数的手段,则上述卷积运算可以视为一种减少栅格矩阵中的目标元素个数的过程(对应腐蚀处理操作),由于本公开实施例中的卷积运算是针对第一取反操作后的栅格矩阵所进行的,因此,利用取反操作结合腐蚀处理操作,而后再次进行取反操作实现等价于上述膨胀处理操作的等价操作。
其中,针对首次卷积运算,将第一取反操作后的栅格矩阵与第一预设卷积核进行卷积运算,得到首次卷积运算后的栅格矩阵,在判断首次卷积运算后的栅格矩阵的稀疏度未达到预设稀疏度之后,可以将首次卷积运算后的栅格矩阵与第一预设卷积核再次进行卷积运算,得到第二次卷积运算后的栅格矩阵,以此类推,直至可以确定具有预设稀疏度的栅格矩阵。
其中,上述稀疏度可以是由栅格矩阵中目标元素与非目标元素的占比分布所确定的,目标元素占比越多,其所对应表征的待识别对象的尺寸信息越大,反之,目标元素占比越少,其所对应表征的待识别对象的尺寸信息越小,本公开实施例可以是在占比分布达到预设稀疏度时,停止卷积运算。
本公开实施例中的卷积运算可以是一次也可以是多次,这里可以以首次卷积运算的具体运算过程进行说明,包括如下步骤:
步骤一、针对首次卷积运算,按照第一预设卷积核的大小以及预设步长,从第一取反操作后的栅格矩阵中选取每个栅格子矩阵;
步骤二、针对选取的每个栅格子矩阵,将该栅格子矩阵与权值矩阵进行乘积运算,得到第一运算结果,并将第一运算结果与偏置量进行加法运算,得到第二运算结果;
步骤三、基于各个栅格子矩阵对应的第二运算结果,确定首次卷积运算后的栅格矩阵。
这里,可以采用遍历方式对第一取反操作后的栅格矩阵进行遍历,这样针对遍历到的每个栅格子矩阵,即可以将栅格子矩阵与权值矩阵进行乘积运算,得到第一运算结果,并将第一运算结果与偏置量进行加法运算,得到第二运算结果,这样,将各个栅格子矩阵所对应的第二运算结果组合到对应的矩阵元素中,即可得到首次卷积运算后的栅格矩阵。
为了便于理解上述膨胀处理操作,这里仍以图如图2(c)所示的编码后的栅格矩阵为例,结合图4(a)~图4(b)对膨胀处理操作进行示例说明。
这里,可以利用一个1*1的卷积核(即第二预设卷积核)实现第一取反操作,该第二预设卷积核的权值为-1,偏置为1,此时将权值和偏置量代入{输出=输入的栅格矩阵*权重+偏置量}这一卷积公式中,如果输入为栅格矩阵中的目标元素,其值对应为1,则输出=1*-1+1=0;如果输入为栅格矩阵中的非目标元素,其值对应为0,则输出=0*-1+1=1;这样,经过1*1卷积核作用于输入,可以使得零一矩阵取反,元素值0变为1、元素值1变为0,如图4(a)所示。
针对上述腐蚀处理操作,在具体应用中,可以利用一个3*3卷积核(即第一预设卷积核)和一个线性整流函数(Rectified Linear Unit,ReLU)来实现。上述第一预设卷积核权值矩阵所包括的各个权值均为1,偏置量为8,这样,可以利用公式{输出=ReLU(输入的第一取反操作后的栅格矩阵*权重+偏置量)}来实现上述腐蚀处理操作。
这里,只有当输入的3*3的栅格子矩阵内所有元素都为1的情况下,输出=ReLU(9-8)=1;否则输出=ReLU(输入的栅格子矩阵*1-8)=0,其中,(输入的栅格子矩阵*1-8)<0,如图4(b)所示为卷积运算后的栅格矩阵。
这里,每嵌套一层具有第二预设卷积核的卷积网络可以叠加一次腐蚀操作,从而可以得到固定稀疏度的栅格矩阵,再次取反操作即可以等价于一次膨胀处理操作,从而可以实现稀疏矩阵的生成。
第二方面:在稀疏处理操作为腐蚀处理操作的情况下,本公开实施例可以结合移位处理和逻辑运算来实现,还可以基于卷积运算来实现。
其一、本公开实施例中,可以基于至少一次移位处理和逻辑与运算进行一次或多次腐蚀处理操作,在具体实现过程中,具体的腐蚀处理操作的次数可以结合目标场景中的待识别对象的尺寸信息来确定。
与第一方面中基于移位处理和逻辑或运算实现膨胀处理类似的是,在进行腐蚀处理操作的过程中,也可以先进行栅格矩阵的移位处理,与上述膨胀处理不同的是,这里的逻辑运算,可以是针对移位后的栅格矩阵进行逻辑与的运算。有关基于移位处理和逻辑与运算实现腐蚀处理操作的过程,具体参见上述描述内容,在此不再赘述。
同理,本公开实施例中的腐蚀处理操作可以是以目标元素为中心的四邻域腐蚀,还可以是以目标元素为中心的八领域腐蚀,还可以是其它领域处理操作方式,在具体应用中,可以基于待识别对象的尺寸信息来选择对应的领域处理操作方式,这里不做具体的限制。
其二、本公开实施例中,可以结合卷积处理来实现腐蚀处理操作,具体可以通过如下步骤来实现:
步骤一、基于第三预设卷积核对栅格矩阵进行至少一次卷积运算,得到至少一次卷积运算后的具有预设稀疏度的栅格矩阵;预设稀疏度由目标场景中的待识别对象的尺寸信息来确定;
步骤二、将至少一次卷积运算后的具有预设稀疏度的栅格矩阵,确定为与待识别对象对应的稀疏矩阵。
上述卷积运算可以视为一种减少栅格矩阵中的目标元素个数的过程,即腐蚀处理过程。其中,针对首次卷积运算,将栅格矩阵与第一预设卷积核进行卷积运算,得到首次卷积运算后的栅格矩阵,在判断首次卷积运算后的栅格矩阵的稀疏度未达到预设稀疏度之后,可以将首次卷积运算后的栅格矩阵与第三预设卷积核再次进行卷积运算,得到第二次卷积运算后的栅格矩阵,以此类推,直至可以确定具有预设稀疏度的栅格矩阵,即得到与待识别对象对应的稀疏矩阵。
本公开实施例中的卷积运算可以是一次也可以是多次,有关卷积运算的具体过程参见上述第一方面中基于卷积和取反实现膨胀处理的相关描述,在此不再赘述。
需要说明的是,在具体应用中,可以采用不同数据处理位宽的卷积神经网络来实现稀疏矩阵的生成,例如,可以采用4比特(bit)来表征网络的输入、输出以及计算用到的参数,例如栅格矩阵的元素值(0或1),权值、偏置量等,除此之外,还可以采用8bit来进行表征以适应网络处理位宽,提升运算效率。
本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
基于同一发明构思,本公开实施例中还提供了与点云数据的处理方法对应的点云数据的处理装置,由于本公开实施例中的装置解决问题的原理与本公开实施例上述点云数据的处理方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
实施例二
参照图5所示,为本公开实施例提供的一种点云数据的处理装置的架构示意图,装置包括:获取模块501、处理模块502、生成模块503和确定模块504;其中,
获取模块501,用于获取目标场景对应的点云数据;
处理模块502,用于对获取的点云数据进行栅格化处理,得到栅格矩阵;栅格矩阵中每个元素的值用于表征对应的栅格处是否存在点云点;
生成模块503,用于根据栅格矩阵以及目标场景中的待识别对象的尺寸信息,生成与待识别对象对应的稀疏矩阵;
确定模块504,用于基于生成的稀疏矩阵,确定待识别对象在目标场景中的位置。
采用上述点云数据的处理装置,可以首先将点云数据中的各个点云点映射到对应的栅格中,有的栅格对应一个或多个点云点,有的栅格则没有对应点云点,这样,基于上述映射关系所确定的栅格矩阵可以是标准化的零一矩阵,将该零一矩阵参与到有关处理操作中即可确定对应的稀疏矩阵。由于上述处理操作是结合目标场景中的待识别对象的尺寸信息所进行的,因而,经过处理操作所生成的稀疏矩阵中元素值为1的元素一定程度上可以表征待识别对象的相关信息,这里,可以确定待识别对象在目标场景中的位置。
在一种实施方式中,生成模块503,用于按照以下步骤根据栅格矩阵以及目标场景中的待识别对象的尺寸信息,生成与待识别对象对应的稀疏矩阵:
根据栅格矩阵以及目标场景中的待识别对象的尺寸信息,对栅格矩阵中的目标元素进行至少一次膨胀处理操作或者腐蚀处理操作,生成与待识别对象对应的稀疏矩阵;
其中,目标元素为表征对应的栅格处存在点云点的元素。
在一种实施方式中,生成模块503,用于按照以下步骤根据栅格矩阵以及目标场景中的待识别对象的尺寸信息,对栅格矩阵中的目标元素进行至少一次膨胀处理操作或者腐蚀处理操作,生成与待识别对象对应的稀疏矩阵:
对栅格矩阵中的目标元素进行至少一次移位处理以及逻辑运算处理,得到与待识别对象对应的稀疏矩阵,其中得到的稀疏矩阵的坐标范围大小与目标场景中的待识别对象的尺寸大小之间的差值属于预设阈值范围。
在一种实施方式中,生成模块503,用于按照以下步骤根据栅格矩阵以及目标场景中的待识别对象的尺寸信息,对栅格矩阵中的元素进行至少一次膨胀处理操作,生成与待识别对象对应的稀疏矩阵:
对当前次膨胀处理操作前的栅格矩阵中的元素进行第一取反操作,得到第一取反操作后的栅格矩阵;
基于第一预设卷积核对第一取反操作后的栅格矩阵进行至少一次卷积运算,得到至少一次卷积运算后的具有预设稀疏度的栅格矩阵;预设稀疏度由目标场景中的待识别对象的尺寸信息来确定;
对至少一次卷积运算后的具有预设稀疏度的栅格矩阵中的元素进行第二取反操作,得到稀疏矩阵。
在一种实施方式中,生成模块503,用于按照以下步骤对当前次膨胀处理操作前的栅格矩阵中的元素进行第一取反操作,得到第一取反操作后的栅格矩阵:
基于第二预设卷积核,对当前次膨胀处理操作前的栅格矩阵中除目标元素外的其它元素进行卷积运算,得到第一取反元素,以及基于第二预设卷积核,对当前次膨胀处理操作前的栅格矩阵中的目标元素进行卷积运算,得到第二取反元素;
基于第一取反元素和第二取反元素,得到第一取反操作后的栅格矩阵。
在一种实施方式中,生成模块503,用于按照以下步骤基于第一预设卷积核对第一取反操作后的栅格矩阵进行至少一次卷积运算,得到至少一次卷积运算后的具有预设稀疏度的栅格矩阵:
针对首次卷积运算,将第一取反操作后的栅格矩阵与第一预设卷积核进行卷积运算,得到首次卷积运算后的栅格矩阵;
判断首次卷积运算后的栅格矩阵的稀疏度是否达到预设稀疏度;
若否,则循环执行将上一次卷积运算后的栅格矩阵与第一预设卷积核进行卷积运算,得到当前次卷积运算后的栅格矩阵的步骤,直至得到至少一次卷积运算后的具有预设稀疏度的栅格矩阵。
在一种实施方式中,第一预设卷积核具有权值矩阵以及与该权值矩阵对应的偏置量;生成模块503,用于按照以下步骤针对首次卷积运算,将第一取反操作后的栅格矩阵与第一预设卷积核进行卷积运算,得到首次卷积运算后的栅格矩阵:
针对首次卷积运算,按照第一预设卷积核的大小以及预设步长,从第一取反操作后的栅格矩阵中选取每个栅格子矩阵;
针对选取的每个栅格子矩阵,将该栅格子矩阵与权值矩阵进行卷积运算,得到第一运算结果,并将第一运算结果与偏置量进行加法运算,得到第二运算结果;
基于各个栅格子矩阵对应的第二运算结果,确定首次卷积运算后的栅格矩阵。
在一种实施方式中,生成模块503,用于按照以下步骤根据栅格矩阵以及目标场景中的待识别对象的尺寸信息,对栅格矩阵中的元素进行至少一次腐蚀处理操作,生成与待识别对象对应的稀疏矩阵:
基于第三预设卷积核对栅格矩阵进行至少一次卷积运算,得到至少一次卷积运算后的具有预设稀疏度的栅格矩阵;预设稀疏度由目标场景中的待识别对象的尺寸信息来确定;
将至少一次卷积运算后的具有预设稀疏度的栅格矩阵,确定为与待识别对象对应的稀疏矩阵。
在一种实施方式中,处理模块502,用于按照以下步骤对获取的点云数据进行栅格化处理,得到栅格矩阵:
对获取的点云数据进行栅格化处理,得到栅格矩阵以及该栅格矩阵中各个元素与各个点云点坐标范围信息之间的对应关系;
确定模块504,用于按照以下步骤基于生成的稀疏矩阵,确定待识别对象在目标场景中的位置:
基于栅格矩阵中各个元素与各个点云点坐标范围信息之间的对应关系,确定生成的稀疏矩阵中每个目标元素所对应的坐标信息;
将稀疏矩阵中各个目标元素所对应的坐标信息进行组合,确定待识别对象在目标场景中的位置。
在一种实施方式中,确定模块504,用于按照以下步骤基于生成的稀疏矩阵,确定待识别对象在目标场景中的位置:
基于训练好的卷积神经网络对生成的稀疏矩阵中的每个目标元素进行至少一次卷积处理,得到卷积结果;
基于卷积结果,确定待识别对象在目标场景中的位置。
关于装置中的各模块的处理流程、以及各模块之间的交互流程的描述可以参照上述方法实施例中的相关说明,这里不再详述。
实施例三
本公开实施例还提供了一种电子设备,如图6所示,为本公开实施例提供的电子设备的结构示意图,包括:处理器601、存储器602、和总线603。存储器602存储有处理器601可执行的机器可读指令(如图5所示点云数据的处理装置中,获取模块501、处理模块502、生成模块503和确定模块504所对应执行的指令),当电子设备运行时,处理器601与存储器602之间通过总线603通信,机器可读指令被处理器601执行时执行如下处理:
获取目标场景对应的点云数据;
对获取的点云数据进行栅格化处理,得到栅格矩阵;栅格矩阵中每个元素的值用于表征对应的栅格处是否存在点云点;
根据栅格矩阵以及目标场景中的待识别对象的尺寸信息,生成与待识别对象对应的稀疏矩阵;
基于生成的稀疏矩阵,确定待识别对象在目标场景中的位置。
本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器601运行时执行上述方法实施例中的点云数据的处理方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。
本公开实施例所提供的点云数据的处理方法的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行上述方法实施例中所述的点云数据的处理方法的步骤,具体可参见上述方法实施例,在此不再赘述。
本公开实施例还提供一种计算机程序,该计算机程序被处理器执行时实现前述实施例的任意一种方法。该计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software DevelopmentKit,SDK)等等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本公开所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台电子设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施例技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应所述以权利要求的保护范围为准。

Claims (13)

1.一种点云数据的处理方法,其特征在于,所述方法包括:
获取目标场景对应的点云数据;
对获取的所述点云数据进行栅格化处理,得到栅格矩阵;所述栅格矩阵中每个元素的值用于表征对应的栅格处是否存在点云点;
根据所述栅格矩阵以及所述目标场景中的待识别对象的尺寸信息,生成与所述待识别对象对应的稀疏矩阵;
基于生成的所述稀疏矩阵,确定所述待识别对象在所述目标场景中的位置。
2.根据权利要求1所述的处理方法,其特征在于,所述根据所述栅格矩阵以及所述目标场景中的待识别对象的尺寸信息,生成与所述待识别对象对应的稀疏矩阵,包括:
根据所述栅格矩阵以及所述目标场景中的待识别对象的尺寸信息,对所述栅格矩阵中的目标元素进行至少一次膨胀处理操作或者腐蚀处理操作,生成与所述待识别对象对应的稀疏矩阵;
其中,所述目标元素为表征对应的栅格处存在点云点的元素。
3.根据权利要求2所述的处理方法,其特征在于,根据所述栅格矩阵以及所述目标场景中的待识别对象的尺寸信息,对所述栅格矩阵中的目标元素进行至少一次膨胀处理操作或者腐蚀处理操作,生成与所述待识别对象对应的稀疏矩阵,包括:
对所述栅格矩阵中的目标元素进行至少一次移位处理以及逻辑运算处理,得到与所述待识别对象对应的稀疏矩阵,其中得到的稀疏矩阵的坐标范围大小与所述目标场景中的待识别对象的尺寸大小之间的差值属于预设阈值范围。
4.根据权利要求2所述的处理方法,其特征在于,根据所述栅格矩阵以及所述目标场景中的待识别对象的尺寸信息,对所述栅格矩阵中的元素进行至少一次膨胀处理操作,生成与所述待识别对象对应的稀疏矩阵,包括:
对当前次膨胀处理操作前的栅格矩阵中的元素进行第一取反操作,得到第一取反操作后的栅格矩阵;
基于第一预设卷积核对所述第一取反操作后的栅格矩阵进行至少一次卷积运算,得到至少一次卷积运算后的具有预设稀疏度的栅格矩阵;所述预设稀疏度由所述目标场景中的待识别对象的尺寸信息来确定;
对所述至少一次卷积运算后的具有预设稀疏度的栅格矩阵中的元素进行第二取反操作,得到所述稀疏矩阵。
5.根据权利要求4所述的处理方法,其特征在于,所述对当前次膨胀处理操作前的栅格矩阵中的元素进行第一取反操作,得到第一取反操作后的栅格矩阵,包括:
基于第二预设卷积核,对当前次膨胀处理操作前的栅格矩阵中除所述目标元素外的其它元素进行卷积运算,得到第一取反元素,以及基于第二预设卷积核,对当前次膨胀处理操作前的栅格矩阵中的目标元素进行卷积运算,得到第二取反元素;
基于所述第一取反元素和所述第二取反元素,得到第一取反操作后的栅格矩阵。
6.根据权利要求4或5所述的处理方法,其特征在于,所述基于第一预设卷积核对所述第一取反操作后的栅格矩阵进行至少一次卷积运算,得到至少一次卷积运算后的具有预设稀疏度的栅格矩阵,包括:
针对首次卷积运算,将所述第一取反操作后的栅格矩阵与所述第一预设卷积核进行卷积运算,得到首次卷积运算后的栅格矩阵;
判断所述首次卷积运算后的栅格矩阵的稀疏度是否达到预设稀疏度;
若否,则循环执行将上一次卷积运算后的栅格矩阵与所述第一预设卷积核进行卷积运算,得到当前次卷积运算后的栅格矩阵的步骤,直至得到至少一次卷积运算后的具有预设稀疏度的栅格矩阵。
7.根据权利要求6所述的处理方法,其特征在于,所述第一预设卷积核具有权值矩阵以及与该权值矩阵对应的偏置量;针对首次卷积运算,将所述第一取反操作后的栅格矩阵与所述第一预设卷积核进行卷积运算,得到首次卷积运算后的栅格矩阵,包括:
针对首次卷积运算,按照第一预设卷积核的大小以及预设步长,从所述第一取反操作后的栅格矩阵中选取每个栅格子矩阵;
针对选取的每个所述栅格子矩阵,将该栅格子矩阵与所述权值矩阵进行乘积运算,得到第一运算结果,并将所述第一运算结果与所述偏置量进行加法运算,得到第二运算结果;
基于各个所述栅格子矩阵对应的第二运算结果,确定首次卷积运算后的栅格矩阵。
8.根据权利要求2所述的处理方法,其特征在于,根据所述栅格矩阵以及所述目标场景中的待识别对象的尺寸信息,对所述栅格矩阵中的元素进行至少一次腐蚀处理操作,生成与所述待识别对象对应的稀疏矩阵,包括:
基于第三预设卷积核对栅格矩阵进行至少一次卷积运算,得到至少一次卷积运算后的具有预设稀疏度的栅格矩阵;所述预设稀疏度由所述目标场景中的待识别对象的尺寸信息来确定;
将所述至少一次卷积运算后的具有预设稀疏度的栅格矩阵,确定为与所述待识别对象对应的稀疏矩阵。
9.根据权利要求2~8任一所述的处理方法,其特征在于,对获取的所述点云数据进行栅格化处理,得到栅格矩阵,包括:
对获取的所述点云数据进行栅格化处理,得到栅格矩阵以及该栅格矩阵中各个元素与各个点云点坐标范围信息之间的对应关系;
所述基于生成的所述稀疏矩阵,确定所述待识别对象在所述目标场景中的位置,包括:
基于所述栅格矩阵中各个元素与各个点云点坐标范围信息之间的对应关系,确定生成的所述稀疏矩阵中每个目标元素所对应的坐标信息;
将所述稀疏矩阵中各个所述目标元素所对应的坐标信息进行组合,确定所述待识别对象在所述目标场景中的位置。
10.根据权利要求1~8任一所述的处理方法,其特征在于,所述基于生成的所述稀疏矩阵,确定所述待识别对象在所述目标场景中的位置,包括:
基于训练好的卷积神经网络对生成的所述稀疏矩阵中的每个目标元素进行至少一次卷积处理,得到卷积结果;
基于所述卷积结果,确定所述待识别对象在所述目标场景中的位置。
11.一种点云数据的处理装置,其特征在于,所述装置包括:
获取模块,用于获取目标场景对应的点云数据;
处理模块,用于对获取的所述点云数据进行栅格化处理,得到栅格矩阵;所述栅格矩阵中每个元素的值用于表征对应的栅格处是否存在点云点;
生成模块,用于根据所述栅格矩阵以及所述目标场景中的待识别对象的尺寸信息,生成与所述待识别对象对应的稀疏矩阵;
确定模块,用于基于生成的所述稀疏矩阵,确定所述待识别对象在所述目标场景中的位置。
12.一种电子设备,其特征在于,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如权利要求1至10任一所述的点云数据的处理方法的步骤。
13.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如权利要求1至10任一所述的点云数据的处理方法的步骤。
CN202010712674.XA 2020-07-22 2020-07-22 一种点云数据的处理方法、装置、电子设备及存储介质 Pending CN113971712A (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN202010712674.XA CN113971712A (zh) 2020-07-22 2020-07-22 一种点云数据的处理方法、装置、电子设备及存储介质
PCT/CN2021/103037 WO2022017134A1 (zh) 2020-07-22 2021-06-29 一种点云数据的处理方法、装置、电子设备及存储介质
KR1020227007211A KR20220043186A (ko) 2020-07-22 2021-06-29 포인트 클라우드 데이터의 처리 방법, 장치, 전자 기기 및 저장 매체
JP2022514519A JP2022546828A (ja) 2020-07-22 2021-06-29 点群データ処理方法、装置、電子機器及び記憶媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010712674.XA CN113971712A (zh) 2020-07-22 2020-07-22 一种点云数据的处理方法、装置、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN113971712A true CN113971712A (zh) 2022-01-25

Family

ID=79584956

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010712674.XA Pending CN113971712A (zh) 2020-07-22 2020-07-22 一种点云数据的处理方法、装置、电子设备及存储介质

Country Status (4)

Country Link
JP (1) JP2022546828A (zh)
KR (1) KR20220043186A (zh)
CN (1) CN113971712A (zh)
WO (1) WO2022017134A1 (zh)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014043764A1 (en) * 2012-09-21 2014-03-27 Umwelt (Australia) Pty. Limited On-ground or near-ground discrete object detection method and system
CN108399424B (zh) * 2018-02-06 2022-01-18 深圳市建设综合勘察设计院有限公司 一种点云分类方法、智能终端及存储介质
CN109955486B (zh) * 2019-03-14 2020-08-04 浙江大学 一种基于点阵化与稀疏压缩处理的结构模型3d打印方法

Also Published As

Publication number Publication date
JP2022546828A (ja) 2022-11-09
KR20220043186A (ko) 2022-04-05
WO2022017134A1 (zh) 2022-01-27

Similar Documents

Publication Publication Date Title
CN108986033A (zh) 基于双线性插值算法处理的图像缩放方法
CN107341191B (zh) 一种三维空间的多尺度整数化编码方法和装置
CN110473251B (zh) 基于网格空间索引的自定义范围空间数据面积统计方法
CN104067296A (zh) 一维信号抽取的方法和装置
CN113970752A (zh) 一种目标检测方法、装置、电子设备及存储介质
JP2017533458A5 (zh)
CN112825199B (zh) 碰撞检测方法、装置、设备及存储介质
CN116227209A (zh) 一种点云数据多维线性差值方法、终端设备及存储介质
CN109974716B (zh) 地理位置匹配方法及装置、存储介质、服务器
CN113642589B (zh) 图像特征提取方法及装置、计算机设备和可读存储介质
CN117725966A (zh) 草图序列重建模型的训练方法、几何模型重建方法及设备
CN114138231B (zh) 执行矩阵乘法运算的方法、电路及soc
CN113971712A (zh) 一种点云数据的处理方法、装置、电子设备及存储介质
CN112819157A (zh) 神经网络训练的方法及装置、智能行驶控制的方法及装置
JP2018136797A (ja) 埋め込みグラフ単純化装置、埋め込みグラフ単純化方法、及びコンピュータプログラム
CN113971694A (zh) 一种点云数据处理方法及装置
CN109379191B (zh) 一种基于椭圆曲线基点的点乘运算电路和方法
CN111723906A (zh) 一种循环神经网络的加速计算方法、系统及相关装置
CN113806601B (zh) 一种周边兴趣点检索方法及存储介质
CN116051345A (zh) 图像数据处理方法、装置、计算机设备及可读存储介质
CN113327217A (zh) 一种卷积处理方法、装置、计算机设备及存储介质
CN114022649A (zh) Gpu-cpu协同的栅格数据快速坐标转换方法及系统
CN105117733A (zh) 一种确定聚类样本差异的方法及装置
CN114581676B (zh) 特征图像的处理方法、装置和存储介质
WO2023165290A1 (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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40059199

Country of ref document: HK