掌桥专利:专业的专利平台
掌桥专利
首页

基于单目图像的目标检测方法和装置

文献发布时间:2023-06-19 09:26:02


基于单目图像的目标检测方法和装置

技术领域

本说明书涉及图像处理技术领域,尤其涉及一种基于单目图像的目标检测方法和装置。

背景技术

为了能够根据道路环境准确地制定车辆自动驾驶时的控制策略和控制指令,除了提供周边环境中目标(诸如其他车辆、行人和障碍物等)相对于本车的距离信息外,还需要确定周边环境中目标的三维信息。

目前,以单目相机采集的单目图像确定其中目标三维信息的方法是以深度学习模型为基础的方法。深度学习模型需要大量的样本进行训练,每个样本除了包括目标的图像信息外,还需要包括对应的尺寸信息标签,目标的尺寸信息标签需要采用人工标注的方法获得。而对大量样本标注尺寸信息标签的成本很高。

此外,具体应用中使用的深度训练模型与实际采用的单目相机的参数直接相关;针对每一种单目相机训练深度学习模型,需要利用此单目图形采集设备采集图像获得目标的图像信息,再对目标图像信息进行人工标注。即利用深度学习方法构建的模型在采用不同参数的单目相机的车辆之间没有通用性。

发明内容

为了解决现有计算方法需要采集大量尺寸信息标签而成本较高的问题,本申请提供一种新的基于单目图像的目标检测方法和装置。

一方面,本申请提供一种基于单目图像的目标检测方法,包括:

获取单目图像,确定所述单目图像中目标的二维框,以及所述目标的先验尺寸;所述先验尺寸为根据所述目标确定的预设尺寸;

计算所述二维框的两个底部角点在所述三维坐标系的空间坐标;

根据所述目标的先验尺寸和两个所述底部角点的空间坐标,计算所述目标的三维信息。

可选地,所述三维信息包括估算长度和估算宽度;所述先验尺寸包括先验长度和先验宽度;两个所述底部角点在所述三维坐标系的空间坐标包括长度方向坐标和宽度方向坐标;

根据所述目标的先验尺寸和两个所述底部角点的空间坐标,计算所述目标的三维信息,包括:

根据所述先验长度和所述先验宽度,以及两个所述底部角点的长度方向坐标和宽度方向坐标,计算所述目标的估算长度和估算宽度。

可选地,根据所述先验长度和所述先验宽度,以及两个所述底部角点的长度方向坐标和宽度方向坐标,计算所述目标的估算长度和估算宽度,包括:

在所述目标位于所述单目图像宽度方向侧边区域的情况下,根据所述先验长度、先验宽度、两个所述底部角点的长度方向和宽度方向坐标,计算第一比例系数;

根据所述第一比例系数和所述先验长度计算所述估算长度,根据所述第一比例系数和所述先验宽度计算所述估算宽度。

可选地,

根据所述先验长度、先验宽度、两个所述底部角点的长度方向和宽度方向坐标,计算第一比例系数,包括:

根据两个底部角点的长度方向坐标和宽度方向坐标,以及所述先验长度和先验宽度,计算参照尺寸;

计算两个底部角点的宽度方向坐标的差值;将所述差值和所述参照尺寸的比值作为所述第一比例系数。

可选地,根据两个底部角点的长度方向坐标和宽度方向坐标,以及所述先验长度和先验宽度,计算参照尺寸,包括:

根据两个底部角点的长度方向坐标和宽度方向坐标、所述先验长度、所述先验宽度,以及形成所述单目图像的单目相机的外部参数,计算所述参照尺寸;

所述外部参数包括偏航角;所述参照尺寸采用

计算得到;

其中:Referencesize为所述参照尺寸,x为所述先验宽度,y为所述先验长度,yaw为所述偏航角,leftx和lefty为左侧所述底部角点的长度方向坐标和宽度方向坐标;rightx和righty为右侧所述底部角点的长度方向坐标和宽度方向坐标可选地,根据所述目标的先验尺寸,以及两个底部角点的长度方向坐标和宽度方向坐标,计算所述目标的估算长度和估算宽度,包括:

在所述目标位于所述单目图像的宽度方向中间区域的情况下,将两个底部角点的宽度方向的差值作为所述估算宽度;

将所述先验长度作为所述估算长度;或者,

根据所述估算宽度和所述先验宽度的比值作为第二比例系数;以及,根据所述第二比例系数和所述先验长度计算所述估算长度。

可选地,所述三维信息还包括所述目标在基准平面上的投影区域;所述基准平面为所述三维坐标系的长度方向和宽度方向确定的平面;所述方法还包括:

在两个所述底部角点中选择位置基准点;

根据所述位置基准点的长度方向坐标和宽度方向坐标,以及所述估算长度和所述估算宽度,计算所述目标的四个侧边在所述基准平面上投影点的长度方向坐标和宽度方向坐标;

根据所述四个所述投影点的长度方向坐标和宽度方向坐标,确定所述目标在基准平面上的投影区域。

可选地,根据所述位置基准点的长度方向坐标和宽度方向坐标,以及所述目标的估算长度和估算宽度,计算所述目标的四个侧边在所述基准平面上投影点的长度方向坐标和宽度方向坐标,包括:

