一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

障碍物检测方法、模型训练方法、装置及自动驾驶车辆与流程

2022-02-19 14:33:59 来源:中国专利 TAG:


1.本公开涉及车辆技术领域,尤其涉及计算机视觉、自动驾驶、障碍物检测技术领域,具体涉及一种障碍物检测方法及装置、障碍物检测模型的训练方法及装置、电子设备、计算机可读存储介质、计算机程序产品和自动驾驶车辆。


背景技术:

2.自动驾驶和辅助驾驶技术涉及环境感知、行为决策、路径规划以及运动控制等多个方面。依赖于传感器、视觉计算系统和定位系统的协同合作,具有自动驾驶或辅助驾驶功能的车辆可以在无需驾驶员进行操作或仅需驾驶员进行少量操作的情况下自动地运行。
3.为了保证车内人员以及周围环境中的行人和车辆的安全,行驶中的自动驾驶车辆或辅助驾驶车辆需要对其周围的环境进行感知,检测其行驶路径上的障碍物并进行避让。
4.在此部分中描述的方法不一定是之前已经设想到或采用的方法。除非另有指明,否则不应假定此部分中描述的任何方法仅因其包括在此部分中就被认为是现有技术。类似地,除非另有指明,否则此部分中提及的问题不应认为在任何现有技术中已被公认。


技术实现要素:

5.本公开提供了一种障碍物检测方法及装置、障碍物检测模型的训练方法及装置、电子设备、计算机可读存储介质、计算机程序产品和自动驾驶车辆。
6.根据本公开的一方面,提供了一种障碍物检测方法,包括:获取相机采集到的待处理图像以及所述相机对应的深度图,所述深度图包括所述相机的视野范围内的多个地面点各自的深度值;检测所述待处理图像中的障碍物所在的目标区域;以及至少基于所述深度图和所述目标区域,确定所述障碍物的深度值。
7.根据本公开的一方面,提供了一种障碍物检测模型的训练方法,包括:获取样本图像和与所述障碍物检测模型联合使用的相机的参数,所述样本图像标注有标注信息,所述标注信息包括所述样本图像中的障碍物和所述障碍物的真实深度值;基于所述参数,确定所述相机对应的深度图,所述深度图包括所述相机的视野范围内的多个地面点各自的深度值;基于所述深度图,确定所述障碍物的参考深度值;将所述样本图像输入所述障碍物检测模型,以获得所述障碍物检测模型的输出,所述输出包括所述参考深度值的预测误差;至少基于所述真实深度值、所述参考深度值和所述预测误差,确定所述障碍物检测模型的损失值;以及基于所述损失值,调整所述障碍物检测模型的参数。
8.根据本公开的一方面,提供了一种障碍物检测装置,包括:获取模块,被配置为获取相机采集到的待处理图像以及所述相机对应的深度图,所述深度图包括所述相机的视野范围内的多个地面点各自的深度值;检测模块,被配置为检测所述待处理图像中的障碍物所在的目标区域;以及确定模块,被配置为至少基于所述深度图和所述目标区域,确定所述障碍物的深度值。
9.根据本公开的一方面,提供了一种障碍物检测模型的训练装置,包括:获取模块,
被配置为获取样本图像和与所述障碍物检测模型联合使用的相机的参数,其中,所述样本图像标注有标注信息,所述标注信息包括所述样本图像中的障碍物和所述障碍物的真实深度值;第一确定模块,被配置为基于所述参数,确定所述相机对应的深度图,所述深度图包括所述相机的视野范围内的多个地面点各自的深度值;第二确定模块,被配置为基于所述深度图,确定所述障碍物的参考深度值;预测模块,被配置为将所述样本图像输入所述障碍物检测模型,以获得所述障碍物检测模型的输出,所述输出包括所述参考深度值的预测误差;第三确定模块,被配置为至少基于所述真实深度值、所述参考深度值和所述预测误差,确定所述障碍物检测模型的损失值;以及调整模块,被配置为基于所述损失值,调整所述障碍物检测模型的参数。
10.根据本公开的一方面,提供了一种电子设备,包括:至少一个处理器;以及与上述至少一个处理器通信连接的存储器,该存储器存储有可被上述至少一个处理器执行的指令,该指令被上述至少一个处理器执行,以使上述至少一个处理器能够执行上述任一方面的方法。
11.根据本公开的一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,该计算机指令用于使计算机执行上述任一方面的方法。
12.根据本公开的一方面,提供了一种计算机程序产品,包括计算机程序,该计算机程序在被处理器执行时实现上述任一方面的方法。
13.根据本公开的一方面,提供了一种自动驾驶车辆,包括上述电子设备。
14.根据本公开的一个或多个实施例,可以基于相机采集到的待处理图像和相机的深度图来确定障碍物的深度值,即检测障碍物到相机的距离。相机的深度图与相机本身的参数强相关,因此本公开的实施例在障碍物检测过程中充分考虑了相机本身的参数,对于不同参数的相机(例如不同安装位置、不同焦距的相机)均能达到良好的检测效果,具有良好的泛化性能。
15.应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
16.附图示例性地示出了实施例并且构成说明书的一部分,与说明书的文字描述一起用于讲解实施例的示例性实施方式。所示出的实施例仅出于例示的目的,并不限制权利要求的范围。在所有附图中,相同的附图标记指代类似但不一定相同的要素。
17.图1示出了根据本公开的实施例的可以在其中实施本文描述的各种方法的示例性系统的示意图;
18.图2示出了根据本公开的实施例的障碍物检测方法的流程图;
19.图3示出了根据本公开的实施例的示例性待处理图像的示意图;
20.图4a

