本发明实施例涉及通信技术领域,尤其涉及一种自动驾驶方法及装置。
背景技术:
自动驾驶汽车(autonomousvehicles;self-pilotingautomobile)又称无人驾驶汽车、电脑驾驶汽车、或轮式移动机器人,是一种通过电脑系统实现无人驾驶的智能汽车。自动驾驶汽车依靠人工智能、视觉计算、雷达、监控装置和全球定位系统协同合作,让电脑可以在没有任何人类主动的操作下,自动安全地操作机动车辆。在车辆行驶过程中,自动驾驶系统需要了解周围的交通状况,根据行驶路线上的道路和交通状况进行导航,以保证车辆的安全、正常行驶。
在自动驾驶领域常用的传感器是激光雷达,但是对于激光雷达数据的解析存在多分割或者欠分割现象,导致解析结果准确,造成了一定的安全隐患。
申请内容
本申请实施例提供一种自动驾驶方法及装置,用以提高解析激光点云数据的准确性,从而提高了自动驾驶控制的安全性。
一方面,本申请实施例提供一种自动驾驶方法,包括:
获得针对自动驾驶对象采集的激光点云数据;
从激光点云数据中识别出第一类目标对象的结构化信息,以及第二类目标对象的类别信息;
根据第一类目标对象的结构化信息追踪各个第一类目标对象,并根据第二类目标对象的类别信息追踪各个第二类目标对象;
基于各个第一类目标对象和各个第二类目标对象的追踪结果,确定自动驾驶对象的驾驶策略。
一方面,本申请实施例提供一种自动驾驶装置,包括:
激光点云数据获取单元,用于获得针对自动驾驶对象采集的激光点云数据;
识别单元,用于从激光点云数据中识别出第一类目标对象的结构化信息,以及第二类目标对象的类别信息;
追踪单元,用于根据第一类目标对象的结构化信息追踪各个第一类目标对象,并根据第二类目标对象的类别信息追踪各个第二类目标对象;
驾驶策略确定单元,用于基于各个第一类目标对象和各个第二类目标对象的追踪结果,确定自动驾驶对象的驾驶策略。
一方面,本申请实施例提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,处理器执行计算机程序时实现上述任一种自动驾驶方法的步骤。
一方面,本申请实施例提供了一种计算机可读存储介质,其存储有可由计算机设备执行的计算机程序,当所述程序在计算机设备上运行时,使得所述计算机设备执行上述任一种自动驾驶方法的步骤。
本申请实施例提供的自动驾驶方法,获得针对自动驾驶对象采集的激光点云数据,这些点云数据能够表征该自动驾驶对象在行驶路径附近的障碍物信息,需要从激光点云数据中确定出自动驾驶对象在行驶路径附近的障碍物信息。
在本申请实施例中,通过激光点云数据确定出两类目标对象的信息,一类目标对象只能确定出结构化信息,另一类目标对象能够确定具体的类别信息,通过确定出的第一类目标对象的结构化信息以及第二类目标对象的类别信息分别对各个第一类目标对象以及第二类目标对象进行追踪,根据各个第一类目标对象和各个第二类目标对象的追踪结果,确定自动驾驶对象的驾驶策略。
由于在本申请实施例中是综合考虑了具有结构化的第一类目标对象以及具有具体类别的第二类目标对象,能够在具体类别的第二类目标对象识别不全面的情况下,还能够通过结构化的第一类目标对象确定自动驾驶对象的行驶路径附近存在的障碍物信息,从而能够更好的确定自动对象的驾驶策略。
与现有技术中从激光点云数据中确定目标对象的方法相比,能够通过两种类别对象的追踪信息确定完整的目标对象追踪信息,提高了识别准确性以及全面性,从而进一步地提高了自动驾驶策略的准确性,保证了自动驾驶的安全性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种自动驾驶方法的应用场景示意图;
图2为本申请实施例提供的一种自动驾驶方法的流程示意图;
图3为本申请实施例提供的一种激光点云数据的示意图;
图4为本申请实施例提供的一种车辆进行激光点云数据采集的示意图;
图5为本申请实施例提供的一种深度图的示意图;
图6为本申请实施例提供的一种角度和边对应关系的示意图;
图7为本申请实施例提供的一种特征提取层进行处理的流程示意图;
图8为本申请实施例提供的一种自动驾驶方法确定驾驶策略的示意图;
图9为本申请实施例提供的一种自动驾驶装置的结构示意图;
图10为本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
为了方便理解,下面对本申请实施例中涉及的名词进行解释:
自动驾驶对象,能够在规定行驶路线上行驶的各种交通工具,如燃油汽车、电动车和混合动力车,也可以为飞机、轮船等交通工具。
点云数据,点云数据指的是当一束激光照射在物体表面,所返回的数据信息中包括该物体表面各个点在三维空间中的坐标信息,这些点的组合就是激光点云,所得到的数据就是点云数据。深度数据和点云数据通过坐标变换可以互相转换得到,一般来说深度数据可以直接变换得到点云数据,但是点云数据需要有一定的规则和必要的相关信息才可以变换得到深度数据。
激光点云数据,指的是当一束激光照射在物体表面,所返回的数据信息中包括该物体表面各个点在三维空间中的坐标信息,这些点的组合就是激光点云,所得到的数据就是激光点云数据。深度数据和激光点云数据通过坐标变换可以互相转换得到。
目标对象,指的是在自动驾驶对象行驶过程中,阻碍自动驾驶对象行驶的对象,目标对象可以是交通要素,例如其它交通工具,例如车辆以及非机动车辆,以及交通信号设备等,也可以是在行驶过程中遇到的障碍物,例如垃圾桶、盒子、小动物等。
结构化信息,指的是目标对象由设定的各部分构成,而各部分的信息作为结构化信息,例如,目标对象是垃圾桶,则结构化信息指的是垃圾桶的形状信息等,也可以是垃圾桶的体积信息等,例如结构化信息是目标对象的体素信息。
机器学习(ml,machinelearning):是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。它是人工智能的核心,是使计算机具有智能的根本途径。机器学习的核心是“使用算法解析数据,从中学习,然后对世界上的某件事情做出决定或预测”。这意味着,与其显式地编写程序来执行某些任务,不如教计算机如何开发一个算法来完成任务。
深度学习(dl,deeplearning):是机器学习领域中一个新的研究方向,它被引入机器学习使其更接近于最初的目标——人工智能(ai,artificialintelligence)。
在具体实践过程中,本申请的发明人发现,在对激光点云数据进行处理过程中,可以使用对点云进行结构化处理方法,从激光点云数据中确定目标对象,但是对点云进行结构化处理的过程中会存在以下两个问题,第一个问题是多分割现象,指的是通过结构化处理方法,会将同一目标对象分割为多个部分,例如激光点云数据中的目标对象至少包括一辆车,使用结构化处理方法处理激光点云数据时,一辆车经常会被分割为车体与后视镜为两部分。
还有一个问题是欠分割问题,就是将多个目标对象分割为同一目标对象,例如将多辆车分割为同一车辆。
上述两个问题会对目标对象的追踪会存在很大的歧义,进而会造成自动驾驶策略的决策失误。
本申请的发明人进而发现,还可以应用机器学习或者具体的基于深度学习的方法提取激光点云数据的目标对象,通过训练样本对深度学习模型进行训练,可以有效的将与训练样本对应的目标对象从激光点云数据中提取出来。
但是应用基于深度学习方法提取激光点云数据中的目标对象的过程中会对训练样本具有很强的依赖性,若没有标注过一类样本的时候一定不会输出这个物体的类别,但是在真实世界中物体类别千万种,没有办法进行穷举,因此会出现将激光点云数据中的部分没有标注的目标对象忽略,这对于实际道路行驶安全造成了很大的安全隐患。
基于上述现有技术的缺点,本申请的发明人构思了一种自动驾驶方法,根据激光点云数据中的结构化信息,识别出第一类目标对象的结构化信息,并基于已确定类别的各目标对象,能够识别出第二类目标对象,分别对第一类目标对象以及第二类目标对象进行追踪,并根据追踪结果确定自动驾驶对象的驾驶策略。
通过本申请实施例的方法,能够根据结构化信息识别出第一类目标对象,也能够识别出已确定类别的第二类目标对象,与现有技术中从激光点云数据中识别出的目标对象相比,能够确定完整的目标对象追踪信息,提高了识别准确性以及全面性,从而进一步地提高了自动驾驶策略的准确性,保证了自动驾驶的安全性。
在介绍完本申请实施例的设计思想之后,下面对本申请实施例的技术方案能够适用的应用场景做一些简单介绍,需要说明的是,以下介绍的应用场景仅用于说明本申请实施例而非限定。在具体实施时,可以根据实际需要灵活地应用本申请实施例提供的技术方案。
为进一步说明本申请实施例提供的技术方案,下面结合附图以及具体实施方式对此进行详细的说明。虽然本申请实施例提供了如下述实施例或附图所示的方法操作步骤,但基于常规或者无需创造性的劳动在所述方法中可以包括更多或者更少的操作步骤。在逻辑上不存在必要因果关系的步骤中,这些步骤的执行顺序不限于本申请实施例提供的执行顺序。
参考图1,其为本申请实施例提供的自动驾驶方法的应用场景示意图。该应用场景至少包括数据处理设备101、自动驾驶对象102,数据处理设备101与自动驾驶对象102之间可以位于同一局域网中,也可以位于不同的网络中。数据处理设备101与自动驾驶对象102之间通过有线网络或者无线网络进行连接。
一种可选的实施例中,数据处理设备101与自动驾驶对象102之间可以通过车联网进行连接,例如通过蓝牙技术,无线技术将数据处理设备101与自动驾驶对象102接入车辆网,并进行数据交互。
在本申请实施例中,数据处理设备101将针对自动驾驶对象102采集到的激光点云数据进行数据处理,数据处理的过程是确定激光点云数据中的各结构化信息,根据结构化信息从激光点云数据中确定第一类目标对象,并根据能够确定的目标对象的各类别,从激光点云数据中确定第二类目标对象。
数据处理设备101对第一类目标对象以及第二类目标对象进行追踪,得到动态追踪结果,并根据动态追踪结果确定自动驾驶对象的驾驶策略。
应理解,本申请实施例中的数据处理设备101包括但不限于桌面计算机、移动电话、移动电脑、平板电脑等电子设备,可以包括服务器,服务器可以是服务器集群,也可以是单个服务器。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn、以及大数据和人工智能平台等基础云计算服务的云服务器。
一种可选的实施例中,数据处理设备101为自动驾驶对象102中的一部分,即数据处理设备101为自动驾驶对象102中的服务器或者计算节点,通过获取针对自动驾驶对象102的激光点云数据进行数据处理,并确定自动驾驶对象的驾驶策略。
在本申请中,如图1所示,场景架构中还包括采集设备103,在本申请实施例中,采集设备103具有采集激光点云数据的功能,可选的,采集设备103为自动驾驶对象102中的激光雷达设备,该激光雷达设备可以通过主动发送激光的方式探测自动驾驶对象102行驶路线周围的障碍物信息等,并形成激光点云数据。
另一种可选的实施例中,图1所示,场景架构中还包括数据库104,数据库104与数据处理设备101可以通过有线网络或者无线网络的方式连接,同样数据库104与采集设备103可以通过有线网络或者无线网络的方式连接;数据库104用于保存采集设备103采集的激光点云数据或者保存数据处理设备101确定的追踪结果以及驾驶策略等。
同样的,在本申请实施例中,数据库104可以为云数据库,云数据库是指通过集群应用、网格技术以及分布存储文件系统等功能,将网络中大量各种不同类型的存储设备(存储设备也称之为存储节点)通过应用软件或应用接口集合起来协同工作,共同对外提供数据存储和业务访问功能的一个存储系统。在本申请实施例中,数据处理设备101以及采集设备103可以通过云数据库的访问结构访问云数据库。
当然,本申请实施例提供的方法并不限用于图1所示的应用场景中,还可以用于其它可能的应用场景,本申请实施例并不进行限制。对于图1所示的应用场景的各个设备所能实现的功能将在后续的方法实施例中一并进行描述,在此先不过多赘述。
为进一步说明本申请实施例提供的技术方案,下面结合附图以及具体实施方式对此进行详细的说明。虽然本申请实施例提供了如下述实施例或附图所示的方法操作步骤,但基于常规或者无需创造性的劳动在所述方法中可以包括更多或者更少的操作步骤。在逻辑上不存在必要因果关系的步骤中,这些步骤的执行顺序不限于本申请实施例提供的执行顺序。
下面结合图1所示的应用场景,对本申请实施例提供的技术方案进行说明。
参考图2,本申请实施例提供一种自动驾驶方法,包括以下步骤:
步骤s201,获得针对自动驾驶对象采集的激光点云数据。
具体的,在本申请中,针对自动驾驶对象采集了激光点云数据,该激光点云数据可以是周期性采集的,也可以是非周期性采集的,例如在接收到采集激光点云数据指令后,采集激光点云数据。
激光点云数据如图3所示,在图3的激光点云数据中,表示的是通过激光雷达主动探测得到的一只兔子的激光点云数据,该激光点云数据指的是这只兔子在一个三维坐标系统中的一组向量的集合。也可以理解为,若自动驾驶对象的行驶路线周围存在一只兔子,则针对该自动驾驶对象采集的激光点云数据中至少包括图3中的激光点云数据。
一种可选的实施例中,针对自动驾驶对象采集的激光点云数据的过程可以如图4所示,在图4中,自动驾驶对象为车辆,在车辆上设置了激光雷达,通过激光雷达的激光束对自动驾驶对象的行驶方向进行扫描,扫描的范围与激光雷达的扫描范围设置相关。
步骤s202,从激光点云数据中识别出第一类目标对象的结构化信息,以及第二类目标对象的类别信息。
在本申请实施例中,激光点云数据中包括许多信息,也可以从激光点云数据中提取信息,在本申请实施例中,可以从激光点云数据中至少确定出第一类目标对象的结构化信息以及第二类目标对象的类别信息。
具体的,激光点云数据中包括多个目标对象,这些目标对象可以被划分为两类目标对象,一类目标对象是能够确定出具体属性信息的目标对象,也可以认为是类别信息的目标对象,例如车辆、行人、非机动车、某种障碍物等,这一类目标对象被定义为第二类目标对象;一类目标对象仅能确定出结构化信息,例如在激光点云数据中能够确定出包括三个物体,至于具体的物体类别,并不能直接确定,这类目标对象被定义为的第一类目标对象。
第一类目标对象由于没有具体的类别信息,所以只能确定出该类目标对象的结构化信息,而第二类目标对象能够确定出类别信息,则从激光点云数据中确定第二类目标对象的类别信息。
下面将分别介绍确定第一类目标对象的结构化信息以及确定第二类目标对象的类别信息的过程。
首先介绍确定第一类目标对象的结构化信息的过程,具体的,在本申请实施例中,激光点云数据中包括结构化信息,该结构化信息可以是目标对象的长度信息、宽度信息,也可以是目标对象的体素信息,即体积要素信息。
从激光点云数据中获取第一类目标对象的方法可以有多种,这些方法都是基于对激光点云数据中的各结构化信息进行处理的,可选的,从激光点云数据中获取第一类目标对象的方法有例如图表法graph和距离图法rangeimage;这些获取第一类目标对象的方法都是基于豪斯多夫hausdorff距离来确定各结构化信息是否属于同一目标对象,所以下面具体介绍基于豪斯多夫hausdorff距离来确定各结构化信息是否属于同一目标对象的过程。
在获取到激光点云数据后,对激光点云数据进行结构化处理。一种常规的处理方法是将在激光点云数据转为深度图,也就是说,将激光点云数据中的各数据转换成对应的深度信息,并构成深度图,深度图分为不同的行和列,其中行数取决于激光雷达发射的扫描激光线数,列数取决于激光雷达的扫描范围,每个像素点存储的是激光点的欧式距离。
例如图5所示,图5就是将采集到的针对自动驾驶对象的激光点云数据转换为深度信息得到的深度图,在图5中,各个点状数据表示的是各激光点云数据对应的深度数据。
在获得了深度图后,根据各深度图的深度信息对激光点云数据进行处理,确定属于同一目标对象的深度信息,从而能够根据结构化的深度信息确定该目标对象的分割结果。
具体的,分割的空间依据如图6所示,在图6中,o为激光的中心点,a,b表示空间中的任意的两个不同的点,oa,ob为连续的两个光束。分别过a和b做两条直线,取较长的光束为y轴,α角表示激光雷达水平方向相邻两束激光之间的夹角,α角是与激光雷达的特性相关的,可以通过获取激光雷达的参数确定α角,β为光束与ab之间的夹角,从图6中可以看出,β角与a、b的深度有关。
在具体分割过程中,可以通过设置一个阈值θ,若β>θ时,判断这两个深度信息表征的数据点在同一个物体上。
根据图6中各角度与各边的关系,可以确定β角点计算过程如公式1所示:
其中,d1表示的是ao之间的距离,d2表示的是ob之间的距离。
通过上述方法,从所述激光点云数据中识别出各个目标对象的结构化信息,这些结构化信息对应多个第一类目标对象。
下面具体介绍确定第二类目标对象的类别信息的过程,具体的,在本申请实施例中,由于需要从激光点云数据中能够确定出具有类别信息的第二类目标对象,通常会采用分类的方法确定激光点云数据中的第二类目标对象,这样确定出的第二类目标对象具有类别信息。
进一步地,可以通过基于深度学习模型的分类方法,更准确的从激光点云数据中识别出第二类目标对象的类别信息。具体的,可以基于深度学习模型的分类方法,从激光点云数据中识别出第二类目标对象的类别信息,基于深度学习模型的分类方法有多种,例如基于pointnet模型的分类方法、基于卷积网络cnn模型的分类方法等等,这些分类方法都需要经过训练阶段,训练阶段中通过有效的训练样本调整深度学习模型的参数,并经过迭代训练过程得到训练完成的深度学习模型的参数。
在本申请实施例中,示例性介绍基于体素网络voxelnet模型的分类方法来确定第二类目标对象的类别信息的方法,voxelnet是对pointnet以及pointnet模型的拓展与改进,该方法将激光点云数据划分为一定数量的体素,经过各激光点云数据的随机采样以及归一化后,对每一个非空体素使用若干个多个体素特征编码vfe层进行局部特征提取,得到体素特征,然后卷积层进一步抽象特征,可以增大感受野并学习各体素特征的几何空间表示,最后使用区域提出网络rpn层对物体进行分类检测与位置回归。具体的,基于体素网络voxelnet模型的分类方法的架构分为三层,包括特征提取层、卷积层以及rpn层。具体对每层的处理过程如下:
特征提取层的目的是提取激光点云数据的特征,特征提取层的处理过程如图7所示,包括体素分块voxelpartition处理过程、激光点云数据分组grouping处理过程、随机采样randomsampling处理过程,多层的体素特征编码stackedvoxelfeatureencoding处理过程以及稀疏张量表示sparsetensorrepresentation处理过程。
体素分块voxelpartition的处理过程就是对于输入的激光点云数据,使用相同尺寸的立方体对其进行划分,使用一个设定深度、高度和宽度分别为(d,h,w)的大立方体表示输入的激光点云数据,每个体素的深高宽为(vd,vh,vw),则整个激光点云数据的三维体素化的结果在各个坐标上生成的体素格voxelgrid的个数为:
激光点云数据分组grouping处理过程是将体素分块voxelpartition的分块结果进行分组,即将多个体素分块划分为一组,将其它数量的体素分块划分为一组。
激光点云数据分组grouping处理过程的结果中会出现有些体素格激光点云数据很多,有些体素格激光点云数据很少的情况,所以在处理过程中,需要加入随机采样randomsampling处理过程,对于每一个体素格,随机采样固定数目的激光点云数据t。
多个体素特征编码voxelfeatureencoding层,简称vfe层,vfe层对于一个体素格内随机采样的激光点云数据集,计算体素内所有激光点云数据的平均值作为体素格的形心,可以将体素格内所有激光点云数据的特征数量进行扩充,然后通过一个全连接网络fullyconnected将特征映射到一个特征空间。
接着采用最大池化的操作方式对上一步得到的特征表示进行逐元素的聚合,得到局部聚合特征,最后,将逐个激光点云数据的特征和逐元素特征进行连接,得到特征集合。
对于所有的非空的体素格都进行上述操作,并且所有的非空的体素格都共享全连接层的参数。
通过上述流程处理非空体素格,我们可以得到一系列的体素特征,将体素特征表示为一个4维的稀疏张量表示。
示例性的,若自动驾驶对象为车辆,在车辆上设置了激光雷达,沿着激光雷达坐标系的(z,y,x)方向取[-3,1]×[-40,40]×[0,70.4]立方体(单位为米)的激光点云数据作为输入,取体素格的大小为vd=0.4、vh=0.2、vw=0.2。
设置随机采样的t=35,并且采用两个vfe层:vfe-1(7,32)和vfe-2(32,128)提取特征,最后的全连接层将vfe-2的输出映射到128维空间,通过上述过程,特征提取层的输出结果是一个尺寸为(128过上述过程,特征352)的稀疏张量。
在接招了特征提取层的处理过程后,下面介绍卷积层的处理过程,每一个卷积层包含一个3维卷积,一个批标准化bn层,一个非线性relu层,通过卷积层卷积运算的目的是多维度的提取输入的不同特征,对每一个特征首先进行局部感知,然后更高层次对局部进行综合操作,从而得到全局信息。
在得到全局信息后,进行rpn层处理,rpn实际上是目标检测网络中常用的一种网络,rpn包含三个全卷积层块,每个块的第一层通过步长为2的卷积将特征图采样为一半,之后是三个步长为1的卷积层,每个卷积层都包含bn层和relu操作。将每一个块的输出都上采样到一个固定的尺寸并串联构造高分辨率的特征图。最后,该特征图通过两种二维卷积被输出到期望的学习目标,学习目标有两个,一个是概率评分图probabilityscoremap,一个是回归图regressionmap。
通过上述过程,可以基于深度学习的分类方法确定出激光点云数据中的已确定类别的各目标对象,即第二类目标对象。
上述内容还可确定,能够通过基于结构化信息检测方法检测出所有具有结构化信息的目标对象,这些目标对象中有些是能够与通过基于深度学习的分类方法确定出激光点云数据中的已确定类别的各目标对象形成对应的,所以还能够确定第二类目标对象的结构化信息。
例如,在本申请实施例中,通过基于结构化信息检测方法检测出6个具有结构化信息的目标对象,通过基于深度学习的分类方法确定出激光点云数据中的已确定类别的3个目标对象,则该3个目标对象是具有结构化信息的。
所以在本申请实施例中,将各个目标对象中除第二类目标对象之外的目标对象作为第一类目标对象,并根据各个目标对象的结构化信息,确定第一类目标对象的结构化信息。
也就是说,在本申请实施例中,将基于深度学习模型的分类方法能够确定的目标对象作为第二类目标对象,将各个目标对象中除第二类目标对象之外的目标对象作为第一类目标对象。
步骤s203,根据第一类目标对象的结构化信息追踪各个第一类目标对象,并根据第二类目标对象的类别信息追踪各个第二类目标对象。
具体的,在本申请实施例中,当确定了各类目标对象后,分别对各目标进行追踪,确定各目标对象的运动变化情况,便于更好的确定自动驾驶对象的驾驶策略。
由于需要动态追踪各目标对象,所以需要不同采集周期的激光点云数据,并分别确定不同采集周期内的各第一类目标对象的结构化信息以及第二类目标对象的类别信息,进而能够确定不同采集周期中各第二类目标对象的结构化信息,从而动态追踪各个第一类目标对象以及各个第二类目标对象。
动态追踪各个第一类目标对象以及各个第二类目标对象可以包括位置信息、体积信息、速度信息、加速度信息等多个信息,从而全面的确定各目标对象的动态信息。
示例性的,每0.1s采集一次激光点云数据,通过三个采集周期对各个第一类目标对象以及各个第二类目标对象进行追踪。
在第一采集周期,第一类目标对象中的目标对象1位于第一地理位置,目标对象2位于第二地理位置,目标对象3位于第三地理位置,第二类目标对象中的车辆位于第四地理位置,第二类目标对象中的自行车为第五地理位置。
在第二采集周期,第一类目标对象中的目标对象1位于第一地理位置,目标对象2位于第二地理位置,目标对象3位于第六地理位置,第二类目标对象中的车辆位于第七地理位置,第二类目标对象中的自行车为与第八地理位置。
在第三采集周期,第一类目标对象中的目标对象1位于第一地理位置,目标对象2位于第二地理位置,目标对象3位于第九地理位置,第二类目标对象中的车辆位于第十地理位置,第二类目标对象中的自行车为第八地理位置。
从追踪结果可知,目标对象1为静止对象、目标对象2为静止对象、目标对象3为动态对象,车辆处于一直运动状态,自行车暂时停止在第八地理位置。
除了上述示例外,还可以追踪各第一类目标对象的结构化信息的变化情况,例如第一类目标对象在某个周期的结构化信息为第一体积信息,第一类目标对象在相邻周期的结构化信息变为第二体积信息,且第二体积信息小于第一体积信息,可以认为,第一类目标对象发生了变化,可能从一个大的障碍物分散为小障碍物,对应的实际情况可能是一团落叶、纸巾等障碍物被吹散的情况。
通过上述追踪的方法可以有效的确定第一类目标对象以及第二类目标对象的动态信息,便于驾驶策略的确定。
步骤s204,基于各个第一类目标对象和各个第二类目标对象的追踪结果,确定自动驾驶对象的驾驶策略。
具体的,在本申请实施例中,在确定了第一类目标对象以及第二类目标对象的动态信息后,可以根据预设的安全阈值、告警阈值等自动驾驶中的安全设置阈值以及动态信息综合确定驾驶策略。
一种可选的实施例中,驾驶策略至少为避让、减速、正常行驶中的一种。例如若确定自动驾驶对象的行驶方向前方出现障碍物,且与障碍物的距离可以进行减速操作时,确定的驾驶策略为减速;若确定自动驾驶对象的行驶方向前方没有障碍物,则可以继续正常行驶;若确定自动驾驶对象的行驶方向前方出现障碍物,且与障碍物的距离不可以进行减速操作,且旁向行驶方向上符合变道条件的,确定的驾驶策略为变道避让。
当然,在本申请实施例中,还可以有其它的驾驶策略,驾驶策略不仅仅包括上述策略,在此不做赘述。
为了更好的解释本申请实施例,下面结合一种具体的实施场景描述本申请实施例提供的自动驾驶方法,在本申请实施例中的方法中,自动驾驶对象为车辆,在该车辆上设置了激光雷达,并周期性发射光束确定车辆行驶附近存在的障碍物。
如图8所示,在图8中,车辆行驶在路上,通过激光雷达采集激光点云数据,并将激光点云数据上报给云服务器,云服务器根据激光点云数据中识别出第一类目标对象的结构化信息,以及第二类目标对象的类别信息,并根据多次周期采集的激光点云数据对各第一类目标对象,以及第二类目标对象进行追踪,确定自动驾驶策略,并将自动驾驶策略下发给车辆。
具体的,在本申请实施例中,云服务器通过多次采集周期的激光点云数据确定车辆前方100米处存在另一辆车,记作障碍物车辆1,以及车辆前方60米处存在不知道确定类别的障碍物信息,记作障碍物2。
确定的障碍物车辆1的车速为30m/h,自动驾驶对象车辆的车速为35m/h,则云服务器确定自动驾驶对象车辆首先进行变道避让,避让障碍物2,然后再变回原行驶路线减速驾驶。
基于上述实施例,参阅图9所示,本发明实施例提供一种自动驾驶装置900,包括:
激光点云数据获取单元901,用于获得针对自动驾驶对象采集的激光点云数据;
识别单元902,用于从激光点云数据中识别出第一类目标对象的结构化信息,以及第二类目标对象的类别信息;
追踪单元903,用于根据第一类目标对象的结构化信息追踪各个第一类目标对象,并根据第二类目标对象的类别信息追踪各个第二类目标对象;
驾驶策略确定单元904,用于基于各个第一类目标对象和各个第二类目标对象的追踪结果,确定自动驾驶对象的驾驶策略。
可选的,识别单元902具体用于,基于结构化信息检测方法,从激光点云数据中识别出各个目标对象的结构化信息;基于深度学习模型的分类方法,从激光点云数据中识别出第二类目标对象的类别信息;将各个目标对象中除第二类目标对象之外的目标对象作为第一类目标对象,并根据各个目标对象的结构化信息,确定第一类目标对象的结构化信息。
可选的,识别单元902具体用于,将激光点云数据划分为设定数量的体素,并对每个非空体素进行局部特征提取,得到各个非空体素的局部特征;通过卷积网络的抽象特征提取过程,将各个非空体素的局部特征转换为高级视觉语义特征;根据各个非空体素的高级视觉语义特征确定各第二类目标对象的类别信息。
可选的,识别单元902具体用于,根据激光点云数据中各深度数据确定设定数量的深度数据是否为同一目标对象;根据同一目标对象对应的多个深度数据确定该目标对象的结构化信息。
可选的,追踪单元903具体用于,根据不同采集周期的激光点云数据,确定不同采集周期的第一类目标对象的结构化信息以及第二类目标对象的类别信息;根据多个采集周期的第一类目标对象的结构化信息以及第二类目标对象的类别信息分别追踪各个第一类目标对象以及各个第二类目标对象。
可选的,驾驶策略确定单元904具体用于,基于各个第一类目标对象和各个第二类目标对象的运动状态信息,确定自动驾驶对象的驾驶策略,驾驶策略至少为避让、减速、正常行驶中的一种。
基于相同的技术构思,本申请实施例提供了一种计算机设备,如图10所示,包括至少一个处理器1001,以及与至少一个处理器连接的存储器1002,本申请实施例中不限定处理器1001与存储器1002之间的具体连接介质,图10中处理器1001和存储器1002之间通过总线连接为例。总线可以分为地址总线、数据总线、控制总线等。
在本申请实施例中,存储器1002存储有可被至少一个处理器1001执行的指令,至少一个处理器1001通过执行存储器1002存储的指令,可以执行前述的自动驾驶方法中所包括的步骤。
其中,处理器1001是计算机设备的控制中心,可以利用各种接口和线路连接终端设备的各个部分,通过运行或执行存储在存储器1002内的指令以及调用存储在存储器1002内的数据,从而获得客户端地址。待选的,处理器1001可包括一个或多个处理单元,处理器1001可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器1001中。在一些实施例中,处理器1001和存储器1002可以在同一芯片上实现,在一些实施例中,它们也可以在独立的芯片上分别实现。
处理器1001可以是通用处理器,例如中央处理器(cpu)、数字信号处理器、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器1002作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器1002可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(randomaccessmemory,ram)、静态随机访问存储器(staticrandomaccessmemory,sram)、可编程只读存储器(programmablereadonlymemory,prom)、只读存储器(readonlymemory,rom)、带电可擦除可编程只读存储器(electricallyerasableprogrammableread-onlymemory,eeprom)、磁性存储器、磁盘、光盘等等。存储器1002是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本申请实施例中的存储器1002还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
基于相同的技术构思,本申请实施例提供了一种计算机可读存储介质,其存储有可由计算机设备执行的计算机程序,当所述程序在计算机设备上运行时,使得所述计算机设备执行自动驾驶方法的步骤。
上述计算机可读存储介质可以是计算机能够存取的任何可用介质或数据存储设备,包括但不限于磁性存储器(例如软盘、硬盘、磁带、磁光盘(mo)等)、光学存储器(例如cd、dvd、bd、hvd等)、以及半导体存储器(例如rom、eprom、eeprom、非易失性存储器(nandflash)、固态硬盘(ssd))等。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。