目标检测方法、装置及运载工具与流程

文档序号:22967543发布日期:2020-11-19 21:41阅读:125来源:国知局
目标检测方法、装置及运载工具与流程

本发明涉及无人驾驶领域,具体而言,涉及一种目标检测方法、装置及运载工具。



背景技术:

随着科技的进步,自动驾驶已经成为研究的热点,人们通过网络可以很块地获取到自动驾驶的相关资讯。

自动驾驶车辆是一种通过电脑系统实现无人驾驶的智能车辆。并且,自动驾驶车辆依靠人工智能、摄像头、雷达及全球定位系统协同合作,使车辆可以在没有任何人类主动干预下自动驾驶,对于目标(例如车辆、行人、交通标识等等)的检测是无人驾驶的重点内容。

目前,针对于目标检测,现有技术中主要使用激光雷达进行三维检测,即通过激光雷达扫描周围环境得到雷达点云来实现自动驾驶车辆对目标的检测。

然而,上述现有技术主要存在以下问题,激光雷达造价高,并且激光雷达的线程有限,运行时获取的雷达点云通常比较稀疏,影响了检测结果的精度。



技术实现要素:

本发明的目的包括,例如,提供了一种目标检测方法、装置及运载工具,以缓解现有技术中存在的检测成本高、检测精度有限的问题。

第一方面,本发明实施例提供一种目标检测方法,所述方法包括:

获取双目摄像头拍摄的目标图像;

对所述目标图像进行深度计算得到深度图;

对所述深度图进行坐标转换得到目标图像在相机坐标系下的点云数据;

应用所述点云数据进行目标检测生成检测结果。

结合第一方面,本发明实施例提供了第一方面的第一种可能的实施方式,其中,所述方法还包括:

从所述目标图像提取出rgb色彩信息;

将所述rgb色彩信息赋值给所述点云数据,得到更新后的点云数据。

结合第一方面的第一种可能的实施方式,本发明实施例提供了第一方面的第二种可能的实施方式,其中,所述应用所述点云数据进行目标检测生成检测结果的步骤,包括:

将更新后的所述点云数据输入至训练好的第一深度学习网络模型,得到第一检测结果;所述第一检测结果包括目标的位置、色彩以及纹理信息。

结合第一方面,本发明实施例提供了第一方面的第三种可能的实施方式,其中,所述对所述目标图像进行深度计算得到深度图的步骤,包括:

对所述目标图像进行立体匹配得到视差图;

基于所述视差图以及双目摄像头的相机参数计算得到深度值,生成深度图。

结合第一方面的第三种可能的实施方式,本发明实施例提供了第一方面的第四种可能的实施方式,其中,所述对所述深度图进行坐标转换得到目标图像在相机坐标系下的点云数据的步骤,包括:

基于所述深度值和所述双目摄像头的相机参数计算目标图像在相机坐标系下的坐标,得到目标图像在相机坐标系下的点云数据。

第二方面,本发明实施例提供一种目标检测装置,所述装置包括:

获取模块,用于获取双目摄像头拍摄的目标图像;

深度模块,用于对所述目标图像进行深度计算得到深度图;

转换模块,用于对所述深度图进行坐标转换得到目标图像在相机坐标系下的点云数据;

检测模块,用于应用所述点云数据进行目标检测生成检测结果。

结合第二方面,本发明实施例提供了第二方面的第一种可能的实施方式,其中,所述装置还包括:

提取模块,用于从所述目标图像提取出rgb色彩信息;将所述rgb色彩信息赋值给所述点云数据,得到更新后的点云数据;

所述检测模块,用于将更新后的所述点云数据输入至训练好的第一深度学习网络模型,得到第一检测结果;所述第一检测结果包括目标的位置、色彩以及纹理信息。

结合第二方面,本发明实施例提供了第二方面的第二种可能的实施方式,其中,所述深度模块用于对所述目标图像进行立体匹配得到视差图;基于所述视差图以及双目摄像头的相机参数计算得到深度值,生成深度图。

第三方面,本发明实施例提供一种运载工具,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器执行所述机器可执行指令以实现前述实施方式任一项所述的方法。

第四方面,本发明实施例提供一种机器可读存储介质,所述机器可读存储介质存储有机器可执行指令,所述机器可执行指令在被处理器调用和执行时,所述机器可执行指令促使所述处理器实现前述实施方式任一项所述的方法。

本发明实施例提供的上述自动检测方法、装置及运载工具,通过首先获取双目摄像头拍摄的目标图像,然后对目标图像进行深度计算得到深度图,并对深度图进行坐标转换得到目标图像在相机坐标系下的点云数据,最后应用点云数据进行目标检测生成检测结果。本发明实施例提供的目标检测方法是一种纯视觉感知的方法,通过双目摄像头对目标进行三维(3d)检测,相比于现有技术中利用激光雷达进行目标检测的方式,降低了检测成本,而且本发明实施例中生成的点云数据非常稠密,3d图片检测信息更精准,提高了检测精度,此外,本发明实施例使用的双目摄像头不易损坏,使用时间较长,且维护成本和更换成本也更低。

