本发明涉及一种无人驾驶车用障碍物检测方法,具体涉及一种基于纵向双目视觉的车用障碍物检测方法。
背景技术:
现有的车用障碍物检测方法及系统主要基于系统激光雷达、毫米波雷达或双目视觉技术。公开号为cn105866790a的中国专利提出了一种用激光雷达识别障碍物方法;公开号为cn104899855a的中国专利提出了一种基于双目摄像头系统和三维激光雷达的三维障碍物检测方法;公开号为cn103411536a的中国专利提出了一种环境感知识别障碍物的方法,该方法在两个ccd摄像机采集图像的畸变校正过程中加入了切向畸变校正,进一步有效的提高图像坐标获取的准确性,同时在立体障碍物匹配的过程中加入了极线约束条件,缩小了特征点匹配范围,减少了立体匹配过程的计算量,提高了立体特征匹配的匹配精度;公开号为cn101852609a的中国专利公开了一种基于机器人双目立体视觉的地面障碍物检测方法,采用双目立体视觉传感器识别障碍物,该专利根据双目的基线长度和焦距,利用已知图像的几何构形解析出图像中各行的地面视差值;在地面视差值的基础上,通过反投影模型计算出某像素对应场景点的三维坐标,从而初步判断该像素属于障碍物或是地面点。上述技术虽然能判断出障碍物,但是激光、雷达等传感器成本高,已有双目视觉检测障碍物技术不能直接判断出特征点所对应的物点是否具有高度。
技术实现要素:
为解决上述技术问题,本发明的目的在于:提供一种基于纵向双目视觉的车用障碍物检测方法,可判断特征点所对应的物点是否具有高度,从而判断物点是否属于立体障碍物,使无人驾驶更为安全可靠。
本发明为解决其技术问题所采用的技术方案为:
所述基于纵向双目视觉的车用障碍物检测方法,包括以下步骤:
步骤一、相机选择与安装:在汽车发动机舱盖上安装前置相机,在汽车前挡风玻璃后方安装后置相机;
步骤二、相机参数的获取与保存:获取并保存前置相机和后置相机内部参数及外部参数;
步骤三、图像采集:前置相机和后置相机同时对障碍物进行图像采集,保存图像信息并发送至障碍物特征点匹配模块;
步骤四、图像特征点检测与匹配:障碍物特征点匹配模块检测并匹配同一时刻前置相机所采集图像中的特征点和后置相机所采集图像中的特征点,标记前、后置相机同一时刻的特征点为一对特征点;
步骤五、障碍物判定:障碍物判定模块计算匹配后各对特征点的距离指标,并根据距离指标判断特征点所对应的物点是否属于立体障碍物。
前置相机和后置相机选择同种型号的单目摄像机,规格参数完全一致,前置相机和后置相机用于采集障碍物图像,并通过usb接口将图像传输给障碍物特征点匹配模块进行处理,最后障碍物判定模块计算匹配好的各对特征点的距离指标以判断是否存在立体障碍物。
其中,优选方案为:
步骤一前、后置相机的安装方式为:
所述前置相机与后置相机纵向安装在同一条直线上,前置相机镜头轴线与地面和汽车中轴线平行,后置相机安装方向与前置相机安装方机安装方向为使镜头俯仰角度为0度时,镜向一致。
步骤二所述前置相机和后置相机的相机内部参数包括相机分辨率、帧率和视差角度;步骤二所述前置相机和后置相机的外部参数包括前置相机安装高度h1、后置相机安装高度h2、前置相机与后置相机安装时纵向水平距离△d、前/后置相机焦距f、前置相机俯仰角θ1、后置相机俯仰角θ2、前/后置相机像元尺寸μ。
步骤四中每对特征点的检测采用harris角点判别法,利用水平、垂直差分算子对前置相机拍摄图像每个像素点和后置相机拍摄图像每个像素点进行滤波以求取水平梯度,假设前置相机拍摄图像当前分析的像素点坐标(x,y),假设后置相机当前分析的像素点坐标(u,v),计算像素点(x,y)在x方向和y方向的水平梯度ix和iy,计算像素点(u,v)在x方向和y方向的水平梯度iu和iv,ix2,iy2和ixiy分别为ix和iy之间的两两内积。iu2,iv2和iuiv分别为iu和iv之间的两两内积。首先建立m矩阵,对于像素点(x,y)和像素点(u,v),矩阵m(x,y)和m(u,v)通过下述公式计算:
由m矩阵的表达式可以看出,如果某一点的矩阵m特征值很大,那么在该点任意移动很小的距离,就会引起较大的灰度值的变化,说明该点是一个harris角点。
像素点(x,y)的harris角点值c(x,y)即为矩阵m(x,y)的值与像素点在x方向和y方向的水平梯度ix和iy的和的比值,像素点(u,v)的harris角点值c(u,v)即为矩阵m(u,v)的值与像素点在x方向和y方向的水平梯度iu和iv的和的比值,通过下式计算:
当c(x,y)和c(u,v)的值大于给定的阈值时,则认为该像素点为一个harris角点,每一个harris角点与它所有的相邻点进行比较,与它同尺度的八个相邻点和上下相邻尺度对应的18个点共26个点比较,以确保在尺度空间和图像空间都检测到特征点,一个harris角点若在26个点中是最大或者最小,则该角点为一个特征点。
步骤四中每对特征点匹配采用直方图比较匹配算法,具体过程为:
检测并匹配到某时刻前置相机所采集图像中的特征点和后置相机所采集图像中的特征点共计n对,n为正整数,前置相机所采集图像特征点记为pi,i=1,2,…,n,后置相机所采集图像特征点记为qi,i=1,2,…,n,hpi(k),k=0,1,2,...,l-1,表示特征点pi的局部特征,hqi(k),k=0,1,2,...,l-1,表示特征点qi的局部特征,l表示直方图的维度,直方图匹配d(pi,qi)由下式表示:
当匹配距离d(pi,qi)小于其预设阈值时,认为两个特征点是匹配的,否则为不匹配。
步骤五障碍物判定的计算过程为:
步骤四中检测并匹配到某时刻前置相机所采集图像中的特征点和后置相机所采集图像中的特征点共计n对,n为正整数,定义第i对特征点的距离指标为li,i=1,2,…,n,计算得到前置相机到第i对特征点所对应的物点的距离di,以及后置相机到第i对特征点所对应的物点的距离ti,按照公式li=|ti-di-△d|,△d为前置相机与后置相机安装时纵向水平距离,计算第i对特征点的距离指标li,若第i对特征点的距离指标大于预设阈值,则判断第i对特征点所对应的物点具有高度,该物点属于立体障碍物,否则判断第i对特征点所对应的物点位于水平地面上,该物点不属于立体障碍物。
所述前置相机到第i对特征点所对应的物点的距离di计算过程为:
以前置相机采集图像左上角为原点建立以像素为单位的直角坐标系,将该直角坐标系作为前置相机所采集图像的图像坐标系,设前置相机采集图像的中点坐标为(x0,y0),第i对特征点中前置相机所采集图像的特征点的坐标为(xi,yi),按照公式
计算前置相机到第i对特征点所对应的物点的距离di,上式中,h1为前置相机安装高度、f为前/后置相机焦距、θ1为前置相机俯仰角、μ为前/后置相机像元尺寸,前置相机和后置相机型号相同。
所述后置相机到第i对特征点所对应的物点的距离ti计算过程为:
以后置相机采集图像左上角为原点建立以像素为单位的直角坐标系,将该直角坐标系作为后置相机所采集图像的图像坐标系,设后置相机采集图像的中点坐标为(u0,v0),第i对特征点中后置相机所采集图像的特征点的坐标为(ui,vi),按照公式
计算后置相机到第i对特征点所对应的物点的距离ti,上式中,h2为后置相机安装高度、θ2为后置相机俯仰角、f为前/后置相机焦距、μ为前/后置相机像元尺寸,前置相机和后置相机型号相同。
步骤五中所述判断特征点所对应的物点是否属于立体障碍物,其判断方法为:设第i对特征点的距离指标为li,设阈值为a,若li>a,则判断第i对特征点所对应的物点具有高度,该物点属于立体障碍物,若li≤a,则判断第i对特征点所对应的物点位于水平地面上,该物点不属于立体障碍物。
与现有技术相比,本发明具有以下有益效果:
本发明前置相机和后置相机选择同种型号的单目摄像机,规格参数完全一致,检测障碍物的成本较低,前置相机和后置相机用于采集障碍物图像,并通过usb接口将图像传输给障碍物特征点匹配模块进行处理,最后障碍物判定模块计算匹配好的各对特征点的距离指标以判断是否存在立体障碍物,解决了其他的基于双目视觉的障碍物检测方法不能直接判断特征点所对应的物点是否具有高度的缺陷,使无人驾驶更为安全可靠。
附图说明
图1是本发明流程图。
图2是本发明前、后置相机安装示意图。
图中:1、汽车;2、前置相机;3、后置相机。
具体实施方式
下面结合附图对本发明实施例做进一步描述:
实施例1:
如图1-2所示,本发明所述基于纵向双目视觉的车用障碍物检测方法,包括以下步骤:
步骤一、相机选择与安装:在汽车1发动机舱盖上安装前置相机2,在汽车1前挡风玻璃后方安装后置相机3;
步骤二、相机参数的获取与保存:获取并保存前置相机2和后置相机3内部参数及外部参数;
步骤三、图像采集:前置相机2和后置相机3同时对障碍物进行图像采集,保存图像信息并发送至障碍物特征点匹配模块;
步骤四、图像特征点检测与匹配:障碍物特征点匹配模块检测并匹配同一时刻前置相机2所采集图像中的特征点和后置相机3所采集图像中的特征点,标记前、后置相机同一时刻的特征点为一对特征点;
步骤五、障碍物判定:障碍物判定模块计算匹配后各对特征点的距离指标,并根据距离指标判断特征点所对应的物点是否属于立体障碍物。
前置相机2和后置相机3用于采集障碍物图像,并通过usb接口将图像传输给障碍物特征点匹配模块进行处理,前置相机2和后置相机3选择同种型号的单目摄像机,规格参数完全一致,例如名称为mynteye的小觅单目摄像机,相机的分辨率为752*480,帧率为60fps,视差角度为150°,障碍物特征点匹配模块采用一台高性能gpu服务器,例如型号为nvidiagtx1070的gpu,显存为8gb,用于两台相机所拍摄障碍物特征点检测与匹配,障碍物判定模块可采用计算机,例如cpu为i5-6500,内存12gb的计算机。
步骤一中前、后置相机3的安装方式为:
所述前置相机2与后置相机3纵向安装在同一条直线上,前置相机2镜头轴线与地面和汽车1中轴线平行,后置相机3安装方向与前置相机2安装方机安装方向为使镜头俯仰角度为0度时,镜向一致。
步骤二所述前置相机2和后置相机3的相机内部参数包括相机分辨率、帧率和视差角度;步骤二所述前置相机2和后置相机3的外部参数包括前置相机2安装高度h1、后置相机3安装高度h2、前置相机2与后置相机3安装时纵向水平距离△d、前/后置相机焦距f、前置相机2俯仰角θ1、后置相机3俯仰角θ2、前/后置相机像元尺寸μ。
步骤四中每对特征点的检测采用harris角点判别法,利用水平、垂直差分算子对前置相机拍摄图像每个像素点和后置相机拍摄图像每个像素点进行滤波以求取水平梯度,假设前置相机拍摄图像当前分析的像素点坐标(x,y),假设后置相机当前分析的像素点坐标(u,v),计算像素点(x,y)在x方向和y方向的水平梯度ix和iy,计算像素点(u,v)在x方向和y方向的水平梯度iu和iv,ix2,iy2和ixiy分别为ix和iy之间的两两内积。iu2,iv2和iuiv分别为iu和iv之间的两两内积。首先建立m矩阵,对于像素点(x,y)和像素点(u,v),矩阵m(x,y)和m(u,v)通过下述公式计算:
由m矩阵的表达式可以看出,如果某一点的矩阵m特征值很大,那么在该点任意移动很小的距离,就会引起较大的灰度值的变化,说明该点是一个harris角点。
像素点(x,y)的harris角点值c(x,y)即为矩阵m(x,y)的值与像素点在x方向和y方向的水平梯度ix和iy的和的比值,像素点(u,v)的harris角点值c(u,v)即为矩阵m(u,v)的值与像素点在x方向和y方向的水平梯度iu和iv的和的比值,通过下式计算:
当c(x,y)和c(u,v)的值大于给定的阈值时,则认为该像素点为一个harris角点,每一个harris角点与它所有的相邻点进行比较,与它同尺度的八个相邻点和上下相邻尺度对应的18个点共26个点比较,以确保在尺度空间和图像空间都检测到特征点,一个harris角点若在26个点中是最大或者最小,则该角点为一个特征点。
步骤四中每对特征点匹配采用直方图比较匹配算法,具体过程为:
检测并匹配到某时刻前置相机2所采集图像中的特征点和后置相机3所采集图像中的特征点共计n对,n为正整数,前置相机2所采集图像特征点记为pi,i=1,2,…,n,后置相机3所采集图像特征点记为qi,i=1,2,…,n,hpi(k),k=0,1,2,...,l-1,表示特征点pi的局部特征,hqi(k),k=0,1,2,...,l-1,表示特征点qi的局部特征,l表示直方图的维度,直方图匹配d(pi,qi)由下式表示:
当匹配距离d(pi,qi)小于其预设阈值时,认为两个特征点是匹配的,否则为不匹配,特征点局部特征函数hpi(k)、hqi(k)一般取像素值或者灰度值函数,局部特征函数属于本领域技术人员公知常识,此处不赘述。
步骤五障碍物判定的计算过程为:
步骤四中检测并匹配到某时刻前置相机2所采集图像中的特征点和后置相机3所采集图像中的特征点共计n对,n为正整数,定义第i对特征点的距离指标为li,i=1,2,…,n,计算得到前置相机2到第i对特征点所对应的物点的距离di,以及后置相机3到第i对特征点所对应的物点的距离ti,按照公式li=|ti-di-△d|,计算第i对特征点的距离指标li,若第i对特征点的距离指标大于预设阈值,则判断第i对特征点所对应的物点具有高度,该物点属于立体障碍物,否则判断第i对特征点所对应的物点位于水平地面上,该物点不属于立体障碍物。
所述前置相机2到第i对特征点所对应的物点的距离di计算过程为:
以前置相机2采集图像左上角为原点建立以像素为单位的直角坐标系,将该直角坐标系作为前置相机2所采集图像的图像坐标系,设前置相机2采集图像的中点坐标为(x0,y0),第i对特征点中前置相机2所采集图像的特征点的坐标为(xi,yi),按照公式
计算前置相机到第i对特征点所对应的物点的距离di,上式中,h1为前置相机安装高度、f为前/后置相机焦距、θ1为前置相机俯仰角、μ为前/后置相机像元尺寸,前置相机和后置相机型号相同。
所述后置相机3到第i对特征点所对应的物点的距离ti计算过程为:
以后置相机3采集图像左上角为原点建立以像素为单位的直角坐标系,将该直角坐标系作为后置相机3所采集图像的图像坐标系,设后置相机3采集图像的中点坐标为(u0,v0),第i对特征点中后置相机3所采集图像的特征点的坐标为(ui,vi),按照公式
计算后置相机3到第i对特征点所对应的物点的距离ti,上式中,h2为后置相机安装高度、θ2为后置相机俯仰角、f为前/后置相机焦距、μ为前/后置相机像元尺寸,前置相机和后置相机型号相同。
步骤五中所述判断特征点所对应的物点是否属于立体障碍物,其判断方法为:设第i对特征点的距离指标为li,设阈值为a,若li>a,则判断第i对特征点所对应的物点具有高度,该物点属于立体障碍物,若li≤a,则判断第i对特征点所对应的物点位于水平地面上,该物点不属于立体障碍物。