1.一种基于单目视觉的车辆长度测量方法,其特征在于,包括如下步骤:步骤1:使用张正友标定法进行相机标定,得到相机光心对应于图像中的横坐标xg;
步骤2:根据实际场地大小定制一张正方形黑白格组成的标定板,将标定板垂直于地面车道线处拍取一张图片,计算该图片对应的相机图像坐标到车道线平面坐标的单应性矩阵H,公式(1)表示图像坐标系到世界坐标系的对应关系,则相机光心横坐标对应的物理横坐标为xwg,同时通过Hough直线检测算法检测得到车道线并标记为L;
其中,(Xp1,Yp1)表示图像坐标,(Xwp1,Ywp1)表示车道线平面的世界坐标;
步骤3:使用卷积神经网络对序列图像进行检测,得到车身侧面矩形框集合A={ci|i=
1,2,…,m}、前轮毂区域集合WF={fi|i=1,2,…,m}和后轮毂区域集合WR={ri|i=1,2,…,m},其中,m表示序列图像总数,ci表示车身侧面矩形框,fi表示前轮毂区域矩形框,ri表示后轮毂区域矩形框,使用霍夫变换找到fi和ri中最大内接圆的圆心(xfi,yfi)和(xri,yri),通过公式(1)得到前后轮毂圆心的世界坐标(xwfi,ywfi)和(xwri,ywri),则车辆在第i帧的轴距物理长度为wdi=|xwri‑xwfi|,同时,结合公式(1)可计算得到ri的最大内接圆的物理直径Ri;
步骤4:通过公式(1)将ci转换为世界坐标下的矩形框cwi,则可根据公式(2)计算每帧图像中车辆相对于第一帧的物理行驶距离rdi;
rdi=|cwi.x‑cw1.x| (2)其中,cwi.x表示第i帧车身侧面矩形框在世界坐标系下的左上角的横坐标;
步骤5:车辆行驶路线偏离检测,具体步骤为:
5.1:计算第i帧车辆轴距wdi与第一帧车辆轴距的差值AWi=|wdi‑wd1|,若存在AWi>w0,则判断为车辆偏离行驶,记录车辆偏离行驶总帧数 偏离行驶帧号集合F={i|AWi>w0,i=1,2,...,m},其中,I(·)表示示性函数,若其参数值为真则返回1,否则返回0;w0表示轴距差值的阈值;
5.2:若不存在车辆偏离行驶,或存在车辆偏离行驶但满足公式(3)的约束且满足则检测到的车辆长度为cl=cwq.w;
(rdi<|xwg‑cw1.x|‑cwi.w)||(rdi>|xwg‑cw1.x|),i∈F (3)其中,cwq.w表示第q帧车身侧面矩形框在世界坐标系下的物理宽度;
5.3:若存在车辆偏离行驶但不满足公式(3)的约束,则结合公式(1)计算后轮毂矩形框rk的像素坐标点(xrk,ck.y+ck.h)得到对应的世界坐标Pk,然后根据公式(4)计算Pk到车道线L的垂直物理距离,其中,k∈F,并将所有这些垂直物理距离记录为偏离距离集合D={dk|k∈F},ck.y表示第k帧车身侧面矩形框左上角的纵坐标,ck.h表示第k帧车身侧面矩形框的高度;
其中,R1为第一帧车辆后轮毂直径,Rk为第k帧偏离行驶车辆的后轮毂直径,u表示相机镜头到车道线的垂直物理距离;
5.4:以场景俯视图为坐标系,车道线为X轴,以车辆行驶方向在车道线距离rd1处为原点,在集合D中取每帧偏离距离dk与当前帧车辆行驶距离rdk组成坐标集合W={(dk,rdk)|k∈F}并使用最小二乘法把点集W中的点进行车辆偏离路线拟合直线并得到直线斜率b,通过α=arctan(b)求得行驶偏离路线与车道线的夹角α;
步骤6:找到满足等式rdr=xwg‑u×tan(α)的图像帧号r,根据公式(5)求得在偏离行驶情况下的车辆长度cl:
其中,cwr.w表示第r帧车身侧面矩形框在世界坐标系下的物理宽度。