用于控制车辆的方法和装置与流程

文档序号:24637179发布日期:2021-04-09 20:48阅读:61来源:国知局
用于控制车辆的方法和装置与流程

本申请实施例涉及车辆控制技术领域,具体涉及用于控制车辆的方法和装置。



背景技术:

利用深度传感器和位置姿态传感器基于固定站或移动平台采集周围环境的三维信息,由于其高效、实时、高精度的特性而被广泛采用。由于扫描的场景包含不同类型的物体,例如地面、建筑物、树木、车辆等。需要通过点云分割将不同类型的物体对应的点云数据彼此分割开,以便对各个物体分别进行点云建模。如果这些障碍物距离较近或者有重叠的话,现有的点云分割方案容易将多个障碍物识别为一个大的障碍物。这样的识别结果会影响自动驾驶车辆的行驶。



技术实现要素:

本申请实施例提出了用于控制车辆的方法和装置。

第一方面,本申请实施例提供了一种用于控制车辆的方法,包括:获取车辆在行驶过程中采集的第一点云数据;识别上述第一点云数据中的障碍物;根据第一点云数据以及识别出的障碍物对应的点云数据,确定第二点云数据;对上述第二点云数据进行聚类,以及根据聚类结果,确定上述第二点云数据对应的至少一个障碍物;根据所确定的至少一个障碍物,向上述车辆发送控制信号以控制上述车辆。

在一些实施例中,上述对上述第二点云数据进行聚类,以及根据聚类结果,确定上述第二点云数据对应的至少一个障碍物,包括:将上述第二点云数据划分为至少两个簇,并执行以下聚类步骤:确定上述至少两个簇的边框;在至少两个边框上选取多个点;根据所选取的点计算上述至少两个簇中任意两个簇之间的距离;根据得到的距离,确定上述第二点云数据对应的至少一个障碍物。

在一些实施例中,上述将上述第二点云数据划分为至少两个簇,包括:将上述第二点云数据向地面投影,得到投影点数据;将上述投影点数据进行网格划分,得到至少两个网格;将上述单个网格中包括的投影点作为一个簇,得到至少两个簇。

在一些实施例中,上述在至少两个边框上选取多个点,包括:对于上述至少两个边框中的边框,确定该边框所包括的范围的中心;以该中心为端点,确定多条射线;将上述多条射线与该边框的交点作为选取的多个点。

在一些实施例中,上述根据得到的距离,确定上述第二点云数据对应的至少一个障碍物,包括:对于上述至少两个簇中的任意两个簇,根据选取的点,计算该两个簇之间的最大距离;响应于确定上述最大距离小于预设阈值,将该两个簇合并为一个簇,得到更新的至少两个簇,继续执行上述聚类步骤。

第二方面,本申请实施例提供了一种用于控制车辆的装置,包括:获取单元,被配置成获取车辆在行驶过程中采集的第一点云数据;识别单元,被配置成识别上述第一点云数据中的障碍物;确定单元,被配置成根据第一点云数据以及识别出的障碍物对应的点云数据,确定第二点云数据;聚类单元,被配置成对上述第二点云数据进行聚类,以及根据聚类结果,确定上述第二点云数据对应的至少一个障碍物;控制单元,被配置成根据所确定的至少一个障碍物,向上述车辆发送控制信号以控制上述车辆。

在一些实施例中,上述聚类单元进一步被配置成:将上述第二点云数据划分为至少两个簇,并执行以下聚类步骤:确定上述至少两个簇的边框;在至少两个边框上选取多个点;根据所选取的点计算上述至少两个簇中任意两个簇之间的距离;根据得到的距离,确定上述第二点云数据对应的至少一个障碍物。

在一些实施例中,上述聚类单元进一步被配置成:将上述第二点云数据向地面投影,得到投影点数据;将上述投影点数据进行网格划分,得到至少两个网格;将上述单个网格中包括的投影点作为一个簇,得到至少两个簇。

在一些实施例中,上述聚类单元进一步被配置成:对于上述至少两个边框中的边框,确定该边框所包括的范围的中心;以该中心为端点,确定多条射线;将上述多条射线与该边框的交点作为选取的多个点。