根据所述位置基准点的长度方向坐标和宽度方向坐标,所述目标的估算长度和估算宽度,以及形成所述单目图像的单目相机的外部参数,计算四个所述投影点的长度方向坐标和宽度方向坐标;

所述外部参数包括偏航角、俯仰角和翻滚角中的至少一种。

可选地,所述三维信息还包括估算高度;

根据所述二维框的宽度和高度的比值作为第三比例系数;

根据所述第三比例系数和所述估算宽度计算所述估算高度。

可选地,所述三维信息还包括所述目标在三维坐标系中立体区域范围;所述方法还包括:

根据所述位置基准点的高度坐标,计算四个所述投影点的高度方向坐标;

根据所述估算高度,以及四个所述投影点的长度方向坐标、宽度方向坐标和高度方向坐标,确定所述目标的顶点的长度方向坐标、宽度方向坐标和高度方向坐标;

根据所述顶点的长度方向坐标、宽度方向坐标和高度方向坐标,确定所述立体区域范围。

可选地,在所述单目图像中显示所述立体区域范围;和/或,

在所述单目图像中显示所述估算长度、所述估算宽度和所述估算高度。

另一方面,本申请提供一种基于单目图像的目标检测装置,用于计算所述单目图像中目标的三维信息;包括:

目标确定单元,用于确定所述目标的先验尺寸,以及所述目标在所述单目图像中的二维框;所述先验尺寸为根据所述目标确定的预设尺寸;

角点坐标计算单元,用于计算所述二维框的两个底部角点在所述三维坐标系的空间坐标;

三维信息计算单元,用于根据所述目标的先验尺寸和两个所述底部角点的空间坐标,计算所述目标的三维信息。

可选地,所述三维信息包括估算长度和估算宽度;所述先验尺寸包括先验长度和先验宽度;两个所述底部角点在所述三维坐标系的空间坐标包括长度方向坐标和宽度方向坐标;

所述三维信息计算单元,包括:

比例系数计算子单元,用于在所述目标位于所述单目图像宽度方向侧边区域的情况下,根据所述先验长度、先验宽度、两个所述底部角点的长度方向和宽度方向坐标,计算第一比例系数;

尺寸估算单元,用于根据所述第一比例系数和所述先验长度计算所述估算长度,根据所述第一比例系数和所述先验宽度计算所述估算宽度。

本申请提供的基于单目图像的目标检测方法和装置,仅需要利用已有的2D检测算法(已有的检测算法和测距算法)以及单目相机的参数,就可以用于计算目标的三维信息。相比于现有深度学习算法,本申请实施例提供的方法并不需要提供与物体对应的尺寸信息标签,减少了前期模型训练工作量。在计算过程中,需要两个计算复杂度较小的深度学习算法,对深度学习模型进行训练的复杂度也相比于现有技术中训练深度学习模型的训练复杂度也降低。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。

为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是实施例提供的基于单目图像的目标检测方法的流程图;

图2是实施例采用车辆中前视用单目相机采集得到的单目图像;

图3是计算目标的估算长度和估算宽度的流程示意图;

图4是本申请实施例提供的计算估算高度的流程图;

图5是本申请实施例计算确定目标投影区域的流程图;

图6是实施例提供的基于单目图像的目标检测装置的结构示意图;

图7是本申请实施例提供的电子设备的结构示意图;

其中:11-图像识别单元,12-角点坐标计算单元,13-三维信息计算单元,21-处理器,22-存储器,23-通信接口,24-总线系统。

具体实施方式

为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。

在下面的描述中阐述了很多具体细节以便于充分理解本公开,但本公开还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本公开的一部分实施例,而不是全部的实施例。

本申请实施例提供一种基于单目图像的目标检测方法,用于计算单目图像中目标在三维坐标系中的三维信息。具体计算得到哪些三维信息如下文中的具体描述。

图1是实施例提供的基于单目图像的目标检测方法的流程图。如图1所示,本实施例提供基于单目图像的目标检测方法包括步骤S101-S103。

本申请实施例中,目标采用平行于三维坐标系三个坐标轴的侧边表示,即目标被假设为一立方体。

S101:获取单目图像,确定单目图像中目标的二维框,以及目标的先验尺寸。

本实施例中,可以采用各种检测算法处理单目图像,确定单目图像中目标类型和目标所在的二维框;例如,可以采用YOLO、SSD、FastRCNN或者其他具有类似功能的处理二维图像的深度学习算法,确定物体的类型和二维框。在确定目标类型后,可以查找相应表格数据确定目标的先验尺寸。

本申请实施例的典型应用场景是道路场景;单目图像是单目相机拍摄的、主体为道路环境以及道路两侧环境的图像。单目图像中的目标也就是道路中可能出现的各种物体类目标,例如车辆、行人、道路中的其他障碍物等。

本说明书实施例中,确定目标先验尺寸过程可以为:采用处理二维图像的深度学习算法对图像进行识别,确定图像中位于车道上的目标、位于车道边缘与行车相关联的区域的目标,并确定物体的类型;随后根据物体的类别查找物体类型数据库确定此类别物体的先验尺寸。其中,对于车道两侧是否具有与行车相关联的区域,可以根据导航地图确定。

