本发明涉及双目视觉领域,具体地,涉及利用双目视觉自主解算汽车速度的方法,尤其是一种利用视觉测量原理自主计算汽车运动速度的方法。
背景技术:
随着智能硬件的快速发展,应用于汽车测速的方案有很多,例如超声波,激光测速等。
经检索发现相关检索结果1:申请(专利)号:CN201310045929.1;名称:一种基于视频的平均车速检测方法。该检索结果1提供了一种基于视频的平均车速检测方法,通过划分多个块,获得目标车辆的特征点,根据映射表得出每一帧图像中的特征点在实际道路上的实际距离,最后得到平均车速。
技术要点比较:
1.数据源:本发明采用前后帧图像作为当前时刻的测量速度,而检索结果1采用视频序列计算汽车的平均速度;
2.测量方法:本发明采用双目相机采集若干帧图像,可对每个时刻特征点坐标采用卡尔曼滤波,提高测量精度;而检索结果1采用单目相机采集连续图像计算汽车的平均速度。
技术实现要素:
针对现有技术中的缺陷,本发明的目的是提供一种利用双目视觉自主解算汽车速度的方法。
根据本发明提供的一种利用双目视觉自主解算汽车速度的方法,包括如下步骤:
步骤1:通过双目相机采集图像;
步骤2:以逐帧方式,对双目相机采集到的图像进行图像处理步骤,得到目标图像;
步骤3:根据目标图像,解算得到特征点在相机坐标系中的坐标;
步骤4:根据特征点在相机坐标系中的坐标,解算得到车速。
优选地,所述步骤1,包括:
步骤1.1:安装调试双目相机,准备采集图像;
步骤1.2:利用双目相机软件触发功能,采集图像信息,获得Picli、Picri;
Picli表示双目相机在第i个时刻ti下的初始左图像;
Picri表示双目相机在第i个时刻ti下的初始右图像;
i=1,2,3…,N,N表示双目相机的采集次数。
优选地,所述步骤2,包括:
步骤2.1:判断拍摄场景是白天还是夜晚,根据先验知识,剔除初始左图像Picli、初始右图像Picri的背景噪声;
步骤2.2:对当前的初始左图像Picli、初始右图像Picri进行图像预处理;
步骤2.3:对当前的初始左图像Picli、初始右图像Picri去除背景噪声;
步骤2.4:对当前的初始左图像Picli、初始右图像Picri进行灰度化处理,分别得到灰度化左图像picli、灰度化右图像picri,然后将灰度化左图像picli减去灰度化右图像picri得到左灰度图pic′li,将灰度化右图像picri减去灰度化左图像picli得到右灰度图pic′ri;
步骤2.5:对左灰度图pic′li、右灰度图pic′ri进行归一化处理,分别得到左二值化图像pic″li、右二值化图像pic″ri;
步骤2.6:分别对左二值化图像pic″li、右二值化图像pic″ri做开运算,消除目标车辆所在区域外部的孤立点,将目标车辆所在区域内部的孤立点连通起来,分割处目标图像;
其中,所述目标车辆所在区域是指目标车辆的最小包围矩形,记为目标图像。
优选地,所述步骤3,包括:
步骤3.1:提取左二值化图像pic″li中目标图像的位置信息,(xli,yli),widthli,heightli;提取右二值化图像pic″ri中目标图像的位置信息,(xri,yri),widthri,heightri;
xli表示目标图像在初始左图像坐标系X轴上的起始坐标;
yli表示目标图像在初始左图像坐标系Y轴上的起始坐标;
widthli表示目标图像在初始左图像坐标系中X轴方向占的像素数;
heightli表示目标图像在初始左图像坐标系中Y轴方向占的像素数;
xri表示目标图像在初始右图像坐标系X轴上的起始坐标;
yri表示目标图像在初始右图像坐标系Y轴上的起始坐标;
widthri表示目标图像在初始右图像坐标系中X轴方向占的像素数;
heightri表示目标图像在初始右图像坐标系中Y轴方向占的像素数;
步骤3.2:按照所述目标图像的位置信息,从初始左图像Picli、初始右图像Picri分别分割出包括目标车辆的图像Pic′li、图像Pic′ri;
步骤3.3:分别对图像Pic′li、图像Pic′ri提取特征点,并剔除误匹配点;
将对应于左相机的特征点坐标记为plk(xlk,ylk);
将对应于右相机的特征点坐标记为prk(xrk,yrk);
其中,k=1,2,…K,K为特征点数量;
xlk表示第k个特征点在图像Pic′li坐标系X轴上的坐标;
ylk表示第k个特征点在图像Pic′li坐标系Y轴上的坐标;
xrk表示第k个特征点在图像Pic′ri坐标系X轴上的坐标;
yrk表示第k个特征点在图像Pic′ri坐标系Y轴上的坐标;
定义特征点在初始左图像Picli、初始右图像Picri中的坐标分别为Plk(Xlk,Ylk)和Prk(Xrk,Yrk),则:
Xlk=xlk+xli
Ylk=ylk+yli
Xrk=xrk+xri
Yrk=yrk+yri
Xlk表示第k个特征点在初始左图像坐标系X轴上的坐标;
Ylk表示第k个特征点在初始左图像坐标系Y轴上的坐标;
Xrk表示第k个特征点在初始右图像坐标系X轴上的坐标;
Yrk表示第k个特征点在初始右图像坐标系Y轴上的坐标;
步骤3.4:基于双目测距原理,利用第k个特征点在图像物理坐标系下的坐标Plk(Xlk,Ylk),Prk(Xrk,Yrk)计算出该特征点在左相机坐标系下3D坐标值,pk=(xk,yk,zk),其中k=1,2,…K,K为特征点数量;
Dk=Xlk-Xrk
pk表示第k个特征点在相机坐标系下的3D坐标;
xk表示第k个特征点在左相机坐标系下的坐标X轴上的坐标值;
yk表示第k个特征点在左相机坐标系下的坐标Y轴上的坐标值;
zk表示第k个特征点在左相机坐标系下的坐标Z轴上的坐标值;
(u0,v0)为相机图像像素坐标系中的主点坐标;
B表示双目相机的基线长度;
f表示相机的焦距;
Dk表示第k个特征点在初始左图像与初始右图像的视差。
优选地,所述步骤4,包括:
计算目标车辆在第i时刻的速度:
Δti=ti+1-ti
vi表示目标车辆在第i时刻的速度;
Δti表示第i个前后帧图像间的时间间隔。
优选地,还包括如下步骤:
步骤5:对采集到的不同时刻目标车辆的位置坐标进行滤波,以实时检测车辆的运动速度。
优选地,在所述步骤5中,采用卡尔曼滤波对采集到的不同时刻目标车辆在相机坐标系下的位置坐标进行滤波,实时检测车辆的运动速度。
优选地,在所述步骤5中,进行如下计算
V(k|k-1)=AV(k-1|k-1)+BU(k)
P(k|k-1)=AP(k-1|k-1)A′+Q
V(k|k)=V(k|k-1)+Kg(k)(Z(k)-HZ(k|k-1))
Kg(k)=P(k|k-1)H′/(HP(k|k-1)H′+R)
P(k|k)=(I-Kg(k)H)P(k|k-1)
V(k|k-1)表示利用k-1时刻的结果预测的解;
V(k-1|k-1)表示k-1时刻的最优解;
V(k|k)表示k时刻的最优解;
k表示离散化的时间变量;
A表示系统参数;
U(k)表示k时刻系统的控制量;
P(k|k-1)表示对应V(k|k-1)的协方差;
P(k-1|k-1)表示对应V(k-1|k-1)的协方差;
P(k|k)表示对应V(k|k)的协方差;
A′表示矩阵A的转置;
Q表示高斯白噪声的协方差;
Kg(k)表示卡尔曼滤波增益;
Z(k)表示k时刻的测量值;
H表示测量系统的参数;
H′表示矩阵H的转置;
R表示高斯白噪声的协方差。
与现有技术相比,本发明具有如下的有益效果:
1、本发明旨在通过双目视觉测量原理自主检测运动目标的瞬时速度,无需其它辅助设备,且解算精度高。
2、本发明属于非接触式测量,测量成本低,对应用环境要求低,且测量精度高,可兼具汽车违章牌照功能。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为本发明的原理示意图。
图2为本发明的简要流程步骤图。
图3为本发明的具体流程步骤图。
图4为双目相机采集到的初始的左右图像。
图5为对图4中初始的左右图像进行预处理后得到的图像。
图6为实景图。
图7为某一个实施例中一种定义方式下的左相机坐标系、相机图像像素坐标系、图像物理坐标系之间的关系示意图。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
本发明提出采用双目视觉实时对运动车辆进行测速,利用具有软触发功能的相机,采集若干组图像,记录图像之间的时间间隔,结合图像处理算法从复杂背景中提取出目标车辆,利用特征提取算法提取目标车辆上的特征点,与前后帧图像之间的特征进行匹配。对获取到的不同时刻同一车辆的同一特征点坐标做卡尔曼滤波,可实时检测汽车的速度,该方案具有应用范围广、成本低、移植性强的特点。
根据本发明提供的利用双目视觉自主解算汽车速度的方法,包括如下步骤:
步骤1:通过双目相机采集图像;
步骤2:以逐帧方式,对双目相机采集到的图像进行图像处理步骤,得到目标图像;
步骤3:根据目标图像,解算得到特征点在相机坐标系中的坐标;
步骤4:根据特征点在相机坐标系中的坐标,解算得到车速。
步骤5:对采集到的不同时刻目标车辆的位置坐标进行滤波,以实时检测车辆的运动速度。
所述步骤1,包括:
步骤1.1:安装调试双目相机,准备采集图像;
步骤1.2:利用相机软件触发功能,采集图像信息,并记双目相机在第i个时刻ti下的初始的左图像、右图像分别为Picli、Picri,其中i=1,2,3…,20,表示序号。记第i个前后帧图像间的时间间隔为Δti,其中i=1,2,…,19。
所述步骤2,包括:
步骤2.1:判断拍摄场景是白天还是夜晚,根据先验知识,剔除双目相机采集图像Picli、Picri的背景噪声。
步骤2.2:由于车辆测速的环境相对复杂,不仅需纠正汽车行驶速度与相机快门速度不匹配所造成的图形模糊,而且需剔除背景噪声,因此对采集到的图像进行图像预处理,包括图像校正、图像增强、图像去噪等;
步骤2.3:因目标车辆在图像中位置不确定,为减少后续算法的复杂度,先利用图像的RGB信息删除背景噪声。
步骤2.4:对当前帧图像Picli、Picri分别进行灰度化处理,得到灰度化图像picli、picri,然后将picli减去picri得到pic′li,将picri减去picli得到pic′ri,因此可得到ti时刻,左灰度图pic′li、右灰度图pic′ri。
步骤2.5:对步骤2.4得到的灰度图pic′li、pic′ri进行归一化处理,利用自适应阈值化方法得到左二值化图像pic″li、右二值化图像pic″ri;
步骤2.6:对二值化图像pic″li、pic″ri做开运算,消除目标车辆所在区域周围的孤立点,将目标车辆所在区域内的孤立点连通起来;所述目标车辆所在区域是指目标车辆的最小包围矩形,记为目标图像;分割出目标图像;
所述步骤3,包括:
步骤3.1:提取二值化图像pic″li中目标图像的位置信息,(xli,yli),widthli,heightli,提取右二值化图像pic″ri中目标图像的位置信息,(xri,yri),widthri,heightri;
其中,xli表示分割出的目标图像在初始左图像坐标系X轴上的起始坐标,yli表示分割出的目标图像在初始左图像坐标系Y轴上的起始坐标,widthli表示分割出的目标图像在初始左图像坐标系中X轴方向占的像素数,heightli表示分割出的目标图像在初始左图像坐标系中Y轴方向占的像素数;
xri表示分割出的目标图像在初始右图像坐标系X轴上的起始坐标,yri表示分割出的目标图像在初始右图像坐标系Y轴上的起始坐标,widthri表示分割出的目标图像在初始右图像坐标系中X轴方向占的像素数,heightri表示分割出的目标图像在初始右图像坐标系中Y轴方向占的像素数;
步骤3.2:按照步骤3.1提取出的位置信息,从初始的左图像、右图像Picli和Picri分割出包括目标车辆的图像Pic′li和Pic′ri;
步骤3.3:对图像Pic′li和Pic′ri,利用SIFT(Scale-invariant feature transform)算法提取特征点,再经过Ransac(Random Sample Consensus)算法剔除误匹配点;
若特征点匹配成功,得到匹配成功的特征点坐标plk(xlk,ylk)和prk(xrk,yrk),其中,k=1,2,…K,K为匹配成功特征点数量。
xlk表示图像Pic′li中第k个特征点在图像Pic′li坐标系X轴上的坐标;
ylk表示图像Pic′li中第k个特征点在图像Pic′li坐标系Y轴上的坐标;
xrk表示图像Pic′ri中第k个特征点在图像Pic′ri坐标系X轴上的坐标;
yrk表示图像Pic′ri中第k个特征点在图像Pic′ri坐标系Y轴上的坐标;
定义匹配成功的特征点在初始左图像Picli和右图像Picri中的坐标为Plk(Xlk,Ylk)和Prk(Xrk,Yrk),则利用步骤3.1得到的目标图像的位置信息纠正特征点坐标;
Xlk=xlk+xli
Ylk=ylk+yli
Xrk=xrk+xri
Yrk=yrk+yri
Xlk表示图像Pic′li中第k个特征点在初始左图像坐标系X轴上的坐标;
Ylk表示图像Pic′li中第k个特征点在初始左图像坐标系Y轴上的坐标;
Xrk表示图像Pic′ri中第k个特征点在初始右图像坐标系X轴上的坐标;
Yrk表示图像Pic′ri中第k个特征点在初始右图像坐标系Y轴上的坐标;
其中,若特征点未匹配成功,删除当前帧图像,修改时间间隔,返回到步骤2,即图像处理步骤,处理下一帧图像,即Δti=ti+1-ti。
步骤3.4:步骤3.4:基于双目测距原理,利用特征点在图像物理坐标系下的坐标Plk(Xlk,Ylk),Prk(Xrk,Yrk)计算出特征点在左相机坐标系下3D坐标值,pk=(xk,yk,zk),其中k=1,2,…K,K为特征点数量;
Dk=Xlk-Xrk
pk表示第k个特征点在左相机坐标系下的3D坐标;
xk表示第k个特征点在左相机坐标系下的坐标X轴上的坐标值;
yk表示第k个特征点在左相机坐标系下的坐标Y轴上的坐标值;
zk表示第k个特征点在左相机坐标系下的坐标Z轴上的坐标值;
(u0,v0)为相机图像像素坐标系中的主点坐标;
B表示双目相机的基线长度;
f表示相机的焦距;
Dk表示第k个特征点在初始左图像与初始右图像的视差。
所述步骤4,包括
vi表示利用双目视觉得出的车辆在第i时刻的速度。
在所述步骤5中,本发明采用卡尔曼滤波对采集到的不同时刻目标车辆在相机坐标系下的位置坐标进行滤波,可实时检测车辆的运动速度。
V(k|k-1)=AV(k-1|k-1)+BU(k)
P(k|k-1)=AP(k-1|k-1)A′+Q
V(k|k)=V(k|k-1)+Kg(k)(Z(k)-HZ(k|k-1))
Kg(k)=P(k|k-1)H′/(HP(k|k-1)H′+R)
P(k|k)=(I-Kg(k)H)P(k|k-1)
V(k|k-1)表示利用k-1时刻的解预测的结果;
V(k-1|k-1)表示k-1时刻的最优解;
V(k|k)表示k时刻的最优解;
k表示离散化的时间变量;
A表示系统参数;
U(k)表示k时刻系统的控制量;
P(k|k-1)表示对应V(k|k-1)的协方差;
P(k-1|k-1)表示对应V(k-1|k-1)的协方差;
P(k|k)表示对应V(k|k)的协方差;
A′表示矩阵A的转置;
Q表示高斯白噪声的协方差;
Kg(k)表示卡尔曼滤波增益;
Z(k)表示k时刻的测量值;
H表示测量系统的参数;
H′表示矩阵H的转置;
R表示高斯白噪声的协方差。
下面对本发明方案的应用场景进行介绍:该方案可直接用于校园路口车速检测。步骤如下:
1)购买具有软触发功能的相机,即可获取处理器触发相机的时刻,可以计算时间间隔。
2)按照一定间隔采集10对图片,并记录时间间隔。
3)编写代码对每一组图像进行图像增强、去噪、剔除图像背景、图像分割、特征匹配、误匹配点剔除。
4)根据相机标定得到左右相机的内参数和外参数矩阵,将特征点的图像坐标转换为特征点在相机坐标系下的坐标。
5)计算汽车在不同时刻的速度。
6)建立卡尔曼滤波器模型,对采集到的特征点坐标进行滤波处理。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。