在一些实施例中,上述聚类单元进一步被配置成:对于上述至少两个簇中的任意两个簇,根据选取的点,计算该两个簇之间的最大距离;响应于确定上述最大距离小于预设阈值,将该两个簇合并为一个簇,得到更新的至少两个簇,继续执行上述聚类步骤。

第三方面,本申请实施例提供了一种电子设备,包括:一个或多个处理器;存储装置,其上存储有一个或多个程序,当上述一个或多个程序被上述一个或多个处理器执行,使得上述一个或多个处理器实现如第一方面任一实施例所描述的方法。

第四方面,本申请实施例提供了一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如第一方面任一实施例所描述的方法。

本申请的上述实施例提供的用于控制车辆的方法和装置,可以获取车辆在行驶过程中采集的第一点云数据。并识别第一点云数据中的障碍物。然后,根据第一点云数据和识别出的障碍物,确定出第二点云数据。然后,对第二点云数据进行聚类,并根据聚类结果,来确定第二点云数据对应的至少一个障碍物。最后,根据所确定的至少一个障碍物,向车辆发送控制信息以控制车辆。本实施例的方法,可以对未知类型的障碍物所对应的点云数据进行进一步处理,以更合理的指导车辆行驶。

附图说明

通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:

图1是本申请的一个实施例可以应用于其中的示例性系统架构图;

图2是根据本申请的用于控制车辆的方法的一个实施例的流程图;

图3是根据本申请的用于控制车辆的方法的一个应用场景的示意图;

图4是根据本申请的用于控制车辆的方法中对第二点云数据进行聚类的一个实施例的流程图;

图5是根据本申请的用于控制车辆的装置的一个实施例的结构示意图;

图6是适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。

具体实施方式

下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。

图1示出了可以应用本申请的用于控制车辆的方法或用于控制车辆的装置的实施例的示例性系统架构100。

如图1所示,系统架构100可以包括自动驾驶车辆101、102、103,网络104和服务器105。网络104用以在自动驾驶车辆101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。

自动驾驶车辆101、102、103上可以安装有各种传感器,例如激光雷达,以采集自动驾驶车辆101、102、103的行驶环境的点云数据。自动驾驶车辆101、102、103上还可以安装有各种电子装置,例如导航装置、无人车控制器、防抱死系统、制动力分配系统等。自动驾驶车辆101、102、103可以是包含了自动驾驶模式的车辆,既包括完全自动驾驶的车辆,也包括能够切换到自动驾驶模式的车辆。

服务器105可以是提供各种服务的服务器,例如对自动驾驶车辆101、102、103采集的点云数据进行处理的后台服务器。例如,后台服务器可以接收自动驾驶车辆101、102、103发送的点云数据,并对接收的点云数据进行处理,得到点云数据中包括的障碍物的信息,并把障碍物的信息返回给自动驾驶车辆101、102、103。

需要说明的是,服务器105可以是硬件,也可以是软件。当服务器105为硬件时,可以实现成多个服务器组成的分布式服务器集群,也可以实现成单个服务器。当服务器105为软件时,可以实现成多个软件或软件模块(例如用来提供分布式服务),也可以实现成单个软件或软件模块。在此不做具体限定。

需要说明的是,本申请实施例所提供的用于控制车辆的方法可以由自动驾驶车辆101、102、103来执行,也可以由服务器105执行。相应地,用于控制车辆的装置可以设置于自动驾驶车辆101、102、103中,也可以设置于服务器105中。

应该理解,图1中的自动驾驶车辆、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的自动驾驶车辆、网络和服务器。

继续参考图2,示出了根据本申请的用于控制车辆的方法的一个实施例的流程200。本实施例的用于控制车辆的方法,包括以下步骤:

步骤201,获取车辆在行驶过程中采集的第一点云数据。

