视差图的矫正方法、装置及存储介质与流程

文档序号:15115869发布日期:2018-08-07 20:08阅读:690来源:国知局

本发明涉及汽车辅助驾驶技术领域,特别涉及一种视差图的矫正方法、装置及存储介质。



背景技术:

随着智能化的不断发展,汽车的辅助驾驶技术已成为汽车厂商竞相追逐的技术热点。在当前已有的高级辅助驾驶系统中,可以采用双目摄像头采集路况图像,并通过立体匹配算法确定路况图像对应的视差图像。之后,根据视差图像确定前方障碍物,以保证汽车的安全驾驶。

然而,在双目摄像头安装与使用过程中,双目摄像头自身姿态可能会发生一些改变,尤其是双目摄像头绕z轴发生旋转,即双目摄像头的翻滚角不再为零。另一方面,由于汽车自身状态的改变,例如左右轮胎气压不同,以及汽车在行驶过程中发生颠簸等,都会使得双目摄像头与路面不再保持平行状态,从而导致基于视差图像进行障碍物检测时会出现漏检、误检的情况发生。因此,亟需一种视差图像的矫正方法。



技术实现要素:

为了避免基于视差图进行障碍物检测时出现漏检、误检的情况发生,本发明实施例提供了一种视差图的矫正方法、装置、终端及计算机可读存储介质。所述技术方案如下:

第一方面,提供了一种视差图的矫正方法,所述方法包括:

确定待矫正的视差图中左右两个区域分别对应的v视差图,所述左右两个区域是指所述待矫正的视差图中包括路面标识物的左右两个区域;

根据所述左右两个区域分别对应的v视差图,确定双目摄像头的翻滚方向和翻滚角度;

以所述待矫正的视差图的中心点为旋转中心,将所述待矫正的视差图按照所述翻滚方向的反向旋转所述翻滚角度,以得到矫正后的视差图。

可选地,所述根据所述左右两个区域分别对应的v视差图,确定双目摄像头的翻滚方向和翻滚角度,包括:

检测所述左右两个区域分别对应的v视差图中的路面相关线,得到左路面相关线和右路面相关线;

根据所述左路面相关线的斜率和截距,以及所述右路面相关线的斜率和截距,确定所述翻滚方向;

根据所述左路面相关线和所述右路面相关线上的像素点,确定所述翻滚角度。

可选地,所述根据所述左路面相关线的斜率和截距,以及所述右路面相关线的斜率和截距,确定所述翻滚方向,包括:

确定所述左路面相关线的截距与所述右路面相关线的截距之间的截距差值,以及确定所述左路面相关线的斜率与所述右路面相关线的斜率之间的斜率差值;

如果所述截距差值小于第一预设差值、所述斜率差值大于第二预设差值且所述左路面相关线的斜率大于所述右路面相关线的斜率,则确定所述翻滚方向为顺时针方向,如果所述截距差值小于所述第一预设差值、所述斜率差值大于所述第二预设差值且所述左路面相关线的斜率小于所述右路面相关线的斜率,则确定所述翻滚方向为逆时针方向。

可选地,所述根据所述左路面相关线和所述右路面相关线上的像素点,确定所述翻滚角度,包括:

从所述左路面相关线和所述右路面相关线上选取位于同一行或同一列的像素点,构成像素点对;

通过所述像素点对确定所述翻滚角度。

可选地,所述从所述左路面相关线和所述右路面相关线上选取位于同一行或同一列的像素点,构成像素点对,包括:

按照自底向上的顺序,从所述左路面相关线和所述右路面相关线上的前n行像素点中选取位于同一行的像素点,构成所述像素点对,所述n为大于1的正整数;或者

按照自右向左的顺序,从所述左路面相关线和所述右路面相关线上的前n列像素点中选取位于同一列的像素点,构成所述像素点对。

可选地,所述通过所述像素点对确定所述翻滚角度,包括:

当所述像素点对是通过选取位于同一行的像素点构成时,确定所述像素点对包括的两个像素点在相机坐标系下的三维坐标;

根据所述像素点对包括的两个像素点在所述相机坐标系下的三维坐标,确定所述像素点对包括的两个像素点的横坐标之差和纵坐标之差;

将所述纵坐标之差除以所述横坐标之差,得到所述翻滚角度。

可选地,所述通过所述像素点对确定所述翻滚角度,包括:

当所述像素点对是通过选取位于同一列的像素点构成时,确定所述像素点对包括的两个像素点在图像坐标系下的坐标,所述图像坐标系是指在所述待矫正的视差图中建立的坐标系;

根据所述像素点对包括的两个像素点在所述图像坐标下的坐标,确定所述像素点对包括的两个像素点的横坐标之差和纵坐标之差;

将所述纵坐标之差除以所述横坐标之差,得到所述翻滚角度。

可选地,当选取得到多个像素点对时,所述双目摄像头的翻滚角度是通过对各个像素点对对应的翻滚角度进行统计运算得到。

可选地,所述以所述待矫正的视差图的中心点为旋转中心,将所述待矫正的视差图按照所述翻滚方向的反向旋转所述翻滚角度,以得到矫正后的视差图之前,还包括:

确定当前时间之前的连续多帧视差图中存在翻滚角度的图像帧数,如果所述图像帧数大于预设帧数,则执行所述以所述待矫正的视差图的中心点为旋转中心,将所述待矫正的视差图按照所述翻滚方向的反向旋转所述翻滚角度,以得到矫正后的视差图的步骤;或者