本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。

为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1示出了本发明实施例提供的目标检测方法的流程图;

图2示出了本发明实施例提供的另一种目标检测方法的流程图;

图3示出了本发明实施例提供的目标检测装置的示意图;

图4示出了本发明实施例提供的运载工具的示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。

因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

在本发明的描述中,需要说明的是,若出现术语“上”、“下”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,或者是该发明产品使用时惯常摆放的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。

此外,若出现术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

目前,自动驾驶车辆在道路上行驶时,现有技术中一种方式是通过激光雷达扫描周围环境获取车辆周围的雷达点云来进行目标检测。该方案存在以下问题,激光雷达造价高,并且激光雷达的线程有限,运行时获取的雷达点云通常比较稀疏,影响了检测结果的精度。

基于此,本发明实施例提供一种自动检测方法、装置及运载工具,可以缓解现有技术中存在的检测成本高、检测精度有限的问题,降低检测成本,改善检测精度。

下面结合附图,对本发明的一些实施方式作详细说明。

需要说明的是,在不冲突的情况下,本发明的实施例中的特征可以相互结合。

图1示出了本发明实施例提供的目标检测方法的流程图。请参考图1,本实施例提供了一种目标检测方法,可以应用于运载工具,运载工具例如可以是自动驾驶车辆、无人飞行器、自动驾驶船等,该方法包括以下步骤:

步骤s101,获取双目摄像头拍摄的目标图像;

其中,上述的双目摄像头包括左摄像头和右摄像头,双目摄像头设置在运载工具的预设位置,可以根据拍摄需求和场景,在运载工具上设置多组双目摄像头;

上述的目标图像为包括待检测目标或对象的图像,这里的目标图像是二维(2d)图片。

可以理解的是,目标图像是处于双目摄像头的拍摄视场内。

具体的,在运载工具行驶过程中,通过双目摄像头的左、右摄像头拍摄目标图像,得到左、右两幅目标图像。

在可选的实施方式中,为了扩大拍摄范围、减小拍摄的盲区,在车辆的前端、后端设置有多组双目摄像头,且双目摄像头的安装位置离地面预设距离,通常使双目摄像头靠近地面,以便使摄像头在视野范围内能够拍摄到尽可能多物体或对象。

步骤s102,对目标图像进行深度计算得到深度图;

其中,上述的深度图(depthmap)是包括与视点的场景对象的表面的距离有关的信息的图像或图像通道。

应当说明的是,这里的深度图包括左深度图和右深度图的至少一个。

在可选的实施方式中,上述步骤可以通过以下步骤实现:

1、对目标图像进行立体匹配得到视差图;

通过应用立体匹配算法对目标图像进行立体匹配得到视差图。

具体的,可以使用opencv中的bm算法或者sgbm算法对目标图像进行计算,得到视差图。

相应的,视差图包括左视差图和右视差图的至少一个。

本实施例中,计算出的是左视差图。

通过上述的立体匹配可以将同一场景在左右两幅目标图像上对应的像点匹配起来,从而得到视差图。

2、将视差图转换为深度图;

具体的,基于视差图以及双目摄像头的相机参数计算得到深度值,生成深度图。

例如,可以通过将视差图以及双目摄像头的相机参数代入深度与视差之间的转换关系式即可计算得到深度值,其中这里的相机参数主要包括焦距f和基线距离baseline。

视差的单位是像素(pixel),深度的单位往往是毫米(mm)表示。而根据平行双目视觉的几何关系,得到深度与视差之间的转换关系式。

深度与视差之间的转换关系式如下:

depth=(f*baseline)/disp;

上式中,depth表示深度值;f表示焦距;baseline是两个摄像头光心之间的距离,称作基线距离;disp是视差图。

其中,双目摄像头的相机参数包括摄像头内参和摄像头外参。

摄像头内参反映的是相机坐标系(又称为摄像机坐标系)到图像坐标系之间的投影关系;摄像头内参包括焦距f,1/dx,1/dy,cx,cy以及畸变系数[k1,k2,p1,p2,k3],其中dx和dy是相机单个感光单元芯片的长度和宽度,cx和cy分别代表相机感光芯片的中心点在x和y方向上可能存在的偏移;摄像头由于光学透镜的特性使得成像存在着径向畸变,可由三个参数k1,k2,k3确定;由于装配方面的误差,传感器和光学镜头之间并非完全平行,因此成像存在切向畸变,可由两个参数p1,p2确定。摄像机内参的标定可以使用张正友标定法;摄像头外参反映的是摄像机坐标系和世界坐标系之间的旋转和平移关系,摄像头外参包括相对世界坐标系的旋转矩阵r和平移向量t;如果左、右两个摄像头的相机内参均已知,并且已知左、右两个摄像头分别与世界坐标系之间的r1、t1和r2,t2,可以算出这两个摄像头之间的r和t,即确定了一个相机坐标系到另一个相机坐标系之间的位置转换关系;摄像头外参标定可以使用标定板,需要保证左、右两个摄像头同时拍摄同一个标定板的图像。

