一种基于双目相机的环境提示方法及装置与流程

文档序号:18885973发布日期:2019-10-15 20:55阅读:126来源:国知局
一种基于双目相机的环境提示方法及装置与流程

本发明涉及环境检测技术领域,尤其涉及一种基于双目相机的环境提示方法及装置。



背景技术:

现阶段的环境提示系统分为两大类,第一类是固定区域环境提示,通过预先部署在目标环境中的多种类型传感器,利用这些传感器实时采集环境中的数据,再把数据回传到数据处理平台上,完成数据解析,并实时计算分析出环境中是否存在需要感知的目标,最后把检测到的目标数据封装,输出详细的数据信息,包括:目标类型,目标大小、目标方位、目标距离等。该类系统的造价非常昂贵,且由于采用的是固定安装传感器的方法,在目标检测区域以外的地方无法作业。

第二类是移动实时环境提示系统,传统的移动实时环境提示系统虽然可以在不同外部环境进行环境提示,但其提示的环境信息不详细,例如单目相机无法对检测目标进行测距、测方位,能够提示的环境数据有限,且对移动处理的数据处理平台要求很高。

因此,现有技术还有待于改进和发展。



技术实现要素:

鉴于上述现有技术的不足,本发明的目的在于提供一种基于双目相机的环境提示方法及装置,旨在解决现有技术中移动环境提示系统无法实时检测输出目标深度的问题。

本发明的技术方案如下:

一种基于双目相机的环境提示方法,其包括如下步骤:

通过双目相机获取当前环境的包含深度信息的共视图数据;

将所述包含深度信息的共视图数据输入至预设神经网络模型,实时输出当前环境中检测到的目标;

根据所述包含深度信息的共视图数据和检测到的目标计算输出当前环境中的目标三维数据。

所述的基于双目相机的环境提示方法中,所述通过双目相机获取当前环境的包含深度信息的共视图数据,包括:

通过双目相机分别获取两幅当前环境的原图像,对所述原图像进行畸变校正与极线平行处理后输出共视图数据;

根据预设匹配算法计算输出所述共视图数据的深度信息。

所述的基于双目相机的环境提示方法中,所述通过双目相机分别获取两幅当前环境的原图像,对所述原图像进行畸变校正与极线平行处理后输出共视图数据,包括:

对双目相机进行标定,获取双目相机的内参、外参和畸变参数;

根据所述内参将原图像从图像像素坐标系转换至相机坐标系;

通过所述外参对原图像进行极线平行处理,通过所述畸变参数对原图像的相机坐标进行畸变校正;

根据所述内参将经过畸变校正与极线平行处理后的原图像从相机坐标系转换至图像像素坐标系,输出共视图数据。

所述的基于双目相机的环境提示方法中,所述根据预设匹配算法计算输出所述共视图数据的深度信息,包括:

根据预设匹配算法对共视图数据中双目相机分别获取的图像进行像素匹配,计算输出每个像素点的视差;

根据每个像素点的视差、双目相机光心之间的距离以及双目相机的焦距计算输出所述共视图数据的深度信息。

所述的基于双目相机的环境提示方法中,所述将所述包含深度信息的共视图数据输入至预设神经网络模型,实时输出当前环境中检测到的目标,包括:

将所述包含深度信息的共视图数据输入至预设神经网络模型,所述预设神经网络模型中预存有多个目标类别;

检测所述共视图数据中的目标类别,实时输出具有目标类别的边界框。

所述的基于双目相机的环境提示方法中,所述根据所述包含深度信息的共视图数据和检测到的目标计算输出当前环境中的目标三维数据,包括:

获取所述具有目标类别的边界框的参数信息;

根据所述参数信息与所述包含深度信息的共视图数据计算所述每个边界框的目标距离、方位和坐标。

所述的基于双目相机的环境提示方法中,所述参数信息至少包括边界框的中心坐标、宽度和高度。

本发明又一实施例还提供了一种基于双目相机的环境提示装置,所述装置包括双目相机、至少一个处理器;以及,

与所述至少一个处理器通信连接的存储器;其中,

所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述基于双目相机的环境提示方法。

本发明的另一实施例还提供了一种非易失性计算机可读存储介质,所述非易失性计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行时,可使得所述一个或多个处理器执行上述的基于双目相机的环境提示方法。

本发明的另一实施例还提供了一种计算机程序产品,所述计算机程序产品包括存储在非易失性计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被处理器执行时,使所述处理器执行上述的基于双目相机的环境提示方法。