在本实施例中,用于控制车辆的方法的执行主体(例如图1所示的自动驾驶车辆101、102、103或服务器105)可以通过有线连接方式或者无线连接方式获取车辆在行驶过程中采集的第一点云数据。上述车辆可以是自动驾驶车辆,车辆上可以安装有激光雷达传感器,以采集车辆行驶过程中的第一点云数据。

步骤202,识别第一点云数据中的障碍物。

在获取到第一点云数据后,执行主体可以对第一点云数据进行点云识别,以确定第一点云数据中的障碍物。执行主体还可以同时确定障碍物的类型。具体的,执行主体可以利用已训练的点云识别模型来识别第一点云数据中的障碍物。上述点云识别模型可以是神经网络。执行主体可以将第一点云数据从神经网络的输入侧输入,可以在神经网络的输出侧得到障碍物的类型。障碍物的类型可以包括行人、自行车、车辆等等。

步骤203,根据第一点云数据以及识别出的障碍物对应的点云数据,确定第二点云数据。

在识别出第一点云数据中包括的障碍物之后,执行主体可以将除识别出的障碍物对应的点云数据之外的点云数据作为第二点云数据。以对上述第二点云数据进行进一步聚类分析,确定其中所包括的障碍物的个数。

步骤204,对第二点云数据进行聚类,以及根据聚类结果,确定第二点云数据对应的至少一个障碍物。

在确定出第二点云数据后,执行主体可以对第二点云数据进行聚类分析。具体的,执行主体可以利用各种聚类算法对第二点云数据进行聚类分析,例如,最小生成树、k均值算法等。在聚类后,可以得到至少一个簇,每个簇可以作为一个障碍物。则得到第二点云数据对应的至少一个障碍物。

步骤205,根据所确定的至少一个障碍物,向车辆发送控制信号以控制车辆。

在确定至少一个障碍物后,执行主体可以根据各障碍物的位置,向车辆发送控制信号,来控制车辆避开障碍物行驶。

继续参见图3,图3是根据本实施例的用于控制车辆的方法的一个应用场景的示意图。在图3的应用场景中,自动驾驶车辆301在行驶的过程中,利用其上安装的激光雷达传感器来采集第一点云数据。通过对第一点云数据进行点云识别后,确定出除行人、自行车和车辆之外的点云数据为第二点云数据302。现有技术中可能会将第二点云数据302识别为大型障碍物,其边界已与自动驾驶车辆301的车身重合,影响了自动驾驶车辆301的决策功能。自动驾驶车辆可以对第二点云数据302进行进一步聚类分析,得到上述第二点云数据302对应的至少一个障碍物303。最后,自动驾驶车辆301根据各障碍物303的位置,来控制行驶方向和行驶速度,以避开上述障碍物303。

本申请的上述实施例提供的用于控制车辆的方法,可以获取车辆在行驶过程中采集的第一点云数据。并识别第一点云数据中的障碍物,。然后,根据第一点云数据和识别出的障碍物,确定出第二点云数据。然后,对第二点云数据进行聚类,并根据聚类结果,来确定第二点云数据对应的至少一个障碍物。最后,根据所确定的至少一个障碍物,向车辆发送控制信息以控制车辆。本实施例的方法,可以对未知类型的障碍物所对应的点云数据进行进一步处理,以更合理的指导车辆行驶。

继续参见图4,其示出了根据本申请的用于控制车辆的方法中对第二点云数据进行聚类的一个实施例的流程400。如图4所示,本实施例的用于控制车辆的方法,可以通过以下步骤对第二点云数据进行聚类处理:

步骤401,将第二点云数据划分为至少两个簇。

本实施例中,执行主体可以首先将第二点云数据划分为两个簇。具体的,执行主体可以按照点云数据中点的数量将第二点云数据划分为两个簇。

在本实施例的一些可选的实现方式中,执行主体可以通过图4中未示出的以下步骤来划分第二点云数据:将第二点云数据向地面投影,得到投影点数据;将投影点数据进行网格划分,得到至少两个网格;将单个网格中包括的投影点作为一个簇,得到至少两个簇。