目标的先验尺寸可以根据目标的类型预先地设定。本申请实施例中,目标的先验尺寸可以包括先验长度和先验宽度。例如,例如:在目标是常规家用车辆的情况下,先验长度为常规家庭车辆的典型长度,先验宽度为常规家用车辆的典型宽度。

下文中为了表示的方便,公式中的先验长度采用clength表示,先验宽度采用cwidth表示。

目标在单目图像中的二维框是包含绝大多数表示目标的像素的最小矩形边框。应当注意的是,不属于表示目标特征的像素也可能被包含在二维框内。

确定目标所在的二维框后,即确定组成二维框的图像像素在单目图像中的坐标,也就确定二维框的在单目图像中的属性。

二维框的属性包括二维框在图像中的位置和二维框的大小。本申请实施例中,二维框在图像中的位置和二维框的大小可以采用二维框的四个角点的坐标确定。

例如:如果将单目图像的左上角作为坐标原点,二维框的左上角点在单目图像中的坐标为(a,b),二维框的宽度为c,高度为d,并且二维框的各个边均平行于单目相机的坐标系坐标轴,则右上角点的坐标为(a+c,b),左下角点的坐标为(a,b+d),右下角点的坐标为(a+w,b+d);将四个角点依次相连,即可以确定二维框。

图2是实施例采用车辆中前视用单目相机采集得到的单目图像(由于图2已经经过后期处理,其中显示了后文中提及的目标的三维信息;为了方便理解,此处可以先省略此类信息,随后文描述的进行再关注此类三维信息)。

如图2所示,图2左侧区域的目标为一小型MPV,通过步骤S101的处理,确定大体包含此MPV的二维框(位于立方体外侧的矩形框)。

S102:计算二维框的两个底部角点在三维坐标系的空间坐标。

本申请实施例中,可以采用已有的、用于二维图像的测距算法(pixel2distance(m,n),m和n分别为相应像素在二维图像中的坐标)确定两个底部角点在三维坐标系中空间坐标。例如,测距算法可以为流式学习测距算法。

两个底部角点在三维坐标系中的空间坐标包括长度方向坐标、宽度方向坐标和高度方向坐标。

下文中为了表示的方便,三维坐标系的长度方向坐标采用y表示,宽度方向坐标采用x表示,高度方向的坐标采用z表示。对应的某空间点的长度方向坐标为pointID_y,宽度方向坐标为point_x,高度方向坐标为pointID_z,pointID为某点的标识符。

以图2为例,图2中单目图像中的左侧底部角点left_corner对应的空间坐标系中的点为left_bottom,右侧底部角点right_corner对应空间坐标系中的点为right_bottom。则采用测距算法确定的两个底部角点在三维坐标系中的坐标分别为:

left_bottom_x,left_bottom_y,left_bottom_z=pixel2distance(a,b+d);

right_bottom_x,right_bottom_y,right_bottom_z=pixel2distance(a+c,b+d)。

本申请实施例一些应用中,应用场景多为城市主干道路和高速公路等一二级铺装道路,此类道路具有路面平整、坡度起伏小并且坡度在长距离较为一致的特点,单目相机拍摄到的近处(例如在200m范围内)目标基本和本车处在同一平面上,因此在实际处理中可以将left_bottom_z和right_bottom_z直接设置为0。

在本申请实施例其他应用中,也可以根据实际道路状态、道路起伏数据等可用数据等确定left_bottom_z和right_bottom_z的实际数值。例如,在一些应用中,可以根据单目图像中的车道线延伸状况确定道路的起伏情况,继而作为参考数据确定两个底部角点的三维坐标。

实际应用中,选定的三维坐标系的坐标原点对求算两个底部角点的空间坐标有影响。

在三维坐标系为单目相机坐标系的情况下,长度方向为单目相机的光轴方向,高度方向为单目相机的拍摄竖直方向,宽度方向为垂直于单目相机光轴和高度方向的方向。此时,仅需要根据单目相机的内部参数,计算两个底部角点的空间坐标。内部参数包括焦距和光轴在三维坐标系中的偏移量。

在三维坐标系为车辆坐标系的情况下,长度方向为车辆的长度确定的方向,宽度方向为车辆的宽度方向,高度方向为车辆高度方向。此时,在根据单目相机的内部参数确定两个底部角点在单目相机空间坐标系中的坐标后,还需要通过坐标转换确定两个底部角点在车辆坐标系中的空间坐标。此时,内部参数与前述的内部参数相同,外部参数包括车辆的姿态参数和坐标转换参数;姿态参数包括俯仰角、偏航角和翻滚角中的至少一个;坐标转换参数为由单目相机坐标系转换到车辆坐标系中的参数。实际计算过程中,需要根据车辆的姿态状态确定是否使用某一外部参数。

S103:根据目标的先验尺寸和两个底部角点的空间坐标,计算目标的三维信息。

根据需要计算的目标的三维信息的不同,相应的计算步骤也就不同。

在本申请实施例中,三维信息可以包括目标本身的尺寸特征。例如,在一些应用中,三维信息可以包括目标的估算长度和估算宽度。下文中为了表示的方便,公式中的估算长度采用obj_length表示,估算宽度采用obj_width表示。

