1.一种基于单目视觉的深度提取方法,其特征在于包括如下步骤:
步骤一:对手机相机进行标定,获取相机内部参数和图像分辨率
采用张正友标定法,并引入改进的带有非线性畸变项的标定模型对相机内部参数进行校正首先设定像平面上每个像素的物理尺寸大小为dx*dy,图像坐标系(x,y)原点在像素坐标系(u,v)中的坐标为(u0,v0),(x,y)是实际图像中像点归一化的坐标,图像中任意像素在两个坐标系中满足如下关系:fx、fy为x轴和y轴上的归一化焦距,相机坐标系中任一点Pc(Xc,Yc,Zc)投影到图像坐标系上为(xc,yc,f),图像坐标系平面与光轴z轴垂直,与原点距离为f,根据相似三角形原理可以得出:引入所述改进的带有非线性畸变项的标定模型,包括由于镜头形状缺陷造成的径向畸变和由于光学系统存在不同程度的偏心造成的切向畸变,径向畸变数学模型为:其中r2=x2+y2,(x’,y’)为矫正后不含畸变项的理想线性相机坐标系的归一化坐标值,径向畸变值与图像点在图像中的位置有关,图像边缘处的径向畸变值较大,切向畸变数学模型为:
其中包含k1、k2、k3、p1、p2共5个非线性畸变系数,由公式(3)、(4)得畸变矫正函数模型如下:从世界坐标变换到相机坐标转换存在如下关系:
Pc=R·(PW-C)=R·PW+T (6)
结合式(1)~(6),用齐次坐标与矩阵形式可表示为:
Mint、Mext分别是相机标定内、外参数矩阵,其中相机内部参数包括图像中心点像素值u0、v0,fx、fy为x轴和y轴上的归一化焦距、通过Java结合OpenCV实现手机相机标定,获取手机相机所述的内部参数、相机镜头畸变参数和图像分辨率vmax、umax;
步骤二:建立深度提取模型
根据目标物成像角度α与纵坐标像素值v之间的线性关系设定抽象函数,建立含目标物成像角度α、纵坐标像素值v和相机旋转角β三个参数空间关系模型,即α=F(v,β),不同型号的设备和相机旋转角度下,被拍摄物体纵坐标像素值与成像角度均呈极显著负线性相关关系,且该线性关系的斜率与截距有所不同,故设:α=F(v,β)=a·v+b (17)
其中参数a、b均与相机型号和相机旋转角度有关,
当α取最小值α=αmin=90-θ-β时,θ为相机垂直视场角的一半,即被拍摄物体投影到图片最底端时,v=vmax(vmax为相机CMOS或CCD图像传感器列坐标有效像素数),代入式(17)可得:
90-β-θ=a·vmax+b (18)
当αmin+2θ>90°,即θ>β时,此时相机上视角高于水平线,地平面无限远处,α无限接近于90°,此时v无限趋近于v0-tanβ*fy,fy为像素单位下相机的焦距,β为负值即相机逆时针旋转时亦同理,因此,代入式(17)可得:
90=a·(v0-tanβ·fy)+b (19)
当αmin+2θ<90°,即θ<β时,此时相机上视角低于水平线,地平面无限远处目标物成像角度α取最大值,αmax=αmin+2θ=90-β+θ时,即被拍摄物体投影到图片最高点时,v=0,代入式(17)可得:
90-β+θ=b (20)
根据针孔相机构造原理,一半的相机垂直视场角θ的正切值等于相机CMOS或CCD图像传感器边长的一半除以相机焦距,故可以计算出θ:公式(21)中LCMOS为相机CMOS或CCD图像传感器的边长,结合式(18)~(21),F(α,β)为:公式(10)中δ为相机非线性畸变项误差;结合手机相机拍摄高度h,根据三角函数原理建立手机相机深度提取模型:步骤三:通过对待测目标物的图像采集,获取目标点像素值u、v;
在对待测目标物的图像采集步骤中,还包括对待测目标物图像的非线性畸变校正和预处理,即:通过手机相机进行图像采集,建立投影几何模型,其中f为相机焦距,θ为相机垂直视场角的一半,h为相机拍照高度,β为相机沿相机坐标系ox轴的旋转角,相机顺时针旋转β值为正,逆时针为负,β值通过相机内部重力传感器获取,α为目标物成像角度;
结合步骤一相机标定获取的相机镜头畸变参数,对图像存在的径向畸变和切向畸变误差进行非线性畸变矫正;将矫正后的理想线性归一化坐标值(x,y)代入公式(1),求算出矫正后图像各点像素坐标值,通过双线性内插的方法对矫正后像素值进行插值处理从而得到矫正后图像;采用计算机视觉及图像处理技术对矫正后的图像进行预处理,包括图像二值化、图像形态学运算和目标物轮廓边缘检测,得到目标物的边缘,进而计算目标物与地面接触的边缘的几何中心点像素值(u,v);
步骤四:利用上述步骤获取的相机内部参数和目标点像素值并结合相机深度提取模型,计算图像上待测目标物深度值D根据相机旋转角度β与一半的相机垂直视场角θ之间的大小关系,选择对应的深度提取模型,将步骤一求算的相机内部参数图像中心点像素值v0,y轴上归一化的焦距fy以及图像分辨率vmax,和步骤三求算的待测目标物纵坐标像素值v、相机旋转角度β和手机相机拍摄高度h代入所述深度提取模型,计算目标点深度值D。