确定当前时间之前的连续多帧视差图对应的左右路面相关线的斜率差值,得到多个斜率差值,如果所述多个斜率差值的变化趋势不是由小变大再由大变小,则执行所述以所述待矫正的视差图的中心点为旋转中心,将所述待矫正的视差图按照所述翻滚方向的反向旋转所述翻滚角度,以得到矫正后的视差图的步骤。

第二方面,提供了一种视差图的矫正装置,所述装置包括:

第一确定模块,用于确定待矫正的视差图中左右两个区域分别对应的v视差图,所述左右两个区域是指所述待矫正的视差图中包括路面标识物的左右两个区域;

第二确定模块,用于根据所述左右两个区域分别对应的v视差图,确定双目摄像头的翻滚方向和翻滚角度;

旋转模块,用于以所述待矫正的视差图的中心点为旋转中心,将所述待矫正的视差图按照所述翻滚方向的反向旋转所述翻滚角度,以得到矫正后的视差图。

可选地,所述第二确定模块包括:

检测单元,用于检测所述左右两个区域分别对应的v视差图中的路面相关线,得到左路面相关线和右路面相关线;

第一确定单元,用于根据所述左路面相关线的斜率和截距,以及所述右路面相关线的斜率和截距,确定所述翻滚方向;

第二确定单元,用于根据所述左路面相关线和所述右路面相关线上的像素点,确定所述翻滚角度。

可选地,所述第一确定单元包括:

第一确定子单元,用于确定所述左路面相关线的截距与所述右路面相关线的截距之间的截距差值,以及确定所述左路面相关线的斜率与所述右路面相关线的斜率之间的斜率差值;

第二确定子单元,用于如果所述截距差值小于第一预设差值、所述斜率差值大于第二预设差值且所述左路面相关线的斜率大于所述右路面相关线的斜率,则确定所述翻滚方向为顺时针方向,如果所述截距差值小于所述第一预设差值、所述斜率差值大于所述第二预设差值且所述左路面相关线的斜率小于所述右路面相关线的斜率,则确定所述翻滚方向为逆时针方向。

可选地,所述第二确定单元包括:

选取子单元,用于从所述左路面相关线和所述右路面相关线上选取位于同一行或同一列的像素点,构成像素点对;

第三确定子单元,用于通过所述像素点对确定所述翻滚角度。

可选地,所述选取子单元具体用于:

按照自底向上的顺序,从所述左路面相关线和所述右路面相关线上的前n行像素点中选取位于同一行的像素点,构成所述像素点对,所述n为大于1的正整数;或者

按照自右向左的顺序,从所述左路面相关线和所述右路面相关线上的前n列像素点中选取位于同一列的像素点,构成所述像素点对。

可选地,所述第三确定子单元具体用于:

当所述像素点对是通过选取位于同一行的像素点构成时,确定所述像素点对包括的两个像素点在相机坐标系下的三维坐标;

根据所述像素点对包括的两个像素点在所述相机坐标系下的三维坐标,确定所述像素点对包括的两个像素点的横坐标之差和纵坐标之差;

将所述纵坐标之差除以所述横坐标之差,得到所述翻滚角度。

可选地,所述第三确定子单元具体用于:

当所述像素点对是通过选取位于同一列的像素点构成时,确定所述像素点对包括的两个像素点在图像坐标系下的坐标,所述图像坐标系是指在所述待矫正的视差图中建立的坐标系;

根据所述像素点对包括的两个像素点在所述图像坐标下的坐标,确定所述像素点对包括的两个像素点的横坐标之差和纵坐标之差;

将所述纵坐标之差除以所述横坐标之差,得到所述翻滚角度。

可选地,当选取得到多个像素点对时,所述双目摄像头的翻滚角度是通过对各个像素点对对应的翻滚角度进行统计运算得到。

可选地,所述装置还包括:

第一触发模块,用于确定当前时间之前的连续多帧视差图中存在翻滚角度的图像帧数,如果所述图像帧数大于预设帧数,则触发所述旋转模块以所述待矫正的视差图的中心点为旋转中心,将所述待矫正的视差图按照所述翻滚方向的反向旋转所述翻滚角度,以得到矫正后的视差图;或者

第二触发模块,用于确定当前时间之前的连续多帧视差图对应的左右路面相关线的斜率差值,得到多个斜率差值,如果所述多个斜率差值的变化趋势不是由小变大再由大变小,则触发所述旋转模块以所述待矫正的视差图的中心点为旋转中心,将所述待矫正的视差图按照所述翻滚方向的反向旋转所述翻滚角度,以得到矫正后的视差图。

第三方面,提供一种视差图的矫正终端,所述终端包括:

处理器;

摄像头组件,用于采集图像,所述图像能够被所述处理器处理;

用于存储处理器可执行指令的存储器;

其中,所述处理器被配置为上述第一方面所述的任一项方法的步骤。

第四方面,提供一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,所述指令被处理器执行时实现上述第一方面所述的任一项方法的步骤。

第五方面,提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面所述的视差图的矫正方法。