有益效果:本发明公开了一种基于双目相机的环境提示方法及装置,相比于现有技术,本发明实施例通过双目相机获取当前环境的立体空间数据,并通过运行预设神经网络模型实时输出当前环境中检测到的目标,将检测出的目标与立体空间数据融合后输出具有深度信息的目标三维数据,解决了目前移动环境提示系统无法实时检测输出目标深度的问题。

附图说明

下面将结合附图及实施例对本发明作进一步说明,附图中:

图1为本发明提供的基于双目相机的环境提示方法较佳实施例的流程图;

图2为本发明提供的基于双目相机的环境提示方法较佳实施例中的对极几何图;

图3为本发明提供的基于双目相机的环境提示方法较佳实施例中双目视差原理图;

图4为本发明提供的基于双目相机的环境提示装置较佳实施例的硬件结构示意图。

具体实施方式

为使本发明的目的、技术方案及效果更加清楚、明确,以下对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。以下结合附图对本发明实施例进行介绍。

请参阅图1,图1为本发明提供的基于双目相机的环境提示方法较佳实施例的流程图。如图1所示,其包括如下步骤:

s100、通过双目相机获取当前环境的包含深度信息的共视图数据;

s200、将所述包含深度信息的共视图数据输入至预设神经网络模型,实时输出当前环境中检测到的目标;

s300、根据所述包含深度信息的共视图数据和检测到的目标计算输出当前环境中的目标三维数据。

本实施例中,在进行环境提示时,通过双目相机采集图像,获取当前环境的包含深度信息的共视图数据,即采用双目相机复原环境中的立体空间数据,之后将所述包含深度信息的共视图数据输入值预设神经网络模型,实时输出当前环境中检测到的目标,之后根据所述包含深度信息的共视图数据和检测到的目标计算输出当前环境中的目标三维数据,即在运行预设神经网络模型实时输出当前环境中检测到的目标后,将检测到的目标和之前获取到的共视图数据融合后输出具有深度信息的目标三维数据,有效解决了目前移动环境提示系统中无法对检测目标进行测距、测方位的问题,丰富了环境提示系统的环境数据,使环境提示系统的输出信息更加精确。

进一步地,所述通过双目相机获取当前环境的包含深度信息的共视图数据,包括:

通过双目相机分别获取两幅当前环境的原图像,对所述原图像进行畸变校正与极线平行处理后输出共视图数据;

根据预设匹配算法计算输出所述共视图数据的深度信息。

本实施例中,采用双目相机来还原环境的立体空间数据,进而获取物体的深度信息,具体通过规格参数统一的左右两个相机分别获取两幅当前环境的原图像,所述原图像只包含rgb信息,不包括深度信息,对所述原图像进行畸变校正与极线平行处理后输出共视图数据,该共视图数据是左右两个相机像平面的公共部分,具有基线和极线都处于垂直于深度坐标轴z的平面上以及基线和极线平行的特点,之后根据预设匹配算法对共视图数据进行立体匹配,计算输出所述共视图数据的深度信息,由于进行了极线平行处理,只需在同一行上搜索左右像平面的匹配点即可,使深度计算效率大大提高。其中所述双目相机的规格参数可根据实际需要选择,本发明对此不作限定。

进一步地,所述通过双目相机分别获取两幅当前环境的原图像,对所述原图像进行畸变校正与极线平行处理后输出共视图数据,包括:

对双目相机进行标定,获取双目相机的内参、外参和畸变参数;

根据所述内参将原图像从图像像素坐标系转换至相机坐标系;

通过所述外参对原图像进行极线平行处理,通过所述畸变参数对原图像的相机坐标进行畸变校正;

根据所述内参将经过畸变校正与极线平行处理后的原图像从相机坐标系转换至图像像素坐标系,输出共视图数据。

本实施例中,在采用双目相机获取物体深度信息之前,需要对双目相机进行标定,分别获取左右两个相机的内参、外参和畸变参数,以单相机标定为例,在不考虑畸变的情况下,根据相机的成像原理,世界坐标系的点p(x,y,z)到图像像素坐标系上点p(u,v)转换关系如下:

其中,fx、fy为水平和竖直方向的焦距,cx、cy为水平竖直方向的主光轴点,一般为图像的中心,r、t为世界坐标系到相机坐标系的旋转矩阵及平移向量,s为伸缩系数。