4c示出了根据本公开的实施例的计算深度图的示意图;
21.图5示出了根据本公开的实施例的确定障碍物的深度值的示意图;
22.图6示出了根据本公开的实施例的障碍物检测模型的训练方法的流程图;
23.图7示出了根据本公开的实施例的示例性障碍物检测模型的结构图;
24.图8示出了根据本公开的实施例的障碍物检测装置的结构框图;
25.图9示出了根据本公开的实施例的障碍物检测模型的训练装置的结构框图;以及
26.图10示出了能够用于实现本公开的实施例的示例性电子设备的结构框图。
具体实施方式
27.以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
28.在本公开中,除非另有说明,否则使用术语“第一”、“第二”等来描述各种要素不意图限定这些要素的位置关系、时序关系或重要性关系,这种术语只是用于将一个元件与另一元件区分开。在一些示例中,第一要素和第二要素可以指向该要素的同一实例,而在某些情况下,基于上下文的描述,它们也可以指代不同实例。
29.在本公开中对各种所述示例的描述中所使用的术语只是为了描述特定示例的目的,而并非旨在进行限制。除非上下文另外明确地表明,如果不特意限定要素的数量,则该要素可以是一个也可以是多个。此外,本公开中所使用的术语“和/或”涵盖所列出的项目中的任何一个以及全部可能的组合方式。
30.在车辆的自动驾驶或辅助驾驶过程中,为了保证车内人员以及周围环境中的车辆和行人的安全,自动驾驶或辅助驾驶车辆需要对周围环境进行感知,检测其行驶路径上的障碍物并及时进行避让。
31.在相关技术中,可以采用深度学习技术来进行障碍物检测。即,首先基于训练数据训练生成障碍物检测模型。随后,利用单目相机采集图像,将图像输入训练好的障碍物检测模型,该模型输出障碍物的三维属性,例如障碍物的三维空间坐标(x,y,z)、三维尺寸(包括长l、宽w、高h)、以及偏航角(yaw)等。目前,障碍物检测模型通常根据相机采集到的样本图像训练得出,模型的训练过程中没有利用或没有充分利用相机本身的参数信息(例如相机在车辆上的安装位置、俯仰角、焦距等信息),导致模型对不同相机参数的泛化性能较差,检测结果的准确性较低。根据一种参数的相机采集到的图像训练生成的模型难以复用到其他参数的相机中。当相机的参数发生变化后,之前训练好的障碍物检测模型即会失效,需要重新采集大量的样本图像并进行二维、三维信息的联合标注,以训练生成新的模型。样本图像的采集、标注以及模型的训练时间都很长,因此部署新的模型周期长、效率低、成本高。
32.为此,本公开的实施例提供了一种障碍物检测方法、障碍物检测模型的训练方法及装置,能够利用相机的深度图来进行障碍物检测。相机的深度图与相机本身的参数强相关,因此本公开的实施例在障碍物检测的过程中充分考虑了相机本身的参数,对于不同参数的相机(例如不同安装位置、不同焦距的相机)均能达到良好的检测效果,具有良好的泛化性。
33.下面将结合附图详细描述本公开的实施例。
34.图1示出了根据本公开的实施例可以将本文描述的各种方法和装置在其中实施的示例性系统100的示意图。参考图1,该系统100包括机动车辆110、服务器120以及将机动车辆110耦接到服务器120的一个或多个通信网络130。
35.在本公开的实施例中,机动车辆110可以包括根据本公开实施例的电子设备和/或
被配置以用于执行根据本公开实施例的方法。
36.服务器120可以运行使得能够执行本公开的障碍物检测方法和/或障碍物检测模型的训练方法的一个或多个服务或软件应用。在某些实施例中,服务器120还可以提供可以包括非虚拟环境和虚拟环境的其他服务或软件应用。在图1所示的配置中,服务器120可以包括实现由服务器120执行的功能的一个或多个组件。这些组件可以包括可由一个或多个处理器执行的软件组件、硬件组件或其组合。机动车辆110的用户可以依次利用一个或多个客户端应用程序来与服务器120进行交互以利用这些组件提供的服务。应当理解,各种不同的系统配置是可能的,其可以与系统100不同。因此,图1是用于实施本文所描述的各种方法的系统的一个示例,并且不旨在进行限制。
37.服务器120可以包括一个或多个通用计算机、专用服务器计算机(例如pc(个人计算机)服务器、unix服务器、中端服务器)、刀片式服务器、大型计算机、服务器群集或任何其他适当的布置和/或组合。服务器120可以包括运行虚拟操作系统的一个或多个虚拟机,或者涉及虚拟化的其他计算架构(例如可以被虚拟化以维护服务器的虚拟存储设备的逻辑存储设备的一个或多个灵活池)。在各种实施例中,服务器120可以运行提供下文所描述的功能的一个或多个服务或软件应用。
38.服务器120中的计算单元可以运行包括上述任何操作系统以及任何商业上可用的服务器操作系统的一个或多个操作系统。服务器120还可以运行各种附加服务器应用程序和/或中间层应用程序中的任何一个,包括http服务器、ftp服务器、cgi服务器、java服务器、数据库服务器等。
39.在一些实施方式中,服务器120可以包括一个或多个应用程序,以分析和合并从机动车辆110接收的数据馈送和/或事件更新。服务器120还可以包括一个或多个应用程序,以经由机动车辆110的一个或多个显示设备来显示数据馈送和/或实时事件。
40.网络130可以是本领域技术人员熟知的任何类型的网络,其可以使用多种可用协议中的任何一种(包括但不限于tcp/ip、sna、ipx等)来支持数据通信。仅作为示例,一个或多个网络110可以是卫星通信网络、局域网(lan)、基于以太网的网络、令牌环、广域网(wan)、因特网、虚拟网络、虚拟专用网络(vpn)、内部网、外部网、公共交换电话网(pstn)、红外网络、无线网络(包括例如蓝牙、wi

fi)和/或这些与其他网络的任意组合。
41.系统100还可以包括一个或多个数据库150。在某些实施例中,这些数据库可以用于存储数据和其他信息。例如,数据库150中的一个或多个可用于存储诸如音频文件和视频文件的信息。数据库150可以驻留在各种位置。例如,由服务器120使用的数据库可以在服务器120本地,或者可以远离服务器120且可以经由基于网络或专用的连接与服务器120通信。数据库150可以是不同的类型。在某些实施例中,数据库150可以是关系型数据库。这些数据库中的一个或多个可以响应于命令而存储、更新和检索到数据库以及来自数据库的数据。
42.在某些实施例中,数据库150中的一个或多个还可以由应用程序使用来存储应用程序数据。由应用程序使用的数据库可以是不同类型的数据库,例如键值存储库,对象存储库或由文件系统支持的常规存储库。
43.机动车辆110可以包括传感器111用于感知周围环境。传感器111可以包括下列传感器中的一个或多个:视觉摄像头、红外摄像头、超声波传感器、毫米波雷达以及激光雷达(lidar)。不同的传感器可以提供不同的检测精度和范围。摄像头可以安装在车辆的前方、
后方或其他位置。视觉摄像头可以实时捕获车辆内外的情况并呈现给驾驶员和/或乘客。此外,通过对视觉摄像头捕获的画面进行分析,可以获取诸如交通信号灯指示、交叉路口情况、其他车辆运行状态等信息。红外摄像头可以在夜视情况下捕捉物体。超声波传感器可以安装在车辆的四周,用于利用超声波方向性强等特点来测量车外物体距车辆的距离。毫米波雷达可以安装在车辆的前方、后方或其他位置,用于利用电磁波的特性测量车外物体距车辆的距离。激光雷达可以安装在车辆的前方、后方或其他位置,用于检测物体边缘、形状信息,从而进行物体识别和追踪。由于多普勒效应,雷达装置还可以测量车辆与移动物体的速度变化。
44.机动车辆110还可以包括通信装置112。通信装置112可以包括能够从卫星141接收卫星定位信号(例如,北斗、gps、glonass以及galileo)并且基于这些信号产生坐标的卫星定位模块。通信装置112还可以包括与移动通信基站142进行通信的模块,移动通信网络可以实施任何适合的通信技术,例如gsm/gprs、cdma、lte等当前或正在不断发展的无线通信技术(例如5g技术)。通信装置112还可以具有车联网或车联万物(vehicle

to

everything,v2x)模块,被配置用于实现例如与其它车辆143进行车对车(vehicle

to

vehicle,v2v)通信和与基础设施144进行车辆到基础设施(vehicle

to

infrastructure,v2i)通信的车与外界的通信。此外,通信装置112还可以具有被配置为例如通过使用ieee802.11标准的无线局域网或蓝牙与用户终端145(包括但不限于智能手机、平板电脑或诸如手表等可佩戴装置)进行通信的模块。利用通信装置112,机动车辆110还可以经由网络130接入服务器120。
45.机动车辆110还可以包括控制装置113。控制装置113可以包括与各种类型的计算机可读存储装置或介质通信的处理器,例如中央处理单元(cpu)或图形处理单元(gpu),或者其他的专用处理器等。控制装置113可以包括用于自动控制车辆中的各种致动器的自动驾驶系统。自动驾驶系统被配置为经由多个致动器响应来自多个传感器111或者其他输入设备的输入而控制机动车辆110(未示出的)动力总成、转向系统以及制动系统等以分别控制加速、转向和制动,而无需人为干预或者有限的人为干预。控制装置113的部分处理功能可以通过云计算实现。例如,可以使用车载处理器执行某一些处理,而同时可以利用云端的计算资源执行其他一些处理。控制装置113可以被配置以执行根据本公开的方法。此外,控制装置113可以被实现为根据本公开的机动车辆侧(客户端)的电子设备的一个示例。
46.图1的系统100可以以各种方式配置和操作,以使得能够应用根据本公开所描述的各种方法和装置。
47.本公开的技术方案中,所涉及的用户个人信息的获取,存储和应用等,均符合相关法律法规的规定,且不违背公序良俗。
48.图2示出了根据本公开实施例的障碍物检测方法200的流程图。方法200可以在机动车辆(例如图1中所示的机动车辆110)处执行,也可以在服务器(例如图1中所示的服务器120)处执行。即,方法200的各个步骤的执行主体可以是图1中所示的机动车辆110(具体地,可以是机动车辆110中的控制装置113),也可以是图1中所示的服务器120。
49.如图2所示,方法200可以包括如下步骤:
50.步骤210、获取相机采集到的待处理图像以及该相机对应的深度图,深度图包括相机的视野范围内的多个地面点各自的深度值;
51.步骤220、检测待处理图像中的障碍物所在的目标区域;以及
52.步骤230、至少基于深度图和目标区域,确定障碍物的深度值。
53.根据本公开的实施例,可以基于相机采集到的待处理图像和相机的深度图来确定障碍物的深度值,即检测障碍物到相机的距离。相机的深度图与相机本身的参数强相关,因此本公开的实施例在障碍物检测过程中充分考虑了相机本身的参数,对于不同参数的相机(例如不同安装位置、不同焦距的相机)均能达到良好的检测效果,具有良好的泛化性能。
54.以下详细描述方法200的各个步骤。
55.在步骤210中,获取相机采集到的待处理图像以及该相机对应的深度图,深度图包括相机的视野范围内的多个地面点各自的深度值。
56.步骤210中的相机通常固定设置于机动车辆的前方。该相机可以是单目相机,即,该相机仅包括一个镜头。
57.图3示出了相机采集到的示例性待处理图像300的示意图。如图3所示,待处理图像300中包括行人310,行人310即为机动车辆行驶路径上的障碍物,机动车辆需要对其进行避让。
58.相机对应的深度图包括相机的视野范围内的多个地面点各自的深度值,地面点的深度值即该地面点到相机的水平距离。
59.可以理解,相机采集到的待处理图像的尺寸与相机对应的深度图的尺寸相同。
60.图4a示出了相机视野范围内的多个地面点的深度值的示意图。在图4a中,相机410安装于机动车辆(机动车辆未示出)的前方,相对于地面420的高度为h。点o为相机410的镜头的中心点(以下简称相机410的中心点),点c为相机410的镜头的光轴与地面420的交点,即轴地交点。α为相机相对于水平面430的俯角,也即相机410的镜头的光轴与水平面430的夹角。θ为相机的视场角(field of view,fov),θ覆盖的区域为相机410的视野范围,即,相机410的视野范围内的地面点为地面点a与地面点b之间的多个地面点。地面点a、c、b的深度值为地面点a、c、b到相机410的中心点o的水平距离,即,地面点a、c、b的深度值分别为图中线段oe、od、of的长度。
61.相机对应的深度图可以根据相机的参数来确定。相机的参数包括内参和外参,其中,内参指的是相机自身的属性,包括焦距、单个像素的尺寸等;外参指的是相机在世界坐标系中的属性,包括相机相对于地面的高度、相对于水平面的俯角、相机坐标系到世界坐标系的转换矩阵等。
62.根据一些实施例,相机对应的深度图是基于相机相对于地面的高度、相机相对于水平面的俯角以及相机的焦距来确定的。
63.图4b、4c示出了基于相机相对于地面的高度h、相机相对于水平面的俯角α以及相机的焦距f来计算地面点p的深度值的示意图。
64.当地面点p相对于轴地交点c到相机410的距离更近时,地面点p的深度值的计算过程可以参考图4b。
65.如图4b所示,相机410的中心点为点o,相对于地面420的高度为h,相对于水平面430的俯角为α,焦距为f。平面440为相机410的像平面。点c’、点p’分别为轴地交点c、地面点p对应的像平面440中的像素点。
66.地面点p的深度值d可以根据下式(1)来计算:
[0067][0068]
其中,如图4b所示,γ为相机410的中心点o与地面点p的连线与地面420的夹角,即直线op与地面420的夹角。
[0069]
β为相机410的中心点o与地面点p的连线与相机410的光轴所成的夹角,即直线op与直线oc的夹角。如图4b所示,α、β、γ存在以下关系:
[0070]
γ=α β
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(2)
[0071]
基于三角函数公式,有:
[0072][0073]
在图4b所示的三角形