本发明实施例提供的技术方案带来的有益效果是:由于辅助驾驶系统中,需要通过视差图来检测前方障碍物,从而保证汽车的安全行驶,然而,当汽车上安装的双目摄像头的姿态发生变化,或者汽车自身状态的变化时,双目摄像头与路面之间就会不平行,这样,将双目摄像头拍摄得到的路况图像转换视差图之后,路面在该视差图对应的v视差图中投影的斜线不再是一条,从而无法保证准确的障碍物检测,因此,在本发明实施例中,可以通过左右两个区域分别对应的v视差图,确定双目摄像头的翻滚方向和翻滚角度。由于翻滚方向和翻滚角度是指双目摄像头绕镜头所在的方向旋转的方向和旋转的角度,因此,将待矫正的视差图按照确定的翻滚方向反向旋转确定的翻滚角度,即按照确定的翻滚方向和翻滚角度将视差图进行相同角度的反方向旋转,以得到矫正后的视差图,这样,路面在矫正后的视差图对应的v视差图中将投影为一条斜线,从而可以保证准确的障碍物检测。

附图说明

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

图1是本发明实施例提供的一种计算视差图像的原理示意图;

图2是本发明实施例提供的一种视差图的矫正方法的流程图;

图3(a)是本发明实施例提供的一种翻滚方向为顺时针方向的示意图;

图3(b)是本发明实施例提供的一种翻滚方向为逆时针方向的示意图;

图4(a)是本发明实施例提供的一种左侧路面高于右侧路面的示意图;

图4(b)是本发明实施例提供的一种右侧路面高于左侧路面的示意图;

图5是本发明实施例提供的一种双目摄像头存在翻滚角度时左右路面相关线的形状的示意图;

图6是本发明实施例提供的一种视差图的矫正装置的框图;

图7是本发明实施例提供的一种第二确定模块的框图;

图8是本发明实施例提供的一种视差图的矫正终端的结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。

为了便于理解,在对本发明实施例进行详细的解释说明之前,先对本发明实施例涉及的名词进行解释。

视差图:通过双目摄像头同一时刻拍摄到的左右两幅图像进行计算得到。其中,左右两幅图像中,一幅图像作为基准图像,另一幅图像作为比较图像。将比较图像中的像素点与基准图像中同y坐标上的像素点进行匹配,并计算每两个匹配的像素点之间的横坐标之差,该横坐标之差即为两个像素点之间的视差值。将该视差值作为基准图像中该像素点对应的像素值,从而得到与基准图像相同大小的视差图。

图1是本发明实施例示出的一种计算视差图的原理示意图。其中,假设图1中的左图为基准图像,右图为比较图像。其中,为了便于说明,可以将图1中每个小方格看作一个像素点。对于比较图像中的像素点a,当在基准图像中寻找该像素点a的匹配像素点时,首先,可以以该像素点a为中心像素点,形成一个w×h的像素矩阵,如可以形成一个9×9的像素矩阵。之后,可以在基准图像中确定与该中心像素点具有相同y坐标的像素点,也即是,在基准图像中得到与该中心像素点同y坐标的一行像素点,如图1左图中的实线框所示。在将该中心像素点与这一行上的像素点逐个进行匹配时,可以计算该中心像素点所在的像素矩阵中的每个像素点与基准图像中对应位置上的像素点的像素差,将计算得到的多个像素差加和,得到像素差和。也即是,如图1中右图中的虚线框所示,假设以像素点a为中心像素点形成9×9的像素矩阵a,当该像素点a与基准图像中的像素点b进行匹配计算时,可以形成以像素点b为中心像素点的同样大小9×9的像素矩阵b,如图1中左图虚线框所示。之后,计算像素矩阵a中的每个像素点和像素矩阵b中对应位置处的像素点之间的像素差,并将多个像素差加和,得到像素差和。对于基准图像中与像素点a同y坐标的其他像素点,都可以通过上述方法与像素点a进行匹配计算,最终对应得到多个像素差和。从该多个像素差和中选择最小的像素差和,并将该最小的像素差和对应的像素点确定为像素点a的匹配点。假设像素点a在基准图像中的匹配点为像素点b,此时,可以计算像素点a和像素点b之间的横坐标之差,并将该横坐标之差作为两个像素点之间的视差值,并将该视差值作为与基准图像相同大小的视差图中像素点b的像素值。

v视差图:v视差图是由视差图计算得到。由上述对视差图的介绍可知,视差图中,每个像素点的像素值即为对应的视差值。而v视差图是将视差图的纵坐标保持不变,横坐标变为视差值,v视差图中每一点(x,y)处的像素值为视差图中纵坐标为y的像素点中视差值为x的像素点的总个数。

在对本发明实施例涉及的名词进行解释之后,接下来对本发明实施例的应用场景予以介绍。

高级驾驶辅助系统是一种通过图像处理和计算机视觉技术来处理雷达、传感器或者是摄像头采集到的路况图像,根据路况图像对前方行人、车辆做出预测,并在存在潜在危险的情况下对驾驶员进行预警或者是控制车辆紧急制动的系统。在高级驾驶辅助系统中,对前方障碍物的准确检测是进行有效预警的关键,而视差图是保障障碍物检测准确性的先决条件。当前,基于雷达采集到的路况图像来检测障碍物的方法由于受到雷达成本较高,检测范围较小的限制,并没有得到广泛的应用,而随着摄像头技术和计算机视觉技术的发展,采用双目摄像头采集路况图像,并通过计算机视觉技术处理图像来检测障碍物的方法则取得了较好的检测效果。本发明实施例提供的视差图的矫正方法即可以应用于根据双目摄像头采集的路况图像检测障碍物的过程中,并且,该视差图的矫正方法主要用于在确定障碍物之前确定双目摄像头的翻滚方向和翻滚角度,从而基于双目摄像头的翻滚方向和翻滚角度,对视差图进行矫正,以保证能够准确地从视差图中进行障碍物的检测。

