目标对象的检测方法、***、设备及存储介质
技术领域
本申请实施例涉及可移动平台领域,尤其涉及一种目标对象的检测方法、***、设备及存储介质。
背景技术
在自动驾驶***或辅助驾驶***中,需要对道路中的车辆进行检测,以便进行车辆避让。
现有技术中,自动驾驶***或辅助驾驶***中通常设置有拍摄设备,并通过拍摄设备采集的二维图像检测周围车辆,但是,仅通过二维图像检测周围车辆,车辆检测的精准度不够。
发明内容
本申请实施例提供一种目标对象的检测方法、***、设备及存储介质,以提高对目标对象的检测精度。
本申请实施例的第一方面是提供一种目标对象的检测方法,应用于可移动平台,所述可移动平台设置有探测设备,所述探测设备用于探测所述可移动平台周围环境得到三维点云,所述方法包括:
获取所述三维点云;
对所述三维点云进行聚类,得到第一目标对象对应的点云簇,其中,已聚类的点云簇的聚类中心的高度符合预设高度条件;
根据所述第一目标对象相对于所述可移动平台的距离,以及所述距离与检测模型的对应关系,确定目标检测模型;
通过所述目标检测模型检测所述第一目标对象对应的点云簇,确定所述第一目标对象的对象类型。
本申请实施例的第二方面是提供一种目标对象的检测***,包括:探测设备、存储器和处理器;
所述探测设备用于探测可移动平台周围环境得到三维点云;
所述存储器用于存储程序代码;
所述处理器,调用所述程序代码,当程序代码被执行时,用于执行以下操作:
获取所述三维点云;
对所述三维点云进行聚类,得到第一目标对象对应的点云簇,其中,已聚类的点云簇的聚类中心的高度符合预设高度条件;
根据所述第一目标对象相对于所述可移动平台的距离,以及所述距离与检测模型的对应关系,确定目标检测模型;
通过所述目标检测模型检测所述第一目标对象对应的点云簇,确定所述第一目标对象的对象类型。
本申请实施例的第三方面是提供一种可移动平台,包括:
机身;
动力***,安装在所述机身,用于提供移动动力;
以及如第二方面所述的目标对象的检测***。
本申请实施例的第四方面是提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行以实现第一方面所述的方法。
本实施例提供的目标对象的检测方法、***、设备及存储介质,通过对可移动平台上搭载的探测设备探测获得的三维点云进行聚类,得到目标对象对应的点云簇,在聚类过程中,点云簇的聚类中心的高度需要符合预设高度条件,进一步,根据目标对象相对于可移动平台的距离,以及所述距离与检测模型的对应关系,确定目标检测模型,并通过该目标检测模型检测目标对象对应的点云簇,以便该目标检测模型确定目标对象的对象类型,也就是说,相对于可移动平台不同距离的目标对象采用不同的检测模型进行检测,从而提高了对目标对象的检测精度。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种应用场景的示意图;
图2为本申请实施例提供的目标对象的检测方法的流程图;
图3为本申请实施例提供的另一种应用场景的示意图;
图4为本申请实施例提供的另一种应用场景的示意图;
图5为本申请实施例提供的一种检测模型的示意图;
图6为本申请另一实施例提供的目标对象的检测方法的流程图;
图7为本申请实施例提供的一种三维点云投影到二维图像的示意图;
图8为本申请实施例提供的一种二维特征点的示意图;
图9为本申请另一实施例提供的目标对象的检测方法的流程图;
图10为本申请实施例提供的一种三维点云的示意图;
图11为本申请实施例提供的另一种三维点云的示意图;
图12为本申请实施例提供的又一种三维点云的示意图;
图13为本申请实施例提供的目标对象的检测***的结构图。
附图标记:
11:车辆; 12:服务器; 13:车辆;
14:车辆; 15:三维点云; 30:地面点云;
31:点云簇; 32:点云簇;
41:第一目标对象; 42:第一目标对象; 80:第一图像;
81:投影区域; 82:二维特征点; 1001:右侧区域;
1002:左上角图像; 1003:左下角图像; 100:白色弧线;
101:第一目标对象; 102:第一目标对象;
103:第一目标对象; 104:三维点云;
105:圆圈; 106:识别框; 130:目标对象的检测***;
131:探测设备; 132:存储器; 133:处理器。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,当组件被称为“固定于”另一个组件,它可以直接在另一个组件上或者也可以存在居中的组件。当一个组件被认为是“连接”另一个组件,它可以是直接连接到另一个组件或者可能同时存在居中组件。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中在本申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请。本文所使用的术语“及/或”包括一个或多个相关的所列项目的任意的和所有的组合。
下面结合附图,对本申请的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
本申请实施例提供一种目标对象的检测方法。该方法应用于可移动平台,所述可移动平台设置有探测设备,所述探测设备用于探测所述可移动平台周围环境得到三维点云。在本实施例中,该可移动平台可以是无人机、可移动机器人或车辆。
本申请实施例以可移动平台是车辆为例,该车辆可以是无人驾驶车辆,或者是搭载有高级辅助驾驶(Advanced Driver Assistance Systems,ADAS)***的车辆等。如图1所示,车辆11为搭载有探测设备的载体,该探测设备具体可以是双目立体相机、飞行时间测距法(Time of flight,TOF)相机和/或激光雷达。车辆11在行驶的过程中,探测设备实时探测车辆11周围环境得到三维点云。车辆11周围环境包括车辆11周围的物体。其中,车辆11周围的物体包括车辆11周围的地面、行人、车辆等。
以激光雷达为例,当该激光雷达发射出的一束激光照射到物体表面时,该物体表面将会对该束激光进行反射,该激光雷达根据该物体表面反射的激光,可确定该物体相对于该激光雷达的方位、距离等信息。若该激光雷达发射出的该束激光按照某种轨迹进行扫描,例如360度旋转扫描,将得到大量的激光点,因而就可形成该物体的激光点云数据,也就是三维点云。
另外,本实施例并不限定目标对象的检测方法的执行主体,该目标对象的检测方法可以由车辆中的车载设备执行,也可以由车载设备之外的其他具有数据处理功能的设备执行,例如,如图1所示的服务器12,车辆11和服务器12可进行无线通信或有线通信,车辆11可以将探测设备探测获得的三维点云发送给服务器12,由服务器12执行该目标对象的检测方法。下面以车载设备为例对本申请实施例提供的目标对象的检测方法进行介绍。其中,车载设备可以是集成在车辆中控台中的具有数据处理功能的设备,或者也可以是放置在车辆内的平板电脑、手机、笔记本电脑等。
图2为本申请实施例提供的目标对象的检测方法的流程图。如图2所示,本实施例中的方法,可以包括:
S201、获取所述三维点云。
如图1所示,车辆11在行驶过程中,车辆11上搭载的探测设备实时探测车辆11周围环境得到三维点云,该探测设备可以和该车辆11上的车载设备通信连接,从而使得该车辆11上的车载设备可以实时获取到该探测设备探测得到的三维点云。例如,车辆11周围地面的三维点云、行人的三维点云、其他车辆例如车辆13、车辆14的三维点云。
S202、对所述三维点云进行聚类,得到第一目标对象对应的点云簇,其中,已聚类的点云簇的聚类中心的高度符合预设高度条件。
如图3所示,三维点云15是车辆11上搭载的探测设备探测得到的三维点云。三维点云15中包括多个三维点,也就是说,三维点云是由很多的三维点构成的集合。另外,三维点也可以称为点云点。由于探测设备在每一采样时刻探测获取的三维点云中的点云点均携带有位置信息,该位置信息具体可以是该点云点在三维坐标系中的三维坐标,本实施例并不对该三维坐标系进行限定,例如,该三维坐标系具体可以是车体坐标系、地球坐标系、或世界坐标系等。因此,根据每个点云点的位置信息,可确定出每个点云点相对于地面的高度。
在对三维点云15进行聚类的过程中,具体可采用k-means聚类算法对三维点云15中距离地面高度接近预设高度的点云点进行加权K,使得聚类中心的高度值接近预设高度,该预设高度记为
其中,H表示车辆高度。通常轿车高度大约为1.6米,大型车例如公交车高度大约为3米,此处的车辆高度H可以取值为1.1米。或者,此处的H可以有两种取值,一种取值为H1=0.8米,另一种取值为H2=1.5米,通过H1和H2分别进行聚类,得到聚类中心的高度值接近
的聚类和聚类中心的高度值接近
的聚类。此处以H的取值为1.1米为例,假设P1和P2分别为三维点云15中的任意两个三维点,相应的,P1和P2分别对应有一个三维坐标,其中,P1在z轴即高度方向上的坐标可记为P1(z),P2在z轴即高度方向上的坐标可记为P2(z),若通过如下公式(1)计算得到的函数值Loss小于或等于某一阈值,则确定P1和P2可以聚合到一个聚类中。
其中,k可以是一个常数。可以理解的是,在对三维点云15进行聚类时,三维点云15中不同三维点之间的聚合过程均可类似于上述公式(1)所述的聚合过程,此处不再一一赘述。
如图3所示,对三维点云15进行聚类后,得到点云簇31和点云簇32,其中,点云簇31和点云簇32的聚类中心的高度均接近预设高度。进一步,根据点云簇31可得到如图4所示的第一目标对象41,根据点云簇32可得到如图4所示的第一目标对象42。
可以理解的是,此处只是对第一目标对象进行示意性说明,并不限定第一目标对象的个数。
S203、根据所述第一目标对象相对于所述可移动平台的距离,以及所述距离与检测模型的对应关系,确定目标检测模型。
如图3所示的点云簇31和点云簇32分别包括多个点云点。由于探测设备在每一采样时刻探测获取的三维点云中的点云点均携带有位置信息,因此,可以根据每个点云点的位置信息,计算出该点云点与该探测设备之间的距离,进一步,可以根据点云簇中多个点云点与该探测设备之间的距离,计算出点云簇与搭载有该探测设备的车体之间的距离,进而得到对应该点云簇的第一目标对象相对于车体之间的距离,例如,第一目标对象41相对于车辆11的距离和第一目标对象42相对于车辆11的距离。
如图4所示,第一目标对象41相对于车辆11的距离小于第一目标对象42相对于车辆11的距离,例如,将第一目标对象41相对于车辆11的距离记为L1,将第一目标对象42相对于车辆11的距离记为L2。在本实施例中,车载设备可根据第一目标对象41相对于车辆11的距离L1,以及所述距离与检测模型的对应关系,确定与L1对应的目标检测模型。根据第一目标对象42相对于车辆11的距离L2,以及所述距离与检测模型的对应关系,确定与L2对应的目标检测模型。
在一种可选的实施方式中,可以预先训练不同距离对应的检验模型。
例如图5所示,具体的,根据样本对象相对于探测该样本对象的可移动平台,例如采集车辆之间的距离,可以将样本对象划分为相对于该采集车辆在0-90米范围内的样本对象、75米-165米范围内的样本对象、125米-200米范围内的样本对象。该采集车辆可以是如上所述的车辆11,也可以是除车辆11之外的车辆。具体的,通过相对于该采集车辆在0-90米范围内的样本对象训练得到的检测模型为检测模型1,通过相对于该采集车辆在75米-165米范围内的样本对象训练得到的检测模型为检测模型2,通过相对于该采集车辆在125米-200米范围内的样本对象训练得到的检测模型为检测模型3,从而得到所述距离与检测模型的对应关系。
在另一种可选的实施方式中,检测模型可以根据实际获取的距离做适应性点的调整。例如,可以在检验模型中可设置的一可以根据距离调整的参数。具体实施时,获取第一目标对象的距离,再根据该距离设置检验模型中的参数,得到目标检验模型。
S204、通过所述目标检测模型检测所述第一目标对象对应的点云簇,确定所述第一目标对象的对象类型。
例如,车载设备确定第一目标对象41相对于车辆11的距离L1在0-90米范围内,则采用检测模型1对第一目标对象41对应的点云簇进行检测,以确定第一目标对象41的对象类型。如果第一目标对象42相对于车辆11的距离L2在75米-165米范围内,则采用检测模型2对第一目标对象42对应的点云簇进行检测,以确定第一目标对象42的对象类型。
值得说明的是,不同距离范围内的车辆,其点云分布特征是不同的。例如,对应远程目标物的点云分布稀疏,而对应近程目标物的点云分布稠密。对应近程车辆的点云往往呈现的是车辆侧面点云,而对应中程车辆的点云呈现的更多是车辆尾部点云。因此,针对不同距离有区别的训练多个检测模型,可以更加精确进行目标物的识别。
另外,如上所述的对象类型可以包括:道路标示线、车辆、行人、道路标识牌等类型。进一步的,还可以根据点云簇的特征,对车辆具体类型进行识别,例如,可以识别工程车辆、轿车、公交车等等。
可以理解的是,本实施例中的第一目标对象只是为了和后续实施例中的第二目标对象进行区分,第一目标对象和第二目标对象均可以指探测设备可探测到的目标对象。
本实施例通过对可移动平台上搭载的探测设备探测获得的三维点云进行聚类,得到目标对象对应的点云簇,在聚类过程中,点云簇的聚类中心的高度需要符合预设高度条件,进一步,根据目标对象相对于可移动平台的距离,以及所述距离与检测模型的对应关系,确定目标检测模型,并通过该目标检测模型检测目标对象对应的点云簇,以便该目标检测模型确定目标对象的对象类型,也就是说,相对于可移动平台不同距离的目标对象采用不同的检测模型进行检测,从而提高了对目标对象的检测精度。
在上述实施例的基础上,在对所述三维点云进行聚类,得到第一目标对象对应的点云簇之前,所述方法还包括:去除所述三维点云中的特定点云,所述特定点云包括地面点云。
如图3所示,探测设备探测获得的三维点云15中不仅包括目标对象对应的点云,可能还会包括特定点云,例如,地面点云30。因此,在对三维点云15进行聚类之前,可以先通过平面拟合的方法识别出三维点云15中的地面点云30,并去除三维点云15中的地面点云30,进一步,对去除地面点云30后的三维点云进行聚类。
本实施例通过去除可移动平台上搭载的探测设备探测获得的三维点云中的特定点云,并对去除特定点云后的三维点云进行聚类,得到目标对象对应的点云簇,可避免特定点云对检测目标对象造成的影响,从而进一步提高了对目标对象的检测精度。
本申请实施例提供一种目标对象的检测方法。图6为本申请另一实施例提供的目标对象的检测方法的流程图。如图6所示,在上述实施例的基础上,所述通过所述目标检测模型检测所述第一目标对象对应的点云簇,确定所述第一目标对象的对象类型之前,所述方法还包括:确定所述第一目标对象的运动方向;将所述第一目标对象的运动方向调整为预设方向。
作为一种可能的实现方式,所述确定所述第一目标对象的运动方向,包括:根据第一时刻所述第一目标对象对应的三维点云和第二时刻所述第一目标对象对应的三维点云,确定所述第一目标对象的运动方向。
具体的,第一时刻为前一时刻,第二时刻为当前时刻。以第一目标对象41为例,由于第一目标对象41可能处于运动状态,因此,第一目标对象41的位置信息可能是实时变化的。另外,车辆11上的探测设备是实时在探测周围环境的,因此,车载设备可实时获取并处理该探测设备探测得到的三维点云。而前一时刻第一目标对象41对应的三维点云和当前时刻第一目标对象41对应的三维点云可能是变化的,因此,可以根据前一时刻第一目标对象41对应的三维点云和当前时刻第一目标对象41对应的三维点云,确定第一目标对象41的运动方向。
可选的,所述根据第一时刻所述第一目标对象对应的三维点云和第二时刻所述第一目标对象对应的三维点云,确定所述第一目标对象的运动方向,包括:将第一时刻所述第一目标对象对应的三维点云和第二时刻所述第一目标对象对应的三维点云分别投影到世界坐标系中;根据所述世界坐标系中第一时刻所述第一目标对象对应的三维点云和第二时刻所述第一目标对象对应的三维点云,确定所述第一目标对象的运动方向。
例如,将前一时刻第一目标对象41对应的三维点云和当前时刻第一目标对象41对应的三维点云分别投影到世界坐标系中,进一步,通过迭代最近点(IteratedClosestPoints,ICP)算法计算前一时刻第一目标对象41对应的三维点云和当前时刻第一目标对象41对应的三维点云之间的相对位置关系,该相对位置关系包括旋转关系和平移关系,根据该平移关系可确定出第一目标对象41的运动方向,一种可能的实现方式,该平移关系为该第一目标对象41的运动方向。
作为另一种可能的实现方式,所述确定所述第一目标对象的运动方向,包括如下步骤:
S601、将第一时刻所述第一目标对象对应的三维点云投影在所述第一时刻的二维图像中,得到第一投影点。
S602、将第二时刻所述第一目标对象对应的三维点云投影在所述第二时刻的二维图像中,得到第二投影点。
在本实施例中,车辆11上还可以搭载有拍摄设备,该拍摄设备可用于拍摄车辆11周围环境的图像,该图像具体为二维图像。探测设备探测获得三维点云的周期和拍摄设备拍摄图像的周期可能相同,也可能不同。例如,在前一时刻探测设备探测获得第一目标对象41的三维点云的同时,该拍摄设备拍摄有一帧二维图像。在当前时刻探测设备探测获得第一目标对象41的三维点云的同时,该拍摄设备拍摄有另一帧二维图像。此处,可以将该拍摄设备在前一时刻拍摄获得的二维图像记为第一图像,将该拍摄设备在当前时刻拍摄获得的二维图像记为第二图像。具体的,可以将前一时刻第一目标对象41的三维点云投影到第一图像上,得到第一投影点。将当前时刻第一目标对象41的三维点云投影到第二图像上,得到第二投影点。如图7所示,左侧区域表示某一时刻探测设备探测获得的三维点云,右侧区域表示将该三维点云投影到二维图像上,得到三维点云在该二维图像上的投影区域,该投影区域中包括投影点。
在一种可选的实施方式中,将三维点云投影在二维图像中包括:将三维点云中的部分或者全部点云点沿Z轴投影在二维平面。其中,该Z轴可以是车体坐标系下的Z轴。或者,若三维点云的坐标已矫正至地球坐标系,该Z轴可以是地球坐标系的Z轴。
S603、根据所述第一投影点和所述第一时刻的二维图像中的第一特征点,确定所述第一特征点的三维信息,其中,所述第一特征点为与所述第一投影点之间的位置关系符合预设位置关系的特征点。
为了便于区分,将前一时刻第一目标对象41的三维点云在第一图像上的投影点记为第一投影点,将该第一图像上的特征点记为第一特征点,该第一特征点与第一投影点之间的位置关系符合预设位置关系。
可选的,所述根据所述第一投影点和所述第一时刻的二维图像中的第一特征点,确定所述第一特征点的三维信息,包括:根据所述第一投影点和所述第一时刻的二维图像中的第一特征点之间的距离,确定所述第一投影点对应的权重系数;根据所述第一投影点对应的权重系数和所述第一投影点的三维信息,确定所述第一特征点的三维信息。
如图8所示,80表示拍摄设备在前一时刻拍摄获得的第一图像,81表示将前一时刻第一目标对象41的三维点云投影到该第一图像80上形成的投影区域。在该投影区域81中可提取到二维特征点,即第一特征点。该二维特征点不一定是投影点,也就是说,该二维特征点不一定具有三维信息。此处可通过高斯分布来估计该二维特征点的三维信息。如图8所示,82表示该投影区域81中的任意一个二维特征点,进一步,确定该二维特征点82周围预设范围,例如,10*10像素区域内的投影点,例如,A、B、C、D分别为该预设范围内的投影点。将投影点A相对于该二维特征点82的距离记为d
1,将投影点B相对于该二维特征点82的距离记为d
2,将投影点C相对于该二维特征点82的距离记为d
3,将投影点D相对于该二维特征点82的距离记为d
4。其中,
(μ
1,v
1)表示投影点A在该第一图像80上的像素坐标,(μ
0,v
0)表示该二维特征点82在该第一图像80上的像素坐标。
(μ
2,v
2)表示投影点B在该第一图像80上的像素坐标。
(μ
3,v
3)表示投影点C在该第一图像80上的像素坐标。
(μ
4,v
4)表示投影点D在该第一图像80上的像素坐标。另外,将投影点A对应的三维点的三维信息记为P
1,将投影点B对应的三维点的三维信息记为P
2,将投影点C对应的三维点的三维信息记为P
3,将投影点D对应的三维点的三维信息记为P
4。其中,P
1、P
2、P
3、P
4分别为向量,分别包括xyz三轴坐标。
二维特征点82的三维信息记为P0,P0可通过如下公式(2)、(3)计算得到:
其中,n表示该二维特征点82周围预设范围内的投影点的个数,ωi表示权重系数,不同的投影点可对应有不同的权重系数,或相同的权重系数。σ是一个可调的参数,例如可以是一个根据经验调整的参数。
可以理解的是,该投影区域81中其他二维特征点的三维信息的计算过程类似于如上所述的二维特征点82的三维信息的计算过程,此处不再赘述。
S604、根据所述第二投影点和所述第二时刻的二维图像中的第二特征点,确定所述第二特征点的三维信息,其中,所述第二特征点为与所述第二投影点之间的位置关系符合预设位置关系的特征点,所述第二特征点与所述第一特征点对应。
为了便于区分,将当前时刻第一目标对象41的三维点云在第二图像上的投影点记为第二投影点,将该第二图像上的特征点记为第二特征点,该第二特征点与第二投影点之间的位置关系符合预设位置关系。
根据第一图像80上的第一特征点,采用角点跟踪算法(Kanade-Lucas-TomasiTracking,KLT)可计算出在第二图像上与该第一特征点对应的第二特征点。
可选的,所述根据所述第二投影点和所述第二时刻的二维图像中的第二特征点,确定所述第二特征点的三维信息,包括:根据所述第二投影点和所述第二时刻的二维图像中的第二特征点之间的距离,确定所述第二投影点对应的权重系数;根据所述第二投影点对应的权重系数和所述第二投影点的三维信息,确定所述第二特征点的三维信息。
具体的,计算第二图像上的第二特征点的三维信息与计算第一图像上的第一特征点的三维信息的过程类似,此处不再赘述。
S605、根据所述第一特征点的三维信息和所述第二特征点的三维信息,确定所述第一目标对象的运动方向。
具体的,第一特征点的三维信息为如上所述的二维特征点82的三维信息P0,第二特征点的三维信息为第二图像中与该二维特征点82对应的二维特征点的三维信息,记为P′0。根据P0和P′0可确定出第一目标对象41的运动方向,具体的,P0和P′0之间的位置变化为第一目标对象41的运动方向。
可选的,所述根据所述第一特征点的三维信息和所述第二特征点的三维信息,确定所述第一目标对象的运动方向之前,所述方法还包括:将所述第一特征点的三维信息和所述第二特征点的三维信息分别转换到世界坐标系中。
例如,将P0和P′0分别转换到世界坐标系中,在世界坐标系中计算P0和P′0之间的位置变化,该位置变化为第一目标对象41的运动方向。
可以理解的是,第一目标对象41之外的其他第一目标对象的运动方向也可通过如上所述的几种可能的实现方式来确定,此处不再一一赘述。
在确定出第一目标对象的运动方向后,进一步,还可以将第一目标对象的运动方向调整为预设方向。可选的,所述预设方向为用于训练所述检测模型的样本对象的运动方向。
例如,用于训练检测模型的样本对象的运动方向向北,或者朝向探测该样本对象的采集车辆的前方或后方。以向北为例,为了使得该检测模型可以对第一目标对象41或第一目标对象42进行准确的检测,需要将第一目标对象41或第一目标对象42的运动方向调整为向北,例如,第一目标对象41或第一目标对象42的运动方向与向北方向之间的夹角为θ,则将第一目标对象41对应的三维点云或第一目标对象42对应的三维点云按照如下公式(4)所述的旋转公式Rz(θ)进行旋转,从而使得第一目标对象41或第一目标对象42的运动方向为向北:
本实施例通过确定目标对象的运动方向,并将目标对象的运动方向调整为预设方向,由于该预设方向为用于训练检测模型的样本对象的运动方向,因此,将目标对象的运动方向调整为预设方向后,再通过该检测模型进行检测,可进一步提高对目标对象的检测精度。
本申请实施例提供一种目标对象的检测方法。在上述实施例的基础上,所述通过所述目标检测模型检测所述第一目标对象对应的点云簇,确定所述第一目标对象的对象类型之后,所述方法还包括:若通过所述目标检测模型确定所述第一目标对象为车辆,则根据预设条件对所述目标检测模型的检测结果进行验证。
例如,通过目标检测模型确定出第一目标对象41为车辆时,进一步,通过预设条件对陔检测结果进行验证。
可选的,所述预设条件包括如下至少一种:所述第一目标对象的大小满足预设大小;所述第一目标对象和所述第一目标对象周围其他目标对象之间的空间重合度小于预设阈值。
例如,通过目标检测模型检测出第一目标对象41为车辆时,进一步,检测第一目标对象41的宽度是否超出预设宽度范围,该预设宽度范围可以是通常车辆的宽度范围,例如为2.8米-3米。若该第一目标对象41的宽度超出该预设宽度范围,则确定该检测模型对第一目标对象41的检测结果存在偏差,也就是说,该第一目标对象41可能并不是车辆。如果第一目标对象41的宽度在该预设宽度范围内,则进一步检测第一目标对象41和周围其他目标对象之间的空间重合度,其中,第一目标对象41和周围其他目标对象之间的空间重合度具体可以是用于表征第一目标对象41的识别框与用于表征周围其他目标对象的识别框的空间重合度。如果该空间重合度大于预设阈值,则确定该检测模型对第一目标对象41的检测结果存在偏差,也就是说,该第一目标对象41可能并不是车辆。如果该空间重合度小于预设阈值,则确定该检测模型对第一目标对象41的检测结果是正确的。
本实施例根据目标对象相对于可移动平台的距离,通过与该距离对应的目标检测模型对目标对象进行检测之后,若确定目标对象的对象类型为车辆,则进一步根据预设条件对目标检测模型的检测结果进行验证,当满足该预设条件时,确定目标检测模型的检测结果正确,当不满足该预设条件时,确定该目标检测模型的检测结果存在偏差,从而进一步提高了对目标对象的检测精度。
本申请实施例提供一种目标对象的检测方法。图9为本申请另一实施例提供的目标对象的检测方法的流程图。如图9所示,在上述实施例的基础上,所述第一目标对象相对于所述可移动平台的距离小于或等于第一预设距离。如图10所示,右侧区域1001为探测设备探测得到的三维点云,左上角图像1002表示三维点云去除高度信息后的图像,左下角图像1003表示二维图像。其中,右侧区域1001中一圈一圈的白色线圈表示地面点云,白色弧线100表示相对于探测设备在第一预设距离,例如80米远的地方。101、102、103分别表示相对于探测设备的距离小于或等于80米的第一目标对象。根据图10可知,在80米之外没有一圈一圈的白色线圈,即在80米之外没有探测到地面点云。本实施例提出了一种用于检测第一预设距离之外的地面点云、以及检测第一预设距离之外的第二目标对象的方法。
所述通过所述目标检测模型检测所述第一目标对象对应的点云簇,确定所述第一目标对象的对象类型之后,所述方法还包括如下步骤:
S901、若通过所述目标检测模型确定所述第一目标对象为车辆,则根据所述第一目标对象的位置,确定所述第一预设距离之外的地面点云。
在本实施例中,假设车载设备采用第一目标对象101相对于探测设备的距离所对应的目标检测模型确定第一目标对象101为车辆,采用第一目标对象102相对于探测设备的距离所对应的目标检测模型确定第一目标对象102为车辆,采用第一目标对象103相对于探测设备的距离所对应的目标检测模型确定第一目标对象103为车辆,则该车载设备还可以根据该第一目标对象101、第一目标对象102和第一目标对象103的位置,确定相对于该探测设备在80米之外的地面点云。
可选的,所述根据所述第一目标对象的位置,确定所述第一预设距离之外的地面点云,包括:根据所述第一目标对象的位置,确定所述第一目标对象所在地面的坡度;根据所述地面的坡度,确定所述第一预设距离之外的地面点云。
具体的,根据该第一目标对象101、第一目标对象102和第一目标对象103的位置,确定第一目标对象101、第一目标对象102和第一目标对象103所在地面的坡度,并根据该地面的坡度,确定相对于该探测设备在80米之外的地面点云。可以理解的是,本实施例并不限定第一目标对象的个数。
可选的,所述根据所述第一目标对象的位置,确定所述第一目标对象所在地面的坡度,包括:根据至少三个所述第一目标对象的位置,确定由至少三个所述第一目标对象构成的平面的坡度,所述平面的坡度为所述第一目标对象所在地面的坡度。
例如,当第一目标对象101、第一目标对象102和第一目标对象103都是车辆时,三个车辆可确定一个平面。例如,第一目标对象101的坐标记为A(x1,y1,z1),第一目标对象102的坐标记为B(x2,y2,z2),第一目标对象103的坐标记为C(x3,y3,z3),则向量AB=(x2-x1,y2-y1,z2-z1),向量AC=(x3-x1,y3-y1,z3-z1)。AB和AC所在平面的法向量即为AB×AC=(a,b,c),其中:
a=(y2-y1)(z3-z1)-(z2-z1)(y3-y1)
b=(z2-z1)(x3-x1)-(z3-z1)(x2-x1)
c=(x2-x1)(y3-y1)-(x3-x1)(y2-y1)
具体的,根据AB和AC所在平面的法向量,可确定出第一目标对象101、第一目标对象102和第一目标对象103构成的平面的坡度,该平面的坡度具体可以是第一目标对象101、第一目标对象102和第一目标对象103所在地面的坡度。
可以理解的是,当第一目标对象的个数大于3时,每3个第一目标对象即可确定一个平面,如此可得到多个平面,通过如上所述的平面坡度的计算方法可计算出多个平面的坡度,此时,可根据该多个平面的坡度拟合出地面坡度。
可以理解的是,根据地面坡度可确定出地面是否为水平地面、高架桥或斜坡,在一些实施例中,第一目标对象所处的地面可能并不是水平地面,例如,可能是高架桥或斜坡,因此,根据该地面坡度还可以确定出第一目标对象是否处于高架桥或斜坡上。
在确定出第一目标对象所处地面的地面坡度后,可根据该地面坡度对第一目标对象所处的地面进行延伸,得到80米之外的地面点云。例如,按照第一目标对象所处的路面宽度向80米之外的远处进行直线扩展。此处,可以考虑80米之外的远处地面是水平地面的情况,可以暂时不考虑80米之外的远处有斜坡或高架桥的情况。
S902、根据所述第一预设距离之外的地面点云,确定所述第一预设距离之外的第二目标对象的对象类型。
例如,根据80米之外的地面点云,确定80米之外的第二目标对象的对象类型。
可选的,所述根据所述第一预设距离之外的地面点云,确定所述第一预设距离之外的第二目标对象的对象类型,包括:根据所述第一预设距离之外的地面点云,确定所述第一预设距离之外的第二目标对象对应的点云簇,所述第二目标对象的底部与所述第一目标对象的底部在同一平面内;通过所述第二目标对象相对于所述可移动平台的距离所对应的检测模型检测所述第二目标对象对应的点云簇,确定所述第二目标对象的对象类型。
例如,根据80米之外的地面点云,确定80米之外的第二目标对象对应的点云簇,如图11所示,由于80米之外的第二目标对象会被近处的物体所遮挡,因此,远处的三维点云104个数较少,也就是说,远处的三维点云104可能只是第二目标对象上部的部分三维点云,此时,需要根据80米之外的地面点云,对该第二目标对象剩余的部分三维点云进行补齐,例如,需要补齐第二目标对象下半部分的三维点云,使得第二目标对象的底部与第一目标对象101、第一目标对象102和第一目标对象103的底部在同一平面内。其中,第二目标对象上部的部分三维点云和补齐后的下半部分的三维点云可构成该第二目标对象对应的点云簇。
进一步,根据第二目标对象相对于探测设备的距离,采用与该距离对应的检测模型对该第二目标对象对应的点云簇进行检测,即通过该检测模型检测该第二目标对象是行人、车辆或其他物体。另外,此处并不限定第二目标对象的个数,可能是一个,也可能是多个。由于第二目标对象相对于探测设备的距离大于第一预设距离,因此,可以采用比该第一预设距离大的第二预设距离对应的检测模型对该第二目标对象进行检测。
可选的,所述根据所述第一预设距离之外的地面点云,确定所述第一预设距离之外的第二目标对象对应的点云簇,包括:对所述第一预设距离之外的三维点云中去除地面点云后的三维点云进行聚类,得到所述第二目标对象对应的部分点云;根据所述第二目标对象对应的部分点云和所述第一预设距离之外的地面点云,确定所述第二目标对象对应的点云簇。
例如,获取探测设备探测获得的距离该探测设备在80米之外的三维点云,由于80米之外的三维点云中有可能包括地面点云,因此,需要去除80米之外的三维点云中的地面点云,并对去除地面点云后的三维点云进行聚类,得到第二目标对象对应的部分点云,例如图11所示的三维点云104。
或者,在确定出第一目标对象所处地面的地面坡度后,根据该地面坡度对第一目标对象所处的地面进行延伸,得到80米之外的地面点云。在检测80米之外的第二目标对象时,需要去除延伸出的80米之外的地面点云,并对80米之外的三维点云中去除地面点云后的三维点云进行聚类,从而得到第二目标对象对应的部分点云。进一步,根据该第二目标对象对应的部分点云和80米之外的地面点云,确定该第二目标对象对应的点云簇,具体的,对该第二目标对象的下半部分进行补齐,使得第二目标对象的底部与第一目标对象101、第一目标对象102和第一目标对象103的底部在同一平面内。
具体的,聚类过程类似于如上所述的聚类过程,此处不再赘述。不同之处在于,此处的聚类过程所采用的车辆高度H相比于如上所述的聚类过程所采用的车辆高度H更大一些,例如,此处的聚类过程所采用的车辆高度H可以取值为1.6米或2.5米。可选的,所述方法还包括:若所述第二目标对象为车辆,且所述第二目标对象的宽度小于或等于第一宽度,则去除所述第二目标对象对应的点云簇中高度大于或等于第一高度的三维点云,得到所述第二目标对象对应的剩余三维点云;若所述第二目标对象为车辆,所述第二目标对象的宽度大于所述第一宽度,且所述第二目标对象的宽度小于或等于第二宽度,则去除所述第二目标对象对应的点云簇中高度大于或等于第二高度的三维点云,得到所述第二目标对象对应的剩余三维点云;根据所述第二目标对象对应的剩余三维点云,生成用于表征车辆的识别框,所述识别框用于所述可移动平台进行导航决策;其中,所述第二宽度大于所述第一宽度,所述第二高度大于所述第一高度。
可以理解的是,由于第二目标对象的上方可能会有路牌或树枝等微小物体,由于路牌或树枝等微小物体相对于第二目标对象可能很近,在通过聚类得到第二目标对象对应的点云簇时,该第二目标对象对应的点云簇中可能会包括路牌或树枝等微小物体的三维点云。因此,当车载设备采用第二目标对象相对于探测设备的距离所对应的检测模型确定第二目标对象为车辆时,还需要对第二目标对象对应的点云簇进行进一步处理。
具体的,根据第二目标对象的宽度,确定该第二目标对象是小车或大车,例如,该第二目标对象的宽度小于或等于第一宽度,则确定该第二目标对象是小车。若该第二目标对象的宽度大于第一宽度,且该第二目标对象的宽度小于或等于第二宽度,则确定该第二目标对象是大车,具体的,所述第二宽度大于所述第一宽度。进一步,若该第二目标对象是小车,则去除该第二目标对象对应的点云簇中高度大于或等于第一高度,例如高度为1.8米以上的三维点云,得到该第二目标对象对应的剩余三维点云。若该第二目标对象是大车,则去除该第二目标对象对应的点云簇中高度大于或等于第二高度,例如高度为3.2米以上的三维点云,得到该第二目标对象对应的剩余三维点云。如图12所示,圆圈105中的三维点云为树枝对应的三维点云。进一步,根据所述第二目标对象对应的剩余三维点云,生成用于表征车辆的识别框。例如,在如图11所述的三维点云104的基础上去除如图12所示的圆圈105中的树枝对应的三维点云,得到该第二目标对象对应的剩余三维点云,进一步,根据80米之外的地面点云,对该第二目标对象的下半部分进行补齐,例如,需要补齐第二目标对象下半部分的三维点云,使得第二目标对象的底部与第一目标对象101、第一目标对象102和第一目标对象103的底部在同一平面内,得到如图12所示的第二目标对象即表征车辆的识别框106。进一步,搭载有探测设备的车辆,例如车辆11可根据该识别框106进行导航决策,例如,根据识别框106规划路线,提前规划车辆11的行驶路线,或提前控制车辆11转换到其他车道,或提前控制车辆11的车速等。
本实施例通过根据近处的第一目标对象的位置,确定远处的地面点云,并根据远处的地面点云,检测远处的第二目标对象,使得搭载有探测设备的可移动平台根据远处的第二目标对象进行导航决策,提高了可移动平台的安全性。另外,通过检测第二目标对象是大车或小车,并根据大车对应的高度或小车对应的高度,对第二目标对象对应的三维点云中可能是路牌或树枝等微小物体的三维点云进行去除,提高了对第二目标对象的检测精度。此外,根据至少三个第一目标对象的位置,确定由至少三个第一目标对象构成的平面的坡度,并根据该平面的坡度确定第一目标对象所在地面的坡度,根据该第一目标对象所在地面的坡度还可以确定出地面是否为水平地面、高架桥或斜坡等,从而提高了地面识别的检测精度,在去除地面点云时,不仅可以去除水平地面的点云,还可以去除高架桥或斜坡等路面的点云,从而减少了水平地面的点云、高架桥或斜坡等路面的点云对检测第一目标对象或第二目标对象带来的影响,从而进一步提高了对第一目标对象或第二目标对象的检测精度。
本申请实施例提供一种目标对象的检测***。图13为本申请实施例提供的目标对象的检测***的结构图,如图13所示,目标对象的检测***130包括:探测设备131、存储器132和处理器133。其中,探测设备131用于探测可移动平台周围环境得到三维点云。处理器133具体可以是上述实施例中车载设备中的部件,或者是车辆中搭载的具有数据处理功能的其他部件、器件或组件。具体的,存储器132用于存储程序代码;处理器133,调用所述程序代码,当程序代码被执行时,用于执行以下操作:获取所述三维点云;对所述三维点云进行聚类,得到第一目标对象对应的点云簇,其中,已聚类的点云簇的聚类中心的高度符合预设高度条件;根据所述第一目标对象相对于所述可移动平台的距离,以及所述距离与检测模型的对应关系,确定目标检测模型;通过所述目标检测模型检测所述第一目标对象对应的点云簇,确定所述第一目标对象的对象类型。
可选的,处理器133通过所述目标检测模型检测所述第一目标对象对应的点云簇,确定所述第一目标对象的对象类型之前,还用于:确定所述第一目标对象的运动方向;将所述第一目标对象的运动方向调整为预设方向。
可选的,所述预设方向为用于训练所述检测模型的样本对象的运动方向。
可选的,处理器133确定所述第一目标对象的运动方向时,具体用于:根据第一时刻所述第一目标对象对应的三维点云和第二时刻所述第一目标对象对应的三维点云,确定所述第一目标对象的运动方向。
可选的,处理器133根据第一时刻所述第一目标对象对应的三维点云和第二时刻所述第一目标对象对应的三维点云,确定所述第一目标对象的运动方向时,具体用于:将第一时刻所述第一目标对象对应的三维点云和第二时刻所述第一目标对象对应的三维点云分别投影到世界坐标系中;根据所述世界坐标系中第一时刻所述第一目标对象对应的三维点云和第二时刻所述第一目标对象对应的三维点云,确定所述第一目标对象的运动方向。
可选的,处理器133确定所述第一目标对象的运动方向时,具体用于:将第一时刻所述第一目标对象对应的三维点云投影在所述第一时刻的二维图像中,得到第一投影点;将第二时刻所述第一目标对象对应的三维点云投影在所述第二时刻的二维图像中,得到第二投影点;根据所述第一投影点和所述第一时刻的二维图像中的第一特征点,确定所述第一特征点的三维信息,其中,所述第一特征点为与所述第一投影点之间的位置关系符合预设位置关系的特征点;根据所述第二投影点和所述第二时刻的二维图像中的第二特征点,确定所述第二特征点的三维信息,其中,所述第二特征点为与所述第二投影点之间的位置关系符合预设位置关系的特征点,所述第二特征点与所述第一特征点对应;根据所述第一特征点的三维信息和所述第二特征点的三维信息,确定所述第一目标对象的运动方向。
可选的,处理器133根据所述第一投影点和所述第一时刻的二维图像中的第一特征点,确定所述第一特征点的三维信息时,具体用于:根据所述第一投影点和所述第一时刻的二维图像中的第一特征点之间的距离,确定所述第一投影点对应的权重系数;根据所述第一投影点对应的权重系数和所述第一投影点的三维信息,确定所述第一特征点的三维信息。
可选的,处理器133根据所述第二投影点和所述第二时刻的二维图像中的第二特征点,确定所述第二特征点的三维信息时,具体用于:根据所述第二投影点和所述第二时刻的二维图像中的第二特征点之间的距离,确定所述第二投影点对应的权重系数;根据所述第二投影点对应的权重系数和所述第二投影点的三维信息,确定所述第二特征点的三维信息。
可选的,处理器133根据所述第一特征点的三维信息和所述第二特征点的三维信息,确定所述第一目标对象的运动方向之前,还用于:将所述第一特征点的三维信息和所述第二特征点的三维信息分别转换到世界坐标系中。
可选的,处理器133通过所述目标检测模型检测所述第一目标对象对应的点云簇,确定所述第一目标对象的对象类型之后,还用于:若通过所述目标检测模型确定所述第一目标对象为车辆,则根据预设条件对所述目标检测模型的检测结果进行验证。
可选的,所述预设条件包括如下至少一种:所述第一目标对象的大小满足预设大小;所述第一目标对象和所述第一目标对象周围其他目标对象之间的重合度小于预设阈值。
可选的,在对所述三维点云进行聚类,得到第一目标对象对应的点云簇之前,处理器133还用于:去除所述三维点云中的特定点云,所述特定点云包括地面点云。
可选的,所述第一目标对象相对于所述可移动平台的距离小于或等于第一预设距离;处理器133通过所述目标检测模型检测所述第一目标对象对应的点云簇,确定所述第一目标对象的对象类型之后,还用于:若通过所述目标检测模型确定所述第一目标对象为车辆,则根据所述第一目标对象的位置,确定所述第一预设距离之外的地面点云;根据所述第一预设距离之外的地面点云,确定所述第一预设距离之外的第二目标对象的对象类型。
可选的,处理器133根据所述第一目标对象的位置,确定所述第一预设距离之外的地面点云时,具体用于:根据所述第一目标对象的位置,确定所述第一目标对象所在地面的坡度;根据所述地面的坡度,确定所述第一预设距离之外的地面点云。
可选的,处理器133根据所述第一目标对象的位置,确定所述第一目标对象所在地面的坡度时,具体用于:根据至少三个所述第一目标对象的位置,确定由至少三个所述第一目标对象构成的平面的坡度,所述平面的坡度为所述第一目标对象所在地面的坡度。
可选的,处理器133根据所述第一预设距离之外的地面点云,确定所述第一预设距离之外的第二目标对象的对象类型时,具体用于:根据所述第一预设距离之外的地面点云,确定所述第一预设距离之外的第二目标对象对应的点云簇,所述第二目标对象的底部与所述第一目标对象的底部在同一平面内;通过所述第二目标对象相对于所述可移动平台的距离所对应的检测模型检测所述第二目标对象对应的点云簇,确定所述第二目标对象的对象类型。
可选的,处理器133根据所述第一预设距离之外的地面点云,确定所述第一预设距离之外的第二目标对象对应的点云簇时,具体用于:对所述第一预设距离之外的三维点云中去除地面点云后的三维点云进行聚类,得到所述第二目标对象对应的部分点云;根据所述第二目标对象对应的部分点云和所述第一预设距离之外的地面点云,确定所述第二目标对象对应的点云簇。
可选的,处理器133还用于:若所述第二目标对象为车辆,且所述第二目标对象的宽度小于或等于第一宽度,则去除所述第二目标对象对应的点云簇中高度大于或等于第一高度的三维点云,得到所述第二目标对象对应的剩余三维点云;若所述第二目标对象为车辆,所述第二目标对象的宽度大于所述第一宽度,且所述第二目标对象的宽度小于或等于第二宽度,则去除所述第二目标对象对应的点云簇中高度大于或等于第二高度的三维点云,得到所述第二目标对象对应的剩余三维点云;根据所述第二目标对象对应的剩余三维点云,生成用于表征车辆的识别框,所述识别框用于所述可移动平台进行导航决策;其中,所述第二宽度大于所述第一宽度,所述第二高度大于所述第一高度。
本申请实施例提供的目标对象的检测***的具体原理和实现方式均与上述实施例类似,此处不再赘述。
本申请实施例提供一种可移动平台。该可移动平台包括:机身、动力***和如上实施例所述的目标对象的检测***。其中,动力***安装在所述机身,用于提供移动动力。目标对象的检测***可以实现如上所述的目标对象的检测方法,该目标对象的检测方法的具体原理和实现方式均与上述实施例类似,此处不再赘述。本实施例并不限定该可移动平台的具体形态,例如,该可移动平台可以是无人机、可移动机器人或车辆等。
另外,本实施例还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行以实现上述实施例所述的目标对象的检测方法。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。