相应的,步骤S103具体包括:根据先验长度和先验宽度,以及两个底部角点的长度方向坐标和宽度方向坐标,计算目标的估算长度和估算宽度。

实际应用中,根据目标相对于形成单目图像的单目相机的位置的不同,也就是根据目标在单目图像宽度方向位置的不同,计算目标的估算长度和估算宽度的方法会不同。

图3是计算目标的估算长度和估算宽度的流程示意图。如图3所示,本申请实施例中,计算目标估算长度和估算宽度的步骤包括S201-S205。

S201:判断目标是否在单目图像宽度方向的中间区域;若否,执行S202-S204;若否,执行S205。

本申请实施例中,单目图像宽度方向的中间区域以单目图像宽度方向的中间分隔线为中心线,左右扩张设定数量的像素形成的区域;前述的设定数量像素可以根据实际应用中的需求设定。具体应用中,在单目图像的高度方向不同位置处,中间区域对应的像素数量可以不同;例如,在越是靠近单目图像底部的区域,中间区域对应的像素数量越多;而越是靠近单目图像顶部的区域,中间区域对应的像素数量越少。

单目图像中,除前述预先设定的中间区域外,在中间区域左右两侧的区域(也就是单目图像宽度方向左右两侧)的区域为侧边区域。

结合图2中左侧区域的MPV、中间区域的小型轿车和右侧区域的小型轿车的图像可知,如果目标在单目相机的正前侧(也就是单目图像的中间区域),则仅其后面能被看到,其侧面不能被看到。而如果物体并不在单目相机的正前侧而是在单目相机的左前侧和右前侧(也就是单目图像的宽度方向的两侧区域),物体的后面和一个侧面可以被看到。而两种情况下,对估算尺寸的计算方法并不相同;相应的需要采用不同的执行步骤。

S202:根据先验长度、先验宽度、两个底部角点的长度方向和宽度方向坐标,计算第一比例系数。

如果目标并不在单目图像的中间区域,则目标的一个长度侧面可以被看到,后续需要利用两个底部角点的长度方向坐标和宽度方向坐标确定目标的估算长度和估算宽度。

具体的,步骤S202执行时可以包括步骤S2021和S2022。

S2021:根据两个底部角点的长度方向坐标和宽度方向坐标,以及所述先验长度和先验宽度,计算参照尺寸;

本申请实施例中,参照尺寸是为计算目标的估算长度和估算宽度而提供的一个假想参照。

参照尺寸通过下述方法获得:假想将一具有先验尺寸的参照物放置到真实目标所处的空间坐标系,并且与实际目标的位置相同,此时可以根据其先验尺寸确定出一虚拟尺寸(例如在三维坐标系宽度方向投影的虚拟尺寸),此虚拟尺寸即为参照尺寸。

在如图2所示的实施例具体应用中,因为估算长度和估算宽度为在三维坐标系中长度方向和宽度方向上的尺寸,与高度方向的尺寸无关,并且参照尺寸实际为一宽度尺寸,所以参照尺寸实际为一可视宽度尺寸。在下文公式中,参照尺寸采用view_width表示。

在本申请实施例一些应用中,如果车辆沿着道路方向行驶(不考虑偏航角等外部参数)的情况下计算的尺寸,则

view_width=cwidth×left_bottom_x/left_bottom_y+cwidth+cdepth+clength×right_bottom_x/right_bottom_y。

即在不考虑外部参数的情况下,直接使用两个底部角点的长度方向坐标和宽度方向坐标,以及先验长度和先验宽度即可以确定参照尺寸。

在本申请实施例另外一些应用中,计算参照尺寸除了考虑两个底部角点的长度方向坐标和宽度方向坐标、先验长度、先验宽度外,还需要考虑形成单目图像的单目相机的外部参数,即考虑车辆的实际行驶状态。

外部参数包括偏航角、俯仰角和翻滚角中的至少一种;下文公式中,偏航角采用yaw表示,俯仰角采用pitch表示,翻滚角采用roll表示。

以图2中的典型场景为例,此时车辆在水平面上行驶,其俯仰角和翻滚角均为0,仅偏航角对参照尺寸的计算有影响,因此只使用偏航角计算。具体的,参照尺寸采用

view_width=cwidth×sin|yaw|×left_bottom_x/left_bottom_y+cwidth×cos|yaw|+cdept×sin|yaw|+clength×cos|yaw|×right_bottom_x/right_bottom_y计算得到。

此外,在如图2场景中的目标(诸如图2中的小型MPV)可能相对于车道线具有一定的偏航角,目标的偏航角对参照尺寸的计算也有影响。在实际应用中,也可以根据目标的偏航角(相对于道路的偏航角)和本车的偏航角(相对于道路的偏航角),确定一绝对偏航角(也就是本车和目标的偏航角的绝对偏差),再将绝对偏航角带入前述公式中计算参照尺寸。

S2022:根据两个底部角点的宽度方向的差值,以及参照尺寸,计算第一比例系数。