在对本发明实施例涉及的应用场景进行介绍之后,接下来对本发明实施例提供的视差图的矫正方法的具体实现方式进行介绍。

图2是本发明实施例提供的一种视差图的矫正方法,该方法可以用于终端中,该终端可以是车载终端,且该终端可以与车载双目摄像头进行通信。或者,该终端可以是同时集成有双目摄像头和图像处理功能的设备,如图2所示,该方法包括以下步骤:

步骤201:确定待矫正的视差图中左右两个区域分别对应的v视差图,左右两个区域是指待矫正的视差图中包括路面标识物的左右两个区域。

实际实现时,可以从待矫正的视差图中划分出包括路面标识物的左右两个区域,然后确定左右两个区域分别对应的v视差图。当然,也可以将左右两个区域作为一个整体,确定这个整体对应的v视差图,通过这种方式确定的v视差图中,对于同一行的某个视差值来说,记录左区域中对应有几个视差点,右区域中对应有几个视差点,因此,当确定这个整体对应的v视差图之后,可以从该v视差图中确定左右两个区域分别对应的v视差图。

由于待矫正的视差图中不仅存在路面区域,还可能存在其他的区域,因此,为了有效地拟合路面相关线,可以截取待矫正的视差图中的检测区域,将该检测区域划分为包括路面标识物的左右两个区域。其中,检测区域的位置以及区域大小可以预先设置,比如,可以为待矫正的视差图的下方三角形区域或梯形区域,又或者是车道线所在的区域。

需要说明的是,通过上述描述可知,左右两个区域是指包括路面标识物的左右两个区域,也即是,本发明实施例涉及的左右两个区域可以构成待矫正的视差图的整体,当然也可以为待矫正的视差图中的一部分。换句话说,本发明实施例涉及的左右两个区域可以是直接将待矫正的视差图划分为包括路面标识物的至少两个区域后选择出的,也可以是将待矫正的视差图中的检测区域划分为包括路面标识物的至少两个区域后选择出的。比如,可以直接将待矫正的视差图划分为包括路面标识物的左右两个区域,也可以将待矫正的视差图划分为包括路面标识物的四个区域,其中包括两个左区域和两个右区域,然后从两个左区域中选择一个,以及从两个右区域中选择一个,从而构成上述提到的左右两个区域。当然,对于检测区域的划分也是同理,即,可以直接将待矫正的视差图中的检测区域划分为包括路面标识物的左右两个区域,也可以将待矫正的视差图中的检测区域划分为包括路面标识物的四个区域,其中包括两个左区域和两个右区域,然后从两个左区域中选择一个,以及从两个右区域中选择一个,从而构成上述提到的左右两个区域。

通常,双目摄像头包括两个平行等位的摄像头,可以分别称为左摄像头和右摄像头,该双目摄像头可以搭载在汽车前端的正中央,也可以搭载在汽车车身两侧。汽车在行驶过程中,可以通过左摄像头和右摄像头同时采集路况图像,且采集的路况图像中包括路面标识物。其中,左摄像头采集的路况图像可以称为左图像,右摄像头采集的路况图像可以称为右图像。并且,可以将左图像确定为基准图像,将右图像确定为比较图像。之后,通过立体匹配算法计算得到包括路面标识物的视差图。在本发明实施例中,待矫正的视差图即可以为通过立体匹配算法计算得到的视差图。

需要说明的是,路面标识物可以为汽车当前行驶的车道的两条车道线。另外,终端通过立体匹配算法计算视差图的具体实现过程可以参考前述图1中所示的具体实现方式。除此之外,终端还可以通过其他立体匹配算法来计算视差图,如常用的基于边的立体匹配算法,具体的实现过程可以参考相关技术,本发明实施例不再赘述。

还需要说明的是,确定左右两个区域分别对应的v视差图的方法可以参考前述名词解释中对于v视差图的解释,本发明实施例在这里不再赘述。

当通过上述步骤201确定左右两个区域分别对应的v视差图之后,可以确定拍摄待矫正的视差图像对应的路况图像时,双目摄像头的翻滚方向和翻滚角度,也即是,按照如下步骤202-步骤204,根据左右两个区域分别对应的v视差图,确定双目摄像头的翻滚方向和翻滚角度。

步骤202:检测左右两个区域分别对应的v视差图中的路面相关线,得到左路面相关线和右路面相关线。

实际应用中,可以通过霍夫变换、最小二乘法、ransac等方法确定左右两个区域分别对应的v视差图中的路面相关线。将左区域对应的v视差图中的路面相关线称为左路面相关线,将右区域对应的v视差图中的路面相关线称为右路面相关线。

当确定得到左路面相关线和右路面相关线之后,可以基于左路面相关线在左区域对应的v视差图中的位置,确定左路面相关线的斜率和截距,并基于右路面相关线在左区域对应的v视差图中的位置,确定右路面相关线的斜率和截距。具体的确定方法比较成熟,本发明实施例对此不再详细说明。

步骤203:根据左路面相关线的斜率和截距,以及右路面相关线的斜率和截距,确定双目摄像头的翻滚方向。

实际应用中,可以确定左路面相关线的截距与右路面相关线的截距之间的截距差值,以及确定左路面相关线的斜率与右路面相关线的斜率之间的斜率差值,如果该截距差值小于第一预设差值、该斜率差值大于第二预设差值且左路面相关线的斜率大于右路面相关线的斜率,则确定翻滚方向为顺时针方向,如果该截距差值小于第一预设差值、该斜率差值大于第二预设差值且左路面相关线的斜率不大于右路面相关线的斜率,则确定翻滚方向为逆时针方向。

