机动车行驶前方物体视频测距及方向定位方法
技术领域
本发明属于智能交通技术领域,具体涉及一种机动车行驶前方物体视频测距及方向定位方法。
背景技术
在安全辅助驾驶系统中获得车辆行驶环境的信息全面性、信息准确性、信息可靠性直接决定安全系统的有效性和实用性。目前车辆行驶环境识别主要依靠雷达技术以及红外线、GPS等辅助技术来实现的。但是,在采用雷达技术进行机动车行驶前方物体测距时,由于前方测距雷达测量范围很大,车辆在道路中行驶状况十分复杂,并线、移线、转弯、上下坡以及道路两旁的静态护栏、标志牌,还有各种恶劣天气的影响等,使得雷达对主目标的识别十分困难,误报率很高;而且,从经济方面考虑,目前的雷达测距主要技术掌握在国外大公司的手中,比较昂贵。
随着计算机视觉技术的发展,利用摄像机采集视频,进行机动车前方物体如人、车辆和图标识别,并通过图像测量距离正成为智能交通系统中的一种趋势。采用传统的图像测距,目标识别和测距,首先对目标识别是非常重要的。通常是自己先设置好车与车的间距,车在高速上行驶的时候,驾车人可以自己行调节车的巡航速度,如100KM,120KM等等,设置好后,车会自己动向前行驶,方向还是要自己控制的,只是可以不要踩油门。当前方有车时,行车电脑会自己检测,并自己保待好车的间距。并向前行驶,车间距过近时,电脑会自己降低速度,保待车距。但是,高速公路上车流量大,工作环境复杂,很多高效的测距方案比如三维重建等在这里都只能望而却步。因此,急需研究机动车行驶前方物体视频测距及方向定位的方法。
发明内容
本发明所要解决的技术问题在于针对上述现有技术中的不足,提供一种机动车行驶前方物体视频测距及方向定位方法,其方法步骤新颖合理,实现方便,功能完备,不仅能够计算出机动车与其周围的车辆和人的距离,还能够准确获知车辆和人的方向性,能够为驾驶员辅助驾驶提供很好的指导意义,实用性强,推广应用价值高。
为解决上述技术问题,本发明采用的技术方案是:一种机动车行驶前方物体视频测距及方向定位方法,其特征在于,该方法包括以下步骤:
步骤一、安装在机动车顶部的相机拍摄两幅鱼眼图像,并将两幅鱼眼图像传输给安装在机动车驾驶室内的计算机;
步骤二、所述计算机分别对两幅鱼眼图像进行误差矫正,得到误差矫正后的两幅半球鱼眼图像;
步骤三、所述计算机将误差矫正后的两幅半球鱼眼图像中显示机动车左侧图像的一幅顺时针方向旋转90°,显示机动车右侧图像的一幅逆时针方向旋转90°;然后再将两幅图像合成为一幅球面图像;
步骤四、所述计算机查询其预先建立的球面图像上点的经纬度信息与全景图像像素点坐标的对应关系表,将球面图像上的点投影到全景图像上,得到全景图像;
步骤五、所述计算机调用二次线性插值图像处理模块对全景图像进行平滑处理;
步骤六、所述计算机将经过步骤五平滑处理后的全景图像输入预先训练好的faster-RCNN网络模型中,得到faster-RCNN网络模型的输出,faster-RCNN网络模型的输出中提取出了机动车周围的车辆、人和图标信息;
步骤七、所述计算机根据图像块像素大小计算机动车与其周围的车辆的距离和机动车与其周围人的距离;
步骤八、所述计算机查询其预先建立的球面图像上点的经纬度信息与全景图像像素点坐标的对应关系表,将全景图像上的点投影到球面图像上,得到球面图像上检测的车辆或人的方向。
上述的机动车行驶前方物体视频测距及方向定位方法,其特征在于:步骤四和步骤八中所述计算机建立球面图像上点的经纬度信息与全景图像像素点坐标的对应关系表的过程为:
步骤A、设定将球面图像映射到三维柱面模型上的仰角β;
步骤B、以球面图像的半径rsphere为基准,得到全景图像的长度wimg=2πrsphere,全景图像的宽度himg=rspheretanβ,rfish为半球鱼眼图像的半径;
步骤C、根据公式以全景图像上点的坐标(xcyl,ycyl)为基准,获取三维柱面上点的坐标(x,y,z),建立三维柱面与全景图像像素点坐标的对应关系表;
步骤D、根据公式将三维柱面上的点投影到单位球上,得到单位球上点的坐标(xunit,yunit,zunit),建立单位球与三维柱面图像像素点坐标的对应关系表;
步骤E、根据公式以单位球上点的坐标(xunit,yunit,zunit)为基准,获取球面图像上点的经纬度信息并建立球面图像上点的经纬度信息与单位球图像像素点坐标的对应关系表;
步骤F、先根据步骤D中建立的单位球与三维柱面图像像素点坐标的对应关系表和步骤E中建立的球面图像上点的经纬度信息与单位球图像像素点坐标的对应关系表,建立球面图像上点的经纬度信息与三维柱面图像像素点坐标的对应关系表,再结合步骤C中建立的三维柱面与全景图像像素点坐标的对应关系表,建立球面图像上点的经纬度信息与全景图像像素点坐标的对应关系表。
上述的机动车行驶前方物体视频测距及方向定位方法,其特征在于:步骤A中所述β的取值范围为0°~90°。
上述的机动车行驶前方物体视频测距及方向定位方法,其特征在于:步骤六中所述计算机预先训练faster-RCNN网络模型的具体过程为:
步骤601、构建RPN卷积神经网络和faster-RCNN卷积神经网络,所述RPN卷积神经网络由八个卷积层和一个Softmax层构成,所述faster-RCNN卷积神经网络由五个卷积层、一个ROIpooling层、四个全连接层和一个Softmax层构成;
步骤602、对RPN卷积神经网络进行初始化,用不同的小随机数初始化网络中待训练参数;
步骤603、将车辆图像、人图像和图标图像分别作为输入的训练样本图像,对输入的训练样本图像赋予多个尺度和多个比例的基准框,通过向初始化后的RPN卷积神经网络中输入训练样本图像的基准框来训练RPN,使用反向传播BP算法,调整RPN卷积神经网络参数,使损失函数值最小;
步骤604、在训练样本图像上运用训练好的RPN卷积神经网络模型,得到训练样本集的车辆、人和图标粗选框;
步骤605、对faster-RCNN卷积神经网络进行初始化,用不同的小随机数初始化网络中待训练参数;
步骤606、输入训练样本图像和步骤604中获得的训练样本集的车辆、人和图标粗选框,对输入的训练样本图像每一点都赋予多个尺度和多个比例的基准框,通过向初始化后的faster-RCNN卷积神经网络中输入训练样本图像的基准框,并结合样本集的标注和标签来训练faster-RCNN,使用反向传播BP算法,调整RPN卷积神经网络参数,使损失函数值最小,得到训练好的faster-RCNN卷积神经网络;
步骤607、重新训练RPN卷积神经网络,将RPN卷积神经网络的前五层卷积层学习率设为0,参数finetune来自步骤606的faster-RCNN卷积神经网络模型,训练得到新的RPN卷积神经网络模型;
步骤608、在训练样本图像上运用新训练好的RPN卷积神经网络模型,重新得到训练样本集的车辆、人和图标粗选框;
步骤609、重新训练faster-RCNN卷积神经网络,将faster-RCNN卷积神经网络的前五层卷积层学习率设为0,参数finetune来自步骤608中的RPN卷积神经网络模型,使用训练样本集和步骤608中的训练样本集的车辆、人和图标粗选框标注,重新训练得到新的faster-RCNN卷积神经网络模型。
上述的机动车行驶前方物体视频测距及方向定位方法,其特征在于:步骤七中所述计算机根据图像块像素大小计算机动车与其周围的车辆的距离和机动车与其周围人的距离的具体方法为:
步骤701、将相机安装点定义为A点,将A点垂直于地平面的点定义为O点,将相机视点与地平面相交的点定义为B点,将直线AB与图像平面的交点定义为B′点,将B′点在直线AO上的投影点定义为F点,将∠0AB定义为θ角;当相机安装好后,直线AO的长度、直线FB′的长度和θ角为已知量;
步骤702、分检测到的机动车周围车辆或人在机动车的正前方和检测到的机动车周围车辆或人偏离正中位置的角度为α两种情况,计算机动车与其周围的车辆的距离和机动车与其周围人的距离,具体方法为:
当检测到的机动车周围车辆或人在机动车的正前方时,首先,将检测到机动车周围车辆或人与地面的交点定义为C点或D点,将直线AC与图像平面的交点定义为C′点,将直线AD与图像平面的交点定义为C″点,将C′点在直线AO上的投影点定义为E点,将C″点在直线AO上的投影点定义为G点;此时,FB′=EC′=GC″,B′、C′、C″在图像平面上共线;接着,根据公式OB=AO·tanθ计算得到直线OB的长度,并根据公式计算得到直线AF的长度;然后,根据公式计算得到直线OC的长度,并根据公式计算得到直线OD的长度;最后,将直线OC的长度存储为当检测到的机动车周围车辆或人与地面的交点为C点时机动车与其周围的车辆或人的距离,并将直线OD的长度存储为当检测到的机动车周围车辆或人与地面的交点为D点时机动车与其周围的车辆或人的距离;
当检测到的机动车周围车辆或人偏离正中位置的角度为α时,首先,将检测到机动车周围车辆或人与地面的交点定义为H点,将直线OH与图像平面的交点定义为H′点,将直线B′H′与直线OC的交点定义为H″点,将H点在直线OC上的投影点定义为I点,将直线AI与图像平面的交点定义为I′点,将I′点在直线AO上的投影点定义为I″点;此时,OH″=FB′;然后,根据公式计算得到角度α的大小,并根据公式计算得到直线OI的长度;最后,根据公式OH=OI/cosα计算得到直线OH的长度,并将直线OH的长度存储为当检测到的机动车周围车辆或人与地面的交点为H点时机动车与其周围的车辆或人的距离。
本发明与现有技术相比具有以下优点:
1、本发明首先对两幅鱼眼图像进行误差矫正,其次将两幅图像合成为一幅球面图像,再将球面图像上的点投影到全景图像上得到全景图像,最后将全景图像采用faster-RCNN网络,在全景图像上提出车辆周围的车辆、人、图标信息,进一步根据图像块像素大小计算车距、离人的距离,同时能检测路标等,能标定出车和人的方位信息;方法步骤新颖合理,实现方便。
2、本发明在步骤四中将球面图像上的点投影到全景图像上得到全景图像时,以及在步骤八中将全景图像上的点投影到球面图像上得到球面图像上检测的车辆或人的方向时,均通过查询其预先建立的球面图像上点的经纬度信息与全景图像像素点坐标的对应关系表获得,因此,预先只需建立球面图像上点的经纬度信息与全景图像像素点坐标的对应关系表并存储,就能够用于两个步骤,且减小了来回转换带来的误差,能够获得更为精确的车和人的方位信息。
3、本发明通过搭建faster-RCNN网络模型,在全景图像上实现端到端的车辆和行人检测,网络模型训练方法,且一次输入测试图像,便能够得到精确的车辆、人和图标识别结果,效率高,准确性高。
4、本发明通过三角关系,利用根据图像块像素大小计算机动车与其周围的车辆的距离和机动车与其周围人的距离,方法简单实用,精确度高。
5、本发明不仅能够计算出机动车与其周围的车辆的距离和机动车与其周围人的距离,还能够准确获知车辆或人的方向性,能够为驾驶员辅助驾驶提供很好的指导意义,功能完备,实用性强,推广应用价值高。
综上所述,本发明方法步骤新颖合理,实现方便,功能完备,不仅能够计算出机动车与其周围的车辆和人的距离,还能够准确获知车辆和人的方向性,能够为驾驶员辅助驾驶提供很好的指导意义,实用性强,推广应用价值高。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
图1为本发明的方法流程框图。
图2A为本发明具体实施例中步骤一拍摄到的第一幅鱼眼图像。
图2B为本发明具体实施例中步骤一拍摄到的第二幅鱼眼图像。
图3A为本发明将误差矫正后的图2A顺时针方向旋转90°得到的半球鱼眼图像。
图3B为本发明将误差矫正后的图2B逆时针方向旋转90°得到的半球鱼眼图像。
图3C为本发明将图3A和图3B合成得到的球面图像。
图4为本发明将图3C中的球面图像上的点投影到全景图像上得到的全景图像。
图5为本发明计算机动车与其周围的车辆或人的距离的示意图。
具体实施方式
如图1所示,本发明的机动车行驶前方物体视频测距及方向定位方法,包括以下步骤:
步骤一、安装在机动车顶部的相机拍摄两幅鱼眼图像,并将两幅鱼眼图像传输给安装在机动车驾驶室内的计算机;
具体实施时,通过安装在机动车顶部的一台具有两个背靠背的鱼眼镜头的相机拍摄两幅鱼眼图像,或者通过安装在机动车顶部的两台鱼眼相机拍摄两幅鱼眼图像;
本实施例中,图2A为步骤一拍摄到的第一幅鱼眼图像,图2B为步骤一拍摄到的第二幅鱼眼图像;
步骤二、所述计算机分别对两幅鱼眼图像进行误差矫正,得到误差矫正后的两幅半球鱼眼图像;
具体实施时,分别对两幅鱼眼图像进行误差矫正时,均进行了径向畸变矫正和切向畸变矫正。
步骤三、所述计算机将误差矫正后的两幅半球鱼眼图像中显示机动车左侧图像的一幅顺时针方向旋转90°,显示机动车右侧图像的一幅逆时针方向旋转90°;然后再将两幅图像合成为一幅球面图像;
本实施例中,图3A为将误差矫正后的图2A顺时针方向旋转90°得到的半球鱼眼图像,图3B为将误差矫正后的图2B逆时针方向旋转90°得到的半球鱼眼图像,图3C为将图3A和图3B合成得到的球面图像。
步骤四、所述计算机查询其预先建立的球面图像上点的经纬度信息与全景图像像素点坐标的对应关系表,将球面图像上的点投影到全景图像上,得到全景图像;
本实施例中,将图3C中的球面图像上的点投影到全景图像上,得到的全景图像如图4所示。
步骤五、所述计算机调用二次线性插值图像处理模块对全景图像进行平滑处理;
步骤六、所述计算机将经过步骤五平滑处理后的全景图像输入预先训练好的faster-RCNN网络模型中,得到faster-RCNN网络模型的输出,faster-RCNN网络模型的输出中提取出了机动车周围的车辆、人和图标信息;
本实施例中,步骤六中所述计算机预先训练faster-RCNN网络模型的具体过程为:
步骤601、构建RPN卷积神经网络和faster-RCNN卷积神经网络,所述RPN卷积神经网络由八个卷积层和一个Softmax层构成,所述faster-RCNN卷积神经网络由五个卷积层、一个ROIpooling层、四个全连接层和一个Softmax层构成;
步骤602、对RPN卷积神经网络进行初始化,用不同的小随机数初始化网络中待训练参数;
步骤603、将车辆图像、人图像和图标图像分别作为输入的训练样本图像,对输入的训练样本图像赋予多个尺度和多个比例的基准框,通过向初始化后的RPN卷积神经网络中输入训练样本图像的基准框来训练RPN,使用反向传播BP算法,调整RPN卷积神经网络参数,使损失函数值最小;
步骤604、在训练样本图像上运用训练好的RPN卷积神经网络模型,得到训练样本集的车辆、人和图标粗选框;
步骤605、对faster-RCNN卷积神经网络进行初始化,用不同的小随机数初始化网络中待训练参数;
步骤606、输入训练样本图像和步骤604中获得的训练样本集的车辆、人和图标粗选框,对输入的训练样本图像每一点都赋予多个尺度和多个比例的基准框,通过向初始化后的faster-RCNN卷积神经网络中输入训练样本图像的基准框,并结合样本集的标注和标签来训练faster-RCNN,使用反向传播BP算法,调整RPN卷积神经网络参数,使损失函数值最小,得到训练好的faster-RCNN卷积神经网络;
步骤607、重新训练RPN卷积神经网络,将RPN卷积神经网络的前五层卷积层学习率设为0,参数finetune来自步骤606的faster-RCNN卷积神经网络模型,训练得到新的RPN卷积神经网络模型;
步骤608、在训练样本图像上运用新训练好的RPN卷积神经网络模型,重新得到训练样本集的车辆、人和图标粗选框;
步骤609、重新训练faster-RCNN卷积神经网络,将faster-RCNN卷积神经网络的前五层卷积层学习率设为0,参数finetune来自步骤608中的RPN卷积神经网络模型,使用训练样本集和步骤608中的训练样本集的车辆、人和图标粗选框标注,重新训练得到新的faster-RCNN卷积神经网络模型。
步骤七、所述计算机根据图像块像素大小计算机动车与其周围的车辆的距离和机动车与其周围人的距离;
本实施例中,步骤七中所述计算机根据图像块像素大小计算机动车与其周围的车辆的距离和机动车与其周围人的距离的具体方法为:
步骤701、将相机安装点定义为A点,将A点垂直于地平面的点定义为O点,将相机视点与地平面相交的点定义为B点,将直线AB与图像平面的交点定义为B′点(B′点的位置在图像上为定点),将B′点在直线AO上的投影点定义为F点,将∠0AB定义为θ角;当相机安装好后,直线AO的长度、直线FB′的长度和θ角为已知量;具体的示意如图5所示,图5中,虚线框为图像平面;图像平面上点与点之间的距离,即直线的长度是已知的,根据像素即可获知。
步骤702、分检测到的机动车周围车辆或人在机动车的正前方和检测到的机动车周围车辆或人偏离正中位置的角度为α两种情况,计算机动车与其周围的车辆的距离和机动车与其周围人的距离,具体方法为:
当检测到的机动车周围车辆或人在机动车的正前方时,首先,将检测到机动车周围车辆或人与地面的交点定义为C点或D点,将直线AC与图像平面的交点定义为C′点,将直线AD与图像平面的交点定义为C″点,将C′点在直线AO上的投影点定义为E点,将C″点在直线AO上的投影点定义为G点;此时,FB′=EC′=GC″,B′、C′、C″在图像平面上共线;接着,根据公式OB=AO·tanθ计算得到直线OB的长度,并根据公式计算得到直线AF的长度;然后,根据公式计算得到直线OC的长度,并根据公式计算得到直线OD的长度;最后,将直线OC的长度存储为当检测到的机动车周围车辆或人与地面的交点为C点时机动车与其周围的车辆或人的距离,并将直线OD的长度存储为当检测到的机动车周围车辆或人与地面的交点为D点时机动车与其周围的车辆或人的距离;
当检测到的机动车周围车辆或人偏离正中位置的角度为α时,首先,将检测到机动车周围车辆或人与地面的交点定义为H点,将直线OH与图像平面的交点定义为H′点,将直线B′H′与直线OC的交点定义为H″点,将H点在直线OC上的投影点定义为I点,将直线AI与图像平面的交点定义为I′点,将I′点在直线AO上的投影点定义为I″点;此时,OH″=FB′;然后,根据公式计算得到角度α的大小,并根据公式计算得到直线OI的长度;最后,根据公式OH=OI/cosα计算得到直线OH的长度,并将直线OH的长度存储为当检测到的机动车周围车辆或人与地面的交点为H点时机动车与其周围的车辆或人的距离。
步骤八、所述计算机查询其预先建立的球面图像上点的经纬度信息与全景图像像素点坐标的对应关系表,将全景图像上的点投影到球面图像上,得到球面图像上检测的车辆或人的方向。
本实施例中,步骤四和步骤八中所述计算机建立球面图像上点的经纬度信息与全景图像像素点坐标的对应关系表的过程为:
步骤A、设定将球面图像映射到三维柱面模型上的仰角β;
本实施例中,步骤A中所述β的取值范围为0°~90°。通过设置仰角β能够改变得到的全景图像的分辨率;本实施例中,具体设置β为45°。
步骤B、以球面图像的半径rsphere为基准,得到全景图像的长度wimg=2πrsphere,全景图像的宽度himg=rspheretanβ,rfish为半球鱼眼图像的半径;
步骤C、根据公式以全景图像上点的坐标(xcyl,ycyl)为基准,获取三维柱面上点的坐标(x,y,z),建立三维柱面与全景图像像素点坐标的对应关系表;
步骤D、根据公式将三维柱面上的点投影到单位球上,得到单位球上点的坐标(xunit,yunit,zunit),建立单位球与三维柱面图像像素点坐标的对应关系表;
步骤E、根据公式以单位球上点的坐标(xunit,yunit,zunit)为基准,获取球面图像上点的经纬度信息并建立球面图像上点的经纬度信息与单位球图像像素点坐标的对应关系表;
步骤F、先根据步骤D中建立的单位球与三维柱面图像像素点坐标的对应关系表和步骤E中建立的球面图像上点的经纬度信息与单位球图像像素点坐标的对应关系表,建立球面图像上点的经纬度信息与三维柱面图像像素点坐标的对应关系表,再结合步骤C中建立的三维柱面与全景图像像素点坐标的对应关系表,建立球面图像上点的经纬度信息与全景图像像素点坐标的对应关系表。
以上所述,仅是本发明的较佳实施例,并非对本发明作任何限制,凡是根据本发明技术实质对以上实施例所作的任何简单修改、变更以及等效结构变化,均仍属于本发明技术方案的保护范围内。