发明内容
本申请实施例提供了一种障碍物检测方法及装置,提高检测障碍物的有效性。
本申请实施例的第一方面提供一种障碍物检测方法,包括:获取第一图像,该第一图像可以是摄像头直接拍摄到的图像,也可以是摄像头拍摄到的视频中的一帧图像,第一图像中包含至少一个障碍物;基于边界信息网络模型确定至少一个障碍物的边界,该边界信息网络模型可以是预先训练得到的深度神经网络,其中,至少一个障碍物的边界包括障碍物与路面形成的边界,该边界可以用于确定障碍物的位置。
相比于障碍物的形状、大小、色彩、纹理、材质、运动状态等属性信息,障碍物的边界这一属性信息更加稳定单一,且通用性和泛化性更好;具体地,对于同类别的不同障碍物来说,障碍物的边界的相似性较高,对于不同类别的障碍物来说,障碍物的边界也具有一定的相似性;所以对于未包含在训练样本集中的障碍物,若训练样本集中包含与该障碍物同类别的其他障碍物,那么基于边界信息网络模型可以确定该障碍物的边界,若训练样本集中不包含与障碍物同类别的其他障碍物,但包含边界与该障碍物的边界相似的其他障碍物,那么也可以基于边界信息网络模型确定该障碍物的边界;由此可见,通过确定障碍物的边界检测障碍物,有利于检测出更多数量的障碍物,能够提高障碍物检测的有效性。
作为一种实现的方式,边界信息网络模型基于经验障碍物边界信息训练得到,经验障碍物边界信息可以是与经验障碍物边界有关的信息,例如,经验障碍物边界信息可以包括经验障碍物的占据边界,也可以包括经验障碍物的占据边界的唯一标识ID;根据经验障碍物边界信息的来源对经验障碍物边界信息进行分类,经验障碍物边界信息可以包括历史障碍物边界信息和/或样本障碍物边界信息;其中,样本障碍物边界信息可以理解为对样本图像中的障碍物进行人工标注而得到的边界信息;历史障碍物边界信息可以理解为先验障碍物边界信息,即不需要进行人工标注就可以得到的边界信息,例如,历史障碍物边界信息可以是地图中已经存在的障碍物的边界信息。
由于历史障碍物边界信息不需要进行人工标注即可获取到,所以基于历史障碍物边界信息训练边界信息网络模型可以降低标注成本;由于样本障碍物边界信息是通过人工标注获取到的,而在人工标注过程可以选择各种各样的障碍物进行标注,所以样本障碍物边界信息可以增加边界信息的多样性,基于样本障碍物边界信息训练边界信息网络模型可以提高边界信息网络模型的性能,从而提高障碍物检测的有效性。
作为一种实现的方式,样本障碍物边界信息通过沿图像中障碍物的下边缘与可行驶路面之间的交界线段取有序点集得到,其中,该下边缘是指靠近可行驶路面的边缘;或者,样本障碍物边界信息通过图像中障碍物的掩膜的下边缘与可行驶路面之间的交界线段得到,掩膜可以理解为用于覆盖的图像,障碍物的掩膜则可以理解为用于覆盖障碍物的图像;或者,样本障碍物边界信息通过仿真引擎生成,仿真引擎模拟的场景图像为包含障碍物的图像。
该实现的方式提供了获取样本障碍物边界信息的多种可行方案,使得获取样本障碍物边界信息的方式更加灵活;并且,通过沿图像中障碍物的下边缘与可行驶路面之间的交界线段取有序点集获取样本障碍物边界信息,简便易行,通过图像中障碍物的掩膜的下边缘与可行驶路面之间的交界线段获取样本障碍物边界信息,借助了已有的障碍物的掩膜的信息,所以只需要标注交界线段起终点即可,不需要逐个取点,可以提高标注效率;通过仿真引擎生成样本障碍物边界信息,无需人工标注,可以降低标注成本。
作为一种实现的方式,基于边界信息网络模型,确定至少一个障碍物的边界包括:将第一图像输入边界信息网络模型,对第一图像中的每个像素点基于经验障碍物边界信息作为类别进行分类,分类结果可以是行人、车辆、车道、车道线、人行道等;对分类的结果进行处理得到至少一个障碍物的边界。
在该实现方式中,基于经验障碍物边界信息作为类别,对第一图像中的每个像素点进行分类,并对分类的结果进行处理得到至少一个障碍物的边界,从而实现了通过语义分割获取障碍物的边界。
作为一种实现的方式,至少一个障碍物的边界所占的像素点在第一方向上连续,该第一方向可以是图像的像素宽度方向,该像素宽度方向对应的是图像的水平方向。
若障碍物的边界所占的像素点在第一方向上是间断的,该障碍物的边界不仅不能很好地反映障碍物在第一方向上的尺寸,而且还可能导致用户将间断处误认为是可行使的区域;相反,在该实现方式中,障碍物的边界所占的像素点在第一方向上连续,不仅能很好地反映障碍物在第一方向上的尺寸,而且还有利于用户准确识别可行驶的区域。
作为一种实现的方式,至少一个障碍物包括第一障碍物和第二障碍物;基于边界信息网络模型,确定至少一个障碍物的边界包括:确定第一障碍物的边界和第二障碍物的边界,第一障碍物的边界所占的像素点与第二障碍物的边界所占的像素点的交集为空集。
该实现的方式提供了多个障碍物的场景下确定障碍物的边界的可行方案,具体地,若两个障碍物的边界所占的像素点的交集为空集,则分别确定第一障碍物的边界和第二障碍物的边界。
作为一种实现的方式,方法还包括:根据至少一个障碍物的边界和预设的图像中障碍物的像素高度确定至少一个障碍物在第一图像中占据的区域大小,该像素高度可以理解为在第一图像的竖直方向上的尺寸,但该像素高度是预设的,与障碍物的实际高度没有直接关系,所以该像素高度可以大于障碍物在第一图像中的高度,也可以小于障碍物在第一图像中的高度。
确定障碍物的边界相当于确定障碍物的位置,由于实际的障碍物都有一定的体积,所以仅通过障碍物的位置表示障碍物,则不够直观、不够立体,所以在该实现方式中,根据至少一个障碍物的边界和预设的图像中障碍物的像素高度确定至少一个障碍物在第一图像中占据的区域大小,则可以更直观、更立体地表示障碍物。
本申请实施例的第二方面提供一种障碍物检测装置,包括:获取单元,用于获取第一图像,第一图像中包含至少一个障碍物;确定单元,用于基于边界信息网络模型,确定至少一个障碍物的边界;其中,至少一个障碍物的边界包括障碍物与路面形成的边界。
作为一种实现的方式,边界信息网络模型基于经验障碍物边界信息训练得到,经验障碍物边界信息包括历史障碍物边界信息和/或样本障碍物边界信息。
作为一种实现的方式,样本障碍物边界信息通过沿图像中障碍物的下边缘与可行驶路面之间的交界线段取有序点集得到;或者,样本障碍物边界信息通过取图像中障碍物的掩膜的下边缘与可行驶路面之间的交界线段得到;或者,样本障碍物边界信息通过仿真引擎生成,仿真引擎模拟的场景图像为包含障碍物的图像。
作为一种实现的方式,确定单元具体用于:将第一图像输入边界信息网络模型,对第一图像中的每个像素点基于经验障碍物边界信息作为类别进行分类;对分类的结果进行处理得到至少一个障碍物的边界。
作为一种实现的方式,至少一个障碍物的边界所占的像素点在第一方向上连续。
作为一种实现的方式,至少一个障碍物包括第一障碍物和第二障碍物;确定单元具体用于:确定第一障碍物的边界和第二障碍物的边界,第一障碍物的边界所占的像素点与第二障碍物的边界所占的像素点的交集为空集。
作为一种实现的方式,确定单元还用于:根据至少一个障碍物的边界和预设的图像中障碍物的像素高度确定至少一个障碍物在第一图像中占据的区域大小。
其中,以上各单元的具体实现、相关说明以及技术效果请参考本申请实施例第一方面的描述。
本申请实施例第三方面提供了一种障碍物检测装置,包括:一个或多个处理器和存储器;其中,所述存储器中存储有计算机可读指令;所述一个或多个处理器读取所述存储器中的所述计算机可读指令以使所述障碍物检测装置实现如上述第一方面以及各种可能的实现方式中任一项所述的方法。
本申请实施例第四方面提供了一种包含指令的计算机程序产品,其特征在于,当其在计算机上运行时,使得所述计算机执行如上述第一方面以及各种可能的实现方式中任一项所述的方法。
本申请实施例第五方面提供了一种计算机可读存储介质,包括指令,其特征在于,当所述指令在计算机上运行时,使得计算机执行如上述第一方面以及各种可能的实现方式中任一项所述的方法。
本申请实施例第六方面提供了一种芯片,包括一个或多个处理器。所述处理器中的部分或全部用于读取并执行存储器中存储的计算机程序,以执行上述第一方面任意可能的实现方式中的方法。
可选地,该芯片该包括存储器,该存储器与该处理器通过电路或电线与存储器连接。进一步可选地,该芯片还包括通信接口,处理器与该通信接口连接。通信接口用于接收需要处理的数据和/或信息,处理器从该通信接口获取该数据和/或信息,并对该数据和/或信息进行处理,并通过该通信接口输出处理结果。该通信接口可以是输入输出接口。
在一些实现方式中,所述一个或多个处理器中还可以有部分处理器是通过专用硬件的方式来实现以上方法中的部分步骤,例如涉及神经网络模型的处理可以由专用神经网络处理器或图形处理器来实现。
本申请实施例提供的方法可以由一个芯片实现,也可以由多个芯片协同实现。
本申请实施例第七方面提供了一种车辆,该车辆包括上述第二方面任意可能的实现方式中的装置。
从以上技术方案可以看出,本申请实施例具有以下优点:
相比于障碍物的形状、大小、色彩、纹理、材质、运动状态等属性信息,障碍物的边界这一属性信息更加稳定单一,且通用性和泛化性更好;具体地,对于同类别的不同障碍物来说,障碍物的边界的相似性较高,对于不同类别的障碍物来说,障碍物的边界也具有一定的相似性;所以本申请实施例基于边界信息网络模型确定第一图像中至少一个障碍物的边界,不仅可以检测出包含在训练样本集中的障碍物,而且可以检测出训练集中未包含的障碍物;具体地,对于未包含在训练样本集中的障碍物,若训练样本集中包含与该障碍物同类别的其他障碍物,那么基于边界的相似性,本申请实施例可以将该障碍物检测出;对于未包含在训练样本集中的障碍物,若训练样本集中包含边界与该障碍物的边界相似的其他障碍物,那么基于边界的相似性,本申请实施例也可以将该障碍物检测出;因此,通过确定障碍物的边界可以检测出更多数量的障碍物,能够提高障碍物检测的有效性。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行详细描述。
本申请实施例可以应用于图1所示的检测系统中,该检测系统包括传感器、感知算法模块以及规划与控制模块。
其中,传感器的数量可以为一个或多个,具体可以包括单目摄像头、双目摄像头、多目摄像头和环视摄像头,用于拍摄周围环境的图像或视频;感知算法模块用于对各个传感器拍摄的图像或视频中的障碍物进行检测,当传感器的数量为多个时,感知算法模块还用于将各个传感器对应的障碍物检测结果进行融合;规划与控制模块用于接收感知算法模块的障碍物检测结果,并根据障碍物检测结果对可移动平台的自身行为进行规划和控制,例如,该自身行为为下一步移动路径和方式。
感知算法模块可以为单独的装置,可以设置在传感器内部,还可以和规划与控制模块设置在一个装置内。
本申请实施例可以应用于交通安全、自动辅助驾驶(ADAS)、以及自动驾驶(AD)等领域中,此时,图1所示的检测系统可以部署在可移动平台中,该可移动平台包括汽车、机器人等;当可移动平台为汽车时,图1所示的检测系统又可以称为车载系统。
本申请实施例还可以应用于智慧路口和智慧城市等领域,此时,图1所示的检测系统可以部署在分布式传感器网络或非可移动平台中,其中,该非可移动平台可以为路灯或交通灯,用于对关键交通区域的障碍物进行检测。
目前,主要是通过深度神经网络对障碍物进行检测。具体地,先利用障碍物的属性信息训练一个深度神经网络,然后将该深度神经网络作为检测系统的一部分部署在相应的设备上;在需要检测障碍物时,先获取待检测障碍物的属性信息,然后将待检测障碍物的属性信息输入到深度神经网络,即可输出待检测障碍物的检测结果。
然而,目前所利用的障碍物的属性信息主要是障碍物的形状、大小、色彩、纹理、材质、运动状态等,这些属性信息是多种多样的,没有统一规律可循。不同类别的障碍物对应的上述属性信息差异较大,同类别的不同障碍物对应的上述属性信息也存在一定差异。
为此,本申请实施例提供了一种障碍物检测方法,该方法利用障碍物与路面形成的边界这一属性信息对障碍物进行检测,由于任意障碍物都会与路面形成边界,所以本申请实施例适用于任意障碍物的检测;并且,相比于障碍物的形状、大小、色彩、纹理、材质、运动状态等属性信息,障碍物与路面形成的边界这一属性信息更加稳定单一,且通用性和泛化性更好,所以采用本申请实施例提供的障碍物检测方法对障碍物进行检测,能够提高障碍物检测的有效性。
为了便于理解,下面先对本申请实施例所使用的术语进行说明。
障碍物:是指占据可行驶路面且影响自主车辆(ego vehicle)前行的物体,由于任意类别的物体(而不是某些特定类别的物体或常见类别的物体)都可以成为障碍物,所以障碍物又可以称为通用障碍物,下文采用障碍物对本申请实施例提供的方法进行描述。
请参阅图2,图2示出了障碍物的多种示例,不仅包括行人(101)、汽车(102)、摩托车(103)、自行车(104)等各种常规交通参与者,还包括交通锥(105)、三角牌(106)等交通场景标志物,以及动物(107)、箱子(108)、平躺轮胎(109)、石头(110)等不常出现在交通场景中的物体。
语义分割(semantic segmentation):一种对输入图像进行像素级分类的计算机视觉任务,即对图像中的每一个像素点进行分类,确定每个点的语义类别(例如,行人、车辆、车道、车道线、人行道等),从而实现对输入图像进行语义级划分的目的。
实例分割(instance segmentation):在语义分割的基础上,额外实现对每一种语义类别中的单个个体进行区分的目的。
真值(ground truth):即标准答案,指在某一个特定的估计或测量任务中,每一个给定的输入信号所对应的预期结果或正确输出。例如,语义分割的真值,是指图像中每一个像素点所属的类别,常见的表现形式是和图像尺寸相同的类别标签掩膜(mask)。真值可用于监督学习中对模型的训练,也可用于模型性能的验证和评估。
热图(heat map):一种以颜色深浅变化来显示数据的可视化方法。给定一张输入图像,语义分割网络对于每一个类别,都会输出一张对应的热图。其中颜色的深浅代表了该类别出现在对应图像区域的可能性,一般来说,颜色越暖(或亮度越高)则可能性越大。
占据边界:是指可行驶路面被物体占据后,物体与路面之间形成的边界;请参阅图3和图4,图3和图4示出了占据边界的多个示例,具体地,图3示出了纸箱与路面之间形成的占据边界,图3还示出了路障与路面之间形成的占据边界,图4示出了各种类型的汽车与路面之间形成的占据边界。
基于前述说明可知,目前主要利用深度神经网络对障碍物进行检测,本申请实施例利用边界信息网络模型对障碍物进行检测,因此在采用本申请实施例提供的方法检测障碍物之前,需要先训练得到边界信息网络模型。
下面结合图5对边界信息网络模型的训练过程进行说明。
如图5所示,对边界信息网络模型的训练过程可以包括:
操作201,获取训练数据集。
其中,训练数据集可以包含多张图像以及多张图像中障碍物的边界信息,这多张包含障碍物的图像可以是由摄像头直接拍摄的,也可以是从摄像头拍摄的视频中提取的。
障碍物的边界信息又可以称为经验障碍物边界信息,经验障碍物边界信息可以是与经验障碍物边界有关的任何信息;例如,经验障碍物边界信息可以包括经验障碍物的占据边界,其中,占据边界是指可行驶路面被物体占据后,物体与路面之间形成的交界线段;除此之外,经验障碍物边界信息还可以包括经验障碍物的占据边界实例的信息。
实例可以理解为个体,每个个体都可以称为一个实例;基于此,每个占据边界都可以称为一个占据边界实例。
占据边界实例的信息可以有多种,本申请实施例对此不做具体限定,例如占据边界实例的信息可以为占据边界的唯一标识ID。
上面从信息内容的角度对经验障碍物边界信息进行了说明,下面从经验障碍物边界信息的来源对经验障碍物边界信息进行说明。
根据经验障碍物边界信息的来源对经验障碍物边界信息进行分类,经验障碍物边界信息可以包括历史障碍物边界信息和/或样本障碍物边界信息;其中,样本障碍物边界信息可以理解为对样本图像中的障碍物进行人工标注而得到的边界信息;历史障碍物边界信息可以理解为先验障碍物边界信息,即不需要进行人工标注就可以得到的边界信息。
例如,历史障碍物边界信息可以是地图中已经存在的障碍物的边界信息,具体地,某一路段修路,会在地图中更新所修路段设置的路障以及路障的边界信息,该路障的边界信息即可作为历史障碍物边界信息。
对于样本障碍物边界信息,则需要通过人工标注获取,下面以占据边界为例对样本障碍物边界信息的标注过程进行介绍。
需要说明的是,可以采用多种人工标注方法获取样本障碍物边界信息,本申请实施例对此不做具体限定,下面以占据边界为例介绍获取样本障碍物边界信息的三种标注方法。
作为一种实现的方式,通过沿图像中障碍物的下边缘与可行驶路面之间的交界线段取有序点集得到占据边界。
其中,该有序点集可以是由沿着图像从左到右的点构成,也可以是由图像从右到左的点构成。
例如,如图6所示,沿着自行车的下边缘与地面之间的交界线段取有序点集,该有序点集构成了占据边界,该占据边界也是自行车作为障碍物时占据边界的真值。
再例如,如图7所示,沿着路障的下边缘与地面之间的交界线段取有序点集,得到占据边界,该占据边界也是路障作为障碍物时占据边界的真值。
作为一种实现的方式,通过图像中障碍物的掩膜的下边缘与可行驶路面之间的交界线段得到占据边界。
其中,掩膜可以理解为用于覆盖的图像,障碍物的掩膜则可以理解为用于覆盖障碍物的图像。
例如,图8示出了汽车的掩膜1501和可行驶路面的掩膜1500,在汽车的掩膜1501和可行驶路面的掩膜1500的交界线上,标注这辆汽车的下边缘与地面之间的交界线段的起终点,例如将点1502标注为起点,将点1503标注为终点;这样,汽车的掩膜1501和可行驶路面的掩膜1500的交界线上,位于点1502和点1503之间的所有点(包含点1502和点1503)构成了有序点集,该有序点集构成了占据边界,该占据边界是汽车作为障碍物时占据边界的真值。
由此可见,通过图像中障碍物的掩膜的下边缘与可行驶路面之间的交界线段得到占据边界,只需标注障碍物的掩膜的下边缘与可行驶路面之间的交界线段的起点和终点即可,无需逐个取点即可得到占据边界,可以提高标注效率。
作为一种实现的方式,通过仿真引擎生成占据边界,仿真引擎模拟的场景图像为包含障碍物的图像。
具体地,将包含障碍物的图像作为仿真引擎模拟的场景图像,通过仿真引擎模拟交通场景,即可生成虚拟数据和对应的占据边界。例如,如图9所示,通过仿真引擎生成的汽车的占据边界如白色线段所示,该占据边界是汽车作为障碍物时占据边界的真值。
由通过仿真引擎可以自动生成占据边界,无需逐一手动对包含图像中障碍物的占据边界进行标注,可以极大提高获取障碍物的占据边界的效率,且可以降低标注成本。
需要说明的是,无论采用哪种标注方法,若图像中存在多个重叠的障碍物,都可以将这多个障碍物看成一个障碍物或一簇障碍物进行标注,相应地,这多个重叠的障碍物可以对应一条占据边界;其中多个重叠的障碍物是指在这多个重叠的障碍物中,对于任意一个障碍物,都存在与之重叠的另一个障碍物。
例如,如图6所示,该图像包含两辆存在重叠部分的自行车,对这两辆存在重叠部分的自行车进行标注,得到如图6所示的一条占据边界(在图6中用白色线段示出)。
操作202,基于训练数据集对边界信息网络模型进行训练,以得到训练后的边界信息网络模型。
其中,该边界信息网络模型的种类可以有多种,本申请实施例对此不做具体限定,例如,可以采用ENet网络作为边界信息网络模型,ENet网络对图像的处理过程如图10所示,其中图10中的数字表示图像的通道channel数。
训练边界信息网络模型的过程大致包括:选定边界信息网络模型,并为边界信息网络模型配置初始权重,将训练数据集中的训练数据输入该边界信息网络模型,然后基于边界信息网络模型的输出和标注的信息计算损失函数,最后根据该损失函数进行反向传播,以更新该边界信息网络模型中的权重。
可以理解的是,由于对训练数据集中的图像中的障碍物的占据边界进行了标注,所以以一张图像作为输入,训练后的边界信息网络模型可以输出该图像中障碍物的占据边界;此外,若还标注了图像中障碍物的占据边界实例的信息,那么训练后的边界信息网络模型还可以输出该图像中障碍物的占据边界实例,例如,训练后的边界信息网络模型可以输出障碍物的占据边界的唯一ID;基于障碍物的占据边界实例,边界信息网络还可以输出该占据边界实例对应的障碍物实例,其中,图像中的每个障碍物都可以称为障碍物实例。
上面对边界信息网络模型的训练过程进行了说明,下面对基于边界信息网络模型检测图像中的障碍物的过程进行说明。
请参阅图11,本申请实施例提供了一种障碍物检测方法的一个实施例,包括:
操作301,获取第一图像,第一图像中包含至少一个障碍物。
获取第一图像的方式有多种,本申请实施例对此不做具体限定。例如,可以通过摄像头直接采集第一图像,也可以通过摄像头采集视频,然后从视频中提取包含障碍物的一帧图像作为第一图像。
其中,摄像头的种类包括但不限于单目摄像头、双目摄像头、多目摄像头和环视摄像头。
具体地,在交通场景下,可以通过车载前视摄像头采集第一图像。
第一图像中障碍物的数量可以为一个,也可以为多个;当第一图像中障碍物的数量为多个时,多个障碍物中可以存在相互独立(即非重叠)的两个障碍物,也可以存在重叠部分的两个障碍物。
例如,第一图像为图6所示的图像,该第一图像中包含相互独立的汽车和自行车两个障碍物,除此之外,该第一图像中还包含存在重叠部分的两辆自行车。
第一图像中障碍物的种类可以有一种,也可以有多种,本申请实施例对第一图像中障碍物的种类不做具体限定,例如,第一图像中障碍物的种类可以是图2中任意一种障碍物。
操作302,基于边界信息网络模型,确定至少一个障碍物的边界。
其中,至少一个障碍物的边界包括障碍物与路面形成的边界,障碍物与路面形成的边界也可以称为占据边界。
基于前述说明可知,在执行操作302之前,需要基于训练数据集训练得到边界信息网络模型,训练数据集可以包含多张训练图像以及多张训练图像中障碍物的边界信息,训练数据集可以包含多张图像以及多张图像中障碍物的边界信息,又可以称为经验障碍物边界信息。
因此,作为一种实现的方式,边界信息网络模型基于经验障碍物边界信息训练得到,经验障碍物边界信息包括历史障碍物边界信息和/或样本障碍物边界信息。
由于前文已经对经验障碍物边界信息进行了说明,故可参阅前文操作201的相关说明对经验障碍物边界信息进行理解。
由于历史障碍物边界信息不需要进行人工标注即可获取到,所以基于历史障碍物边界信息训练边界信息网络模型可以降低标注成本;由于样本障碍物边界信息是通过人工标注获取到的,而在人工标注过程可以选择各种各样的障碍物进行标注,所以样本障碍物边界信息可以增加边界信息的多样性,基于样本障碍物边界信息训练边界信息网络模型可以提高边界信息网络模型的性能,从而提高障碍物检测的有效性。
基于上述说明可知,样本障碍物边界信息需要通过人工标注获取,下面介绍三种获取样本障碍物边界信息的人工标注方法。
作为一种实现的方式,样本障碍物边界信息通过沿图像中障碍物的下边缘与可行驶路面之间的交界线段取有序点集得到;或者,样本障碍物边界信息通过取图像中障碍物的掩膜的下边缘与可行驶路面之间的交界线段得到;或者,样本障碍物边界信息通过仿真引擎生成,仿真引擎模拟的场景图像为包含障碍物的图像。
可以理解的是,样本障碍物边界信息可以是样本障碍物的占据边界,所以可参阅前文图6至图9的相关说明(获取样本障碍物的占据边界的三种人工标注方法)对该实施例中获取样本障碍物边界信息的过程进行理解。
该实现的方式提供了获取样本障碍物边界信息的多种可行方案,使得获取样本障碍物边界信息的方式更加灵活;并且,通过沿图像中障碍物的下边缘与可行驶路面之间的交界线段取有序点集获取样本障碍物边界信息,简便易行,通过图像中障碍物的掩膜的下边缘与可行驶路面之间的交界线段获取样本障碍物边界信息,借助了已有的障碍物的掩膜的信息,所以只需要标注交界线段起终点即可,不需要逐个取点,可以提高标注效率;通过仿真引擎生成样本障碍物边界信息,无需人工标注,可以降低标注成本。
下面对障碍物的边界的特点进行说明。
作为一种可实现的方式,至少一个障碍物的边界所占的像素点在第一方向上连续。
其中,该第一方向可以是图像的像素宽度方向,该像素宽度方向对应的是图像的水平方向;例如,第一方向可以是图8中从点1502至点1503的水平方向。
可以理解的是,若一个障碍物的边界所占的像素在第一方向上是间断的,则可能会导致很多问题。
例如,间断的多段边界可能会让用户(例如驾驶员)误认为间断的多段边界是多个障碍的边界,进而会误认为两段边界之间的区域是可行驶区域,但两段边界之间的区域实际也是障碍物,即非可行驶区域。
再例如,障碍物通常是存在一定体积的,间断的多段边界不利于用户判断障碍物在第一方向上的尺寸。
基于障碍物间断的边界导致上述种种问题,所以在本申请实施例中,至少一个障碍物的边界所占的像素点在第一方向上连续,这不仅能很好地反映障碍物在第一方向上的尺寸,而且还有利于用户准确识别可行驶的区域。
以图8为例,图8中的汽车与路面实际接触的位置在四个车轮处,这四个车轮处显然是分散的;若以这四个车轮处为该汽车作为障碍物时的边界,那会让用户误认为车轮之间的区域是可行驶区域,而且无法判断该障碍物在水平方向的尺寸。
而在本申请实施例中,会将点1502至点1503的连续交界线作为汽车作为障碍物时的边界;这样,用户便可以判断该障碍物在水平方向的尺寸,从而对障碍物的大小进行估计,并且会将整个边界所在的区域都作为非可行驶的区域。
基于操作301的相关说明可知,障碍物的数量可以为一个,也可以为多个;当障碍物的数量为一个时,确定的障碍物的边界的数量为一个;当障碍物的数量为多个时,确定的障碍物的边界的数量情况则可以分为两种。
第一种情况:多个障碍物重叠之间存在重叠部分;此时,基于前述训练过程的相关说明可知,会将多个重叠的障碍物看成一个障碍物或一簇障碍物进行标注,相应地,基于边界信息网络模型确定的障碍物的边界的数量可以认为是一个,这一个边界可以认为是由多个障碍物各自的边界连接形成。
第二种情况:多个障碍物之间没有重叠部分。
下面以两个障碍物为例对第二种情况进行介绍。
作为一种实现方式,至少一个障碍物包括第一障碍物和第二障碍物,相应地,操作302包括:确定第一障碍物的边界和第二障碍物的边界,第一障碍物的边界所占的像素点与第二障碍物的边界所占的像素点的交集为空集。
其中,第一障碍物和第二障碍物可以是同一类别,也可以是不同类别,本申请实施例对此不做具体限定。
在本申请实施例中,当两个障碍物之间没有重叠部分时,确定出的两个障碍物的边界是相互独立的,所以两个障碍物的边界所占的像素点的交集为空集。
例如,图7中包含三个路障,以其中两个路障作为第一障碍物和第二障碍物,确定出的两个障碍物的边界所占的像素点的交集为空集。
可以理解的是,边界信息网络模型不同,对应的操作302的具体过程也不同。
作为一种实现的方式,边界信息网络模型用于通过语义分割确定障碍物的边界,相应地,操作302包括:
将第一图像输入边界信息网络模型,对第一图像中的每个像素点基于经验障碍物边界信息作为类别进行分类;
对分类的结果进行处理得到至少一个障碍物的边界。
其中,分类结果可以是行人、车辆、车道、车道线、人行道等。
在本申请实施例中,基于经验障碍物边界信息作为类别,对第一图像中的每个像素点进行分类,并对分类的结果进行处理得到至少一个障碍物的边界,从而实现了通过语义分割获取障碍物的边界。
需要说明的是,不同边界信息网络模型的输出的类型不同,通常情况下,边界信息网络模型输出的是包含障碍物的边界的热图;基于该热图可以确定障碍物的边界。
下面对基于热图确定障碍物的边界的具体过程进行说明。
具体地,将图12所示的图像输入边界信息网络模型,边界信息网络模型则会输出如图13所示的热图,图13中的白色线段表示障碍物的边界;基于图13所示的热图便可以确定障碍物的边界。
此外,还可以对图13所示的热图进行后处理,以得到每个障碍物实例所对应的边界(即占据边界)。
具体地,保留图13所示的热图中每一列最下方大于某一预设的阈值的像素,其余位置的像素置零,处理后的热图中的各个像素可以看成是一维信号;然后,通过拐点检测得到这个一维信号的每一个下陷凹槽,即每个障碍物实例所对应的边界,具体可参阅图14,图14中的每个下陷凹槽表示一个障碍物实例所对应的边界。
在本申请实施例中,障碍物的边界可以用于确定障碍物的位置,从而可以实现对障碍物的检测。
并且,相比于障碍物的形状、大小、色彩、纹理、材质、运动状态等属性信息,障碍物的边界这一属性信息更加稳定单一,且通用性和泛化性更好;具体地,对于同类别的不同障碍物来说,障碍物的边界的相似性较高,对于不同类别的障碍物来说,障碍物的边界也具有一定的相似性。
例如,如图4所述,该图4包含卡车、面包车和运动型多用途汽车SUV等多种汽车,这多种汽车都属于同一类别;尽管这多种汽车的形状、大小、色彩、材质等都是多种多样的,但只要是汽车这一类别的物体,它与路面所形成的边界大致包括三种:直线、向左弯折的折线和向右弯折的折线。那么,便可以利用上述这三种边界对作为障碍物的大多数汽车进行检测。
由此可见,障碍物的边界这一属性信息确实比较稳定单一,并且,对于同类别的不同障碍物来说,障碍物的边界的相似性较高,所以通过确定障碍物的边界检测障碍物,有利于检测出更多数量的障碍物。
再例如,如图3和图4所示,图3中包含纸箱,图4中包含汽车;尽管纸箱和汽车属于不同类别,但纸箱与路面之间的边界,同汽车与路面的边界相似,都包含三种:直线、向左弯折的折线和向右弯折的折线。那么,利用上述三种边界不仅可以对作为障碍物的汽车进行检测,还可以对作为障碍物的纸箱进行检测。
由此可见,障碍物的边界这一属性信息确实比较稳定单一,并且,对于不同类别的障碍物来说,障碍物的边界也具有一定的相似性,所以通过确定障碍物的边界检测障碍物,有利于检测出更多数量的障碍物。
综上所述,在本申请实施例中,通过确定障碍物的边界检测障碍物,有利于检测出更多数量的障碍物,能够提高障碍物检测的有效性。
操作303,根据至少一个障碍物的边界和预设的图像中障碍物的像素高度确定至少一个障碍物在第一图像中占据的区域大小。
可以理解的是,基于障碍物的边界可以确定障碍物的位置,从而可以实现对障碍物的检测;但实际的障碍物都有一定的体积,所以为了更直观、更立体地表示检测出的障碍物,本申请实施例根据障碍物的边界和图像中障碍物的像素高度确定障碍物在第一图像中占据的区域大小,相应地,操作303是可选的。
其中,该像素高度可以理解为在第一图像的竖直方向上的尺寸,但该像素高度是预设的,与障碍物的实际高度没有直接关系,该像素高度可以大于障碍物在第一图像中的高度,也可以小于障碍物在第一图像中的高度。
以图12的图像为例,在根据图13的热图确定障碍物的边界后,可以将障碍物表示为以障碍物的边界为底边的柱状像素(stixel),表示效果如图15所示;从图15可以看出,纸箱、路障等障碍物均通过柱状像素表示,且纸箱、路障等障碍物的实际高度与柱状像素的高度无关,具体地,纸箱等障碍物的高度小于柱状像素的高度,部分路障的高度大于柱状像素的高度。
在本申请实施例中,根据至少一个障碍物的边界和预设的图像中障碍物的像素高度确定至少一个障碍物在第一图像中占据的区域大小,则可以更直观、更立体地表示障碍物。
上面介绍了本申请提供的障碍物检测方法,下面对实现该障碍物检测方法的装置进行介绍,请参阅图16所示,为本申请实施例中障碍物检测装置的一个实施例示意图。
图16中的各个单元模块中的一个或多个可以由软件、硬件、固件或其结合实现。所述软件或固件包括但不限于计算机程序指令或代码,并可以被硬件处理器所执行。所述硬件包括但不限于各类集成电路,如中央处理单元(CPU)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)或专用集成电路(ASIC)。
该障碍物检测装置包括:
获取单元1201,用于获取第一图像,第一图像中包含至少一个障碍物;
确定单元1202,用于基于边界信息网络模型,确定至少一个障碍物的边界;其中,至少一个障碍物的边界包括障碍物与路面形成的边界。
进一步地,边界信息网络模型基于经验障碍物边界信息训练得到,经验障碍物边界信息包括历史障碍物边界信息和/或样本障碍物边界信息。
进一步地,样本障碍物边界信息通过沿图像中障碍物的下边缘与可行驶路面之间的交界线段取有序点集得到;或者,样本障碍物边界信息通过取图像中障碍物的掩膜的下边缘与可行驶路面之间的交界线段得到;或者,样本障碍物边界信息通过仿真引擎生成,图像为仿真引擎模拟的场景图像。
进一步地,确定单元1202具体用于:将第一图像输入边界信息网络模型,对第一图像中的每个像素点基于经验障碍物边界信息作为类别进行分类;对分类的结果进行处理得到至少一个障碍物的边界。
进一步地,至少一个障碍物的边界所占的像素点在第一方向上连续。
进一步地,至少一个障碍物包括第一障碍物和第二障碍物;确定单元1202具体用于:确定第一障碍物的边界和第二障碍物的边界,第一障碍物的边界所占的像素点与第二障碍物的边界所占的像素点的交集为空集。
进一步地,确定单元1202还用于:根据至少一个障碍物的边界和预设的图像中障碍物的像素高度确定至少一个障碍物在第一图像中占据的区域大小。
请参阅图17,为本申请实施例中障碍物检测装置的一个实施例示意图。
本申请实施例中的障碍物检测装置可以是配置于可移动平台(例如汽车、机器人等)的装置,该障碍物检测装置1300可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器1301和存储器1302,该存储器1302中存储有程序或数据。
其中,存储器1302可以是易失性存储或非易失性存储。可选地,处理器1301是一个或多个中央处理器(CPU,central processing unit,该CPU可以是单核CPU,也可以是多核CPU。处理器1301可以与存储器1302通信,在障碍物检测装置1300上执行存储器1302中的一系列指令。
该障碍物检测装置1300还包括一个或一个以上有线或无线网络接口1303,例如以太网接口。
可选地,尽管图17中未示出,障碍物检测装置1300还可以包括一个或一个以上电源;一个或一个以上输入输出接口,输入输出接口可以用于连接摄像头、显示器、鼠标、键盘、触摸屏设备或传感设备等,输入输出接口为可选部件,可以存在也可以不存在,此处不做限定。
本实施例中障碍物检测装置1300中的处理器1301所执行的流程可以参考前述方法实施例中描述的方法流程,此处不加赘述。
该障碍物检测装置可为具有障碍物检测功能的车辆,或者为具有障碍物检测功能的其他部件。该障碍物检测装置包括但不限于:车载终端、车载控制器、车载模块、车载模组、车载部件、车载芯片、车载单元、车载雷达或车载摄像头等其他传感器,车辆可通过该车载终端、车载控制器、车载模块、车载模组、车载部件、车载芯片、车载单元、车载雷达或摄像头,实施本申请提供的方法。
该障碍物检测装置还可以为除了车辆之外的其他具有障碍物检测功能的智能终端,或设置在除了车辆之外的其他具有障碍物检测功能的智能终端中,或设置于该智能终端的部件中。该智能终端可以为智能运输设备、智能家居设备、机器人等其他终端设备。该障碍物检测装置包括但不限于智能终端或智能终端内的控制器、芯片、雷达或摄像头等其他传感器、以及其他部件等。
该障碍物检测装置还可以是一个通用设备或者专用设备。在具体实现中,该装置还可以是台式机、便携式电脑、网络服务器、掌上电脑(personal digital assistant,PDA)、移动手机、平板电脑、无线终端设备、嵌入式设备或其他具有处理功能的设备。本申请实施例不限定该障碍物检测装置的类型。
该障碍物检测装置还可以是具有处理功能的芯片或处理器,该障碍物检测装置可以包括多个处理器。处理器可以是一个单核(single-CPU)处理器,也可以是一个多核(multi-CPU)处理器。该具有处理功能的芯片或处理器可以设置在传感器中,也可以不设置在传感器中,而设置在传感器输出信号的接收端。
本申请实施例还提供一种系统,应用于无人驾驶或智能驾驶中,其包含至少一个本申请上述实施例提到的障碍物检测装置、摄像头、雷达等传感器其他传感器中的至少一个,该系统内的至少一个装置可以集成为一个整机或设备,或者该系统内的至少一个装置也可以独立设置为元件或装置。
进一步,上述任一系统可以与车辆的中央控制器进行交互,为所述车辆驾驶的决策或控制提供探测和/或融合信息。
本申请实施例还提供一种车辆,所述车辆包括至少一个本申请上述实施例提到的障碍物检测装置或上述任一系统。
本申请实施例还提供一种芯片,包括一个或多个处理器。所述处理器中的部分或全部用于读取并执行存储器中存储的计算机程序,以执行前述各实施例的方法。
可选地,该芯片该包括存储器,该存储器与该处理器通过电路或电线与存储器连接。进一步可选地,该芯片还包括通信接口,处理器与该通信接口连接。通信接口用于接收需要处理的数据和/或信息,处理器从该通信接口获取该数据和/或信息,并对该数据和/或信息进行处理,并通过该通信接口输出处理结果。该通信接口可以是输入输出接口。
在一些实现方式中,所述一个或多个处理器中还可以有部分处理器是通过专用硬件的方式来实现以上方法中的部分步骤,例如涉及神经网络模型的处理可以由专用神经网络处理器或图形处理器来实现。
本申请实施例提供的方法可以由一个芯片实现,也可以由多个芯片协同实现。
本申请实施例还提供了一种计算机存储介质,该计算机存储介质用于储存为上述计算机设备所用的计算机软件指令,其包括用于执行为计算机设备所设计的程序。
该计算机设备可以如前述图16所描述的障碍物检测装置。
本申请实施例还提供了一种计算机程序产品,该计算机程序产品包括计算机软件指令,该计算机软件指令可通过处理器进行加载来实现前述各个实施例所示的方法中的流程。
本申请实施例还提供了一种车辆,该车辆包括如前述图16所描述的障碍物检测装置。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。