本实现方式中,执行主体可以首先将第二点云数据向地面投影,得到投影点数据。然后,执行主体可以将投影点数据进行网格划分。具体的,执行主体可以设置网格的尺寸为25cm*25cm。将落在每个网格中的投影点作为一个簇,这样,可以得到至少两个簇。

在得到至少两个簇后,执行主体可以继续执行聚类步骤402~404。

步骤402,确定至少两个簇的边框。

执行主体可以确定上述各簇的边框。具体的,执行主体可以确定能够包络每个簇中的点的边框,该边框可以是由直线构成的,也可以是由曲线构成的。或者,执行主体可以将每个簇的最小外接圆形或最小外接矩形作为该簇的边框。

在本实施例的一些可选的实现方式中,执行主体可以将每个簇对应的网格的边界作为该簇的边框,这样,可以得到每个簇的边框。

步骤403,在至少两个边框上选取多个点。

在确定每个簇的边框后,执行主体可以在每个边框上选取多个点,以用于计算各簇之间的距离。具体的,执行主体可以在每个边框上间隔预设长度选取多个点,也可以抽样选取多个点。

在本实施例的一些可选的实现方式中,执行主体可以通过图4中未示出的以下步骤来选取多个点:对于至少两个边框中的边框,确定该边框所包括的范围的中心;以该中心为端点,确定多条射线;将多条射线与该边框的交点作为选取的多个点。

本实现方式中,执行主体可以首先确定该边框所包括的范围的中心。然后,执行主体可以以该中心为端点,确定多条射线。具体的,执行主体可以间隔预设角度确定多条射线,例如60°、90°等。然后,执行主体可以将多条射线与边框的交点作为选取的多个点。

步骤404,根据所选取的点计算至少两个簇中任意两个簇之间的距离。

本实施例中,执行主体在对每个簇进行选点后,可以根据所选取的点,来计算各簇之间的距离。具体的,执行主体可以将计算每个簇的点与其它簇的点之间的距离。举例来说,如果每个簇选取4个点,那么两个簇之间的距离可以有16个。这样可以有效地减小聚类过程中的计算量。

步骤405,根据得到的距离,确定第二点云数据对应的至少一个障碍物。

在得到各距离后,执行主体可以判断两个簇之间的距离是否小于预设阈值,如果小于,则认为两个簇属于同一类,则应合并两个簇。如果不小于,则认为两个簇不属于同一类,则不做合并处理。

本实施例中,执行主体可以将两个簇之间的各距离中的最大值作为该两个簇之间的距离。这样,可以避免由于最小距离过小导致的各簇合并为一个大簇的情况,即避免了大型障碍物的出现。

在本实施例的一些可选的实现方式中,上述步骤405具体可以通过图4中未示出的以下步骤来实现:对于至少两个簇中的任意两个簇,根据选取的点,计算该两个簇之间的最大距离;响应于确定最大距离小于预设阈值,将该两个簇合并为一个簇,得到更新的至少两个簇,继续执行聚类步骤402~404。

本实现方式中,执行主体可以根据所选取的点,计算每两个簇之间的最大距离。如果上述最大距离小于预设阈值,则将该两个簇合并为一个簇。这样可以对各簇进行更新,得到更新的至少两个簇。然后可以根据更新的各簇继续执行聚类步骤,直至任意两个簇之间的距离均大于或等于预设阈值,则聚类完成。

本申请的上述实施例提供的用于控制车辆的方法,可以对未知类型的障碍物对应的点云数据进行聚类处理,并且在聚类时减小了计算量,也能够避免大型障碍物的出现,能够准确地控制自动驾驶车辆。

进一步参考图5,作为对上述各图所示方法的实现,本申请提供了一种用于控制车辆的装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。

如图5所示,本实施例的用于控制车辆的装置500包括:获取单元501、识别单元502、确定单元503、聚类单元504以及控制单元505。

获取单元501,被配置成获取车辆在行驶过程中采集的第一点云数据。

识别单元502,被配置成识别第一点云数据中的障碍物。

确定单元503,被配置成根据第一点云数据以及识别出的障碍物对应的点云数据,确定第二点云数据。