参照尺寸用于为计算物体的估算长度和估算宽度的一个假想参照。步骤S2022即使利用参照尺寸作为假想参照,求算物体估算尺寸相对于先验尺寸的比值。

步骤S202中,第一比例系数为物体估算尺寸相对于先验尺寸的比值;下述公式中,第一比例系数采用ratio表示。第一比例系数可以为:

ratio=(right_bottom_x-left_bottom_x)/view_width或者

ratio=view_width/(right_bottom_x-left_bottom_x)。

步骤S202执行完成后,执行步骤S203。

S203:根据第一比例系数和先验长度计算估算长度,根据第一比例系数和先验宽度计算估算宽度。

步骤S203是在确定物体估算尺寸和先验尺寸的比值的情况下,根据先验尺寸确定物体的估算长度和估算宽度。

针对图2中的MPV,根据第一比例系数的计算方法不同,估算长度采用obj_width=cwidhth×ratio或者obj_width=cwidhth/ratio得到,估算宽度采用obj_length=clength×ratio或者obj_length=clength/ratio得到。

S204:将两个底部角点的宽度方形的差值作为估算宽度,以及将先验长度作为估算长度。

根据步骤201,结合图2中中间区域的物体(物体为一车辆)显示的二维框,可确定物体位于单目图像的中间区域,实际场景中物体位于单目相机正前侧,无法拍摄到物体的长度侧面。

从图2中可以想到,两个底部角点宽度方向坐标的差值大体等于目标的宽度,因此可以直接将底部角点宽度方向坐标的差值作为估算宽度。

如果目标位于单目相机正前侧,无法拍摄到目标的长度侧面,则没有依据合理地估算目标的长度,所以步骤S205直接将先验长度作为估算宽度。

在本申请的其他实施例中,还可以利用其他方法确定估算宽度。例如,可以计算两个底部角点宽度方向坐标的差值,将差值与先验宽度相比得到第二比例系数,随后再根据第二比例系数和先验长度计算估算长度。

采用前述的步骤S201-S205,确定了目标的估算长度和估算宽度。估算长度和估算宽度可以用于后续确定目标在三维坐标系中的位置。

在本申请实施例一些应用中,物体的三维信息除了包括前述的估算长度和估算宽度外,还可以包括估算高度。

图4是本申请实施例提供的计算估算高度的流程图。如图4,估算高度的计算方法包括步骤S301-S302。

S301:根据两个底部角点宽度方向坐标的差值,以及二维框的宽度计算第三比例系数。

请仍然以图2左侧的MPV为例进行空间想象,可得两个底部角点的宽度方向坐标的差值与二维框宽度比值与MPV实际高度(大体为估算高度)与二维框高度的比值相同,均为第三比例系数。利用二维框的宽度以及两个底部角点宽度方向坐标的差值,可以计算第三比例系数,因此也就可以利用二维框的宽度以及两个底部角点宽度方向坐标的差值计算估算高度。在下文中,第三比例系数采用back_ratio表示。

back_ratio=(right_bottom_x-left_bottom_x)/w或者,

back_ratio=w/(right_bottom_x-left_bottom_x)。

S302:根据第三比例系数和二维框的高度计算物体的估算高度。

根据S301中的分析,根据二维框的高度d可以求算出目标的估算高度。下文中,公式中的估算高度采用obj_height表示。根据第三比例系数计算方法的不同,obj_height=d×back_ratio或者为obj_height=d/back_ratio。

实际应用中,除了具有确定物体三维尺寸的需求外,还具有确定目标其他三维信息的需求。例如,具有确定目标在长度方向和宽度方向确定的基准平面上投影区域的需求。

在如图2所示的场景中,长度方向和宽度方向确定的基准平面为地面,相应的前述的需求即为确定物体在地面上的投影区域。为满足前段的应用需求,本申请实施例还提供计算投影区域的步骤。

图5是本申请实施例计算确定目标投影区域的流程图。如图5所示,确定目标投影区域的步骤包括步骤S401-S403。

S401:根据二维框在单目图像中的位置,选择两个底部角点中的至少一个作为位置基准点。

步骤S401中,需要根据二维框在单目图像中的位置,确定选择哪一个底部角点作为位置基准点。位置基准点是两个底部角点中距离车辆较近的点。

以图2中左侧区域的小型MPV为例,因为其对应的二维图框在单目图像的左侧,所以看出left_bottom到物体的距离较近,因此选用此对应点作为位置基准点。

类似的,以图2中右侧区域的车辆为例,因为其对应的二维图框在单目图像的右侧,所以看出right_bottom到物体的距离较近,因此选用此对应点作为位置基准点。

而如果目标在二维框的中间,则可以选择两个底部角点的任意点作为位置基准点,或者选择两个底部角点均作为位置基准点。

S402:根据位置基准点的长度方向坐标和宽度方向坐标,以及估算长度和估算宽度,计算目标的四个侧边在基准平面上的投影点的长度方向坐标和宽度方向坐标。

本申请实施例中,四个侧边是沿着三维坐标系的高度方向延伸的,表示目标四个边角的侧边。如前文所示,本申请实施例中的目标被假定为立方体,其在基准平面上的投影区域是一矩形,所以确定矩形投影的四个顶点即可以确定投影区域范围。而矩形的四个顶点的长度方向坐标和宽度方向坐标是立方体的四个侧边的在基准平面投影点的长度方向坐标和宽度方向坐标。