当考虑相机的畸变时,对于径向畸变,使用以下公式:

xcorrected=x(1+k1r2+k2r4+k3r6)(3-2)

ycorrected=y(1+k1r2+k2r4+k3r6)(3-3)

x、y为未校正前的图像物理坐标,xcorrected和ycorrected为校正后的图像物理坐标,k1、k2、k3为径向畸变参数,r为成像位置到图像物理坐标系原点的距离。

而因为镜头不能和成像平面完美平行而导致的切向畸变,用如下公式进行校正:

xcorrected=x+[2p1xy+p2(r2+2x2)](3-4)

ycorrected=y+[p1(r2+2y2)+2p2xy](3-5)

x、y为未校正前的图像物理坐标,xcorrected和ycorrected为校正后的图像物理坐标,p1、p2为切向畸变参数,r为成像位置到图像物理坐标系原点的距离。

具体标定过程为打印一张棋盘格,将其贴在一个平面上作为标定物,通过调整标定物或者相机的方向,为棋盘格拍摄若干不同方向的照片,从照片中提取棋盘格交点,根据上述坐标转换与畸变校正过程求解得到相机的内参、外参以及畸变参数,本实施例中优选拍摄十张以上的棋盘格进行标定,以获取准确的相机标定参数。

获取双目相机的内参、外参和畸变参数后,根据所述内参将原图像从图像像素坐标系转换至相机坐标系,其与图像像素坐标系比较,多了缩放和z轴数据,之后通过所述畸变参数对原图像的相机坐标进行畸变校正(公式3-2、3-3、3-4、3-5),且通过所述外参对原图像进行极线平行处理。

具体地,极线平行校正前双目相机位姿如图2所示,校正前的左右相机的光轴并不是平行的。两个光心o1、o2的连线为基线;e1和e2为极点,是像平面与基线的交点;线段p1e1和线段p2e2为极线,是像点与极点的连线,左右极线与基线构成的平面就是空间点对应的极平面,校正后,极点在无穷远处,两个相机的光轴平行,像点在左右图像上的高度一致,处于同一平面上。这也就是极线平行校正的目标,校正后在后续的立体匹配时,只需在同一行上搜索左右像平面的匹配点即可,能使效率大大提高。

本实施例中,在分别获得了两个相机的旋转矩阵和平移向量之后,对两幅原图像进行极线平行校正,需要算出两个相机之间的变换关系r和

其中,r和表示两个相机之间的旋转矩阵和平移向量;rr表示右侧相机的旋转矩阵;rl表示左侧相机的旋转矩阵;表示左侧相机的平移向量;表示右侧相机的平移向量。

给定立体图像之间的旋转矩阵r和平移向量后,为了使两幅图像中的每一幅重投影畸变最小化,同时使观测面积最大化。可以将旋转矩阵分成两半,左边相机旋转一半rl,右边相机旋转一半rr,使得极线变成水平:

r为两个相机之间的旋转矩阵,rl为要达到极线平行,左侧相机需旋转的矩阵,rr为要达到极线平行,右侧相机需要旋转的矩阵,因此经过公式3-6、3-7后可通过旋转矩阵rl和rr进行平行极线校正,在经过畸变校正与平行极线校正后,此时相机的左右两路相机的像平面都垂直于深度坐标轴z,获得了经过匹配的共视图,通过内参将校正后的图像从相机坐标系转换至图像像素坐标系,输出共视图数据,以用于后续的深度计算。

进一步地,所述根据预设匹配算法计算输出所述共视图数据的深度信息,包括:

根据预设匹配算法对共视图数据中双目相机分别获取的图像进行像素匹配,计算输出每个像素点的视差;

根据每个像素点的视差、双目相机光心之间的距离以及双目相机的焦距计算输出所述共视图数据的深度信息。

本实施例中,通过双目相机获取了共视图数据后,需要进一步进行立体匹配从而获取深度信息,具体为根据预设匹配算法对共视图数据中双目相机分别获取的图像进行像素匹配,计算输出每个像素点的视差,具体实施时,所述预设匹配算法优选为sgbm算法,其为一种用于计算双目视觉中视差(disparity)的半全局块匹配算法,在匹配计算前,先采用水平sobel算子对双目相机拍摄的两幅图像作预处理,使用如下卷积核:

重新映射后得到图像的梯度信息:

其中,k为常数参数,可取15;p为像素灰度值,之后使用sgbm算法对双目相机分别获取的两幅图像进行像素匹配,计算输出每个像素点的视差。