也即是,如果该截距差值小于第一预设差值、该斜率差值大于第二预设差值且左路面相关线的斜率大于右路面相关线的斜率,则确定存在翻滚角度,并确定翻滚方向为顺时针方向,如果该截距差值小于第一预设差值、该斜率差值大于第二预设差值且右路面相关线的斜率大于左路面相关线的斜率,则确定存在翻滚角度,并确定翻滚方向为逆时针方向。

比如,如图3(a)所示,以图3(a)的左上角为坐标原点,以图像的上边界为横轴,以图像的左边界为纵轴建立坐标系。在该坐标系中,左路面相关线的截距和右路面相关线的截距均为7,左路面相关线的斜率为0.7,右路面相关线的斜率为0.66。左路面相关线与右路面相关线的截距差值为0,左路面相关线与右路面相关线的斜率差值为0.04。假设第一预设差值为2,第二预设差值为0.01,这样,可以确定左路面相关线与右路面相关线的截距差值小于第一预设差值、斜率差值大于第二预设差值且左路面相关线的斜率大于右路面相关线的斜率,进而确定翻滚方向为顺时针方向。

如图3(b)所示,以图3(b)的左上角为坐标原点,以图像的上边界为横轴,以图像的左边界为纵轴建立坐标系。在该坐标系中,左路面相关线的截距和右路面相关线的截距均为7,左路面相关线的斜率为0.66,右路面相关线的斜率为0.7。左路面相关线与右路面相关线的截距差值为0,左路面相关线与右路面相关线的斜率差值为0.04。假设第一预设差值为2,第二预设差值为0.01,这样,可以确定左路面相关线与右路面相关线的截距差值小于第一预设差值、斜率差值大于第二预设差值且左路面相关线的斜率小于右路面相关线的斜率,进而确定翻滚方向为逆时针方向。

可选地,本发明实施例不仅可以通过上述方法确定双目摄像头的翻滚方向,实际应用中,还可以确定路面是否存在坡度。具体地,可以确定左右路面相关线分别与图像底边的交点横坐标之间的坐标差值,如果该坐标差值小于第三预设差值,则确定汽车前方近路面的位置处的视差值相同或相近,并且双目摄像头不存在翻滚角度。此时,可以继续确定左路面相关线的斜率与右路面相关线的斜率之间的斜率差值,如果该斜率差值大于第四预设差值,则确定路面存在坡度变化,尤其是横向坡度变化。为了确定路面的具体坡度变化,还可以继续判断左路面相关线的斜率与右路面相关线的斜率之间的大小关系,如果左路面相关线的斜率大于右路面相关线的斜率,则确定左侧路面高于右侧路面,反之,则确定右侧路面高于左侧路面。

其中,第一预设差值、第二预设差值、第三预设差值和第四预设差值均可以预先设置,且第二预设差值和第四预设差值可以相同,也可以不同,本发明实施例对此不做具体限定。

比如,如图4(a)所示,以图4(a)的左上角为坐标原点,以图像的上边界为横轴,以图像的左边界为纵轴建立坐标系。在该坐标系中,左右路面相关线与图像底边的交点横坐标均为11.5,左路面相关线的斜率为0.61,右路面相关线的斜率为0.53。左右路面相关线与图像底边的交点横坐标之间的坐标差值为0,左路面相关线与右路面相关线的斜率差值为0.08。假设第三预设差值为3,第四预设差值为0.01,这样,可以确定左右路面相关线分别与图像底边的交点横坐标之间的坐标差值小于第三预设差值、左路面相关线的斜率与右路面相关线的斜率之间的斜率差值大于第四预设差值且左路面相关线的斜率大于右路面相关线的斜率,进而确定左侧路面高于右侧路面。

如图4(b)所示,以图4(b)的左上角为坐标原点,以图像的上边界为横轴,以图像的左边界为纵轴建立坐标系。在该坐标系中,左右路面相关线与图像底边的交点横坐标均为11.5,左路面相关线的斜率为0.53,右路面相关线的斜率为0.61。左右路面相关线与图像底边的交点横坐标之间的坐标差值为0,左路面相关线与右路面相关线的斜率差值为0.08。假设第三预设差值为3,第四预设差值为0.01,这样,可以确定左右路面相关线分别与图像底边的交点横坐标之间的坐标差值小于第三预设差值、左路面相关线的斜率与右路面相关线的斜率之间的斜率差值大于第四预设差值且右路面相关线的斜率大于左路面相关线的斜率,进而确定右侧路面高于左侧路面。

步骤204:根据左路面相关线和右路面相关线上的像素点,确定双目摄像头的翻滚角度。

在本发明实施例中,可以从左路面相关线和右路面相关线上选取位于同一行或同一列的像素点,构成像素点对,通过构成得到的像素点对确定翻滚角度。

其中,从左路面相关线和右路面相关线上选取位于同一行或同一列的像素点,构成像素点对的实现过程可以包括:按照自底向上的顺序,从左路面相关线和右路面相关线上的前n行像素点中选取位于同一行的像素点,构成像素点对,n为大于1的正整数;或者,按照自右向左的顺序,从左路面相关线和右路面相关线上的前n列像素点中选取位于同一列的像素点,构成像素点对。