op’c’中,有:
[0074][0075]
式(4)中,e为像素点p’与像素点c’之间的长度距离,l为像素点p’与像素点c’之间的像素距离(即像素点p’与像素点c’之间的像素的数量),s为单个像素的长度(属于相机410的内参)。
[0076]
综合上式(1)

(4),可以得到当地面点p相对于轴地交点c到相机410的距离更近时,地面点p的深度值d的计算公式为:
[0077][0078]
其中,h为相机410相对于地面的高度,α为相机410相对于水平面的俯角,l为地面点p与轴地交点c所对应的像平面中的像素点p’、c’之间的像素距离,s为单个像素的长度,f为相机410的焦距。
[0079]
当地面点p相对于轴地交点c到相机410的距离更远时,地面点p的深度值的计算过程可以参考图4c。
[0080]
图4c中的各字母和各编号的含义与图4b相同。即,在图4c中,相机410的中心点为点o,相对于地面420的高度为h,相对于水平面430的俯角为α,焦距为f。平面440为相机410的像平面。点c’、点p’分别为轴地交点c、地面点p对应的像平面440中的像素点。
[0081]
地面点p的深度值d可以根据下式(6)来计算:
[0082][0083]
其中,如图4c所示,γ为相机410的中心点o与地面点p的连线与地面420的夹角,即直线op与地面420的夹角。
[0084]
β为相机410的中心点o与地面点p的连线与相机410的光轴所成的夹角,即直线op与直线oc的夹角。如图4c所示,α、β、γ存在以下关系:
[0085]
γ=α