根据三角形相似原理计算图像的深度信息,生成点云数据,具体如图3所示,ol为左相机的光心,or为右相机的光心,b为基线,即两相机光心的距离,z为物距,即物体的深度距离,f为焦距,p为左图像素点,p’为右图对应的像素点,xl为p点的水平坐标,xr为p’的水平坐标,根据三角形相似原理,可得:

因此可推到得出深度为:

其中d为像素点之间的视差,即计算输出每个像素点的视差并生成点云后,可根据每个像素点的视差、双目相机光心之间的距离以及双目相机的焦距计算输出所述共视图数据的深度信息,从而获得当前环境的立体三维数据。

进一步优选地,在经过双目视差计算,获得三维点云数据后,在点云数据中存在一定的测量噪声和误差,本发明中,进一步采用了直通滤波的方法对点云数据进行处理,具体为沿着z轴方向,过滤掉z方向大于某个阈值的所有点,因为较大的z值,用双目估计的准确度比较低,从而对共视图数据的深度信息实现去噪,提高数据的准确性。

进一步地,所述将所述包含深度信息的共视图数据输入至预设神经网络模型,实时输出当前环境中检测到的目标,包括:

将所述包含深度信息的共视图数据输入至预设神经网络模型,所述预设神经网络模型中预存有多个目标类别;

检测所述共视图数据中的目标类别,实时输出具有目标类别的边界框。

本实施例中,通过运行预设神经网络模型对当前环境中的目标进行检测,具体为将共视图数据输入至所述预设神经网络模型,所述预设神经网络模型中预存有多个目标类别,具体实施时,所述预设神经网络模型优选为高实时性的网络模型,darknet-53,其为一种高速实时检测模型,相比目前深层神经网络模型,其权值参数量级小、模型检测精度高、速度快,可以高实时性运行,提高环境提示的时效性,经过深度计算后的共视图数据具有深度信息,其包含了rgb-d数据,将图像的rgb通道数据作为输入,送入至预设神经网络模型darknet-53中,通过预设神经网络模型darknet-53检测所述图像中的目标类别,实时输出具有目标类别的边界框,此时获得了检测到的目标的类别信息。

进一步地,所述根据所述包含深度信息的共视图数据和检测到的目标计算输出当前环境中的目标数据,包括:

获取所述具有目标类别的边界框的参数信息;

根据所述参数信息与所述包含深度信息的共视图数据计算所述每个边界框的目标距离、方位和坐标。

具体实施时,预设神经网络模型在输出边界框时,会相应监测每个边界框的参数信息,至少包括边界框的中心坐标、宽度和高度,之后根据边界框的参数信息和包含深度信息的共视图数据计算所述每个边界框的目标距离、方位和坐标,具体来说,在得到带有目标类别的边界框后,在边界框存在的像素区域,通过中心点加权法,得到边界框的像素平均深度,从而得到该检测目标的深度信息,即目标距离,之后,根据边界框在图像中占据的宽度和高度,共视图中的水平和垂直视角α、β,以及边界框的中心坐标widx,heighty,根据公式4-1计算出目标相对于光轴中心的偏移角度θx,θy,根据公式(4-2),就能够得到目标在目前相机坐标系中的位置(xc,yc,zc),

从而获取到了每个边界框所对应的目标距离、方位、坐标以及类别信息,实现了环境提示时输出具有目标三维数据以及目标类别信息,有效解决了目前移动环境提示系统中无法对检测目标进行测距、测方位的问题,丰富了环境提示系统的环境数据,使环境提示系统的输出信息更加精确。

进一步优选地,在其他实施例中,还可以采用多目相机实现立体成像,同样可实现环境提示时的目标三维数据输出,同时也可根据实际性能需要采用其他的神经网络模型,本申请对此不作限定。

本发明另一实施例提供一种基于双目相机的环境提示装置,如图4所示,装置10包括双目相机(图中未示出),以及:

一个或多个处理器110以及存储器120,图4中以一个处理器110为例进行介绍,处理器110和存储器120可以通过总线或者其他方式连接,图4中以通过总线连接为例。

处理器110用于完成装置10的各种控制逻辑,其可以为通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)、单片机、arm(acornriscmachine)或其它可编程逻辑器件、分立门或晶体管逻辑、分立的硬件组件或者这些部件的任何组合。还有,处理器110还可以是任何传统处理器、微处理器或状态机。处理器110也可以被实现为计算设备的组合,例如,dsp和微处理器的组合、多个微处理器、一个或多个微处理器结合dsp核、或任何其它这种配置。