聚类单元504,被配置成对第二点云数据进行聚类,以及根据聚类结果,确定第二点云数据对应的至少一个障碍物。

控制单元505,被配置成根据所确定的至少一个障碍物,向车辆发送控制信号以控制车辆。

在本实施例的一些可选的实现方式中,聚类单元504可以进一步被配置成:将第二点云数据划分为至少两个簇,并执行以下聚类步骤:确定至少两个簇的边框;在至少两个边框上选取多个点;根据所选取的点计算至少两个簇中任意两个簇之间的距离;根据得到的距离,确定第二点云数据对应的至少一个障碍物。

在本实施例的一些可选的实现方式中,聚类单元504可以进一步被配置成:将第二点云数据向地面投影,得到投影点数据;将投影点数据进行网格划分,得到至少两个网格;将单个网格中包括的投影点作为一个簇,得到至少两个簇。

在本实施例的一些可选的实现方式中,聚类单元504可以进一步被配置成:对于至少两个边框中的边框,确定该边框所包括的范围的中心;以该中心为端点,确定多条射线;将多条射线与该边框的交点作为选取的多个点。

在本实施例的一些可选的实现方式中,聚类单元504可以进一步被配置成:对于至少两个簇中的任意两个簇,根据选取的点,计算该两个簇之间的最大距离;响应于确定最大距离小于预设阈值,将该两个簇合并为一个簇,得到更新的至少两个簇,继续执行聚类步骤。

应当理解,用于控制车辆的装置500中记载的单元501至单元505分别与参考图2中描述的方法中的各个步骤相对应。由此,上文针对用于控制车辆的方法描述的操作和特征同样适用于装置500及其中包含的单元,在此不再赘述。

下面参考图6,其示出了适于用来实现本公开的实施例的电子设备600的结构示意图。本公开的实施例中的终端设备可以包括但不限于诸如移动电话、笔记本电脑、车载终端(例如车载导航终端)等等的移动终端。图6示出的电子设备仅仅是一个示例,不应对本公开的实施例的功能和使用范围带来任何限制。

如图6所示,电子设备600可以包括处理装置(例如中央处理器、图形处理器等)601,其可以根据存储在只读存储器(rom)602中的程序或者从存储装置608加载到随机访问存储器(ram)603中的程序而执行各种适当的动作和处理。在ram603中,还存储有电子设备600操作所需的各种程序和数据。处理装置601、rom602以及ram603通过总线604彼此相连。输入/输出(i/o)接口605也连接至总线604。

通常,以下装置可以连接至i/o接口605:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置606;包括例如液晶显示器(lcd)、扬声器、振动器等的输出装置607;包括例如磁带、硬盘等的存储装置608;以及通信装置609。通信装置609可以允许电子设备600与其他设备进行无线或有线通信以交换数据。虽然图6示出了具有各种装置的电子设备600,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。图6中示出的每个方框可以代表一个装置,也可以根据需要代表多个装置。

特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置609从网络上被下载和安装,或者从存储装置608被安装,或者从rom602被安装。在该计算机程序被处理装置601执行时,执行本公开的实施例的方法中限定的上述功能。需要说明的是,本公开的实施例所述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开的实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开的实施例中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、rf(射频)等等,或者上述的任意合适的组合。

上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:获取车辆在行驶过程中采集的第一点云数据;识别第一点云数据中的障碍物,确定识别出的障碍物的类型;响应于确定障碍物的类型包括未知类型,确定未知类型的障碍物对应的第二点云数据;对第二点云数据进行聚类,以及根据聚类结果,确定第二点云数据对应的至少一个障碍物;根据所确定的至少一个障碍物,向车辆发送控制信号以控制车辆。

可以以一种或多种程序设计语言或其组合来编写用于执行本公开的实施例的操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、smalltalk、c++,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。

附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

描述于本公开的实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括获取单元、识别单元、确定单元、聚类单元和控制单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定,例如,获取单元还可以被描述为“获取车辆在行驶过程中采集的第一点云数据的单元”。

以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开的实施例中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开的实施例中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1