β
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(7)
[0086]
基于三角函数公式,有:
[0087][0088]
在图4c所示的三角形

op’c’中,有:
[0089][0090]
式(9)中,e为像素点p’与像素点c’之间的长度距离,l为像素点p’与像素点c’之间的像素距离(即像素点p’与像素点c’之间的像素的数量),s为单个像素的长度(属于相机410的内参)。
[0091]
综合上式(6)

(9),可以得到当地面点p相对于轴地交点c到相机410的距离更远时,地面点p的深度值d的计算公式为:
[0092][0093]
其中,h为相机410相对于地面的高度,α为相机410相对于水平面的俯角,l为地面点p与轴地交点c所对应的像平面中的像素点p’、c’之间的像素距离,s为单个像素的长度,f为相机410的焦距。
[0094]
在步骤220中,检测待处理图像中的障碍物所在的目标区域。
[0095]
步骤220例如可以通过经训练的目标检测模型来实现。即,可以将待处理图像输入经训练的目标检测模型,目标检测模型输出待处理图像中的障碍物所在的目标区域。目标检测模型例如可以是rpn、faster r

cnn、yolo等,但不限于此。
[0096]
通过步骤220检测得出的障碍物所在的目标区域通常为一矩形区域。例如,如图5所示,通过对待处理图像进行目标检测,得到障碍物512所在的目标区域为矩形区域514。
[0097]
在步骤230中,至少基于通过步骤210所获取的相机深度图和通过步骤220所得到的障碍物的目标区域,确定障碍物的深度值,即确定障碍物在相机坐标系下的z坐标。
[0098]
由于三维空间中的障碍物的下端通常是与地面相接触的,因此在待处理图像中,障碍物所在的目标区域的下边缘处的像素点对应于三维空间中的地面点,可以将目标区域的下边缘处的像素点对应的地面点的深度值作为障碍物的深度值。即,根据一些实施例,可以将深度图中位于与目标区域的下边缘相对应的位置处的深度值确定为障碍物的深度值。根据该实施例,能够通过对深度图进行检索来快速确定障碍物的深度值。
[0099]
例如,如图5所示,待处理图像510和深度图520采用相同的二维坐标系,均将左上角的点作为坐标原点,水平向右的方向为x轴的方向,垂直向下的方向为y轴的方向。并且,待处理图像510和深度图520的尺寸相同。待处理图像510中的障碍物512所在的目标区域为矩形区域514。矩形区域514的下边缘对应的直线为y=y0,相应地,将深度图520中的直线y=y0处的深度值确定为障碍物512的深度值(可以理解,直线y=y0上的各点的深度值均相同)。
[0100]
根据另一些实施例,可以按照以下步骤a