可以理解的是,上述的深度值是表征目标图像中每个像点的距离的参数。

需要说明的是,在对目标图像进行立体匹配得到视差图之前,该步骤s102还可以包括:

a对双目摄像头进行双目标定,得到双目摄像头的相机参数;

其中,双目标定过程为:首先分别获取左右摄像头的内外参数,然后通过立体标定对左右两幅图像进行立体校准和对齐,最后确定两个相机的相对位置(右摄像头相对于左摄像头的旋转矩阵r、平移向量t,和中心距等)。

需要说明的是,实际生成深度图所用的图片尺寸需要和标定所用的图片尺寸大小一致。

b对目标图像进行双目校正。

上述的双目校正包括畸变校正和立体校正。

例如可以通过极线约束的方法对所述目标图像进行双目校正。

通过极线约束使得特征匹配由二维搜索降低到一维搜索,从而大大加快计算速度,并且减少误匹配。

下面对极线约束进行简要说明:空间中任意一点在图像平面上的投影点,必然处于由该点和两个摄像头中心组成的对极平面上。对于图像上的某一个特征点,其在另一个视图上的匹配点必处于对应的对极线上,称为极线约束。

步骤s103,对深度图进行坐标转换得到目标图像在相机坐标系下的点云数据;

上述的相机坐标系原点为摄像头的光心,以水平向右的方向为x轴,以垂直于地面的方向为y轴,以深度值所在的方向作为z轴。

在可选的实施方式中,上述步骤s103主要通过以下步骤执行:

1)基于所述深度值和所述双目摄像头的相机参数计算目标图像在相机坐标系下的坐标,得到目标图像在相机坐标系下的点云数据。

例如,通过应用坐标变换关系基于所述深度值和所述双目摄像头的相机参数计算目标图像在相机坐标系下的坐标,得到目标图像在相机坐标系下的点云数据;其中上述的坐标变换关系为图像坐标系与相机坐标系的变换关系。

具体的,根据相机参数和深度值计算目标图像在相机坐标系下的x坐标和y坐标;将深度值作为目标图像在相机坐标系下的z坐标;基于目标图像在相机坐标系下的x坐标、y坐标和z坐标,得到目标图像在相机坐标系下的点云数据。即该点云数据为目标图像中每个像点经过坐标转换得到的三维坐标的集合。

步骤s104,应用点云数据进行目标检测生成检测结果。

在可选的实施方式中,上述步骤s104可以通过以下步骤执行:

将所述点云数据直接输入至训练好的第二深度学习网络模型,得到第二检测结果;所述第二检测结果包括目标的位置以及纹理信息。

这里的纹理信息包括目标的轮廓、尺寸、形状等信息。

其中第二深度学习网络模型根据样本目标图像的标注数据进行深度学习得到的,这里的标注数据包括样本目标图像在相机坐标系下的xyz坐标三元组信息。具体的训练过程可以参照现有的深度学习神经网络的训练过程,这里不作过多赘述。

本发明实施例提供的上述自动检测方法,包括获取双目摄像头拍摄的目标图像;对目标图像进行深度计算得到深度图;对深度图进行坐标转换得到目标图像在相机坐标系下的点云数据;应用点云数据进行目标检测生成检测结果。本发明实施例提供的目标检测方法是基于纯视觉感知的方法,通过双目摄像头实现三维(3d)目标检测,相比于现有技术中利用激光雷达进行目标检测的方式,降低了检测成本,而且本发明实施例中生成的点云数据非常稠密(对应于像素点的数量),3d图片检测信息更精准,提高了检测精度,此外,本发明实施例使用的双目摄像头不易损坏,使用时间较长,且维护成本和更换成本也更低。

图2示出了本发明实施例提供的另一种目标检测方法的流程图。

参照图2,该目标检测方法包括:

步骤s201,获取双目摄像头拍摄的目标图像;

步骤s202,对目标图像进行深度计算得到深度图;

步骤s203,对深度图进行坐标转换得到目标图像在相机坐标系下的点云数据;

步骤s204,从目标图像提取出rgb色彩信息;

可以理解的是,目标图像可以是普通的rgb三通道彩色图像,因此,可以从目标图像提取出rgb色彩信息。