存储器120作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本发明实施例中的基于双目相机的环境提示方法对应的程序指令。处理器110通过运行存储在存储器120中的非易失性软件程序、指令以及单元,从而执行装置10的各种功能应用以及数据处理,即实现上述方法实施例中的基于双目相机的环境提示方法。

存储器120可以包括存储程序区和存储数据区,其中,存储程序区可存储操作装置、至少一个功能所需要的应用程序;存储数据区可存储根据装置10使用所创建的数据等。此外,存储器120可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器120可选包括相对于处理器110远程设置的存储器,这些远程存储器可以通过网络连接至装置10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

一个或者多个单元存储在存储器120中,当被一个或者多个处理器110执行时,执行上述任意方法实施例中的基于双目相机的环境提示方法,例如,执行以上描述的图1中的方法步骤s100至步骤s300。

本发明实施例提供了一种非易失性计算机可读存储介质,计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行,例如,执行以上描述的图1中的方法步骤s100至步骤s300。

作为示例,非易失性存储介质能够包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦rom(eeprom)或闪速存储器。易失性存储器能够包括作为外部高速缓存存储器的随机存取存储器(ram)。通过说明丽非限制,ram可以以诸如同步ram(sram)、动态ram、(dram)、同步dram(sdram)、双数据速率sdram(ddrsdram)、增强型sdram(esdram)、synchlinkdram(sldram)以及直接rambus(兰巴斯)ram(drram)之类的许多形式得到。本文中所描述的操作环境的所公开的存储器组件或存储器旨在包括这些和/或任何其他适合类型的存储器中的一个或多个。

本发明的另一种实施例提供了一种计算机程序产品,计算机程序产品包括存储在非易失性计算机可读存储介质上的计算机程序,计算机程序包括程序指令,当程序指令被处理器执行时,使所述处理器执行上述方法实施例的基于双目相机的环境提示方法。例如,执行以上描述的图1中的方法步骤s100至步骤s300。

综上所述,本发明公开的基于双目相机的环境提示方法及装置中,所述方法包括:通过双目相机获取当前环境的包含深度信息的共视图数据;将所述包含深度信息的共视图数据输入至预设神经网络模型,实时输出当前环境中检测到的目标;根据所述包含深度信息的共视图数据和检测到的目标计算输出当前环境中的目标三维数据。本发明实施例通过双目相机获取当前环境的立体空间数据,并通过运行预设神经网络模型实时输出当前环境中检测到的目标,将检测出的目标与立体空间数据融合后输出具有深度信息的目标三维数据,解决了目前移动环境提示系统无法实时检测输出目标深度的问题。

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

通过以上的实施例的描述,本领域的技术人员可以清楚地了解到各实施例可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件实现。基于这样的理解,上述技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存在于计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机电子设备(可以是个人计算机,服务器,或者网络电子设备等)执行各个实施例或者实施例的某些部分的方法。

除了其他之外,诸如"能够'、"能"、"可能"或"可以"之类的条件语言除非另外具体地陈述或者在如所使用的上下文内以其他方式理解,否则一般地旨在传达特定实施方式能包括(然而其他实施方式不包括)特定特征、元件和/或操作。因此,这样的条件语言一般地不旨在暗示特征、元件和/或操作对于一个或多个实施方式无论如何都是需要的或者一个或多个实施方式必须包括用于在有或没有学生输入或提示的情况下判定这些特征、元件和/或操作是否被包括或者将在任何特定实施方式中被执行的逻辑。

已经在本文中在本说明书和附图中描述的内容包括能够提供基于双目相机的环境提示方法及装置的示例。当然,不能够出于描述本公开的各种特征的目的来描述元件和/或方法的每个可以想象的组合,但是可以认识到,所公开的特征的许多另外的组合和置换是可能的。因此,显而易见的是,在不脱离本公开的范围或精神的情况下能够对本公开做出各种修改。此外,或在替代方案中,本公开的其他实施例从对本说明书和附图的考虑以及如本文中所呈现的本公开的实践中可能是显而易见的。意图是,本说明书和附图中所提出的示例在所有方面被认为是说明性的而非限制性的。尽管在本文中采用了特定术语,但是它们在通用和描述性意义上被使用并且不用于限制的目的。

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