通常情况下,当双目摄像头存在翻滚角度时,左右路面相关线的位置可以如图5所示,也即是,左右路面相关线上靠近底部的同一行的像素点的视差值相差较大,并且左右路面相关线上靠近右侧的同一列的像素点的视差值相差较大,因此,选取位于同一行或同一列的像素点时,可以按照自底向上的顺序,从左路面相关线和右路面相关线上的前n行像素点中选取位于同一行的像素点,或者,按照自右向左的顺序,从左路面相关线和右路面相关线上的前n列像素点中选取位于同一列的像素点。这样,可以提高确定双目摄像头的翻滚角度的精度。

其中,通过像素点对确定双目摄像头的翻滚角度的实现过程可以为:当像素点对是通过选取位于同一行的像素点构成时,确定像素点对包括的两个像素点在相机坐标系下的三维坐标,根据像素点对包括的两个像素点在相机坐标系下的三维坐标,确定像素点对包括的两个像素点的横坐标之差和纵坐标之差,将纵坐标之差除以横坐标之差,得到双目摄像头的翻滚角度。

也即是,按照如下公式(1)确定双目摄像头的翻滚角度;

其中,在上述公式(1)中,θ是指双目摄像头的翻滚角度,yr和xr是指像素点对中从右路面相关线上选取的像素点在相机坐标系下的纵坐标和横坐标,yl和xl是指像素点对中从左路面相关线上选取的像素点在相机坐标系下的纵坐标和横坐标,该相机坐标系是针对双目摄像头建立的坐标系。

实际实现时,当像素点对是通过选取位于同一行的像素点构成时,不仅可以按照上述方式通过相机坐标系下的坐标来确定双目摄像头的翻滚角度,还可以直接通过图像坐标系下的坐标来确定双目摄像头的翻滚角度。即,确定像素点对包括的两个像素点在图像坐标系下的坐标,图像坐标系是指在待矫正的视差图中建立的坐标系,根据像素点对包括的两个像素点在图像坐标下的坐标,按照如下公式(2)确定双目摄像头的翻滚角度;

其中,在上述公式(2)中,θ是指双目摄像头的翻滚角度,vr、ur和dr是指像素点对中从右路面相关线上选取的像素点在图像坐标系下的纵坐标、横坐标和竖坐标,vl、ul和dl是指像素点对中从左路面相关线上选取的像素点在图像坐标系下的纵坐标、横坐标和竖坐标。

当像素点对是通过选取位于同一列的像素点构成时,确定像素点对包括的两个像素点在图像坐标系下的坐标,图像坐标系是指在待矫正的视差图中建立的坐标系,根据像素点对包括的两个像素点在图像坐标下的坐标,确定像素点对包括的两个像素点的横坐标之差和纵坐标之差,将纵坐标之差除以横坐标之差,得到双目摄像头的翻滚角度。

也即是,按照如下公式(3)确定双目摄像头的翻滚角度;

其中,在上述公式(3)中,θ是指翻滚角度,vr和ur是指像素点对中从右路面相关线上选取的像素点在图像坐标系下的纵坐标和横坐标,vl和ul是指像素点对中从左路面相关线上选取的像素点在图像坐标系下的纵坐标和横坐标。

需要说明的是,在本发明实施例中,通过一个像素点对确定的翻滚角度可能存在一定的误差,因此,为了提高确定的翻滚角度的准确率,还可以选取多个像素点对,这样,通过上述步骤204计算得到的双目摄像头的翻滚角度是通过对各个像素点对对应的翻滚角度进行统计运算得到。其中,每个像素点对对应的翻滚角度的运算方法可以参考上述内容,本发明实施例不再赘述。

其中,对各个像素点对对应的翻滚角度进行的统计运算可以为求均值、中值等统计运算方法,也即是,可以通过确定各个像素点对对应的翻滚角度的平均值,以得到双目摄像头的翻滚角度,或者,通过确定各个像素点对对应的翻滚角度的中值,以得到双目摄像头的翻滚角度。

当通过上述步骤202-步骤204确定双目摄像头的翻滚方向和翻滚角度之后,接下来可以通过步骤205,按照双目摄像头的翻滚方向和翻滚角度,对待矫正的视差图进行旋转,从而实现视差图的矫正。

步骤205:以待矫正的视差图的中心点为旋转中心,将待矫正的视差图按照确定的翻滚方向的反向旋转确定的翻滚角度,以得到矫正后的视差图。

由于双目摄像头按照上述确定的翻滚方向进行了翻滚,且角度为上述确定的翻滚角度,因此,为了实现视差图的矫正,在本发明实施例中,可以以待矫正的视差图的中心点为旋转中心,将待矫正的视差图按照确定的翻滚方向反向旋转确定的翻滚角度,以得到矫正后的视差图。也即是,按照确定的翻滚方向,将待矫正的视差图向反方向旋转相同的翻滚角度,从而得到矫正后的视差图。

需要说明的是,双目摄像头可能是因为人为扭动或者固定松动等原因造成持久性姿态变化,当然,也有可能是因为汽车行驶过程中的倾斜或者颠簸等原因造成的暂时性姿态变化。对于持久性姿态变化,为了保证通过视差图进行前方障碍物检测的准确性,需要按照上述方法进行视差图的矫正,而对于暂时性姿态变化,由于时间较短,可以按照上述方法进行视差图的矫正,也可以不进行视差图的矫正。