步骤s205,将rgb色彩信息赋值给点云数据,得到更新后的点云数据;

上述的更新后的点云数据包括rgb值;具体的,上述更新后的点云数据为目标图像中每个像点在相机坐标系下的xyz三维坐标和rgb值的六元组信息的集合。

步骤s206,应用更新后的点云数据进行目标检测生成检测结果。

具体的,步骤s206可以通过以下步骤执行:

将更新后的点云数据输入至训练好的第一深度学习网络模型,得到第一检测结果;所述第一检测结果包括目标的位置、色彩以及纹理信息,例如第一检测结果为黄色的圆柱体马克杯。

相应的,在第一深度学习网络模型的训练过程中,标注信息中包括样本目标图像在相机坐标系下的xyz三维坐标和rgb值的六元组信息。

需要指出的是,本实施中s204仅为描述方便使用,不应理解为对本发明实施例造成的顺序限定;事实上,步骤s204可以在步骤s205之前的任意步骤之后执行。

本发明实施例提供的目标检测方法,通过将rgb色彩信息为目标图像在相机坐标系下的点云数据赋值,得到更新后的点云数据,其中更新后的点云数据为目标图像中每个像点在相机坐标系下的xyz三维坐标和rgb值的六元组信息的集合,相比于传统激光雷达检测方式,该方法还具有检测到的目标信息更加丰富的特点。

在上述实施例的基础上,本发明实施例还提供一种目标检测装置,如图3所示,该装置包括获取模块31、深度模块32、转换模块33以及检测模块34。

其中,获取模块31用于获取双目摄像头拍摄的目标图像;

深度模块32用于对所述目标图像进行深度计算得到深度图;

转换模块33用于对所述深度图进行坐标转换得到目标图像在相机坐标系下的点云数据;

检测模块34用于应用所述点云数据进行目标检测生成检测结果。

在可选的实施方式中,该装置还包括:

提取模块35,用于从所述目标图像提取出rgb色彩信息;将所述rgb色彩信息赋值给所述点云数据,得到更新后的点云数据。

在可选的实施方式中,检测模块34在应用所述点云数据进行目标检测生成检测结果时,用于将更新后的所述点云数据输入至训练好的第一深度学习网络模型,得到第一检测结果;所述第一检测结果包括目标的位置、色彩以及纹理信息。

在可选的实施方式中,检测模块34在应用所述点云数据进行目标检测生成检测结果时,用于将所述点云数据输入至训练好的第二深度学习网络模型,得到第二检测结果;所述第二检测结果包括目标的位置以及纹理信息。

在可选的实施方式中,深度模块32在对所述目标图像进行深度计算得到深度图时,用于对所述目标图像进行立体匹配得到视差图;基于所述视差图以及双目摄像头的相机参数计算得到深度值,生成深度图。

在可选的实施方式中,深度模块32在对所述深度图进行坐标转换得到目标图像在相机坐标系下的点云数据时,用于基于所述深度值和所述双目摄像头的相机参数计算目标图像在相机坐标系下的坐标,得到目标图像在相机坐标系下的点云数据。

本发明实施例所提供的目标检测装置可以为设备上的特定硬件或者安装于设备上的软件或固件等。本发明实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。

参见图4,本发明实施例还提供一种运载工具400,包括:处理器401,存储器402,总线403和通信接口404,处理器401、通信接口404和存储器402通过总线403连接;存储器402用于存储程序;处理器401用于通过总线403调用存储在存储器402中的程序,执行上述实施例的车辆控制方法。

其中,存储器402可能包含高速随机存取存储器(ram,randomaccessmemory),也可能还包括非不稳定的存储器(non-volatilememory),例如至少一个磁盘存储器。通过至少一个通信接口404(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。

总线403可以是isa总线、pci总线或eisa总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。

其中,存储器402用于存储程序,处理器401在接收到执行指令后,执行程序,前述本发明实施例任一实施例揭示的流过程定义的装置所执行的方法可以应用于处理器401中,或者由处理器401实现。

处理器401可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器401中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器401可以是通用处理器,包括中央处理器(centralprocessingunit,简称cpu)、网络处理器(networkprocessor,简称np)等;还可以是数字信号处理器(digitalsignalprocessor,简称dsp)、专用集成电路(applicationspecificintegratedcircuit,简称asic)、现场可编程门阵列(field-programmablegatearray,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器402,处理器401读取存储器402中的信息,结合其硬件完成上述方法的步骤。

本发明实施例还提供了一种机器可读存储介质,机器可读存储介质存储有机器可执行指令,机器可执行指令在被处理器调用和执行时,机器可执行指令促使处理器实现如上的车辆控制方法。

在本发明的描述中,需要说明的是,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

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