c来确定障碍物的深度值:
[0101]
步骤a、基于深度图和目标区域,确定障碍物的参考深度值;
[0102]
步骤b、预测参考深度值的误差;以及
[0103]
步骤c、基于参考深度值和误差,确定障碍物的深度值。
[0104]
基于该实施例,能够将深度图中的深度值作为参考深度值,并通过预测其误差来对其进行修正,从而提高深度值检测的准确性。
[0105]
针对步骤a,参考深度值可以通过与上文实施例类似的方式,对深度图进行检索来确定。即,根据一些实施例,可以将深度图中位于与目标区域的下边缘相对应的位置处的深度值确定为障碍物的参考深度值。
[0106]
针对步骤b,参考深度值的误差可以通过不同的方式来确定。
[0107]
根据一些实施例,可以预先设置参考深度值与误差的对应关系表。相应地,在步骤b中,可以通过查表来确定参考深度值的误差。
[0108]
根据另一些实施例,可以预先训练一障碍物检测模型,该模型以图像为输入,输出为图像中的障碍物的参考深度值的误差。相应地,在步骤b中,可以将待处理图像输入经训练的障碍物检测模型,以获得参考深度值的误差。采用障碍物检测模型来预测参考深度值的误差,相较于通过查表来预测误差的方式来说,能够提高误差预测的准确性和泛化性。
[0109]
可以理解,障碍物检测模型除了可以输出障碍物的参考深度值的误差之外,还可以经由训练被配置为能够输出障碍物的其他三维属性,例如输出障碍物的长、宽、高、偏航角、在相机坐标系下的第一坐标(x坐标)、在相机坐标系下的第二坐标(y坐标)等。
[0110]
上述实施例中的障碍物检测模型的训练方法将于下文进行详述。
[0111]
在通过步骤a、b得到参考深度值及其误差后,可以执行步骤c,基于参考深度值和误差,确定障碍物的深度值。障碍物的深度值例如可以是参考深度值与其误差的和。
[0112]
根据本公开的实施例,还提供了一种障碍物检测模型的训练方法。
[0113]
图6示出了根据本公开实施例的障碍物检测模型的训练方法600的流程图。方法600通常在服务器(例如图1中所示的服务器120)处执行。在一些实施例中,方法600也可以在机动车辆(例如图1中所示的机动车辆110)处执行。即,方法600的各个步骤的执行主体可以是图1中所示的服务器120,也可以是图1中所示的机动车辆110(具体地,可以是机动车辆110中的控制装置113)。
[0114]
如图6所示,方法600可以包括如下步骤:
[0115]
步骤610、获取样本图像和与障碍物检测模型联合使用的相机的参数,样本图像标注有标注信息,标注信息包括样本图像中的障碍物和障碍物的真实深度值;
[0116]
步骤620、基于上述参数,确定相机对应的深度图,深度图包括相机的视野范围内的多个地面点各自的深度值;
[0117]
步骤630、基于深度图,确定障碍物的参考深度值;
[0118]
步骤640、将样本图像输入障碍物检测模型,以获得障碍物检测模型的输出,输出包括参考深度值的预测误差;
[0119]
步骤650、至少基于真实深度值、参考深度值和预测误差,确定障碍物检测模型的损失值;以及
[0120]
步骤660、基于损失值,调整障碍物检测模型的参数。
[0121]
根据本公开的实施例,在障碍物检测模型的训练过程中,损失值为基于参考深度值计算得出,参考深度值为基于相机参数计算得出,相当于将相机参数编码进了模型,从而提高了模型对相机参数的泛化能力以及深度值预测的准确性。
[0122]
本公开不限制障碍物检测模型的具体结构。
[0123]
图7示出了根据本公开实施例的示例性障碍物检测模型700的结构图。如图7所示,模型700包括二维特征提取模块710、区域选择模块720、三维特征提取模块730和分类输出模块740。
[0124]
在模型700的训练过程中:
[0125]
二维特征提取模块710以样本图像为输入,输出样本图像的二维特征(例如可以是多个特征图)。二维特征提取模块710例如可以包括多个卷积层。
[0126]
区域选择模块720以二维特征提取模块710输出的二维特征为输入,输出样本图像中的障碍物的候选区域。候选区域通常为矩形区域。区域选择模块720例如可以是rpn(region proposal network)。
[0127]
三维特征提取模块730以样本图像为输入,输出样本图像的三维特征(例如可以是多个特征图)。三维特征提取模块730例如可以包括多个卷积层。
[0128]
分类输出模块740以区域选择模块720输出的障碍物候选区域和三维特征提取模块730输出的三维特征为输入,输出障碍物的参考深度值的预测误差。分类输出模块740例如可以是全连接层与sigmoid或softmax分类层的组合。
[0129]
根据一些实施例,相机的参数包括相机相对于地面的高度、相机相对于水平面的俯角以及相机的焦距。相应地,在步骤620中,相机对应的深度图是基于相机相对于地面的高度、相机相对于水平面的俯角以及相机的焦距来确定的。深度图的具体计算方式可以参考上文步骤210及图4a