也即是,可以确定当前时间之前的连续多帧视差图中存在翻滚角度的图像帧数,如果图像帧数大于预设帧数,则确定双目摄像头是因为人为扭动或者固定松动等原因造成持久性姿态变化,此时,可以以待矫正的视差图的中心点为旋转中心,按照双目摄像头的翻滚方向和翻滚角度,对待矫正的视差图进行反向旋转,得到矫正后的视差图。反之,则确定双目摄像头是因为汽车行驶过程中的倾斜或者颠簸等原因造成的暂时性姿态变化,此时,可以以待矫正的视差图的中心点为旋转中心,按照双目摄像头的翻滚方向和翻滚角度,对待矫正的视差图进行反向旋转,得到矫正后的视差图,当然,为了节省资源,也可以不进行视差图的矫正。

又或者,可以确定当前时间之前的连续多帧视差图对应的左右路面相关线的斜率差值,得到多个斜率差值,如果多个斜率差值的变化趋势不是由小变大再由大变小,则确定双目摄像头是因为人为扭动或者固定松动等原因造成持久性姿态变化,此时,可以以待矫正的视差图的中心点为旋转中心,按照双目摄像头的翻滚方向和翻滚角度,对待矫正的视差图进行反向旋转,得到矫正后的视差图。反之,则确定双目摄像头是因为汽车行驶过程中的倾斜或者颠簸等原因造成的暂时性姿态变化,此时,可以以待矫正的视差图的中心点为旋转中心,按照双目摄像头的翻滚方向和翻滚角度,对待矫正的视差图进行反向旋转,得到矫正后的视差图,当然,为了节省资源,也可以不进行视差图的矫正。

可选地,由于双目摄像头的姿态变化主要包括俯仰角的变化、偏航角的变化和翻滚角的变化,其中,偏航角对障碍物检测不造成影响,因此本发明实施例中不进行校验和矫正。另外,汽车运动过程中,也会产生一定的双目摄像头的高度变化,但在一般的路面上,这种影响也可以忽略不计。因此,本发明实施例不仅可以通过上述内容对翻滚角与路面坡度变化、车辆颠簸等路面状态之间进行区分以及矫正。实际应用中,还可以确定俯仰角的变化。

具体地,可以确定当前时间之前的连续多帧视差图中左右路面相关线的截距的变化趋势、左右路面相关线与图像底边的交点横坐标的变化趋势,以及左右路面相关线的斜率的变化趋势,如果截距的变化趋势为由大变小、左右路面相关线与图像底边的交点横坐标的变化趋势为由小变大,以及斜率的变化趋势为近似不变或由小变大,则可以确定双目摄像头的俯仰角变大,反之,则可以确定双目摄像头的俯仰角变小。进一步地,如果短时间内反复经历俯仰角变大又变小或变小又变大,则可以确定汽车出现颠簸。

由于辅助驾驶系统中,需要通过视差图来检测前方障碍物,从而保证汽车的安全行驶,然而,当汽车上安装的双目摄像头的姿态发生变化,或者汽车自身状态的变化时,双目摄像头与路面之间就会不平行,这样,将双目摄像头拍摄得到的路况图像转换视差图之后,路面在该视差图对应的v视差图中投影的斜线不再是一条,从而无法保证准确的障碍物检测,因此,在本发明实施例中,可以通过左右两个区域分别对应的v视差图,确定双目摄像头的翻滚方向和翻滚角度,从而按照确定的翻滚方向和翻滚角度,对视差图进行相同角度的反方向旋转,以得到矫正后的视差图。这样,路面在矫正后的视差图对应的v视差图中将投影为一条斜线,从而可以保证准确的障碍物检测。

在对本发明实施例提供的视差图的矫正方法进行解释说明之后,接下来对本发明实施例提供的视差图的矫正装置进行介绍。

图6是本发明实施例提供的一种视差图的矫正装置,参见图6,该装置包括:

第一确定模块601,用于确定待矫正的视差图中左右两个区域分别对应的v视差图,左右两个区域是指待矫正的视差图中包括路面标识物的左右两个区域;

第二确定模块602,用于根据左右两个区域分别对应的v视差图,确定双目摄像头的翻滚方向和翻滚角度;

旋转模块603,用于以待矫正的视差图的中心点为旋转中心,将待矫正的视差图按照所述翻滚方向的反向旋转所述翻滚角度,以得到矫正后的视差图。

可选地,参见图7,第二确定模块602包括:

检测单元6021,用于检测左右两个区域分别对应的v视差图中的路面相关线,得到左路面相关线和右路面相关线;

第一确定单元6022,用于根据左路面相关线的斜率和截距,以及右路面相关线的斜率和截距,确定翻滚方向;

第二确定单元6023,用于根据左路面相关线和右路面相关线上的像素点,确定翻滚角度。

可选地,第一确定单元6022包括:

第一确定子单元,用于确定左路面相关线的截距与右路面相关线的截距之间的截距差值,以及确定左路面相关线的斜率与右路面相关线的斜率之间的斜率差值;

第二确定子单元,用于如果所述截距差值小于第一预设差值、所述斜率差值大于第二预设差值且所述左路面相关线的斜率大于所述右路面相关线的斜率,则确定所述翻滚方向为顺时针方向,如果所述截距差值小于所述第一预设差值、所述斜率差值大于所述第二预设差值且所述左路面相关线的斜率不大于所述右路面相关线的斜率,则确定翻滚方向为逆时针方向。

可选地,第二确定单元6023包括:

选取子单元,用于从左路面相关线和右路面相关线上选取位于同一行或同一列的像素点,构成像素点对;

第三确定子单元,用于通过像素点对确定翻滚角度。

可选地,选取子单元具体用于:

按照自底向上的顺序,从左路面相关线和右路面相关线上的前n行像素点中选取位于同一行的像素点,构成像素点对,n为大于1的正整数;或者

