CN117077073A - 一种多模态数据的处理方法及相关装置 - Google Patents
一种多模态数据的处理方法及相关装置 Download PDFInfo
- Publication number
- CN117077073A CN117077073A CN202310847804.4A CN202310847804A CN117077073A CN 117077073 A CN117077073 A CN 117077073A CN 202310847804 A CN202310847804 A CN 202310847804A CN 117077073 A CN117077073 A CN 117077073A
- Authority
- CN
- China
- Prior art keywords
- image
- point cloud
- sequence
- feature sequence
- vector
- 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
Links
- 238000003672 processing method Methods 0.000 title abstract description 9
- 230000004927 fusion Effects 0.000 claims abstract description 109
- 238000000034 method Methods 0.000 claims abstract description 93
- 238000012545 processing Methods 0.000 claims abstract description 93
- 238000000605 extraction Methods 0.000 claims abstract description 47
- 238000003860 storage Methods 0.000 claims abstract description 29
- 239000013598 vector Substances 0.000 claims description 253
- 230000015654 memory Effects 0.000 claims description 78
- 238000013507 mapping Methods 0.000 claims description 57
- 238000007499 fusion processing Methods 0.000 claims description 23
- 238000004590 computer program Methods 0.000 claims description 9
- 238000007689 inspection Methods 0.000 claims description 8
- 230000007613 environmental effect Effects 0.000 claims description 7
- 230000008447 perception Effects 0.000 claims description 7
- 235000004522 Pentaglottis sempervirens Nutrition 0.000 claims description 4
- 230000002829 reductive effect Effects 0.000 abstract description 5
- 238000013473 artificial intelligence Methods 0.000 abstract description 3
- 238000004891 communication Methods 0.000 description 54
- 230000006854 communication Effects 0.000 description 54
- 238000013528 artificial neural network Methods 0.000 description 37
- 230000006870 function Effects 0.000 description 36
- 230000008569 process Effects 0.000 description 36
- 238000010586 diagram Methods 0.000 description 28
- 239000010410 layer Substances 0.000 description 26
- 239000011159 matrix material Substances 0.000 description 21
- 238000006243 chemical reaction Methods 0.000 description 19
- 238000012549 training Methods 0.000 description 18
- 238000001514 detection method Methods 0.000 description 16
- 230000005540 biological transmission Effects 0.000 description 15
- 230000003287 optical effect Effects 0.000 description 11
- 230000002093 peripheral effect Effects 0.000 description 11
- 238000010295 mobile communication Methods 0.000 description 10
- 238000004364 calculation method Methods 0.000 description 9
- 238000004422 calculation algorithm Methods 0.000 description 8
- 230000007246 mechanism Effects 0.000 description 8
- 230000006399 behavior Effects 0.000 description 7
- 238000012546 transfer Methods 0.000 description 6
- 241001465754 Metazoa Species 0.000 description 5
- 230000001133 acceleration Effects 0.000 description 5
- 230000033001 locomotion Effects 0.000 description 5
- 238000003062 neural network model Methods 0.000 description 5
- 230000011218 segmentation Effects 0.000 description 5
- 230000009466 transformation Effects 0.000 description 5
- MHABMANUFPZXEB-UHFFFAOYSA-N O-demethyl-aloesaponarin I Natural products O=C1C2=CC=CC(O)=C2C(=O)C2=C1C=C(O)C(C(O)=O)=C2C MHABMANUFPZXEB-UHFFFAOYSA-N 0.000 description 4
- 210000004556 brain Anatomy 0.000 description 4
- 238000013500 data storage Methods 0.000 description 4
- 238000011478 gradient descent method Methods 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 230000010267 cellular communication Effects 0.000 description 3
- 230000000295 complement effect Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000013135 deep learning Methods 0.000 description 3
- 239000000446 fuel Substances 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 230000001537 neural effect Effects 0.000 description 3
- 238000011022 operating instruction Methods 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 102100034112 Alkyldihydroxyacetonephosphate synthase, peroxisomal Human genes 0.000 description 2
- LFQSCWFLJHTTHZ-UHFFFAOYSA-N Ethanol Chemical compound CCO LFQSCWFLJHTTHZ-UHFFFAOYSA-N 0.000 description 2
- 101000799143 Homo sapiens Alkyldihydroxyacetonephosphate synthase, peroxisomal Proteins 0.000 description 2
- ATUOYWHBWRKTHZ-UHFFFAOYSA-N Propane Chemical compound CCC ATUOYWHBWRKTHZ-UHFFFAOYSA-N 0.000 description 2
- 230000009471 action Effects 0.000 description 2
- 230000004913 activation Effects 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 2
- 238000000848 angular dependent Auger electron spectroscopy Methods 0.000 description 2
- 230000003416 augmentation Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 2
- 239000000872 buffer Substances 0.000 description 2
- 238000002485 combustion reaction Methods 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 239000003502 gasoline Substances 0.000 description 2
- 230000010365 information processing Effects 0.000 description 2
- 239000002346 layers by function Substances 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 238000010606 normalization Methods 0.000 description 2
- 238000007500 overflow downdraw method Methods 0.000 description 2
- 230000036961 partial effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 101001093748 Homo sapiens Phosphatidylinositol N-acetylglucosaminyltransferase subunit P Proteins 0.000 description 1
- HBBGRARXTFLTSG-UHFFFAOYSA-N Lithium ion Chemical compound [Li+] HBBGRARXTFLTSG-UHFFFAOYSA-N 0.000 description 1
- 239000002253 acid Substances 0.000 description 1
- 238000005452 bending Methods 0.000 description 1
- 230000007175 bidirectional communication Effects 0.000 description 1
- 210000004027 cell Anatomy 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000003245 coal Substances 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 230000002650 habitual effect Effects 0.000 description 1
- 238000003709 image segmentation Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 238000012886 linear function Methods 0.000 description 1
- 229910001416 lithium ion Inorganic materials 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 239000003208 petroleum Substances 0.000 description 1
- 239000001294 propane Substances 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000000979 retarding effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/25—Fusion techniques
- G06F18/253—Fusion techniques of extracted features
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Evolutionary Computation (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computational Linguistics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Evolutionary Biology (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Image Analysis (AREA)
Abstract
一种多模态数据的处理方法,应用于人工智能技术领域。在该方法中,通过将不同模态的数据(即图像和点云数据)分别转换为相同格式的特征序列,并由同一个特征提取网络来处理不同模态数据对应的特征序列,能够保证基于一个特征提取网络即可实现不同模态数据的特征提取,无需部署对应于不同模态数据的多个编码器,节省了设备的存储资源;并且,基于同一个特征提取网络来处理不同模态数据对应的特征序列,使得人工智能硬件能够实现对不同模态数据的并行处理,提高数据的处理效率,有效地降低了不同模态数据的融合时长。
Description
技术领域
本申请实施例涉及人工智能(Artificial Intelligence,AI)技术领域,尤其涉及一种多模态数据的处理方法及相关装置。
背景技术
在可靠的自动驾驶系统中,感知三维(3-dimension,3D)空间中的物理世界是至关重要的。随着自动驾驶领域的传感器变得更加先进,以一种统一的方式集成从不同传感器(如摄像头和激光雷达)捕获的互补信号是必要的。
从多传感器系统获取的数据在根本上以不同的模态表示:例如,摄像头捕捉到语义丰富的图像,而激光雷达在3D空间中获取具有精确几何信息的点云。集成这些互补的传感器信号是实现鲁棒的3D感知的理想解决方案。然而,由于原始数据表示的巨大差异,开发有效的融合方法并不容易。
目前,相关技术中融合图像和点云数据的具体方式为:先分别通过图像编码器和点云编码器来提取得到图像特征以及点云特征,然后将这两种模态的特征都转换至统一的一个空间(例如鸟瞰视角(Bird’s-Eye-View,BEV)空间)中进行融合,从而得到融合后的特征。
然而,相关技术中是需要使用每个模态特定的编码器来分别对不同模态的数据进行特征提取,即分别采用图像编码器和点云编码器来执行特征提取,使得设备上需要同时部署多个编码器,且设备上的AI硬件无法并行地处理不同模态的数据,导致设备的存储资源开销较大且设备的推理时延较长。
发明内容
本申请提供了一种多模态数据的处理方法,能够节省设备的存储资源且提高数据的处理效率,有效地降低了不同模态数据的融合时长。
本申请第一方面提供一种多模态数据的处理方法,应用于对不同模态的图像和点云数据进行融合。该方法包括:首先,获取第一图像和点云数据。其中,第一图像和点云数据可以是在同一个场景下采集得到的。例如,第一图像和点云数据均是在自动驾驶场景下的同一个自动驾驶车辆上获得的。
然后,将第一图像转换为图像特征序列,以及将点云数据转换为点云特征序列,图像特征序列和点云特征序列均包括多个向量,且图像特征序列和点云特征序列中所包括的向量的维度相同,以便于后续基于同一个网络模型来处理不同模态数据所对应的特征序列。其中,将第一图像转换为图像特征序列实际上是以特征序列的方式来表示第一图像中的画面内容,将点云数据转换为点云特征序列则是以特征序列的方式来表示点云数据中稀疏分布的点。
其次,通过特征提取网络分别对图像特征序列和点云特征序列进行处理,得到对应于图像特征序列的第一特征序列以及对应于点云特征序列的第二特征序列。也就是说,在图像特征序列和点云特征序列均是由维度相同的多个向量构成的情况下,特征提取网络可以实现对不同模态数据对应的特征序列进行处理,从而得到对应于不同模态数据的特征序列。
最后,对第一特征序列和第二特征序列进行融合处理,得到融合特征,融合特征用于执行环境感知任务,例如目标检测任务、语义分割任务等任务。
本方案中,通过将不同模态的数据(即图像和点云数据)分别转换为相同格式的特征序列,并由同一个特征提取网络来处理不同模态数据对应的特征序列,能够保证基于一个特征提取网络即可实现不同模态数据的特征提取,无需部署对应于不同模态数据的多个编码器,节省了设备的存储资源;并且,基于同一个特征提取网络来处理不同模态数据对应的特征序列,使得AI硬件能够实现对不同模态数据的并行处理,提高数据的处理效率,有效地降低了不同模态数据的融合时长。
在一种可能的实现方式中,对第一特征序列和第二特征序列进行融合处理,得到融合特征,包括:基于点云数据中的点在图像空间中的投影位置,将第二特征序列中的向量融合至第一特征序列中,得到第一融合序列,其中第二特征序列中的向量在点云数据中具有对应的点;基于第一图像中的图像块在点云空间的映射位置,将第一特征序列中的向量融合至第二特征序列中,得到第二融合序列,第一特征序列中的向量在第一图像中具有对应的图像块。即,第一融合序列是在图像空间下融合得到的特征序列,第二融合序列则是点云空间下融合得到的特征序列。这样,对第一融合序列和第二融合序列进行融合处理,得到融合特征。
本方案中,通过分别在图像空间以及点云空间融合第一特征序列和第二特征序列,然后再将图像空间和点云空间下融合得到的融合序列在统一的空间进行融合,能够很好地实现图像特征和点云特征的融合,保证最终得到的融合特征的准确性。
在一种可能的实现方式中,基于点云数据中的点在图像空间中的投影位置,将第二特征序列中的向量融合至第一特征序列中,包括:将点云数据中的点投影至图像空间,得到点云数据中的点在第一图像中的投影位置;将第一特征序列中的第一向量调整为第一向量与第二特征序列中的第二向量的融合结果;其中,第二向量所对应的点的投影位置位于第一向量所对应的图像块中。也就是说,第一特征序列中的第一向量和第二特征序列中的第二向量是通过将点云数据投影至图像空间所确定的具有对应关系的向量。
本方案中,通过将点云数据中的点投影至图像空间,可以确定点在图像空间中的位置,进而确定第二特征序列中与第一特征序列具有对应关系的向量,通过在第一特征序列的基础上融合具有对应关系的向量,实现在图像空间中融合第一特征序列和第二特征序列,使得点云特征能够与其邻近的图像特征进行交互,保证图像和点云数据的顺利融合。
在一种可能的实现方式中,基于第一图像中的图像块在点云空间的映射位置,将第一特征序列中的向量融合至第二特征序列中,包括:将第一图像中的图像块映射至点云空间,得到第一图像中的图像块在点云空间中的映射位置;将第二特征序列中的第三向量调整为第三向量与第一特征序列中的第四向量的融合结果;其中,第三向量所对应的图像块的映射位置位于第四向量所对应的点所处的立方体空间中。
本方案中,通过将第一图像中的图像块投影至点云空间,可以确定图像块在点云空间中的位置,进而确定第一特征序列中与第二特征序列具有对应关系的向量,通过在第二特征序列的基础上融合具有对应关系的向量,实现在点云空间中融合第一特征序列和第二特征序列,使得图像特征能够与其相近的点云特征进行交互,保证图像和点云数据的顺利融合。
在一种可能的实现方式中,将第一图像中的图像块映射至点云空间,包括:基于点云数据中的点在第一图像中的投影位置,确定距离第一图像中的第一图像块最近的至少一个投影位置。其中,第一图像块为第一图像中的任意一个图像块。然后,基于至少一个投影位置对应的点的深度,确定第一图像块在点云空间的映射位置。即,基于至少一个投影位置对应的点的深度,可以确定第一图像块在点云空间的深度;这样,再基于第一图像块在图像空间的二维坐标以及图像空间到点云空间的转换关系,即可确定第一图像块在点云空间的映射位置。
总的来说,在将点云数据中的点投影至第一图像后,对于第一图像中的每个图像块,都可以找到离该图像块最近的一个或多个投影位置,从而基于这些投影位置的点的深度来确定图像块在点云空间中的深度,进而确定图像块在点云空间中的映射位置。
本方案中,通过先将点云数据中的点投影至图像空间中,然后通过在图像上寻找最近的投影位置,来确定图像上的图像块在点云空间的深度,进而,能够保证图像上的图像块能够准确地映射到点云空间,提高方案的可实现性。
在一种可能的实现方式中,对第一融合序列和第二融合序列进行融合处理,得到融合特征,包括:将第一融合序列和第二融合序列分别转换至BEV空间,得到第一BEV特征和第二BEV特征;融合第一BEV特征和第二BEV特征,得到融合特征。具体地,在融合第一BEV特征和第二BEV特征的过程中,可以是将第一BEV特征和第二BEV特征中位于相同位置的向量进行融合(例如将向量进行求和),从而得到融合特征。
本方案中,通过分别在图像空间以及点云空间融合第一特征序列和第二特征序列,然后再将图像空间和点云空间下融合得到的融合序列在统一的空间进行融合,能够很好地实现图像特征和点云特征的融合,保证最终得到的融合特征的准确性。
在一种可能的实现方式中,将第一图像转换为图像特征序列,包括:将第一图像划分为多个图像块;通过第一特征转换器将多个图像块中的每个图像块转换为向量,得到由多个图像块对应的多个向量排列构成的图像特征序列。其中,第一特征转换器例如可以为线性神经网络。
本方案中,通过将第一图像划分为多个图像块,并基于第一特征转换器将每个图像块转换为特定维度大小的向量,从而得到由多个向量排列而成的图像特征序列,保证针对不同格式的图像均能够得到相同格式的特征序列,确保方案的可实现性和兼容性。
在一种可能的实现方式中,将点云数据转换为点云特征序列,包括:基于点云数据划分得到多个立方体空间,多个立方体空间中的每个立方体空间包括点云数据中的一个或多个点;基于每个立方体空间中所包括的点,通过第二特征转换器将多个立方体空间中的每个立方体空间转换为向量,得到由多个立方体空间对应的多个向量排列构成的点云特征序列。其中,第二特征转换器例如可以为线性神经网络。
本方案中,通过基于点云数据划分为多个立方体空间,并基于第二特征转换器将每个立方体空间中的点转换为特定维度大小的向量,从而得到由多个向量排列而成的点云特征序列,保证针对不同分布的点云数据均能够得到相同格式的特征序列,确保方案的可实现性和兼容性。
在一种可能的实现方式中,第一图像和点云数据的采集场景为以下的任意一个场景:自动驾驶场景、机器人行驶场景以及智能巡检场景。
本申请第二方面提供一种多模态数据的处理装置,包括:获取模块,用于获取第一图像和点云数据;处理模块,用于将第一图像转换为图像特征序列,以及将点云数据转换为点云特征序列,图像特征序列和点云特征序列均包括多个向量,且图像特征序列和点云特征序列中所包括的向量的维度相同;处理模块,还用于通过特征提取网络分别对图像特征序列和点云特征序列进行处理,得到对应于图像特征序列的第一特征序列以及对应于点云特征序列的第二特征序列;处理模块,还用于对第一特征序列和第二特征序列进行融合处理,得到融合特征,融合特征用于执行环境感知任务。
在一种可能的实现方式中,处理模块,还用于:基于点云数据中的点在图像空间中的投影位置,将第二特征序列中的向量融合至第一特征序列中,得到第一融合序列,其中第二特征序列中的向量在点云数据中具有对应的点;基于第一图像中的图像块在点云空间的映射位置,将第一特征序列中的向量融合至第二特征序列中,得到第二融合序列,第一特征序列中的向量在第一图像中具有对应的图像块;对第一融合序列和第二融合序列进行融合处理,得到融合特征。
在一种可能的实现方式中,处理模块,还用于:将点云数据中的点投影至图像空间,得到点云数据中的点在第一图像中的投影位置;将第一特征序列中的第一向量调整为第一向量与第二特征序列中的第二向量的融合结果;其中,第二向量所对应的点的投影位置位于第一向量所对应的图像块中。
在一种可能的实现方式中,处理模块,还用于:将第一图像中的图像块映射至点云空间,得到第一图像中的图像块在点云空间中的映射位置;将第二特征序列中的第三向量调整为第三向量与第一特征序列中的第四向量的融合结果;其中,第三向量所对应的图像块的映射位置位于第四向量所对应的点所处的立方体空间中。
在一种可能的实现方式中,处理模块,还用于:基于点云数据中的点在第一图像中的投影位置,确定距离第一图像中的第一图像块最近的至少一个投影位置;基于至少一个投影位置对应的点的深度,确定第一图像块在点云空间的映射位置。
在一种可能的实现方式中,处理模块,还用于:将第一融合序列和第二融合序列分别转换至BEV空间,得到第一BEV特征和第二BEV特征;融合第一BEV特征和第二BEV特征,得到融合特征。
在一种可能的实现方式中,处理模块,还用于:将第一图像划分为多个图像块;通过第一特征转换器将多个图像块中的每个图像块转换为向量,得到由多个图像块对应的多个向量排列构成的图像特征序列。
在一种可能的实现方式中,处理模块,还用于:基于点云数据划分得到多个立方体空间,多个立方体空间中的每个立方体空间包括点云数据中的一个或多个点;基于每个立方体空间中所包括的点,通过第二特征转换器将多个立方体空间中的每个立方体空间转换为向量,得到由多个立方体空间对应的多个向量排列构成的点云特征序列。
在一种可能的实现方式中,第一图像和点云数据是在同一个场景下采集得到的。
在一种可能的实现方式中,第一图像和点云数据的采集场景为以下的任意一个场景:自动驾驶场景、机器人行驶场景以及智能巡检场景。
本申请第三方面提供一种多模态数据的处理装置,可以包括处理器,处理器和存储器耦合,存储器存储有程序指令,当存储器存储的程序指令被处理器执行时实现上述第一方面或第一方面任一实现方式的方法。对于处理器执行第一方面的各个可能实现方式中的步骤,具体均可以参阅第一方面,此处不再赘述。
本申请第四方面提供了一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,当其在计算机上运行时,使得计算机执行上述第一方面任一实现方式的方法。
本申请第五方面提供了一种电路系统,电路系统包括处理电路,处理电路配置为执行上述第一方面任一实现方式的方法。
本申请第六方面提供了一种计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面任一实现方式的方法。
本申请第七方面提供了一种芯片系统,该芯片系统包括处理器,用于支持服务器或门限值获取装置实现上述第一方面任一实现方式中所涉及的功能,例如,发送或处理上述方法中所涉及的数据和/或信息。在一种可能的设计中,芯片系统还包括存储器,存储器,用于保存服务器或通信设备必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包括芯片和其他分立器件。
上述第二方面至第七方面的有益效果可以参考上述第一方面的介绍,在此不再赘述。
附图说明
图1A为本申请实施例提供的一种行驶于道路上的自动驾驶车辆的示意图;
图1B为本申请实施例提供的一种输电行业的巡检机器人的示意图;
图2为本申请实施例提供的车辆100的一种结构示意图;
图3为本申请实施例提供的一种车辆内的计算机系统101的结构示意图;
图4为本申请实施例提供的一种机器人400的结构示意图;
图5为本申请实施例提供的一种多模态数据的处理方法的流程示意图;
图6为本申请实施例提供的一种自动驾驶场景下融合第一图像和点云数据的流程示意图;
图7为本申请实施例提供的一种对第一图像和点云数据执行特征转换的示意图;
图8为本申请实施例提供的一种对第一特征序列和第二特征序列进行融合处理的示意图;
图9为本申请实施例提供的一种在图像空间融合第一特征序列和第二特征序列的示意图;
图10为本申请实施例提供的一种在点云空间融合第一特征序列和第二特征序列的示意图;
图11A为本申请实施例提供的一种不同模态数据的融合处理的流程示意图;
图11B为本申请实施例提供的一种不同的多模态数据处理方法的对比示意图;
图12为本申请实施例提供的一种多模态数据的处理装置的结构示意图;
图13为本申请实施例提供的执行设备的一种结构示意图;
图14为本申请实施例提供的芯片的一种结构示意图;
图15为本申请实施例提供的一种计算机可读存储介质的结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,下面结合附图,对本申请的实施例进行描述。显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。本领域普通技术人员可知,随着新应用场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的描述在适当情况下可以互换,以便使实施例能够以除了在本申请图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或模块的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或模块,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或模块。在本申请中出现的对步骤进行的命名或者编号,并不意味着必须按照命名或者编号所指示的时间/逻辑先后顺序执行方法流程中的步骤,已经命名或者编号的流程步骤可以根据要实现的技术目的变更执行顺序,只要能达到相同或者相类似的技术效果即可。本申请中所出现的单元的划分,是一种逻辑上的划分,实际应用中实现时可以有另外的划分方式,例如多个单元可以结合成或集成在另一个系统中,或一些特征可以忽略,或不执行,另外,所显示的或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元之间的间接耦合或通信连接可以是电性或其他类似的形式,本申请中均不作限定。并且,作为分离部件说明的单元或子单元可以是也可以不是物理上的分离,可以是也可以不是物理单元,或者可以分布到多个电路单元中,可以根据实际的需要选择其中的部分或全部单元来实现本申请方案的目的。
为便于理解,以下先介绍本申请实施例所涉及的一些技术术语。
(1)神经网络
神经网络可以是由神经单元组成的,具体可以理解为具有输入层、隐含层、输出层的神经网络,一般来说第一层是输入层,最后一层是输出层,中间的层数都是隐含层。其中,具有很多层隐含层的神经网络则称为深度神经网络(deep neural network,DNN)。神经网络中的每一层的工作可以用数学表达式来描述,从物理层面,神经网络中的每一层的工作可以理解为通过五种对输入空间(输入向量的集合)的操作,完成输入空间到输出空间的变换(即矩阵的行空间到列空间),这五种操作包括:1、升维/降维;2、放大/缩小;3、旋转;4、平移;5、“弯曲”。其中1、2、3的操作由/>完成,4的操作由“+b”完成,5的操作则由“a()”来实现。这里之所以用“空间”二字来表述是因为被分类的对象并不是单个事物,而是一类事物,空间是指这类事物所有个体的集合,其中,W是神经网络各层的权重矩阵,该矩阵中的每一个值表示该层的一个神经元的权重值。该矩阵W决定着上文所述的输入空间到输出空间的空间变换,即神经网络每一层的W控制着如何变换空间。训练神经网络的目的,也就是最终得到训练好的神经网络的所有层的权重矩阵。因此,神经网络的训练过程本质上就是学习控制空间变换的方式,更具体的就是学习权重矩阵。
(2)注意力网络
注意力网络是一种利用注意力机制来提高模型训练速度的网络模型。目前,典型的注意力网络包括有Transformer网络。应用注意力机制的模型能够对输入序列的每个部分赋予不同的权重,从而在输入序列中提取出更加重要的特征信息,使得模型最终得到更加精确的输出。
在深度学习中,注意力机制可以由描述重要性的权重向量来实现:在预测或推断一个元素时,通过权重向量来确定该元素与其他元素之间的关联性。比如,对于图像中的某个像素或句子中的某个单词,可以使用注意力向量定量地估计出目标元素与其他元素之间的相关性,并由注意力向量的加权和作为目标值的近似值。
深度学习中的注意力机制模拟的是人脑的注意力机制。举个例子来说,当人类观赏一幅画时,虽然人类的眼睛可以看到整幅画的全貌,但是在人类深入仔细地观察时,其实眼睛聚焦的只有整幅画中的一部分图案,这个时候人类的大脑主要关注在这一小块图案上。也就是说,在人类仔细观察图像时,人脑对整幅图像的关注并不是均衡的,是有一定的权重区分的,这就是注意力机制的核心思想。
简单来说,人类的视觉处理系统往往会选择性地聚焦于图像的某些部分上,而忽略其它不相关的信息,从而有助于人脑的感知。类似地,在深度学习的注意力机制中,在涉及语言、语音或视觉的一些问题中,输入的某些部分相比其它部分可能更相关。因此,通过注意力模型中的注意力机制,能够使得注意力模型对输入数据的不同部分执行不同的处理,从而使得注意力模型仅动态地关注与任务相关的数据。
(3)损失函数
在训练神经网络的过程中,因为希望神经网络的输出尽可能的接近真正想要预测的值,可以通过比较当前网络的预测值和真正想要的目标值,再根据两者之间的差异情况来更新每一层神经网络的权重矩阵(当然,在第一次更新之前通常会有初始化的过程,即为神经网络中的各层预先配置参数),比如,如果网络的预测值高了,就调整权重矩阵让它预测低一些,不断的调整,直到神经网络能够预测出真正想要的目标值。因此,就需要预先定义“如何比较预测值和目标值之间的差异”,这便是损失函数(loss function)或目标函数(objective function),它们是用于衡量预测值和目标值的差异的重要方程。其中,以损失函数举例,损失函数的输出值(loss)越高表示差异越大,那么神经网络的训练就变成了尽可能缩小这个loss的过程。
(4)反向传播算法
在神经网络的训练过程中,可以采用误差反向传播(back propagation,BP)算法修正初始的神经网络模型中参数的大小,使得神经网络模型的重建误差损失越来越小。具体地,前向传递输入信号直至输出会产生误差损失,通过反向传播误差损失信息来更新初始的神经网络模型中的参数,从而使误差损失收敛。反向传播算法是以误差损失为主导的反向传播运动,旨在得到最优的神经网络模型的参数,例如权重矩阵。
(5)梯度下降法(Gradient descent)
梯度下降法是一个一阶最优化算法,常用于机器学习当中用来递归性地逼近最小偏差预测模型。要使用梯度下降法找到一个函数的局部极小值,必须向函数上当前点对应梯度(或者是近似梯度)的反方向的规定步长距离点进行迭代搜索。在求解机器学习算法的预测模型参数,即无约束优化问题时,梯度下降法是最常采用的方法之一。
具体来说,在求解损失函数的最小值时,可以通过梯度下降法来一步步的迭代求解,得到最小化的损失函数值和预测模型参数值。反过来,如果我们需要求解损失函数的最大值,这时就需要用梯度上升法来迭代了。
(6)点云数据(point cloud data)
点云数据是指在一个三维坐标系统中的一组向量的集合。通常,点云数据是通过激光扫描仪(例如激光雷达)对环境进行扫描得到的。并且,点云数据是以点的形式记录,每一个点包含有三维坐标。在一些情况下,点云数据中的点可能含有颜色信息或反射强度信息。其中,反射强度信息是指激光扫描仪接收装置采集到的回波强度,该反射强度信息与目标的表面材质、粗糙度、入射角方向,以及仪器的发射能量,激光波长有关。
(7)激光雷达(Laser Radar)
激光雷达是一种以发射激光束探测目标的位置、速度等特征量的雷达系统。激光雷达的工作原理是向目标发射探测信号(激光束),然后将接收到的从目标反射回来的信号(目标回波)与发射信号进行比较和适当的处理,进而获得目标的有关信息,如目标距离、方位、高度、速度、姿态、甚至形状等参数,从而实现对地表上的路面或障碍物等目标进行探测。一般来说,激光雷达可以是由激光发射机、光学接收机和信息处理系统等组成,激光发射机将电脉冲变成光脉冲发射出去,光学接收机再把从目标反射回来的光脉冲还原成电脉冲,送到信息处理系统进行处理。
(8)编码器
在本申请实施例中,编码器本质上是一种神经网络模型,能够将文本或图像等数据转换为一个编码空间中的向量(即将文本或图像转换为文本特征或图像特征)。
本实施例提供的多模态数据的处理方法可以应用于需要对图像和点云数据进行融合的电子设备上,例如应用于自动驾驶领域下的自动驾驶车辆,或者是具有形势和环境探测能力的机器人,又或者是应用于能够获取到待融合的图像和点云数据的服务器上。
具体地,自动驾驶车辆上部署有图像采集装置和激光雷达,能够在行驶过程中通过图像采集装置采集道路上的环境图像,以及通过激光雷达采集周围环境的点云数据。这样,自动驾驶车辆能够通过采集得到的环境图像和点云数据来确定行驶环境的情况,从而决定自动驾驶车辆的行驶策略。示例性地,请参阅图1A,图1A为本申请实施例提供的一种行驶于道路上的自动驾驶车辆的示意图。
机器人例如为输电行业的巡检机器人(例如变电站内部的巡检机器人)、煤矿行业的搬运机器人或巡检机器人、物流行业的搬运机器人或地下探测机器人等机器人。类似地,机器人上也部署有图像采集装置和激光雷达,能够在行驶过程中通过图像采集装置采集环境图像,以及通过激光雷达采集周围环境的点云数据,以便于机器人基于环境图像和点云数据实现避障等行驶操作。示例性地,请参阅图1B,图1B为本申请实施例提供的一种输电行业的巡检机器人的示意图。
服务器例如可以为巡检场景下的集中处理服务器,用于获取不同设备所反馈的图像和点云数据,并对图像和点云数据进行处理。例如,在输电行业的巡检领域下,可以通过固定在输电杆塔上的摄像头或者是地面上的巡检机器人获取输电杆塔相关的图像,并将获取到的图像传输给服务器;以及,通过搭载有激光雷达的无人机来采集输电杆塔周围环境的点云数据,并将点云数据传输给服务器。在这种情况下,服务器可以是基于所获取到的输电杆塔相关的图像和点云数据,通过融合处理图像和点云数据,来判断输电杆塔是否处于正常输电而没有被其他异物影响的状态。
为了便于理解本方案,本申请实施例中结合图2对本申请提供的车辆的结构进行介绍。请参阅图2,图2为本申请实施例提供的车辆100的一种结构示意图。
如图2所示,在一个实施例中,车辆100可以配置为完全或部分地自动驾驶模式。例如,车辆100可以在处于自动驾驶模式中的同时控制自身,并且可通过人为操作来确定车辆及其周边环境的当前状态,确定周边环境中的至少一个其他车辆的可能行为,并确定该其他车辆执行可能行为的可能性相对应的置信水平,基于所确定的信息来控制车辆100。在车辆100处于自动驾驶模式中时,可以将车辆100置为在没有和人交互的情况下操作。
车辆100可包括各种子系统,例如行进系统102、传感器系统104、控制系统106、一个或多个外围设备108以及电源110、计算机系统101和用户接口116。可选地,车辆100可包括更多或更少的子系统,并且每个子系统可包括多个元件,例如每个子系统包括多个电子控制单元(Electronic Control Unit,ECU)。另外,车辆100的每个子系统和元件可以通过有线或者无线互连。
行进系统102可包括为车辆100提供动力运动的组件。在一个实施例中,推进系统102可包括引擎118、能量源119、传动装置120和车轮/轮胎121。引擎118可以是内燃引擎、电动机、空气压缩引擎或其他类型的引擎组合,例如汽油发动机和电动机组成的混动引擎,内燃引擎和空气压缩引擎组成的混动引擎。引擎118将能量源119转换成机械能量。
能量源119的示例包括汽油、柴油、其他基于石油的燃料、丙烷、其他基于压缩气体的燃料、乙醇、太阳能电池板、电池和其他电力来源。能量源119也可以为车辆100的其他系统提供能量。
传动装置120可以将来自引擎118的机械动力传送到车轮121。传动装置120可包括变速箱、差速器和驱动轴。在一个实施例中,传动装置120还可以包括其他器件,比如离合器。其中,驱动轴可包括可耦合到一个或多个车轮121的一个或多个轴。
传感器系统104可包括感测关于车辆100周边的环境的信息的若干个传感器。例如,传感器系统104可包括定位系统122(定位系统可以是GPS系统,也可以是北斗系统或者其他定位系统)、惯性测量单元(inertial measurement unit,IMU)124、雷达126、激光测距仪128以及相机130。传感器系统104还可包括被监视车辆100的内部系统的传感器(例如,车内空气质量监测器、燃油量表、机油温度表等)。来自这些传感器中的一个或多个的传感器数据可用于检测对象及其相应特性(位置、形状、方向、速度等)。这种检测和识别是车辆100的安全操作的关键功能。
定位系统122可用于估计车辆100的地理位置。IMU 124用于基于惯性加速度来感测车辆100的位置和朝向变化。在一个实施例中,IMU 124可以是加速度计和陀螺仪的组合。
雷达126可利用无线电信号来感测车辆100的周边环境内的物体。在一些实施例中,除了感测物体以外,雷达126还可用于感测物体的速度和/或前进方向。
激光测距仪128可利用激光来感测车辆100所位于的环境中的物体。在一些实施例中,激光测距仪128可包括一个或多个激光源、激光扫描器以及一个或多个处理模块,以及其他系统组件。
相机130可用于捕捉车辆100的周边环境的多个图像。相机130可以是静态相机或视频相机。
控制系统106为控制车辆100及其组件的操作。控制系统106可包括各种元件,其中包括转向系统132、油门134、制动单元136、计算机视觉系统140、路线控制系统142以及障碍物避免系统144。
转向系统132可操作来调整车辆100的前进方向。例如在一个实施例中可以为方向盘系统。
油门134用于控制引擎118的操作速度并进而控制车辆100的速度。
制动单元136用于控制车辆100减速。制动单元136可使用摩擦力来减慢车轮121。在其他实施例中,制动单元136可将车轮121的动能转换为电流。制动单元136也可采取其他形式来减慢车轮121转速从而控制车辆100的速度。
计算机视觉系统140可以操作来处理和分析由相机130捕捉的图像以便识别车辆100周边环境中的物体和/或特征。所述物体和/或特征可包括交通信号、道路边界和障碍物。计算机视觉系统140可使用物体识别算法、运动中恢复结构(Structure from Motion,SFM)算法、视频跟踪和其他计算机视觉技术。在一些实施例中,计算机视觉系统140可以用于为环境绘制地图、跟踪物体、估计物体的速度等等。
路线控制系统142用于确定车辆100的行驶路线。在一些实施例中,路线控制系统142可结合来自GPS 122和一个或多个预定地图的数据以为车辆100确定行驶路线。
障碍物避免系统144用于识别、评估和避免或者以其他方式越过车辆100的环境中的潜在障碍物。
当然,在一个实例中,控制系统106可以增加或替换地包括除了所示出和描述的那些以外的组件。或者也可以减少一部分上述示出的组件。
车辆100通过外围设备108与外部传感器、其他车辆、其他计算机系统或用户之间进行交互。外围设备108可包括无线通信系统146、车载电脑148、麦克风150和/或扬声器152。
在一些实施例中,外围设备108提供车辆100的用户与用户接口116交互的手段。例如,车载电脑148可向车辆100的用户提供信息。用户接口116还可操作车载电脑148来接收用户的输入。车载电脑148可以通过触摸屏进行操作。在其他情况中,外围设备108可提供用于车辆100与位于车内的其它设备通信的手段。例如,麦克风150可从车辆100的用户接收音频(例如,语音命令或其他音频输入)。类似地,扬声器152可向车辆100的用户输出音频。
无线通信系统146可以直接地或者经由通信网络来与一个或多个设备无线通信。例如,无线通信系统146可使用3G蜂窝通信,例如CDMA、EVD0、GSM/GPRS,或者4G蜂窝通信,例如LTE。或者5G蜂窝通信。无线通信系统146可利用WiFi与无线局域网(wireless localarea network,WLAN)通信。在一些实施例中,无线通信系统146可利用红外链路、蓝牙或ZigBee与设备直接通信。其他无线协议,例如各种车辆通信系统,例如,无线通信系统146可包括一个或多个专用短程通信(dedicated short range communications,DSRC)设备,这些设备可包括车辆和/或路边台站之间的公共和/或私有数据通信。
电源110可向车辆100的各种组件提供电力。在一个实施例中,电源110可以为可再充电锂离子或铅酸电池。这种电池的一个或多个电池组可被配置为电源为车辆100的各种组件提供电力。在一些实施例中,电源110和能量源119可一起实现,例如一些全电动车中那样。
车辆100的部分或所有功能受计算机系统101控制。计算机系统101可包括至少一个处理器113,处理器113执行存储在例如数据存储装置114这样的非暂态计算机可读介质中的指令115。计算机系统101还可以是采用分布式方式控制车辆100的个体组件或子系统的多个计算设备。
处理器113可以是任何常规的处理器,诸如商业可获得的CPU。替选地,该处理器可以是诸如ASIC或其它基于硬件的处理器的专用设备。尽管图2功能性地图示了处理器、存储器、和在相同块中的计算机110的其它元件,但是本领域的普通技术人员应该理解该处理器、计算机、或存储器实际上可以包括可以或者可以不存储在相同的物理外壳内的多个处理器、计算机、或存储器。
例如,存储器可以是硬盘驱动器或位于不同于计算机110的外壳内的其它存储介质。因此,对处理器或计算机的引用将被理解为包括对可以或者可以不并行操作的处理器或计算机或存储器的集合的引用。不同于使用单一的处理器来执行此处所描述的步骤,诸如转向组件和减速组件的一些组件每个都可以具有其自己的处理器,所述处理器只执行与特定于组件的功能相关的计算。
在此处所描述的各个方面中,处理器可以位于远离该车辆并且与该车辆进行无线通信。在其它方面中,此处所描述的过程中的一些在布置于车辆内的处理器上执行而其它则由远程处理器执行,包括采取执行单一操纵的必要步骤。
在一些实施例中,存储器114可包含指令115(例如,程序逻辑),指令115可被处理器执行来执行车辆100的各种功能,包括以上描述的那些功能。数据存储装置114也可包含额外的指令,包括向推进系统102、传感器系统104、控制系统106和外围设备108中的一个或多个发送数据、从其接收数据、与其交互和/或对其进行控制的指令。
除了指令115以外,存储器114还可存储数据,例如道路地图、路线信息,车辆的位置、方向、速度以及其它这样的车辆数据,以及其他信息。这种信息可在车辆100在自主、半自主和/或手动模式中操作期间被车辆100和计算机系统101使用。
用户接口116,用于向车辆100的用户提供信息或从其接收信息。可选地,用户接口116可包括在外围设备108的集合内的一个或多个输入/输出设备,例如无线通信系统146、车车在电脑148、麦克风150和扬声器152。
计算机系统101可基于从各种子系统(例如,行进系统102、传感器系统104和控制系统106)以及从用户接口116接收的输入来控制车辆100的功能。例如,计算机系统101可利用来自控制系统106的输入以便控制转向单元132来避免由传感器系统104和障碍物避免系统144检测到的障碍物。在一些实施例中,计算机系统101可操作来对车辆100及其子系统的许多方面提供控制。
可选地,上述这些组件中的一个或多个可与车辆100分开安装或关联。例如,存储器114可以部分或完全地与车辆100分开存在。上述组件可以按有线和/或无线方式来通信地耦合在一起。
可选地,上述组件只是一个示例,实际应用中,上述各个模块中的组件有可能根据实际需要增添或者删除,图2不应理解为对本申请实施例的限制。
在道路行进的自动驾驶汽车,如上面的车辆100,可以识别其周围环境内的物体以确定对当前速度的调整。所述物体可以是其它车辆、交通控制设备、或者其它类型的物体。在一些示例中,可以独立地考虑每个识别的物体,并且基于物体的各自的特性,诸如它的当前速度、加速度、与车辆的间距等,可以用来确定自动驾驶汽车所要调整的速度。
可选地,车辆100或者与车辆100相关联的计算设备(如图1的计算机系统101、计算机视觉系统140、存储器114)可以基于所识别的物体的特性和周围环境的状态(例如,交通、雨、道路上的冰、等等)来预测所述识别的物体的行为。可选地,每一个所识别的物体都依赖于彼此的行为,因此还可以将所识别的所有物体全部一起考虑来预测单个识别的物体的行为。车辆100能够基于预测的所述识别的物体的行为来调整它的速度。
换句话说,自动驾驶汽车能够基于所预测的物体的行为来确定车辆将需要调整到(例如,加速、减速、或者停止)什么稳定状态。在这个过程中,也可以考虑其它因素来确定车辆100的速度,诸如,车辆100在行驶的道路中的横向位置、道路的曲率、静态和动态物体的接近度等等。
除了提供调整自动驾驶汽车的速度的指令之外,计算设备还可以提供修改车辆100的转向角的指令,以使得自动驾驶汽车遵循给定的轨迹和/或维持与自动驾驶汽车附近的物体(例如,道路上的相邻车道中的轿车)的安全横向和纵向距离。
上述车辆100可以为轿车、卡车、摩托车、公共汽车、娱乐车、游乐场车辆、施工设备、电车以及高尔夫球车等,本申请实施例不做特别的限定。
图2所示的车辆100中,可以配置有用于实现自动驾驶功能的高级驾驶辅助系统,高级驾驶辅助系统中包含有大量的参数需要进行标定。具体来说,车辆的高级驾驶辅助系统的标定实施过程,主要包括执行层、感知层和功能层中各子系统参数的标定工作。执行层涉及动力系统标定、制动系统标定、转向系统标定、四轮定位参数和悬架系统标定等。感知层涉及GNSS与INS(Initial Navigation System,惯性导航系统)标定、摄像头标定、激光雷达标定、毫米波雷达标定、超声波雷达标定等。GNSS包括GPS(Global Position System,全球定位系统)、GLONASS(Global Navigation Satellite System,格洛纳斯卫星导航系统)、Galileo(Galileo navigation satellite system,伽利略卫星导航系统)、BDS(BeiDounavigation satellite system,北斗卫星导航系统)。功能层涉及车辆纵向控制模块标定、横向控制模块标定、ADAS基本功能标定、ADAS驾驶风格标定等。纵向控制主要为速度控制,通过控制刹车、油门、挡位等实现对车速的控制。横向控制主要为控制航向,通过改变方向盘扭矩或角度的大小等,使车辆按照想要的航向行驶。A D A S基本功能例如包括A C C(Adaptive Cruising System,自适应巡航)、LCC(Lane Center Control,车道居中控制)、ALC(Auto Lane Change,自动变道辅助)等。驾驶风格指开车的方式或习惯性的驾驶方法,其包含对驾驶速度的选择、对行车间距的选择等。驾驶风格例如包括激进型、平稳型、谨慎型等。
可以参阅图3,图3为本申请实施例提供的一种车辆内的计算机系统101的结构示意图。计算机系统101包括处理器103,处理器103和系统总线105耦合。其中,处理器103可以用于实现图2所述的处理器的功能。处理器103可以是一个或者多个处理器,其中每个处理器都可以包括一个或多个处理器核。显示适配器(video adapter)107,显示适配器可以驱动显示器109,显示器109和系统总线105耦合。系统总线105通过总线桥111和输入输出(I/O)总线耦合。I/O接口115和I/O总线耦合。I/O接口115和多种I/O设备进行通信,比如输入设备117(如:键盘,鼠标,触摸屏等),多媒体盘(media tray)121,(例如,CD-ROM,多媒体接口等)。收发器123(可以发送和/或接受无线电通信信号),摄像头155(可以捕捉动态数字视频图像)和外部USB端口125。其中,可选地,和I/O接口115相连接的接口可以是USB端口。
其中,处理器103可以是任何传统处理器,包括精简指令集计算(“RISC”)处理器、复杂指令集计算(“CISC”)处理器或上述的组合。可选地,处理器可以是诸如专用集成电路(“ASIC”)的专用装置。可选地,处理器103可以是神经网络处理器或者是神经网络处理器和上述传统处理器的组合。
可选地,在本文所述的各种实施例中,计算机系统101可位于远离自动驾驶车辆的地方,并且可与自动驾驶车辆无线通信。在其它方面,本文所述的一些过程在设置在自动驾驶车辆内的处理器上执行,其它由远程处理器执行,包括采取执行单个操纵所需的动作。
计算机系统101可以通过网络接口129和软件部署服务器149通信。网络接口129是硬件网络接口,比如,网卡。网络127可以是外部网络,比如因特网,也可以是内部网络,比如以太网或者虚拟私人网络(Virtual Private Network,VPN)。可选地,网络127还可以是无线网络,比如WiFi网络,蜂窝网络等。
硬盘驱动接口和系统总线105耦合。硬件驱动接口和硬盘驱动器相连接。系统内存135和系统总线105耦合。运行在系统内存135的数据可以包括计算机101的操作系统137和应用程序143。
操作系统包括Shell 139和内核(kernel)141。Shell 139是介于使用者和操作系统之内核(kernel)间的一个接口。shell是操作系统最外面的一层。shell管理使用者与操作系统之间的交互:等待使用者的输入,向操作系统解释使用者的输入,并且处理各种各样的操作系统的输出结果。
内核141由操作系统中用于管理存储器、文件、外设和系统资源的那些部分组成。直接与硬件交互,操作系统内核通常运行进程,并提供进程间的通信,提供CPU时间片管理、中断、内存管理、IO管理等等。
应用程序143包括路面检测相关程序147以及控制汽车自动驾驶相关的程序。其中,路面检测相关程序147用于对系统中处理模块所传输的电容信号进行处理。计算机系统101通过执行路面检测相关程序147,可以实现路面检测功能。
控制汽车自动驾驶相关的程序例如可以包括管理自动驾驶的汽车和路上障碍物交互的程序,控制自动驾驶汽车路线或者速度的程序,控制自动驾驶汽车和路上其他自动驾驶汽车交互的程序。应用程序143也存在于软件部署服务器149的系统上。
传感器153和计算机系统101关联。传感器153用于探测计算机系统101周围的环境。举例来说,传感器153可以探测动物,汽车,障碍物和人行横道等,进一步传感器还可以探测上述动物,汽车,障碍物和人行横道等物体周围的环境,比如:动物周围的环境,例如,动物周围出现的其他动物,天气条件,周围环境的光亮度等。
请参阅图4,图4为本申请实施例提供的一种机器人400的结构示意图。如图4所示,机器人400可以包括图像采集模块401、传感器402、处理器403、存储器404以及通信模块405。
其中,处理器403可以包括一个或多个处理单元,例如:处理器403可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
其中,控制器可以是机器人400的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器403中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器中的存储器为高速缓冲存储器。该存储器可以保存处理器刚用过或循环使用的指令或数据。如果处理器需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器403的等待时间,因而提高了系统的效率。
在一些实施例中,处理器403可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,通用异步收发传输器(universal asynchronousreceiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processorinterface,MIPI),通用输入输出(general-purpose input/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或通用串行总线(universal serialbus,USB)接口等。
接口是一种双向同步串行总线,包括一根串行数据线(serial data line,SDA)和一根串行时钟线(derail clock line,SCL)。在一些实施例中,处理器可以包含多组I2C总线。处理器可以通过不同的I2C总线接口分别耦合传感器,摄像头等。
UART接口是一种通用串行数据总线,用于异步通信。该总线可以为双向通信总线。它将要传输的数据在串行通信与并行通信之间转换。在一些实施例中,UART接口通常被用于连接处理器403与通信模块405。例如:处理器403通过UART接口与无线通信模块中的蓝牙模块通信,实现蓝牙功能。
IPI接口可以被用于连接处理器与摄像头等外围器件。MIPI接口包括摄像头串行接口(camera serial interface,CSI)等。在一些实施例中,处理器和摄像头通过CSI接口通信,实现机器人400的拍摄功能。
GPIO接口可以通过软件配置。GPIO接口可以被配置为控制信号,也可被配置为数据信号。在一些实施例中,GPIO接口可以用于连接处理器与摄像头,无线通信模块,传感器模块等。GPIO接口还可以被配置为I2C接口,UART接口,MIPI接口等。
USB接口是符合USB标准规范的接口,具体可以是Mini USB接口,Micro USB接口,USB Type C接口等。USB接口可以用于连接充电器为机器人400充电,也可以用于机器人400与外围设备之间传输数据。该接口还可以用于连接其他机器人400等。
图像采集模块401可以采集机器人400周边的图像信息,例如,拍摄照片或拍摄视频等。机器人400可以通过ISP,摄像头,视频编解码器,GPU,以及应用处理器等实现图像采集功能。
ISP用于处理摄像头反馈的数据。例如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将所述电信号传递给ISP处理,转化为肉眼可见的图像。ISP还可以对图像的噪点,亮度等进行算法优化。ISP还可以对拍摄场景的曝光,色温等参数优化。在一些实施例中,ISP可以设置在摄像头中。
摄像头用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,CCD)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,CMOS)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给ISP转换成数字图像信号。ISP将数字图像信号输出到DSP加工处理。DSP将数字图像信号转换成标准的RGB,YUV等格式的图像信号。在一些实施例中,机器人400可以包括1个或N个摄像头,N为大于1的正整数。
传感器402可以获取机器人400的移动速度、移动方向以及与周边物体之间的距离等信息。示例性的,传感器402可以包括陀螺仪传感器,速度传感器,加速度传感器,距离传感器等。
其中,陀螺仪传感器可以用于确定机器人400的运动姿态。在一些实施例中,可以通过陀螺仪传感器确定机器人400围绕三个轴(即,x,y和z轴)的角速度。陀螺仪传感器可以用于拍摄防抖。示例性的,当机器人400在进行图像采集时,陀螺仪传感器检测机器人400抖动的角度,根据角度计算出镜头模组需要补偿的距离,让镜头通过反向运动抵消机器人400的抖动,实现防抖。陀螺仪传感器还可以用于导航或计算路面的凹凸情况,判断机器人400是否被困等场景。
速度传感器用于测量移动速度。在一些实施例中,机器人400通过速度传感器测得当前时刻的移动速度,可以结合距离传感器以当前时刻机器人400所处的环境预测下一时刻机器人400所处的环境等。
加速度传感器可检测机器人400在各个方向上(一般为三轴)加速度的大小。当机器人400静止时可检测出重力的大小及方向。
距离传感器,用于测量距离。机器人400可以通过红外或激光测量距离。在一些实施例中,拍摄场景,机器人400可以利用距离传感器测距以实现快速对焦。
存储器404可以包括外部存储器以及内部存储器。外部存储器接口可以用于连接外部存储卡,例如Micro SD卡,实现扩展机器人400的存储能力。外部存储卡通过外部存储器接口与处理器通信,实现数据存储功能。例如将样本信息文件保存在外部存储卡中。
内部存储器可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器通过运行存储在内部存储器的指令,从而执行机器人400的各种功能应用以及数据处理。内部存储器可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序。存储数据区可存储机器人400使用过程中所创建的数据。此外,内部存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。
机器人400的无线通信功能可以通过通信模块405实现。例如,通过通信模块405,机器人400可实现与其他设备之间的通信,例如与服务器之间的通信。作为一种示例,通信模块405可以包括天线1,天线2,移动通信模块,无线通信模块,调制解调处理器以及基带处理器等。
天线1和天线2用于发射和接收电磁波信号。机器人400中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块可以提供应用在机器人400上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(lownoise amplifier,LNA)等。移动通信模块可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块的至少部分功能模块可以被设置于处理器中。在一些实施例中,移动通信模块的至少部分功能模块可以与处理器的至少部分模块被设置在同一个器件中。
无线通信模块可以提供应用在机器人400上的包括无线局域网(wireless localarea networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器。无线通信模块还可以从处理器接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
在一些实施例中,机器人400的天线1和移动通信模块耦合,天线2和无线通信模块耦合,使得机器人400可以通过无线通信技术与服务器以及其他设备通信。所述无线通信技术可以包括全球移动通讯系统(global system for mobile communications,GSM),通用分组无线服务(general packet radio service,GPRS),码分多址接入(code divisionmultiple access,CDMA),宽带码分多址(wideband code division multiple access,WCDMA),时分码分多址(time-division code division multiple access,TD-SCDMA),长期演进(long term evolution,LTE),BT,GNSS,WLAN,NFC,FM,和/或IR技术等。所述GNSS可以包括全球卫星定位系统(global positioning system,GPS),全球导航卫星系统(globalnavigation satellite system,GLONASS),北斗卫星导航系统(beidou navigationsatellite system,BDS),准天顶卫星系统(quasi-zenith satellite system,QZSS)和/或星基增强系统(satellite based augmentation systems,SBAS)。
可以理解的是,本实施例示意的结构并不构成对机器人400的具体限定。在另一些实施例中,机器人400可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
以上介绍了本申请实施例提供的多模态数据的处理方法所应用的场景和设备,以下将详细介绍本申请提供的多模态数据的处理方法。
请参阅图5,图5为本申请实施例提供的一种多模态数据的处理方法的流程示意图。如图5所示,该多模态数据的处理方法包括以下的步骤501-504。
步骤501,获取第一图像和点云数据。
本实施例中,电子设备可以获取到需要进行融合处理的第一图像和点云数据。其中,第一图像和点云数据可以是通过电子设备上不同的装置模块获得的。例如,在电子设备为自动驾驶车辆的情况下,第一图像可以是由自动驾驶车辆上的摄像头采集得到的,点云数据则可以是由自动驾驶车辆上的激光雷达扫描得到的。电子设备也可以是从其他的设备上接收到第一图像和点云数据的。例如,在电子设备为服务器的情况下,服务器可以接收智能摄像头所传输的第一图像,以及接收无人机通过激光雷达扫描得到的点云数据。
其中,为了保证第一图像和点云数据的可融合性,第一图像和点云数据是在同一个场景下采集得到的。例如,第一图像和点云数据均是在自动驾驶场景下获得的;或者,第一图像和点云数据均是在机器人的室内行驶环境下获得的,本实施例对第一图像和点云数据的采集场景并不做具体限定。此外,在自动驾驶场景以及机器人场景下,第一图像和点云数据的采集时间点也可能是相同的。
这样一来,在同一个场景下实现第一图像和点云数据的采集,能够保证第一图像和点云数据对应的环境和物体是相同的,即确保第一图像和点云数据是相同物体的不同模态的表示,保证第一图像和点云数据的可融合性。
步骤502,将第一图像转换为图像特征序列,以及将点云数据转换为点云特征序列,图像特征序列和点云特征序列均包括多个向量,且图像特征序列和点云特征序列中所包括的向量的维度相同。
本实施例中,将第一图像转换为图像特征序列实际上是以特征序列的方式来表示第一图像中的画面内容,将点云数据转换为点云特征序列则是以特征序列的方式来表示点云数据中稀疏分布的点。并且,转换后所得到的图像特征序列和点云特征序列都是由多个向量构成,且图像特征序列和点云特征序列所包括的每个向量的维度相同。也就是说,本步骤是将不同模态的数据(即第一图像和点云数据)都转换为相同的序列格式,以便于后续基于同一个网络模型来处理不同模态数据所对应的特征序列。
其中,图像特征序列中所包括的向量的数量与点云特征序列中所包括的向量的数量可以是相同的,也可以是不同的,具体根据实际采集的第一图像和点云数据的数据量而定,本实施例对此并不做具体限定。
具体地,本实施例中可以是预先建立有图像特征映射关系以及点云特征映射关系,基于图像特征映射关系,能够将一个图像转换为唯一对应的图像特征序列;基于点云特征映射关系,能够将点云数据转换为唯一对应的图像特征序列。
可选的,在将第一图像转换为图像特征序列的过程中,可以是先将第一图像划分为多个图像块,且多个图像块中的每个图像块的大小可以是相同的;然后,通过第一特征转换器将多个图像块中的每个图像块转换为向量,得到由多个图像块对应的多个向量排列构成的图像特征序列。也就是说,图像特征序列中的多个向量是通过第一特征转换器对第一图像中的每个图像块进行转换得到的,即图像特征序列中的多个向量的数量与基于第一图像划分得到的多个图像块的数量相同。
例如,在第一图像的大小为256*256时,基于一个图像块的大小为16*16,可以将第一图像划分为8*8个图像块,且8*8个图像块中每个图像块的大小均为16*16。针对于由第一图像划分得到的8*8个图像块,基于从左到右以及从上到下的顺序,可以通过第一特征转换器对将8*8个图像块中的每个图像块依次转换为对应的向量,从而得到64个向量。这样,基于64个向量的转换顺序,可以将64个向量按序排列得到一个图像特征序列。其中,第一特征转换器例如可以为一个线性神经网络,能够将每个图像块转换为特定维度的一个向量。
通过将第一图像划分为多个图像块,并基于第一特征转换器将每个图像块转换为特定维度大小的向量,从而得到由多个向量排列而成的图像特征序列,保证针对不同格式的图像均能够得到相同格式的特征序列,确保方案的可实现性和兼容性。
可选的,在将点云数据转换为点云特征序列的过程中,可以先基于点云数据划分得到多个立方体空间,且多个立方体空间中的每个立方体空间包括点云数据中的一个或多个点。由于点云数据实际上是包括了三维空间中大量的点,且每个点都有唯一的三维空间坐标,因此可以对点云数据所处的三维空间进行划分,得到多个较小的立方体空间,且多个立方体空间之间是紧密排布的。并且,针对于点云数据所划分的立方体空间,每个立方体空间中都可以包括一个或多个点。示例性地,基于点云数据所划分得到的每个立方体空间的大小可以为0.1*0.1*0.1m。
然后,基于每个立方体空间中所包括的点,通过第二特征转换器将多个立方体空间中的每个立方体空间转换为向量,得到由多个立方体空间对应的多个向量排列构成的点云特征序列。其中,点云特征序列中多个向量的排列顺序也是和多个立方体空间之间的排布顺序是相关的。也就是说,点云特征序列中的多个向量是通过第二特征转换器对点云数据对应的每个立方体空间进行转换得到的,且立方体空间中所分布的点与第二特征转换器最终所转换得到的向量的值相关。
其中,第二特征转换器例如也可以为一个线性神经网络,能够将每个立方体空间中所包括的点转换为特定维度的一个向量。通过基于点云数据划分为多个立方体空间,并基于第二特征转换器将每个立方体空间中的点转换为特定维度大小的向量,从而得到由多个向量排列而成的点云特征序列,保证针对不同分布的点云数据均能够得到相同格式的特征序列,确保方案的可实现性和兼容性。
需要说明的是,用于作为第一特征转换器的线性神经网络的结构与用于作为第二特征转换器的线性神经网络的结构可以是不同的。并且,第一特征转换器和第二特征转换器可以看做为保存有预先建立的映射关系的神经网络,能够实现图像到序列之间的转换以及实现点云数据到序列之间的转换。由于第一特征转换器和第二特征转换器仅仅是将图像或点云数据转换为特定维度大小的向量,因此作为第一特征转换器或第二特征转换器的线性神经网络的容量并不大,且计算开销也比较小,即将第一图像转换为图像特征序列以及将点云数据转换为点云特征序列的计算开销较小,且计算时延较低。
步骤503,通过特征提取网络分别对图像特征序列和点云特征序列进行处理,得到对应于图像特征序列的第一特征序列以及对应于点云特征序列的第二特征序列。
本实施例中,通过特征提取网络对图像特征序列进行处理,得到第一特征序列;以及,通过同一个特征提取网络对点云特征序列进行处理,得到第二特征序列。也就是说,在图像特征序列和点云特征序列均是由维度相同的多个向量构成的情况下,特征提取网络可以实现对不同模态数据对应的特征序列进行处理,从而得到对应于不同模态数据的特征序列。具体地,特征提取网络可以是用语对输入的特征序列进行特征提取,从而得到输出的特征序列。也就是说,在将第一图像转换为图像特征序列的情况下,特征提取网络能够用于对图像特征序列进行特征提取,从而得到第一图像对应的第一特征序列;在将点云数据转换为点云特征序列的情况下,特征提取网络能够用于对点云特征序列进行特征提取,从而得到点云数据对应的第二特征序列。
其中,特征提取网络可以为注意力网络,例如Transformer模型。并且,特征提取网络所输出的特征序列与输入特征提取网络的特征序列是相同长度的,即图像特征序列与第一特征序列的长度是相同的,点云特征序列与第二特征序列的长度也是相同的。
步骤504,对第一特征序列和第二特征序列进行融合处理,得到融合特征,融合特征用于执行环境感知任务。
在得到对应于第一图像的第一特征序列以及对应于点云数据的第二特征序列后,可以将第一特征序列和第二特征序列进行融合处理,得到融合特征。其中,融合处理后所得到的融合特征可以用于电子设备执行后续的环境感知任务,例如目标检测任务、语义分割任务等,保证电子设备能够基于第一图像和点云数据实现对周围环境的感知。比如,在自动驾驶场景下,自动驾驶车辆可以基于融合特征执行环境感知任务,从而实现检测各种移动和静止的障碍物(比如车辆,行人,建筑物等),以及收集道路上的各种信息(比如可行驶区域,车道线,交通标志,红绿灯等),保证自动驾驶车辆能够基于感知到的环境信息来确定相应的行驶策略。
示例性地,请参阅图6,图6为本申请实施例提供的一种自动驾驶场景下融合第一图像和点云数据的流程示意图。如图6所示,在自动驾驶场景下,自动驾驶车辆在行驶过程中通过摄像头采集得到第一图像,以及通过激光雷达扫描得到点云数据。然后,自动驾驶车辆对第一图像进行特征转换,得到第一图像对应的图像特征序列;自动驾驶车辆对点云数据进行特征转换,得到点云数据对应的点云特征序列。其次,自动驾驶车辆将图像特征序列和点云特征序列输入至特征提取网络中,由特征提取网络并行地对图像特征序列和点云特征序列进行特征提取处理,从而得到第一图像对应的第一特征序列以及点云数据对应的第二特征序列。最后,自动驾驶车辆再将第一特征序列和第二特征序列进行融合处理,得到融合特征。自动驾驶车辆可以基于融合特征继续执行后续的目标检测任务,从而检测得到行驶过程中周围环境中的目标对象,以便于自动驾驶车辆基于检测到的目标对象来确定行驶策略。
请参阅图7,图7为本申请实施例提供的一种对第一图像和点云数据执行特征转换的示意图。如图7所示,在自动驾驶车辆对第一图像进行特征转换的过程中,是先对第一图像进行图像分块,得到第一图像的分块结果,该第一图像的分块结果包括多个图像块。然后,再通过第一特征转换器依次将第一图像中的图像块转换为向量,从而得到由多个向量构成的图像特征序列。
在自动驾驶车辆对点云数据进行特征转换的过程中,是先对点云数据所处的3D空间进行空间划分,得到点云数据的空间划分结果,该空间划分结果包括多个立方体空间。然后,再通过第一特征转换器依次将空间划分结果中的立方体空间转换为向量,从而得到由多个向量构成的点云特征序列。
需要说明的是,以上介绍的是将第一图像转换为图像特征序列,并通过特征提取网络进一步提取得到第一特征序列后,将第一特征序列与点云数据对应的第二特征序列进行融合处理的过程。在实际应用中,自动驾驶车辆等设备在同一时间下可能会获取到多个图像,因此对于多个图像中的每个图像,均可以参考上述的步骤来执行特征转换以及特征提取处理,最后再将得到的特征序列与点云数据对应的特征序列进行融合处理。
本方案中,通过将不同模态的数据(即图像和点云数据)分别转换为相同格式的特征序列,并由同一个特征提取网络来处理不同模态数据对应的特征序列,能够保证基于一个特征提取网络即可实现不同模态数据的特征提取,无需部署对应于不同模态数据的多个编码器,节省了设备的存储资源;并且,基于同一个特征提取网络来处理不同模态数据对应的特征序列,使得AI硬件能够实现对不同模态数据的并行处理,提高数据的处理效率,有效地降低了不同模态数据的融合时长。
具体来说,基于目前AI硬件(例如图形处理器(graphics processing unit,GPU)或神经网络处理器(Neural Processing Unit,NPU))的特性,AI硬件在运行同一个神经网络时,能够并行地对多份输入数据进行处理,即能够同时并行地实现图像特征的提取和点云数据特征的提取,从而提高数据的处理效率。而相关技术中在采用不同的编码器分别处理不同模态的数据时,无法并行地对不同模态的数据进行处理,导致相关技术中在处理不同模态数据的时延较高。
可选的,上述的步骤504具体可以包括以下的步骤5041-5043。
步骤5041,基于点云数据中的点在图像空间中的投影位置,将第二特征序列中的向量融合至第一特征序列中,得到第一融合序列,其中第二特征序列中的向量在点云数据中具有对应的点。
示例性地,可以参阅图8,图8为本申请实施例提供的一种对第一特征序列和第二特征序列进行融合处理的示意图。如图8所示,步骤5041实际上是在图像空间对第一特征序列和第二特征序列进行融合处理。由于点云数据中的每个点都有对应的三维坐标,因此基于点云空间与图像空间之间的转换关系,可以将点云数据中的点投影在图像空间,从而得到点云数据中的每个点在图像空间中投影位置,即每个点在第一图像上的投影位置。
并且,由于第一特征序列中的每个向量均是由第一图像中的图像块执行特征转换以及特征提取后得到的,因此第一特征序列的每个向量均能够在第一图像中找到对应的图像块。类似地,由于第二特征序列中的每个向量也是由立方体空间执行特征转换以及特征提取后得到的,因此第二特征序列的每个向量均能够在点云数据对应的立体空间中找到对应的立方体空间,进而确定每个向量对应的点。
这样,对于第二特征序列中的每个向量,均能够在点云数据中找到对应的点;对于第一特征序列中的每个向量,也能够在第一图像中找到对应的图像块。那么,在确定点云数据中的点在第一图像中的投影位置后,则可以基于点的投影位置所处的图像块,来确定点对应的向量与该点的投影位置所处的图像块对应的向量是对应的,从而在第一特征序列的基础上,将第二特征序列中与第一特征序列中对应的向量进行融合,实现在图像空间中融合第一特征序列和第二特征序列。
示例性地,请参阅图9,图9为本申请实施例提供的一种在图像空间融合第一特征序列和第二特征序列的示意图。如图9所示,将点云数据中的点投影至图像空间后,可以得到点云数据中的点在第一图像中的投影位置。在预先获得第一图像的分块结果以及点云数据的空间划分结果的情况下,可以确定点云数据中的点的投影位置在第一图像中所处的图像块。如图9中所示的点云数据在第一图像上的投影结果,点云数据中的点可以在第一图像上找到对应的投影位置,进而确定点云数据中的点在图像空间中所对应的图像块。
然后,将第一特征序列中的第一向量调整为第一向量与第二特征序列中的第二向量的融合结果,其中,第二向量所对应的点的投影位置位于第一向量所对应的图像块中。也就是说,第一特征序列中的第一向量和第二特征序列中的第二向量是通过将点云数据投影至图像空间所确定的具有对应关系的向量。并且,第一向量与第二向量的融合结果可以是第一向量和第二向量的求和值。第一向量与第二向量的融合结果也可以为第二向量,即调整第一向量的操作实际上是将第一向量替换为第二向量。
其中,以上是以具有对应关系的第一向量和第二向量来介绍调整第一特征序列中的向量的过程。在实际应用中,对于第一特征序列中所有与第二特征序列的向量具有对应关系的向量,都可以基于相同的方式来进行调整,从而实现第一特征序列中的向量的调整。这样,在第一特征序列的基础上,通过将第一特征序列中与第二特征序列中的向量具有对应关系的向量进行调整,能够实现保证第一特征序列的长度不变的情况下,将第一特征序列中的部分向量进行调整,从而得到第一混合序列。
并且,在得到第一混合序列后,可以将第一混合序列输入至第一注意力网络中,例如Transformer网络,由第一注意力网络对第一混合序列中的向量做进一步的融合处理,使得点云特征能够与其邻近的图像特征进行交互。最终,将第一混合序列输入第一注意力网络后,可以得到第一注意力网络所输出的第一融合序列。
总的来说,通过将点云数据中的点投影至图像空间,可以确定点在图像空间中的位置,进而确定第二特征序列中与第一特征序列具有对应关系的向量,通过在第一特征序列的基础上融合具有对应关系的向量,实现在图像空间中融合第一特征序列和第二特征序列,使得点云特征能够与其邻近的图像特征进行交互,保证图像和点云数据的顺利融合。
步骤5042,基于第一图像中的图像块在点云空间的映射位置,将第一特征序列中的向量融合至第二特征序列中,得到第二融合序列,第一特征序列中的向量在第一图像中具有对应的图像块。
示例性地,如图8所示,步骤5042实际上是在点云空间对第一特征序列和第二特征序列进行融合处理。由于图像中的每个像素点在图像空间上都有唯一的二维坐标,因此可以将图像中的像素点转换至点云空间,从而得到图像中的像素点在点云空间的三维坐标,进而确定图像中的像素点在点云空间所对应的立方体空间。由于第一图像中的每个图像块均包括多个像素点,因此可以基于图像块中的多个像素点在点云空间对应的三维坐标,确定图像块在点云空间的映射位置。
对于第二特征序列中的每个向量,均能够在点云数据中找到对应的点;对于第一特征序列中的每个向量,也能够在第一图像中找到对应的图像块。那么,在确定第一图像中的图像块在点云空间的映射位置后,则可以基于图像块在点云空间中的映射位置所处的立方体空间,来确定图像块对应的向量与该图像块的映射位置所处的立方体空间对应的向量是对应的,从而在第二特征序列的基础上,将第二特征序列中与第一特征序列中对应的向量进行融合,实现在点云空间中融合第一特征序列和第二特征序列。
示例性地,请参阅图10,图10为本申请实施例提供的一种在点云空间融合第一特征序列和第二特征序列的示意图。如图10所示,在将第一图像中的图像块映射至点云空间后,可以得到第一图像中的图像块在点云空间中的映射位置。在预先获得第一图像的分块结果以及点云数据的空间划分结果的情况下,可以确定第一图像中的图像块的映射位置在点云空间所处的立方体空间。如图10中所示的第一图像在点云数据上的映射结果,第一图像中的图像块可以在点云空间中找到对应的映射位置,进而确定第一图像的图像块在点云空间中所对应的立方体空间。
然后,将第二特征序列中的第三向量调整为第三向量与第一特征序列中的第四向量的融合结果。其中,第三向量所对应的图像块的映射位置位于第四向量所对应的点所处的立方体空间中。也就是说,第二特征序列中的第三向量和第一特征序列中的第四向量是通过将第一图像投影至点云空间所确定的具有对应关系的向量。并且,第三向量与第四向量的融合结果可以是第三向量和第四向量的求和值。第三向量与第四向量的融合结果也可以为第四向量,即调整第三向量的操作实际上是将第三向量替换为第四向量。
其中,以上是以具有对应关系的第三向量和第四向量来介绍调整第二特征序列中的向量的过程。在实际应用中,对于第二特征序列中所有与第一特征序列的向量具有对应关系的向量,都可以基于相同的方式来进行调整,从而实现第二特征序列中的向量的调整。这样,在第二特征序列的基础上,通过将第二特征序列中与第一特征序列中的向量具有对应关系的向量进行调整,能够实现保证第二特征序列的长度不变的情况下,将第二特征序列中的部分向量进行调整,从而得到第二混合序列。
并且,在得到第二混合序列后,可以将第二混合序列输入至第二注意力网络中,例如Transformer网络,由第二注意力网络对第二混合序列中的向量做进一步的融合处理,使得图像特征能够与其相近的点云特征进行交互。最终,将第二混合序列输入第二注意力网络后,可以得到第二注意力网络所输出的第二融合序列。
总的来说,通过将第一图像中的图像块投影至点云空间,可以确定图像块在点云空间中的位置,进而确定第一特征序列中与第二特征序列具有对应关系的向量,通过在第二特征序列的基础上融合具有对应关系的向量,实现在点云空间中融合第一特征序列和第二特征序列,使得图像特征能够与其相近的点云特征进行交互,保证图像和点云数据的顺利融合。
由于图像中的像素点仅具有二维坐标,而点云空间中的点是具有三维坐标的,即点云空间中的点比图像中的像素点还多了深度信息。因此,在将第一图像中的图像块映射至点云空间时,往往需要先确定图像块在点云空间中的深度,才能够实现图像块到点云空间的映射。为了实现将第一图像中的图像块映射至点云空间中,本实施例提供了相应的实现方式。
示例性地,在将第一图像中的图像块映射至点云空间的过程中,首先可以将点云数据中的点投影至第一图像中,并基于点云数据中的点在第一图像中的投影位置,确定距离第一图像中的第一图像块最近的至少一个投影位置。其中,第一图像块为第一图像中的任意一个图像块。
然后,基于至少一个投影位置对应的点的深度,确定第一图像块在点云空间的映射位置。即,基于至少一个投影位置对应的点的深度,可以确定第一图像块在点云空间的深度;这样,再基于第一图像块在图像空间的二维坐标以及图像空间到点云空间的转换关系,即可确定第一图像块在点云空间的映射位置。
例如,可以确定离第一图像块最近的一个投影位置,并且将投影位置对应的点的深度作为第一图像块在点云空间的深度,从而确定第一图像块在点云空间的映射位置。又例如,可以是以第一图像块为中心,以r为半径,确定离第一图像块最近的多个投影位置,并将这多个投影位置对应的点的深度平均值作为第一图像块的深度,从而确定第一图像块在点云空间的映射位置。在实际应用中,可以根据具体需求来确定是选择最近的一个投影位置还是多个投影位置来确定图像块在点云空间的映射位置。一般来说,选择离图像块最近的一个投影位置来确定图像块在点云空间的映射位置所需的计算量较低,计算效率会比较高;选择离图像块最近的多个投影位置来确定图像块在点云空间的映射位置的准确度则较高。
总的来说,在将点云数据中的点投影至第一图像后,对于第一图像中的每个图像块,都可以找到离该图像块最近的一个或多个投影位置,从而基于这些投影位置的点的深度来确定图像块在点云空间中的深度,进而确定图像块在点云空间中的映射位置。
本方案中,通过先将点云数据中的点投影至图像空间中,然后通过在图像上寻找最近的投影位置,来确定图像上的图像块在点云空间的深度,进而,能够保证图像上的图像块能够准确地映射到点云空间,提高方案的可实现性。
步骤5043,对第一融合序列和第二融合序列进行融合处理,得到融合特征。
示例性地,可以将第一融合序列和第二融合序列分别转换至BEV空间,得到第一BEV特征和第二BEV特征。具体来说,BEV空间实际上是从鸟瞰视角所看到的一个二维空间,因此可以是将BEV空间划分为多个网格。在确定某一个特征在三维空间(即点云空间)中的位置后,即可确定该特征在BEV中所处的网格。由于第一融合序列中的每个向量对应于一个图像块,因此可以基于图像块在点云空间中的映射位置,来确定第一融合序列中的每个向量在BEV空间中所处的网格(即向量在BEV空间中所处的位置),从而为第一融合序列中的每个向量标记BEV空间的位置信息,实现将第一融合序列转换至BEV空间,得到第一BEV特征。类似地,由于第一融合序列中的每个向量对应于点云空间中的一个立方体空间,因此可以基于每个立方体空间对应的BEV网格,确定第二融合序列中的每个向量在BEV空间中所处的网格,从而为第二融合序列中的每个向量标记BEV空间的位置信息,实现将第二融合序列转换至BEV空间,得到第二BEV特征。
然后,再融合第一BEV特征和第二BEV特征,得到融合特征。具体地,在融合第一BEV特征和第二BEV特征的过程中,可以是将第一BEV特征和第二BEV特征中位于相同位置的向量进行融合(例如将向量进行求和),从而得到融合特征。
本方案中,通过分别在图像空间以及点云空间融合第一特征序列和第二特征序列,然后再将图像空间和点云空间下融合得到的融合序列在统一的空间进行融合,能够很好地实现图像特征和点云特征的融合,保证最终得到的融合特征的准确性。
请参阅图11A,图11A为本申请实施例提供的一种不同模态数据的融合处理的流程示意图。如图11所示,在自动驾驶场景下,自动驾驶车辆通过摄像头和激光雷达分别获取到第一图像和点云数据。对于第一图像,可以采用第一特征转换器对第一图像进行特征转换,得到图像特征序列;对于点云数据,可以采用第二特征转换器对点云数据进行特征转换,得到点云特征序列。其中,第一特征转换器和第二特征转换器可以为不同的Transformer网络。
然后,通过同一个特征提取网络来并行地对图像特征序列和点云特征序列进行特征提取处理,得到第一特征序列和第二特征序列。其中,特征提取网络例如可以为Transformer网络。
其次,通过图像空间的融合网络对第一特征序列和第二特征序列在图像空间上进行融合处理,得到第一融合序列。其中,图像空间的融合网络包括上述的第一注意力网络。以及,通过点云空间的融合网络对第一特征序列和第二特征序列在点云空间上进行融合处理,得到第二融合序列。点云空间的融合网络包括上述的第二注意力网络。
最后,将第一融合序列和第二融合序列在BEV空间进行融合处理,得到融合特征,该融合特征用于执行后续的环境感知任务。
请参阅图11B,图11B为本申请实施例提供的一种不同的多模态数据处理方法的对比示意图。如图11B所示,针对于自动驾驶场景下的3D检测任务,本实施例对比了现有的17种方案与本方案之间的效果。如图11B所示,本方案在推理延迟更低(89.7ms)的情况下,优于所有以前的激光雷达-相机融合方法。本方案在验证集和测试集的综合检测精度(NDS)上实现了73.5和74.5的最佳表现,分别比之前最好的方法高2.1和1.6个点。由于本方案所提出的网络模型能够轻松地通过经过优化的部署工具(NVIDIA TensorRT)加速以降低推理延迟(50.2ms)。
以上是介绍了本实施例提供的一种多模态数据的处理方法。在实际应用中,在对上述的多模态数据的处理方法中所涉及的网络进行训练的过程中,可以是结合具体的环境感知任务来实现网络的训练。具体来说,在训练过程中,将作为训练数据的图像和点云数据按照上述的多模态数据的处理方法进行处理,得到融合特征后,将融合特征继续输入至环境感知任务对应的网络中,例如目标检测网络或语义分割网络,从而得到最终的输出结果。这样一来,可以基于最终的输出结果来构建损失函数,进而基于损失函数来训练上述的多模态数据的处理方法中所涉及的网络(例如特征提取网络)。
由于本方案中是采用同一个特征提取网络来处理不同模态数据对应的特征序列,因此在训练过程中可以实现网络的统一训练,无需如相关技术一样单独地训练各个模态数据对应的编码器,能够有效地提高网络的训练效率。
以上详细介绍了本申请实施例提供的方法,接下来将介绍本申请实施例提供的用于执行上述方法的设备。
请参阅图12,图12为本申请实施例提供的一种多模态数据的处理装置的结构示意图。如图12所示,该多模态数据的处理装置,包括:获取模块1201,用于获取第一图像和点云数据;处理模块1202,用于将第一图像转换为图像特征序列,以及将点云数据转换为点云特征序列,图像特征序列和点云特征序列均包括多个向量,且图像特征序列和点云特征序列中所包括的向量的维度相同;处理模块1202,还用于通过特征提取网络分别对图像特征序列和点云特征序列进行处理,得到对应于图像特征序列的第一特征序列以及对应于点云特征序列的第二特征序列;处理模块1202,还用于对第一特征序列和第二特征序列进行融合处理,得到融合特征,融合特征用于执行环境感知任务。
在一种可能的实现方式中,处理模块1202,还用于:基于点云数据中的点在图像空间中的投影位置,将第二特征序列中的向量融合至第一特征序列中,得到第一融合序列,其中第二特征序列中的向量在点云数据中具有对应的点;基于第一图像中的图像块在点云空间的映射位置,将第一特征序列中的向量融合至第二特征序列中,得到第二融合序列,第一特征序列中的向量在第一图像中具有对应的图像块;对第一融合序列和第二融合序列进行融合处理,得到融合特征。
在一种可能的实现方式中,处理模块1202,还用于:将点云数据中的点投影至图像空间,得到点云数据中的点在第一图像中的投影位置;将第一特征序列中的第一向量调整为第一向量与第二特征序列中的第二向量的融合结果;其中,第二向量所对应的点的投影位置位于第一向量所对应的图像块中。
在一种可能的实现方式中,处理模块1202,还用于:将第一图像中的图像块映射至点云空间,得到第一图像中的图像块在点云空间中的映射位置;将第二特征序列中的第三向量调整为第三向量与第一特征序列中的第四向量的融合结果;其中,第三向量所对应的图像块的映射位置位于第四向量所对应的点所处的立方体空间中。
在一种可能的实现方式中,处理模块1202,还用于:基于点云数据中的点在第一图像中的投影位置,确定距离第一图像中的第一图像块最近的至少一个投影位置;基于至少一个投影位置对应的点的深度,确定第一图像块在点云空间的映射位置。
在一种可能的实现方式中,处理模块1202,还用于:将第一融合序列和第二融合序列分别转换至BEV空间,得到第一BEV特征和第二BEV特征;融合第一BEV特征和第二BEV特征,得到融合特征。
在一种可能的实现方式中,处理模块1202,还用于:将第一图像划分为多个图像块;通过第一特征转换器将多个图像块中的每个图像块转换为向量,得到由多个图像块对应的多个向量排列构成的图像特征序列。
在一种可能的实现方式中,处理模块1202,还用于:基于点云数据划分得到多个立方体空间,多个立方体空间中的每个立方体空间包括点云数据中的一个或多个点;基于每个立方体空间中所包括的点,通过第二特征转换器将多个立方体空间中的每个立方体空间转换为向量,得到由多个立方体空间对应的多个向量排列构成的点云特征序列。
在一种可能的实现方式中,第一图像和点云数据是在同一个场景下采集得到的。
在一种可能的实现方式中,第一图像和点云数据的采集场景为以下的任意一个场景:自动驾驶场景、机器人行驶场景以及智能巡检场景。
请参阅图13,图13为本申请实施例提供的执行设备的一种结构示意图,执行设备1300具体可以表现为自动驾驶车辆、机器人、服务器等,此处不做限定。具体的,执行设备1300包括:接收器1301、发射器1302、处理器1303和存储器1304(其中执行设备1300中的处理器1303的数量可以一个或多个,图13中以一个处理器为例),其中,处理器1303可以包括应用处理器13031和通信处理器13032。在本申请的一些实施例中,接收器1301、发射器1302、处理器1303和存储器1304可通过总线或其它方式连接。
存储器1304可以包括只读存储器和随机存取存储器,并向处理器1303提供指令和数据。存储器1304的一部分还可以包括非易失性随机存取存储器(non-volatile randomaccess memory,NVRAM)。存储器1304存储有处理器和操作指令、可执行模块或者数据结构,或者它们的子集,或者它们的扩展集,其中,操作指令可包括各种操作指令,用于实现各种操作。
处理器1303控制执行设备的操作。具体的应用中,执行设备的各个组件通过总线系统耦合在一起,其中总线系统除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都称为总线系统。
上述本申请实施例揭示的方法可以应用于处理器1303中,或者由处理器1303实现。处理器1303可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器1303中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1303可以是通用处理器、数字信号处理器(digital signal processing,DSP)、微处理器或微控制器,还可进一步包括专用集成电路(application specific integratedcircuit,ASIC)、现场可编程门阵列(field-programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
该处理器1303可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1304,处理器1303读取存储器1304中的信息,结合其硬件完成上述方法的步骤。
接收器1301可用于接收输入的数字或字符信息,以及产生与执行设备的相关设置以及功能控制有关的信号输入。发射器1302可用于通过第一接口输出数字或字符信息;发射器1302还可用于通过第一接口向磁盘组发送指令,以修改磁盘组中的数据;发射器1302还可以包括显示屏等显示设备。
本申请实施例提供的电子设备具体可以为芯片,芯片包括:处理单元和通信单元,处理单元例如可以是处理器,通信单元例如可以是输入/输出接口、管脚或电路等。该处理单元可执行存储单元存储的计算机执行指令,以使执行设备内的芯片执行上述实施例描述的模型结构的确定方法,或者,以使训练设备内的芯片执行上述实施例描述的模型结构的确定方法。可选地,存储单元为芯片内的存储单元,如寄存器、缓存等,存储单元还可以是无线接入设备端内的位于芯片外部的存储单元,如只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random accessmemory,RAM)等。
具体的,请参阅图14,图14为本申请实施例提供的芯片的一种结构示意图,芯片可以表现为神经网络处理器NPU 1400,NPU 1400作为协处理器挂载到主CPU(Host CPU)上,由Host CPU分配任务。NPU的核心部分为运算电路1403,通过控制器1404控制运算电路1403提取存储器中的矩阵数据并进行乘法运算。
在一些实现中,运算电路1403内部包括多个处理单元(Process Engine,PE)。在一些实现中,运算电路1403是二维脉动阵列。运算电路1403还可以是一维脉动阵列或者能够执行例如乘法和加法这样的数学运算的其它电子线路。在一些实现中,运算电路1403是通用的矩阵处理器。
举例来说,假设有输入矩阵A,权重矩阵B,输出矩阵C。运算电路从权重存储器1402中取矩阵B相应的数据,并缓存在运算电路中每一个PE上。运算电路从输入存储器1401中取矩阵A数据与矩阵B进行矩阵运算,得到的矩阵的部分结果或最终结果,保存在累加器(accumulator)1408中。
统一存储器1406用于存放输入数据以及输出数据。权重数据直接通过存储单元访问控制器(Direct Memory Access Controller,DMAC)1405,DMAC被搬运到权重存储器1402中。输入数据也通过DMAC被搬运到统一存储器1406中。
BIU为Bus Interface Unit即,总线接口单元1410,用于AXI总线与DMAC和取指存储器(Instruction Fetch Buffer,IFB)1409的交互。
总线接口单元1410(Bus Interface Unit,BIU),用于取指存储器1409从外部存储器获取指令,还用于存储单元访问控制器1405从外部存储器获取输入矩阵A或者权重矩阵B的原数据。
DMAC主要用于将外部存储器DDR中的输入数据搬运到统一存储器1406或将权重数据搬运到权重存储器1402中或将输入数据数据搬运到输入存储器1401中。
向量计算单元1407包括多个运算处理单元,在需要的情况下,对运算电路1403的输出做进一步处理,如向量乘,向量加,指数运算,对数运算,大小比较等等。主要用于神经网络中非卷积/全连接层网络计算,如批归一化(Batch Normalization),像素级求和,对特征平面进行上采样等。
在一些实现中,向量计算单元1407能将经处理的输出的向量存储到统一存储器1406。例如,向量计算单元1407可以将线性函数;或,非线性函数应用到运算电路1403的输出,例如对卷积层提取的特征平面进行线性插值,再例如累加值的向量,用以生成激活值。在一些实现中,向量计算单元1407生成归一化的值、像素级求和的值,或二者均有。在一些实现中,处理过的输出的向量能够用作到运算电路1403的激活输入,例如用于在神经网络中的后续层中的使用。
控制器1404连接的取指存储器(instruction fetch buffer)1409,用于存储控制器1404使用的指令;
统一存储器1406,输入存储器1401,权重存储器1402以及取指存储器1409均为On-Chip存储器。外部存储器私有于该NPU硬件架构。
其中,上述任一处提到的处理器,可以是一个通用中央处理器,微处理器,ASIC,或一个或多个用于控制上述程序执行的集成电路。
可以参阅图15,图15为本申请实施例提供的一种计算机可读存储介质的结构示意图。本申请还提供了一种计算机可读存储介质,在一些实施例中,上述图5所公开的方法可以实施为以机器可读格式被编码在计算机可读存储介质上或者被编码在其它非瞬时性介质或者制品上的计算机程序指令。
图15示意性地示出根据这里展示的至少一些实施例而布置的示例计算机可读存储介质的概念性局部视图,示例计算机可读存储介质包括用于在计算设备上执行计算机进程的计算机程序。
在一个实施例中,计算机可读存储介质1500是使用信号承载介质1501来提供的。信号承载介质1501可以包括一个或多个程序指令1502,其当被一个或多个处理器运行时可以提供以上针对图5描述的功能或者部分功能。
在一些示例中,信号承载介质1501可以包含计算机可读介质1503,诸如但不限于,硬盘驱动器、紧密盘(CD)、数字视频光盘(DVD)、数字磁带、存储器、ROM或RAM等等。
在一些实施方式中,信号承载介质1501可以包含计算机可记录介质1504,诸如但不限于,存储器、读/写(R/W)CD、R/W DVD、等等。在一些实施方式中,信号承载介质1501可以包含通信介质1505,诸如但不限于,数字和/或模拟通信介质(例如,光纤电缆、波导、有线通信链路、无线通信链路、等等)。因此,例如,信号承载介质1501可以由无线形式的通信介质1505(例如,遵守IEEE 802.11标准或者其它传输协议的无线通信介质)来传达。
一个或多个程序指令1502可以是,例如,计算机可执行指令或者逻辑实施指令。在一些示例中,计算设备的计算设备可以被配置为,响应于通过计算机可读介质1503、计算机可记录介质1504、和/或通信介质1505中的一个或多个传达到计算设备的程序指令1502,提供各种操作、功能、或者动作。
另外需说明的是,以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本申请提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本申请而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘、U盘、移动硬盘、ROM、RAM、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,训练设备,或者网络设备等)执行本申请各个实施例的方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、训练设备或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、训练设备或数据中心进行传输。计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的训练设备、数据中心等数据存储设备。可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(SolidState Disk,SSD))等。
Claims (21)
1.一种多模态数据的处理方法,其特征在于,包括:
获取第一图像和点云数据;
将所述第一图像转换为图像特征序列,以及将所述点云数据转换为点云特征序列,所述图像特征序列和所述点云特征序列均包括多个向量,且所述图像特征序列和所述点云特征序列中所包括的向量的维度相同;
通过特征提取网络分别对所述图像特征序列和所述点云特征序列进行处理,得到对应于所述图像特征序列的第一特征序列以及对应于所述点云特征序列的第二特征序列;
对所述第一特征序列和所述第二特征序列进行融合处理,得到融合特征,所述融合特征用于执行环境感知任务。
2.根据权利要求1所述的方法,其特征在于,所述对所述第一特征序列和所述第二特征序列进行融合处理,得到融合特征,包括:
基于所述点云数据中的点在图像空间中的投影位置,将所述第二特征序列中的向量融合至所述第一特征序列中,得到第一融合序列,其中所述第二特征序列中的向量在所述点云数据中具有对应的点;
基于所述第一图像中的图像块在点云空间的映射位置,将所述第一特征序列中的向量融合至所述第二特征序列中,得到第二融合序列,所述第一特征序列中的向量在所述第一图像中具有对应的图像块;
对所述第一融合序列和所述第二融合序列进行融合处理,得到所述融合特征。
3.根据权利要求2所述的方法,其特征在于,所述基于所述点云数据中的点在图像空间中的投影位置,将所述第二特征序列中的向量融合至所述第一特征序列中,包括:
将所述点云数据中的点投影至所述图像空间,得到所述点云数据中的点在所述第一图像中的投影位置;
将所述第一特征序列中的第一向量调整为所述第一向量与所述第二特征序列中的第二向量的融合结果;
其中,所述第二向量所对应的点的投影位置位于所述第一向量所对应的图像块中。
4.根据权利要求2或3所述的方法,其特征在于,所述基于所述第一图像中的图像块在点云空间的映射位置,将所述第一特征序列中的向量融合至所述第二特征序列中,包括:
将所述第一图像中的图像块映射至所述点云空间,得到所述第一图像中的图像块在所述点云空间中的映射位置;
将所述第二特征序列中的第三向量调整为所述第三向量与所述第一特征序列中的第四向量的融合结果;
其中,所述第三向量所对应的图像块的映射位置位于所述第四向量所对应的点所处的立方体空间中。
5.根据权利要求4所述的方法,其特征在于,所述将所述第一图像中的图像块映射至所述点云空间,包括:
基于所述点云数据中的点在所述第一图像中的投影位置,确定距离所述第一图像中的第一图像块最近的至少一个投影位置;
基于所述至少一个投影位置对应的点的深度,确定所述第一图像块在所述点云空间的映射位置。
6.根据权利要求2-5任意一项所述的方法,其特征在于,所述对所述第一融合序列和所述第二融合序列进行融合处理,得到所述融合特征,包括:
将所述第一融合序列和所述第二融合序列分别转换至鸟瞰视角BEV空间,得到第一BEV特征和第二BEV特征;
融合所述第一BEV特征和所述第二BEV特征,得到所述融合特征。
7.根据权利要求1-6任意一项所述的方法,其特征在于,所述将所述第一图像转换为图像特征序列,包括:
将所述第一图像划分为多个图像块;
通过第一特征转换器将所述多个图像块中的每个图像块转换为向量,得到由所述多个图像块对应的多个向量排列构成的所述图像特征序列。
8.根据权利要求1-7任意一项所述的方法,其特征在于,所述将所述点云数据转换为点云特征序列,包括:
基于所述点云数据划分得到多个立方体空间,所述多个立方体空间中的每个立方体空间包括所述点云数据中的一个或多个点;
基于所述每个立方体空间中所包括的点,通过第二特征转换器将所述多个立方体空间中的每个立方体空间转换为向量,得到由所述多个立方体空间对应的多个向量排列构成的所述点云特征序列。
9.根据权利要求1-8任意一项所述的方法,其特征在于,所述第一图像和所述点云数据是在同一个场景下采集得到的。
10.根据权利要求1-9任意一项所述的方法,其特征在于,所述第一图像和所述点云数据的采集场景为以下的任意一个场景:自动驾驶场景、机器人行驶场景以及智能巡检场景。
11.一种多模态数据的处理装置,其特征在于,包括:
获取模块,用于获取第一图像和点云数据;
处理模块,用于将所述第一图像转换为图像特征序列,以及将所述点云数据转换为点云特征序列,所述图像特征序列和所述点云特征序列均包括多个向量,且所述图像特征序列和所述点云特征序列中所包括的向量的维度相同;
所述处理模块,还用于通过特征提取网络分别对所述图像特征序列和所述点云特征序列进行处理,得到对应于所述图像特征序列的第一特征序列以及对应于所述点云特征序列的第二特征序列;
所述处理模块,还用于对所述第一特征序列和所述第二特征序列进行融合处理,得到融合特征,所述融合特征用于执行环境感知任务。
12.根据权利要求11所述的装置,其特征在于,所述处理模块,还用于:
基于所述点云数据中的点在图像空间中的投影位置,将所述第二特征序列中的向量融合至所述第一特征序列中,得到第一融合序列,其中所述第二特征序列中的向量在所述点云数据中具有对应的点;
基于所述第一图像中的图像块在点云空间的映射位置,将所述第一特征序列中的向量融合至所述第二特征序列中,得到第二融合序列,所述第一特征序列中的向量在所述第一图像中具有对应的图像块;
对所述第一融合序列和所述第二融合序列进行融合处理,得到所述融合特征。
13.根据权利要求12所述的装置,其特征在于,所述处理模块,还用于:
将所述点云数据中的点投影至所述图像空间,得到所述点云数据中的点在所述第一图像中的投影位置;
将所述第一特征序列中的第一向量调整为所述第一向量与所述第二特征序列中的第二向量的融合结果;
其中,所述第二向量所对应的点的投影位置位于所述第一向量所对应的图像块中。
14.根据权利要求12或13所述的装置,其特征在于,所述处理模块,还用于:
将所述第一图像中的图像块映射至所述点云空间,得到所述第一图像中的图像块在所述点云空间中的映射位置;
将所述第二特征序列中的第三向量调整为所述第三向量与所述第一特征序列中的第四向量的融合结果;
其中,所述第三向量所对应的图像块的映射位置位于所述第四向量所对应的点所处的立方体空间中。
15.根据权利要求14所述的装置,其特征在于,所述处理模块,还用于:
基于所述点云数据中的点在所述第一图像中的投影位置,确定距离所述第一图像中的第一图像块最近的至少一个投影位置;
基于所述至少一个投影位置对应的点的深度,确定所述第一图像块在所述点云空间的映射位置。
16.根据权利要求12-15任意一项所述的装置,其特征在于,所述处理模块,还用于:
将所述第一融合序列和所述第二融合序列分别转换至鸟瞰视角BEV空间,得到第一BEV特征和第二BEV特征;
融合所述第一BEV特征和所述第二BEV特征,得到所述融合特征。
17.根据权利要求11-16任意一项所述的装置,其特征在于,所述处理模块,还用于:
将所述第一图像划分为多个图像块;
通过第一特征转换器将所述多个图像块中的每个图像块转换为向量,得到由所述多个图像块对应的多个向量排列构成的所述图像特征序列。
18.根据权利要求11-17任意一项所述的装置,其特征在于,所述处理模块,还用于:
基于所述点云数据划分得到多个立方体空间,所述多个立方体空间中的每个立方体空间包括所述点云数据中的一个或多个点;
基于所述每个立方体空间中所包括的点,通过第二特征转换器将所述多个立方体空间中的每个立方体空间转换为向量,得到由所述多个立方体空间对应的多个向量排列构成的所述点云特征序列。
19.一种多模态数据的处理装置,其特征在于,包括存储器和处理器;所述存储器存储有代码,所述处理器被配置为执行所述代码,当所述代码被执行时,所述装置执行如权利要求1至10任意一项所述的方法。
20.一种计算机存储介质,其特征在于,所述计算机存储介质存储有指令,所述指令在由计算机执行时使得所述计算机实施权利要求1至10任意一项所述的方法。
21.一种计算机程序产品,其特征在于,所述计算机程序产品存储有指令,所述指令在由计算机执行时使得所述计算机实施权利要求1至10任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310847804.4A CN117077073A (zh) | 2023-07-11 | 2023-07-11 | 一种多模态数据的处理方法及相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310847804.4A CN117077073A (zh) | 2023-07-11 | 2023-07-11 | 一种多模态数据的处理方法及相关装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117077073A true CN117077073A (zh) | 2023-11-17 |
Family
ID=88705123
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310847804.4A Pending CN117077073A (zh) | 2023-07-11 | 2023-07-11 | 一种多模态数据的处理方法及相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117077073A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118095447A (zh) * | 2024-04-12 | 2024-05-28 | 清华大学 | 大语言模型分布式推理方法及装置、介质 |
-
2023
- 2023-07-11 CN CN202310847804.4A patent/CN117077073A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118095447A (zh) * | 2024-04-12 | 2024-05-28 | 清华大学 | 大语言模型分布式推理方法及装置、介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110543814B (zh) | 一种交通灯的识别方法及装置 | |
WO2022001773A1 (zh) | 轨迹预测方法及装置 | |
CN112740268B (zh) | 目标检测方法和装置 | |
CN113498529B (zh) | 一种目标跟踪方法及其装置 | |
CN113591518B (zh) | 一种图像的处理方法、网络的训练方法以及相关设备 | |
WO2022052765A1 (zh) | 目标跟踪方法及装置 | |
US20220309806A1 (en) | Road structure detection method and apparatus | |
CN117077073A (zh) | 一种多模态数据的处理方法及相关装置 | |
CN112810603B (zh) | 定位方法和相关产品 | |
WO2022051951A1 (zh) | 车道线检测方法、相关设备及计算机可读存储介质 | |
CN115100377B (zh) | 地图构建方法、装置、车辆、可读存储介质及芯片 | |
WO2022052881A1 (zh) | 一种构建地图的方法及计算设备 | |
WO2022178858A1 (zh) | 一种车辆行驶意图预测方法、装置、终端及存储介质 | |
CN115546781A (zh) | 一种点云数据的聚类方法以及装置 | |
WO2021000787A1 (zh) | 道路几何识别方法及装置 | |
CN115056784B (zh) | 车辆控制方法、装置、车辆、存储介质及芯片 | |
CN115205311B (zh) | 图像处理方法、装置、车辆、介质及芯片 | |
CN115100630B (zh) | 障碍物检测方法、装置、车辆、介质及芯片 | |
WO2022142596A1 (zh) | 一种图像处理方法,装置及储存介质 | |
WO2022022284A1 (zh) | 目标物的感知方法及装置 | |
WO2021159397A1 (zh) | 车辆可行驶区域的检测方法以及检测装置 | |
CN114549610A (zh) | 一种点云数据的处理方法及相关装置 | |
CN115508841A (zh) | 一种路沿检测的方法和装置 | |
WO2024141068A1 (zh) | 一种路面检测方法及相关装置 | |
WO2024141057A1 (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 |