4c的相关描述,此处不再赘述。
[0130]
根据一些实施例,步骤630进一步包括:检测样本图像中的障碍物所在的目标区域;以及将深度图中位于与目标区域的下边缘相对应的位置处的深度值确定为障碍物的参考深度值。
[0131]
根据一些实施例,目标区域的检测例如可以通过经训练的目标检测模型来实现。即,可以将样本图像输入经训练的目标检测模型,目标检测模型输出样本图像中的障碍物所在的目标区域。目标检测模型例如可以是rpn、faster r

cnn、yolo等,但不限于此。
[0132]
在另一些实施例中,目标区域的检测也可以通过障碍物检测模型的内部模块(例如图7中的区域选择模块720)来实现。即,在将样本图像输入障碍物检测模型后,基于模型中的一个内部模块的输出来得到样本图像中的障碍物所在的目标区域。例如,在图7所示的障碍物检测模型700中,区域选择模块720可以输出样本图像中的多个障碍物候选区域,然后通过对多个障碍物候选区域进行筛选,例如通过非极大值抑制(non

maximum suppression,nms)算法对多个障碍物候选区域进行筛选,得到障碍物所在的目标区域。
[0133]
在得到样本图像中的障碍物所在的目标区域后,可以将深度图中位于与目标区域的下边缘相对应的位置处的深度值确定为障碍物的参考深度值。参考深度值的确定方式可以参考上文图5及其相关描述,此处不再赘述。
[0134]
根据一些实施例,步骤650中的损失值可以根据下式(11)计算,即,障碍物检测模型的损失函数可以如下:
[0135]
l=smooth_l1_loss(z_gt_diff

z_pred_diff)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(11)
[0136]
其中,
[0137][0138]
z_gt_diff为真实深度值z_gt与参考深度值z_anchor的差,z_pred_diff为预测误差。
[0139]
在另一些实施例中,障碍物检测模型的损失值还可以进一步基于预测的障碍物所在的目标区域以及障碍物所在的真实区域来确定,即,基于真实深度值、参考深度值、预测误差、预测的障碍物所在的目标区域以及障碍物所在的真实区域来确定损失值。
[0140]
根据一些实施例,障碍物检测模型还可以用于检测障碍物的其他三维属性,例如检测障碍物的长、宽、高、偏航角、在相机坐标系下的第一坐标(x坐标)、在相机坐标系下的第二坐标(y坐标)等。
[0141]
即,步骤610中的样本图像的标注信息还包括障碍物的真实三维属性值,步骤640中的障碍物检测模型的输出还包括障碍物的预测三维属性值,并且步骤650进一步包括:基于真实深度值、参考深度值、预测误差、真实三维属性值和预测三维属性值,确定损失值。真实三维属性值和预测三维属性值中的每一个包括以下至少之一:障碍物的长、宽、高、偏航角、在相机坐标系下的第一坐标(x坐标)、在相机坐标系下的第二坐标(y坐标)。
[0142]
根据一些实施例,在障碍物检测模型还可以检测障碍物的其他三维属性的情况下,障碍物检测模型的损失值可以根据下式(13)来计算,即障碍物检测模型的损失函数可以如下:
[0143][0144]
其中,
[0145][0146]
z_gt_diff为真实深度值z_gt与参考深度值z_anchor的差,z_pred_diff为预测误差,n为除了深度值之外,障碍物检测模型还可以检测的障碍物的三维属性的数量,p
i
_gt为第i个三维属性的真实三维属性值,p
i
_pred为第i个三维属性的预测三维属性值。
[0147]
由于本公开实施例在障碍物检测模型的训练过程中,将相机参数编码进了模型,从而提高了模型对相机参数的泛化能力以及深度值检测的准确性。障碍物的深度值(即相机坐标系下的第三坐标,z坐标)与障碍物的其他三维属性具有一定的相关性,在障碍物检测模型能够提高深度值检测的准确性的前提下,障碍物的其他三维属性的检测结果也会更加准确。
[0148]
本公开的实施例充分利用了相机外参和内参的先验信息,将相机的外参和内参信息以深度图(参考深度值)的形式编码到障碍物检测模型中,从而使模型能够学习到与相机外参和内参的相关信息,帮助模型在不同的相机外参和内参配置中进行适配,提升模型本身的障碍物三维属性检测的泛化性能。
[0149]
本公开的实施例能有效地降低由于相机参数配置发生改变所需要采集和标注新
的2d/3d(二维/三维)联合标注数据所需要的时间和成本。本公开的实施例可以将针对单目相机的障碍物检测模型快速地微调、部署在新的相机参数配置方案下,从而极大地缩短自动驾驶、或者辅助驾驶领域中,在变换相机参数配置后的模型部署时间。并且,根据本公开的实施例,还可以让模型充分地利用之前已标注的2d/3d联合标注数据,从而实现深度学习检测网络的数据驱动。
[0150]
根据本公开的实施例,还提供了一种障碍物检测装置。图8示出了根据本公开实施例的障碍物检测装置800的结构框图。如图8所示,装置800包括:
[0151]
获取模块810,被配置为获取相机采集到的待处理图像以及所述相机对应的深度图,深度图包括所述相机的视野范围内的多个地面点各自的深度值;
[0152]
检测模块820,被配置为检测待处理图像中的障碍物所在的目标区域;以及
[0153]
确定模块830,被配置为至少基于深度图和目标区域,确定障碍物的深度值。
[0154]
根据本公开的实施例,可以基于相机采集到的待处理图像和相机的深度图来确定障碍物的深度值,即检测障碍物到相机的距离。相机的深度图与相机本身的参数强相关,因此本公开的实施例在障碍物检测过程中充分考虑了相机本身的参数,对于不同参数的相机(例如不同安装位置、不同焦距的相机)均能达到良好的检测效果,具有良好的泛化性能。
[0155]
根据一些实施例,深度图是基于所述相机相对于地面的高度、所述相机相对于水平面的俯角以及所述相机的焦距来确定的。
[0156]
根据一些实施例,确定模块830进一步被配置为:将所述深度图中位于与所述目标区域的下边缘相对应的位置处的深度值确定为所述障碍物的深度值。
[0157]
根据一些实施例,确定模块830包括:第一确定单元,被配置为基于所述深度图和所述目标区域,确定所述障碍物的参考深度值;预测单元,被配置为预测所述参考深度值的误差;以及第二确定单元,被配置为基于所述参考深度值和所述误差,确定所述障碍物的深度值。
[0158]
根据一些实施例,第一确定单元进一步被配置为:将所述深度图中位于与所述目标区域的下边缘相对应的位置处的深度值确定为所述障碍物的参考深度值。
[0159]
根据一些实施例,预测单元进一步被配置为:将所述待处理图像输入经训练的障碍物检测模型,以获得所述参考深度值的误差。
[0160]
根据本公开的实施例,还提供了一种障碍物检测模型的训练装置。图9示出了根据本公开实施例的障碍物检测模型的训练装置900的结构框图。如图9所示,装置900包括:
[0161]
获取模块910,被配置为获取样本图像和与所述障碍物检测模型联合使用的相机的参数,其中,所述样本图像标注有标注信息,所述标注信息包括所述样本图像中的障碍物和所述障碍物的真实深度值;
[0162]
第一确定模块920,被配置为基于所述参数,确定所述相机对应的深度图,所述深度图包括所述相机的视野范围内的多个地面点各自的深度值;
[0163]
第二确定模块930,被配置为基于所述深度图,确定所述障碍物的参考深度值;
[0164]
预测模块940,被配置为将所述样本图像输入所述障碍物检测模型,以获得所述障碍物检测模型的输出,所述输出包括所述参考深度值的预测误差;
[0165]
第三确定模块950,被配置为至少基于所述真实深度值、所述参考深度值和所述预测误差,确定所述障碍物检测模型的损失值;以及
[0166]
调整模块960,被配置为基于所述损失值,调整所述障碍物检测模型的参数。
[0167]
根据本公开的实施例,在障碍物检测模型的训练过程中,损失值为基于参考深度值计算得出,参考深度值为基于相机参数计算得出,相当于将相机参数编码进了模型,从而提高了模型对相机参数的泛化能力以及深度值预测的准确性。
[0168]
根据一些实施例,所述参数包括所述相机相对于地面的高度、所述相机相对于水平面的俯角以及所述相机的焦距。
[0169]
根据一些实施例,第二确定模块930进一步被配置为:检测所述样本图像中的障碍物所在的目标区域;以及将所述深度图中位于与所述目标区域的下边缘相对应的位置处的深度值确定为所述障碍物的参考深度值。
[0170]
根据一些实施例,所述标注信息还包括所述障碍物的真实三维属性值,其中,所述障碍物检测模型的输出还包括所述障碍物的预测三维属性值,并且其中,所述第三确定模块950进一步被配置为:至少基于所述真实深度值、所述参考深度值、所述预测误差、所述真实三维属性值和所述预测三维属性值,确定所述损失值。
[0171]
根据一些实施例,所述真实三维属性值和所述预测三维属性值中的每一个包括以下至少之一:所述障碍物的长、宽、高、偏航角、在相机坐标系下的第一坐标、在相机坐标系下的第二坐标。
[0172]
应当理解,图8中所示装置800的各个模块或单元可以与参考图2描述的方法200中的各个步骤相对应,图9中所示装置900的各个模块或单元可以与参考图6描述的方法600中的各个步骤相对应。由此,上面针对方法200描述的操作、特征和优点同样适用于装置800及其包括的模块以及单元,上面针对方法600描述的操作、特征和优点同样适用于装置900及其包括的模块以及单元。为了简洁起见,某些操作、特征和优点在此不再赘述。
[0173]
虽然上面参考特定模块讨论了特定功能,但是应当注意,本文讨论的各个模块的功能可以分为多个模块,和/或多个模块的至少一些功能可以组合成单个模块。例如,上面描述的第一确定模块920和第二确定模块930在一些实施例中可以组合成单个模块。
[0174]
还应当理解,本文可以在软件硬件元件或程序模块的一般上下文中描述各种技术。上面关于图8、图9描述的各个模块可以在硬件中或在结合软件和/或固件的硬件中实现。例如,这些模块可以被实现为计算机程序代码/指令,该计算机程序代码/指令被配置为在一个或多个处理器中执行并存储在计算机可读存储介质中。可替换地,这些模块可以被实现为硬件逻辑/电路。例如,在一些实施例中,获取模块810、检测模块820、确定模块830、获取模块910、第一确定模块920、第二确定模块930、预测模块940、第三确定模块950、调整模块960中的一个或多个可以一起被实现在片上系统(system on chip,soc)中。soc可以包括集成电路芯片(其包括处理器(例如,中央处理单元(central processing unit,cpu)、微控制器、微处理器、数字信号处理器(digital signal processor,dsp)等)、存储器、一个或多个通信接口、和/或其他电路中的一个或多个部件),并且可以可选地执行所接收的程序代码和/或包括嵌入式固件以执行功能。
[0175]
根据本公开的实施例,还提供了一种电子设备、一种可读存储介质、一种计算机程序产品和一种包括上述电子设备的自动驾驶车辆。
[0176]
参考图10,现将描述可以作为本公开的服务器或客户端的电子设备1000的结构框图,其是可以应用于本公开的各方面的硬件设备的示例。电子设备旨在表示各种形式的数
字电子的计算机设备,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
[0177]
如图10所示,设备1000包括计算单元1001,其可以根据存储在只读存储器(rom)1002中的计算机程序或者从存储单元1008加载到随机访问存储器(ram)1003中的计算机程序,来执行各种适当的动作和处理。在ram 1003中,还可存储设备1000操作所需的各种程序和数据。计算单元1001、rom 1002以及ram 1003通过总线1004彼此相连。输入/输出(i/o)接口1005也连接至总线1004。
[0178]
设备1000中的多个部件连接至i/o接口1005,包括:输入单元1006、输出单元1007、存储单元1008以及通信单元1009。输入单元1006可以是能向设备1000输入信息的任何类型的设备,输入单元1006可以接收输入的数字或字符信息,以及产生与电子设备的用户设置和/或功能控制有关的键信号输入,并且可以包括但不限于鼠标、键盘、触摸屏、轨迹板、轨迹球、操作杆、麦克风和/或遥控器。输出单元1007可以是能呈现信息的任何类型的设备,并且可以包括但不限于显示器、扬声器、视频/音频输出终端、振动器和/或打印机。存储单元1008可以包括但不限于磁盘、光盘。通信单元1009允许设备1000通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据,并且可以包括但不限于调制解调器、网卡、红外通信设备、无线通信收发机和/或芯片组,例如蓝牙
tm
设备、1302.11设备、wi