按照自右向左的顺序,从左路面相关线和右路面相关线上的前n列像素点中选取位于同一列的像素点,构成像素点对。

可选地,第三确定子单元具体用于:

当像素点对是通过选取位于同一行的像素点构成时,确定像素点对包括的两个像素点在相机坐标系下的三维坐标;

根据像素点对包括的两个像素点在相机坐标系下的三维坐标,确定所述像素点对包括的两个像素点的横坐标之差和纵坐标之差;

将所述纵坐标之差除以所述横坐标之差,得到翻滚角度。

可选地,第三确定子单元具体用于:

当像素点对是通过选取位于同一列的像素点构成时,确定像素点对包括的两个像素点在图像坐标系下的坐标,图像坐标系是指在待矫正的视差图中建立的坐标系;

根据像素点对包括的两个像素点在图像坐标下的坐标,确定所述像素点对包括的两个像素点的横坐标之差和纵坐标之差;

将所述纵坐标之差除以所述横坐标之差,得到翻滚角度。

可选地,当选取得到多个像素点对时,上述确定的翻滚角度是通过对各个像素点对对应的翻滚角度进行统计运算得到。

可选地,该装置还包括:

第一触发模块,用于确定当前时间之前的连续多帧视差图中存在翻滚角度的图像帧数,如果图像帧数大于预设帧数,则触发旋转模块603以待矫正的视差图的中心点为旋转中心,将所述待矫正的视差图按照所述翻滚方向的反向旋转所述翻滚角度,以得到矫正后的视差图;或者

第二触发模块,用于确定当前时间之前的连续多帧视差图对应的左右路面相关线的斜率差值,得到多个斜率差值,如果该多个斜率差值的变化趋势不是由小变大再由大变小,则触发旋转模块603以待矫正的视差图的中心点为旋转中心,将所述待矫正的视差图按照所述翻滚方向的反向旋转所述翻滚角度,以得到矫正后的视差图。

由于辅助驾驶系统中,需要通过视差图来检测前方障碍物,从而保证汽车的安全行驶,然而,当汽车上安装的双目摄像头的姿态发生变化,或者汽车自身状态的变化时,双目摄像头与路面之间就会不平行,这样,将双目摄像头拍摄得到的路况图像转换视差图之后,路面在该视差图对应的v视差图中投影的斜线不再是一条,从而无法保证准确的障碍物检测,因此,在本发明实施例中,可以通过左右两个区域分别对应的v视差图,确定双目摄像头的翻滚方向和翻滚角度,从而按照确定的翻滚方向和翻滚角度,对视差图进行相同角度的反方向旋转,以得到矫正后的视差图。这样,路面在矫正后的视差图对应的v视差图中将投影为一条斜线,从而可以保证准确的障碍物检测。

需要说明的是:上述实施例提供的视差图的矫正装置在进行视差图的矫正时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的视差图的矫正装置与视差图的矫正方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

本实施例提供了一种视差图的矫正终端,该视差图的矫正终端可以用于执行上述实施例中提供的视差图的矫正方法。该视差图的矫正终端可以是便携式移动终端,比如:智能手机、平板电脑和笔记本电脑或台式电脑,该视差图的矫正终端还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。

参见图8,通常,该视差图的矫正终端800包括:处理器801和存储器802。

处理器801是该视差图的矫正终端800的控制中心,利用各种接口和线路连接整个该视差图的矫正终端的各个部分,通过运行或执行存储在存储器802内的软件程序和/或模块,以及调用存储在存储器802内的数据,执行视差图的矫正终端800的各种功能和处理数据,从而对该视差图的矫正终端进行整体监控。可选的,处理器801可包括一个或多个处理核心;可选的,处理器801可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器801中。

存储器802可用于存储软件程序以及模块,处理器801通过运行存储在存储器802的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器802可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据视差图的矫正终端800的使用所创建的数据(比如采集到的图像、计算得到的视差图像或者处理得到的灰度图像等)等。此外,存储器802可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器802还可以包括存储器控制器,以提供处理器801对存储器802的访问。

在一些实施例中,终端800还可选包括有:外围设备接口803和至少一个外围设备。处理器801、存储器802和外围设备接口803之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口803相连。具体地,外围设备包括:射频电路804、触摸显示屏805、摄像头806、音频电路807、定位组件808和电源809中的至少一种。

其中,摄像头组件806用于采集图像或视频。可选地,摄像头组件807可以包括至少两个摄像头。在一些实施例中,至少两个摄像头可以分别为双目摄像头中的左右摄像头。在一些实施例中,摄像头组件806还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。

尽管未示出,该视差图的矫正终端800还可以包括各种传感器等,在此不再赘述。具体在本实施例中,该视差图的矫正终端还包括有一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置由一个或者一个以上处理器执行。所述一个或者一个以上程序包含用于执行上述实施例中提供的视差图的矫正方法。

在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器802,上述指令可由该视差图的矫正终端800的处理器801执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是rom、随机存取存储器(ram)、cd-rom、磁带、软盘和光数据存储设备等。

一种非临时性计算机可读存储介质,当所述存储介质中的指令由该视差图的矫正终端的处理器执行时,使得该视差图的矫正终端能够执行上述实施例中提供的视差图的矫正方法。

一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中提供的路面相关线的校验方法。

需要说明的是,上述实施例提供的视差图的矫正终端可以包括前述实施例的视差图的矫正终端,上述实施例提供的视差图的矫正终端与前述实施例的视差图的矫正终端以及视差图的矫正方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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