下文中,四个投影点分别为back_left、back_right、head_left和head_right表示。

本申请实施例中,以图2中左侧的小型MPV为例,对计算四个投影点的长度方向坐标和宽度方向坐标做讲解。

具体应用中,如果车辆沿着道路方向行驶,单目相机在偏航角为0的情况下拍摄单目图像,则可以按照以下方式确定四个侧边的长度方向坐标和宽度方向坐标。

back_left_x=left_bottom_x;back_left_y=left_bottom_y;

back_right_x=right_bottom_x;back_right_y=right_bottom_y;

head_left_x=back_left_x;head_left_y=left_bottom_y+obj_length;

head_right_x=back_right_x;

head_right_y=right_bottom_y+obj_length。

在本申请另外一些实施例中,四个侧边的坐标除了和位置基准点坐标、估算长度和估算宽度有关外,还和单目相机的外部参数(也就是车辆的行驶状态)有关。根据具体情况,外部参数包括偏航角、俯仰角和翻滚角中的至少一种。

在如图2所示的场景中,外部参数为偏航角,对应的左后侧投影点的计算公式如下。

back_left_x=left_bottom_x+obj_width×sin(yaw)×left_bottom_x/left_bottom_y;

back_left_y=left_bottom_y+obj_width×sin(yaw)。

在确定左后投影点坐标后,再根据估算长度和估算宽度即可以确定另外三个投影点的坐标。另外三个投影点坐标的计算公式如下。

back_right_x=back_left_x+obj_width×cos(yaw);

back_right_y=left_bottom_y;

head_left_x=back_left_x+obj_depth×sin(yaw);

head_left_y=back_left_y+obj_depth×cos(yaw);

head_right_x=back_right_x+obj_depth×sin(yaw);

head_right_y=back_right_y+obj_depth×cos(yaw)。

本申请实施例中,针对单目图像中间区域的目标,除了采用前述的方法确定四个侧边的长度方向坐标和宽度方向坐标外,在确定两个底部角点均作为位置基准点的情况下,还可以下述方法确定长度方向坐标和宽度方向坐标:(1)直接将左侧底部角点的长度方向坐标和宽度方向坐标作为左后侧侧边的长度方形坐标和宽度方向坐标;(2)直接将右侧底部角点长度方形坐标和宽度方向坐标作为右后侧侧边的长度方向坐标和宽度方向坐标;(3)根据左后侧侧边的坐标和右后侧侧边的坐标,以及估算长度,计算左前侧侧边的坐标和右前侧侧边的坐标。

S403:根据四个投影点的长度方向坐标和宽度方向坐标,确定目标在基准平面上的投影区域。

步骤S403根据四个侧边在基准平面上的投影点的长度方向坐标和宽度方向坐标后,连接相邻投影点而形成即确定投影区域。

实际应用中,在如图2所示的场景中,根据步骤S401-S403可以确定目标距离车辆的距离和目标在基准平面中的区域,为车辆规划行车路线、规划后续操作提供依据。

进一步地,在本实施例一些应用中,除了具有确定目标在长度方向和宽度方向的投影需求外,还可能具有确定目标在立体区域范围的需求。

根据前文描述,目标被假定为立方体,所以确定目标在立体区域范围可以简化为确定立方体的八个顶点,并利用八个顶点中圈定立体区域范围。具体的,确定立体区域范围的步骤包括步骤S501-S502。

S501:根据位置基准点的高度方向坐标,计算四个投影点的高度方向坐标。

立体区域的八个顶点中,四个顶点为前述的四个投影点。当前,四个投影点的长度方向坐标和宽度方向坐标已知,仅高度方向坐标未知;因此需要确定四个投影点的高度方向坐标。

本申请实施例中,因为位置基准点也在投影基准平面上,所以可以直接将位置基准点的高度方向坐标作为四个投影点的高度方向坐标。

S502:根据估算高度,以及四个投影点的长度方向坐标和宽度方向坐标,确定目标的顶点的长度方向坐标、宽度方向坐标和高度方向坐标。

如前所述,四个投影点的坐标已知,也就是目标底部四个顶点的坐标已知;待求的是目标顶部四个顶点的坐标。目标顶部四个顶点的高度方向坐标可以直接利用估算高度和投影点的高度方向坐标相加得到,四个顶点的长度方向坐标和宽度方向坐标可以直接使用四个投影的长度方向坐标和宽度方向坐标。

S503:根据顶点在三维坐标系中的坐标,确定目标在三维坐标系中的立体区域范围。

步骤S503是依据确定的八个顶点的坐标,以及立方体顶点和侧面之间的空间关系,确定目标在三维坐标系中的六个侧面的坐标范围,并利用六个侧面形成的闭合区域作为目标在三维坐标系中的立体区域范围。

如图2的应用中,底部各个顶点分别采用down_back_left,down_back_right,down_head_left,down_head_left表示,顶面各个顶点分别采用top_back_left、top_back_right、top_head_left和top_head_right表示。

则可以确定各个顶点的三位坐标分别为:

down_back_left_x=back_left_x;down_back_left_y=back_left_y;

down_back_left_z=0;down_back_right_x=back_right_x;

down_back_right_y=back_right_y;down_back_right_z=0;

down_head_left_x=head_left_x;down_head_left_y=head_left_y;

down_head_left_z=0;down_head_right_x=head_right_x;

down_head_right_y=head_right_y;down_head_right_z=0;

top_back_left_x=back_left_x;top_back_left_y=back_left_y;

top_back_left_z=obj_height;top_back_right_x=back_right_x;

top_back_right_y=back_right_y;top_back_right_z=obj_height;

top_head_left_x=head_left_x;top_head_left_y=head_left_y;

top_head_left_z=obj_height;top_head_right_x=head_right_x;

top_head_right_y=head_right_y;top_head_right_z=obj_height。

实际应用中,还可以将确定立体区域范围标识在单目图像中。具体的,即利用测距算法对应的逆变换确定立体区域范围在单目图像中对应的区域。

具体应用中,可以根据目标顶点的三维坐标,确定顶点在单目图像中对应角点,再将相应的对应角点连线以表示目标的各个侧边,以此标识目标的范围。如图2所示,左侧小型MPV的范围由具有透视效果的立方体侧边表示。

此外,在具体应用中,还可以在单目图像中显示目标在三维坐标系中的坐标,以及目标的估算长度、估算高度和估算高度。目标在三维坐标系中的坐标可以利用目标距离三维坐标系坐标原点的最近的点的坐标表示。

基于前文分析可知,本申请实施例提供的基于单目图像的目标检测算法,仅需要利用已有的2D检测算法(已有的检测算法和测距算法)以及单目相机的参数,就可以用于计算目标的三维信息。相比于现有深度学习算法,本申请实施例提供的方法并不需要提供与物体对应的尺寸信息标签,减少了前期模型训练工作量。

另外,本申请实施例方法仅需要两个计算复杂度较小的深度学习算法,对深度学习模型进行训练的复杂度也相比于现有技术中训练深度学习模型的训练复杂度也降低。

本申请实施例除了提供一种基于单目图像的目标检测方法外,还提供一种基于单目图像的目标检测装置,此装置和前文提及的方法采用相同的发明构思。以下就基于单目图形计算目标三维信息的装置的架构做介绍,其各个组成模块的功能以及整个装置的效果可以参见前文表述。

图6是实施例提供的基于单目图像的目标检测装置的结构示意图。如图6所示,本申请实施例提供的装置包括图像识别单元11、角点坐标计算单元12和三维信息计算单元13。

目标确定单元用于获取单目图像,确定单目图像中目标的类别、目标在单目图像中的二维框,以及基于类别确定目标的先验尺寸;

角点坐标计算单元12用于计算二维框的两个底部角点在三维坐标系的空间坐标;

三维信息计算单元13用于根据目标的先验尺寸和两个底部角点的空间坐标,计算目标的三维信息。

采用前述的装置,仅需要利用已有的2D检测算法(已有的检测算法和测距算法)以及单目相机的参数,即可确定目标的三维信息。相比于现有深度学习算法,本申请实施例提供的方法并不需要提供与物体对应的尺寸信息标签,减少了前期模型训练工作量。

在一个具体应用中,三维信息包括估算长度和估算宽度;先验尺寸包括先验长度和先验宽度;两个底部角点在三维坐标系的空间坐标包括长度方向坐标和宽度方向坐标;三维信息计算单元13包括参照计算子单元和比例系数计算子单元。

比例系数计算子单元,用于在目标位于单目图像宽度方向侧边区域的情况下,根据先验长度、先验宽度、两个底部角点的长度方向和宽度方向坐标,计算第一比例系数;

尺寸估算单元用于根据第一比例系数和先验长度计算估算长度,根据第一比例系数和先验宽度计算估算宽度。

具体的,比例系数计算子单元可以根据两个底部角点的长度方向坐标和宽度方向坐标,先验长度和先验宽度,以及形成单目图像的单目相机的外部参数,以及先验长度和先验宽度,计算参照尺寸。

在一个应用中,外部参数包括偏航角;参照尺寸采用view_width=cwidth×sin|yaw|×left_bottom_x/left_bottom_y+cwidth×cos|yaw|+cdept×sin|yaw|+clength×cos|yaw|×right_bottom_x/right_bottom_y

计算得到;其中:view_width为参照尺寸,cwidth为先验宽度,clength为先验长度yaw为偏航角,left_bottom_x和left_bottom_y为左侧底部角点的长度方向坐标和宽度方向坐标;right_bottom_x和right_bottom_y为右侧底部角点的长度方向坐标和宽度方向坐标。

在实际应用中,三维信息计算单元13还可以在目标位于单目图像的宽度方向中间区域的情况下,将两个底部角点的宽度方向的差值作为估算宽度;

将先验长度作为估算长度;或者,根据估算宽度和先验宽度计算第二比例系数;以及,根据第二比例系数和先验长度计算估算长度。