fi设备、wimax设备、蜂窝通信设备和/或类似物。
[0179]
计算单元1001可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元1001的一些示例包括但不限于中央处理单元(cpu)、图形处理单元(gpu)、各种专用的人工智能(ai)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(dsp)、以及任何适当的处理器、控制器、微控制器等。计算单元1001执行上文所描述的各个方法和处理,例如方法200和/或方法600。例如,在一些实施例中,方法200和/或方法600可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元1008。在一些实施例中,计算机程序的部分或者全部可以经由rom1002和/或通信单元1009而被载入和/或安装到设备1000上。当计算机程序加载到ram 1003并由计算单元1001执行时,可以执行上文描述的方法200和/或方法600的一个或多个步骤。备选地,在其他实施例中,计算单元1001可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行方法200和/或方法600。
[0180]
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系统的系统(soc)、复杂可编程逻辑设备(cpld)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
[0181]
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来
编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
[0182]
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd

rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
[0183]
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
[0184]
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)和互联网。
[0185]
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端

服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
[0186]
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行、也可以顺序地或以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
[0187]
虽然已经参照附图描述了本公开的实施例或示例,但应理解,上述的方法、系统和设备仅仅是示例性的实施例或示例,本发明的范围并不由这些实施例或示例限制,而是仅由授权后的权利要求书及其等同范围来限定。实施例或示例中的各种要素可以被省略或者可由其等同要素替代。此外,可以通过不同于本公开中描述的次序来执行各步骤。进一步地,可以以各种方式组合实施例或示例中的各种要素。重要的是随着技术的演进,在此描述的很多要素可以由本公开之后出现的等同要素进行替换。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献