本发明属于汽车安全领域,具体涉及基于深度数据和鱼眼图像的汽车a柱盲区透视方法。
背景技术:
总所周知,汽车有a柱、b柱和c柱。驾驶员在驾驶中经常会受到a柱盲区的干扰。
汽车盲区透视系统在国内有一定的研究基础,杭州鸿泉数字设备有限公司设计的鸿泉盲区监控系统。大众和一汽公司也进行了相关的研究,但是他们设计的系统都存在以下一些共同的问题:
1、大多数系统在汽车上安装固定的摄像头,人体移动的时候只能看到固定的画面,缺乏真实感;
2、人体在远离或靠近摄像头时,摄像头所呈现的画面没有改变;
3、对人体移动来说,缺乏深度信息;从司机观察角度来说,视角比较小。
技术实现要素:
发明目的:本发明针对上述现有技术存在的问题做出改进,即本发明公开了基于深度数据和鱼眼图像的汽车a柱盲区透视方法。
为了解决上述问题,选取了韩国meerecompany公司的cubeeye深度摄像头、pc机以及鱼眼相机搭建了一个透视系统:
其中采用cubeeye深度摄像头采集深度数据视频信息,采用鱼眼相机获取鱼眼视频流数据,
深度摄像头设于司机座位的右上方,能监测到司机头部和基本的肢体运动,
鱼眼相机设于车辆a柱的中央,镜头对外,镜头光心方向与地面平行,
深度摄像头的输出端、鱼眼相机的输出端与通过usb通信方式与pc机通信互联,pc机的输出端通过蓝牙与报警模块的输入端相连。当检测到司机头部超出范围,则通过蓝牙发出报警信息,报警模块(喇叭)随即发出警报。
技术方案:基于深度数据和鱼眼图像的汽车a柱盲区透视方法,包括以下步骤:
(1)、获取前景深度信息;
(2)、对步骤(1)得到的前景深度信息进行去噪处理,通过位置关系,提取头部位置的二值图像,实时计算驾驶员与深度摄像头的距离;
(3)、通过鱼眼相机采集鱼眼视频流数据,将采集到的鱼眼视频流数据的每一帧图像基于球面模型依次校正径向误差、切向误差、光心误差后生成球面图像;
(4)、以深度摄像头探测的头部移动的距离构成以深度摄像头为坐标中心的世界坐标系,得到x、y、z三个坐标值;
(5)、将获取头部x、y、z坐标作为球面图像的球心,z为球面图像的焦距,生成不同视角大小的透视图像;
(6)、实时检测司机的头部移动是否超出预先设置的范围,若超出,则通过报警模块发出警报。
进一步地,步骤(1)包括以下步骤:
(11)通过深度摄像头实时采集深度数据视频流;
(12)将采集的深度数据视频流的每一帧图像采用高斯滤波获取滤波图像;
(13)对所得的高斯图像与背景图像进行差分得到差分图像,
(14)将差分图像进行拉伸变换得到拉伸后的差分图像;
(15)将将拉伸后的差分图像进行腐蚀膨胀滤波,计算图像的平均像素值作为阈值,基于该阈值获取二值图像;
(16)将二值图像中的小块区域去除,获取二值图像中的大块区域,其中:大块区域包括驾驶员的头部和身体部分;
(17)从二值图像的第一行开始扫描,获取最大程度接近椭圆的部分作为驾驶员头部区域,即得到前景深度信息。
有益效果:本发明公开的基于深度数据和鱼眼图像的汽车a柱盲区透视方法具有以下有益效果:
1、深度相机和鱼眼相机都连接在pc上,所以使得整个系统快速可靠;
2、不仅可以实时检测人的头部坐标,即驾驶员头部移动信息,同时借助于球面模型可以实时生成透视图像,消除汽车的a柱盲区;
3、提出了基于深度数据的人体头部检测方法。
附图说明
图1为透视系统的示意图;
图2为本发明公开的基于深度数据和鱼眼图像的汽车a柱盲区透视方法的流程图;
图3是获取前景深度信息的流程图;
图4是基于球面图像的透视图像示意图。
具体实施方式:
下面对本发明的具体实施方式详细说明。
如图1所示,选取了韩国meerecompany公司的cubeeye深度摄像头、pc机以及鱼眼相机搭建了一个透视系统:
其中采用cubeeye深度摄像头采集深度数据视频信息,采用鱼眼相机获取鱼眼视频流数据,
深度摄像头设于司机座位的右上方,能监测到司机头部和基本的肢体运动,
鱼眼相机设于车辆a柱的中央,镜头对外,镜头光心方向与地面平行,
深度摄像头的输出端、鱼眼相机的输出端与通过usb通信方式与pc机通信互联,pc机的输出端通过蓝牙与报警模块的输入端相连。当检测到司机头部超出范围,则通过蓝牙发出报警信息,报警模块(喇叭)随即发出警报。
如图2所示,基于深度数据和鱼眼图像的汽车a柱盲区透视方法,包括以下步骤:
(1)、获取前景深度信息;
(2)、对步骤(1)得到的前景深度信息进行去噪处理,通过位置关系,提取头部位置的二值图像,实时计算驾驶员与深度摄像头的距离;
(3)、通过鱼眼相机采集鱼眼视频流数据,将采集到的鱼眼视频流数据的每一帧图像基于球面模型依次校正径向误差、切向误差、光心误差后生成球面图像;
(4)、以深度摄像头探测的头部移动的距离构成以深度摄像头为坐标中心的世界坐标系,得到x、y、z三个坐标值;
(5)、将获取头部x、y、z坐标作为球面图像的球心,z为球面图像的焦距,生成不同视角大小的透视图像;
(6)、实时检测司机的头部移动是否超出预先设置的范围,若超出,则通过报警模块发出警报。
进一步地,如图3所示,步骤(1)包括以下步骤:
(11)通过深度摄像头实时采集深度数据视频流;
(12)将采集的深度数据视频流的每一帧图像采用高斯滤波获取滤波图像;
(13)对所得的高斯图像与背景图像进行差分得到差分图像,
(14)将差分图像进行拉伸变换得到拉伸后的差分图像,即将差分图像中最大值映射到255,最小值映射到0;
(15)将将拉伸后的差分图像进行腐蚀膨胀滤波,计算图像的平均像素值作为阈值,基于该阈值获取二值图像,即大于该阈值为255小于该阈值为0;
(16)将二值图像中的小块区域去除,获取二值图像中的大块区域,其中:大块区域包括驾驶员的头部和身体部分;
(17)从二值图像的第一行开始扫描,获取最大程度接近椭圆的部分作为驾驶员头部区域,即得到前景深度信息。
步骤(2)根据头部图像块计算头部二值图像的重心(x,y),再次统计头部图像块中每个像素的深度信息,
假设图像块中有n个像素,pn对应的深度值,则深度信息
距离是指深度图像上像素的值,重心是指通过差分图像得到的二值图像后获取头部区域的重心位置。在二值图像上计算的重心位置即头部的中心,该位置在深度图像上对应于像素点的值为头部到相机的距离。所以距离值深度图像上的值,重心是二值图像上的位置。
如图4所示,步骤(5)中,当检测到头部远离相机时,距离为d0(d0>1.4m),焦距f发生变化,即f=220+(d0-1.4)*50;当检测到头部靠近相机时,距离为d0(d0<1.4m),焦距f发生变化,即f=220-(1.4-d0)*50;即深度图像宽为x0,长为y0。则深度图像的中心坐标(x0/2,y0/2)作为球面模型的球心,即为视点方向,球的半径为f。当视点方向改变时,即(x0/2+δx,y0/2+δy)计算出鱼眼图像上对应坐标(xs,ys),借助于球面模型将鱼眼图像投影到球面模型上计算鱼眼图像上对应极坐标为(θ,β)。进一步基于坐标(θ,β)为中心点,获取透视图像。
上面对本发明的实施方式做了详细说明。但是本发明并不限于上述实施方式,在所属技术领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下做出各种变化。