在实际应用中,三维信息还包括目标在基准平面上的投影区域;基准平面为三维坐标系的长度方向和宽度方向确定的平面;三维信息计算单元13还用于:根据二维框在单目图像中的位置,在两个底部角点中选择位置基准点;根据位置基准点的长度方向坐标和宽度方向坐标,以及估算长度和估算宽度,计算目标的四个侧边在基准平面上投影点的长度方向坐标和宽度方向坐标;根据四个投影点的长度方向坐标和宽度方向坐标,确定目标在基准平面上的投影区域。具体的,还需要根据形成单目图像的单目星际的外部参数,计算四个投影点的长度方向坐标和宽度方向坐标;外部参数包括偏航角、俯仰角和翻滚角中的至少一种。

在一个应用中,三维信息还包括目标在三维坐标系中立体区域范围;三维信息计算单元13还用于:根据位置基准点的高度坐标,计算四个投影点的高度方向坐标;根据估算高度,以及四个投影点的长度方向坐标、宽度方向坐标和高度方向坐标,确定目标的顶点的长度方向坐标、宽度方向坐标和高度方向坐标;根据顶点的长度方向坐标、宽度方向坐标和高度方向坐标,确定立体区域范围。

本申请实施例还提供一种用于实现基于单目图像的目标检测方法的电子设备。

图7是本申请实施例提供的电子设备的结构示意图。电子设备可以计算物体的三维信息。

如图7所示,电子包括:至少一个处理器21、至少一个存储器22和至少一个通信接口23。电子设备中的各个组件通过总线系统24耦合在一起。通信接口23用于与外部设备之间的信息传输。可理解地,总线系统24用于实现这些组件之间的连接通信。总线系统34除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但为了清楚说明起见,在图7中将各种总线都标为总线系统24。

可以理解,本实施例中的存储器22可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。

在一些实施方式中,存储器22存储了如下的元素,可执行单元或者数据结构,或者他们的子集,或者他们的扩展集:操作系统和应用程序。

其中,操作系统,包含各种系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础任务以及处理基于硬件的任务。应用程序,包含各种应用程序,例如媒体播放器(Media Player)、浏览器(Browser)等,用于实现各种应用任务。实现本公开实施例提供的基于单目图像的目标检测方法程序可以包含在应用程序中。

在本公开实施例中,处理器21通过调用存储器22存储的程序或指令,具体的,可以是应用程序中存储的程序或指令,处理器21用于执行本申请提供的基于单目图像的目标检测方法的各个步骤。

处理器31可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器21中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器21可以是通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(FieldProgrammable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

本公开实施例提供的基于单目图像的目标检测方法步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件单元组合执行完成。软件单元可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器22,处理器21读取存储器22中的信息,结合其硬件完成方法的步骤。

本公开实施例还提出一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储程序或指令,所述程序或指令使计算机执行如基于单目图像的目标检测方法各实施例的步骤,为避免重复描述,在此不再赘述。

除了提供前述的电子设备和存储介质外,本申请实施例还提供一种智能驾驶控制系统。智能驾驶控制系统用于对道路中的目标进行检测,以实确定道路中的目标。智能驾驶控制系统包括单目相机和控制器。

单目相机用于采集包括路面信息的单目图像;本申请实施例中,单目相机的安装位置并不做特别地限定;根据单目相机安装位置和应用方式的不同,单目相机需要相应的标定,以确定其各种外部参数。

控制器用于执行前述实施例中提供的基于单目相机的目标检测方法的步骤,获取单目图形中目标的三维信息而实现路况的识别。具体应用中,控制器可以是各种类型的控制器,本申请实施例并不做特别地限定。例如作为下位机的DSP芯片、FPGA芯片,又如作为上位机的CPU处理芯片。

智能驾驶控制系统除了具有前述的单目相机和控制器外,还可以包括存储器,以及用于实现存储器和单目相机、控制器连接的总线接口;存储器可以用于存储区前述提及的用于标定单目相机的外部参数,也可以用于存储单目相机拍摄到的单目图像,以及存储控制器处理单目图像后生成的结果。

在前述实施例基础上,本申请实施例还提供一种车辆,车辆包括前述的智能驾驶控制系统。应当注意的是,本申请实施例提及的车辆可以是诸如小轿车等四轮以上机动车,也可以是二轮、三轮摩托车;在一些应用中,车辆还可以是平衡车等车辆。

实际应用中,智能驾驶控制系统中的单目相机可以安装在车辆的前侧,用于拍摄车前的路况而形成单目图像,例如单目相机可以安装在车头格栅或保险杠上,可以安装在驾驶舱挡风玻璃上部;智能驾驶控制系统也可以安装在车辆的尾部,用于拍摄车后的路况而形成单目图像。在车辆为摩托车的情况下,单目相机还可以安装在驾驶员头盔上。

在智能驾驶控制系统安装在车辆的情况下,智能驾驶控制系统中的处理器可以直接为车辆的车机控制处理器。

本申请实施例中的车辆除了包括前述的智能驾驶控制系统外,还包括车架、悬挂系统、动力系统、传动系统、转向系统等完成相应功能的子系统,本申请实施例对此并在赘述。

需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上所述仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

相关技术
  • 基于单目图像的目标检测方法和装置
  • 一种基于深度信息估计的单目图像三维目标检测方法
技术分类

06120112164281