本发明属于计算机视觉领域,涉及一种直接估计车载相机运动参数的方法。
背景技术:
相机自运动估计即是从相机运动前后的连续视频帧中估计出相机与静态场景之间的相对运动,这是计算机视觉领域的热门研究内容。相机的自运动参数估计在自动驾驶、辅助驾驶、自主导航等领域具有广泛的应用。
如何在充满了大量干扰信息的现实场景中准确估计相机的自运动参数,如何减少运动估计的计算量,这些一直是计算机视觉领域的难题。尽管在过去的几十年里,研究人员开展了大量相关工作的研究,但相机自运动参数的估计仍然是一个十分具有挑战性的难题。
实现运动估计的传统方法主要是光流法,其实现途径是利用图像上能够表征运动形式的特征点,计算对应的光流向量,继而求解隐含的运动参数。然而在实际运用的过程中,特征点的选取和匹配通常要求场景具有丰富且显著的特征,其次繁杂的计算也给传统方法在实际的应用中带来了很大的限制。这些问题至今没有很好的解决办法,因此传统的光流方法在实际应用中受到了很大的限制。
与传统方法不同,八十年代末期horn首先提出直接方法。直接方法的特点是直接利用前后两帧连续图像本身固有的性质,迭代求解运动参数,不需要额外的场景约束,从而避免了特征点的选取、追踪与光流向量的计算,节省了大量的计算资源。但是这一方法的鲁棒性不强,容易受到外界干扰信息的影响,因此现存方法还很难实现较为准确的自运动参数估计。
技术实现要素:
本发明的目的在于克服上述现有技术的缺点,提供一种直接估计车载相机运动参数的方法,该方法能够估算出相机与静态场景之间的相对运动参数。其输入量是两幅连续帧图像,输出为相机自运动参数的估计值。
为达到上述目的,本发明采用以下技术方案予以实现:
一种直接估计车载相机运动参数的方法,包括以下步骤:
步骤1:根据三维坐标系o(x,y,z)建立运动模型;
步骤2:读入连续帧图像it、it+dt,并对其做适当的尺度变换;
步骤3:对当前帧图像进行仿射变换;
步骤4:计算图像的误差熵ep和纹理度tp,确立图像匹配的置信程度;
步骤5:利用irls算法迭代求解运动参数,检验估算结果的可靠性;
步骤6:回溯验证;
采用回溯验证的方法,在原尺度图像上进行运算求解自运动参数,并将仿射变换结果与后一帧对比,若结果收敛且两幅图像误差可接受,则认为本次估计可靠;否则,修改迭代次数和阈值,以期得到正确的估算结果。
本发明进一步的改进在于:
步骤1中建立运动模型的具体方法如下:
假设车载相机在静态场景中进行运动,其运动分量包含两部分:平移运动t=(tx,ty,tz)t和旋转运动w=(wx,wy,wz)t,那么每一个像素点p=(x,y)t处的光流向量表示为如下形式:
其中,u和v分别是光流向量沿着图像x轴和y轴的分量;tx、ty和tz分别相机沿着x轴、y轴和z轴平移的速度,f是成像系统的焦距;z是像素点p=(x,y)t处的景物深度;wx、wy和wz分别相机绕着x轴、y轴和z轴旋转的速度;
引入针孔相机模型求解景物深度的等效表达式,上式简化为如下形式:
其中,ρ和α分别是相机安装时的俯仰角和航向角;h是相机中心点到道路平面的距离;v是相机沿着主光轴平移的速度;
引入光度约束,得到求解运动参数的直接形式:
其中,
步骤4中,误差熵定义如下:
其中,np是一个图像区域中像素点的数目,i,j是下标索引,分别对应图像中第i,j个像素点,gτ是高斯核函数,it(i)是当前帧第i个像素点的灰度值,
纹理度定义如下:
其中,edp是以dp为参数的指数函数,dp是图像的梯度信息,定义如下:
其中,β和γ分别用来调整灰度图像沿x轴和y轴的梯度分量在梯度信息中所占的比重大小,
计算过程中的权重向量qp定义如下:
qp=ε·ep+σ·tp
其中,ε和σ是用来调整误差熵和纹理度所占比重的系数。
步骤5中,利用irls算法迭代求解运动参数采用以下公式:
其中,dw是经过一次计算后得到的运动参数增量,nr是整个感兴趣区域中像素点的数目,
步骤6中,修改迭代次数和阈值的具体方法如下:
若结果不收敛或两幅图像匹配时误差较大,减小检验阈值并增大迭代次数,以期得到正确的估算结果。
与现有技术相比,本发明具有以下有益效果:
本发明以连续帧图像为直接研究对象,引入几何约束和光度约束建立相机运动模型。首先,本发明建立了相机运动与图像的直接模型,直接利用图像的灰度信息求解自运动参数,避免了特征的的选取和跟踪,有效的节省了大量的计算资源。其次,本发明同时选取了误差熵和纹理度作为衡量图像匹配过程中每个像素的置信程度的标准,能真实而有效的反应每个像素对运动估计的贡献情况。本发明irls算法通过反复的迭代加权,对有效信息赋予较大的计算权重,降低了干扰信息对计算结果的影响。最后,本发明通过回溯验证将计算结果作为尺度变换后的初始解,重新开始新一轮迭代并引入判断估算结果正确与否的标准,确保了本发明估算结果的可靠性。
附图说明
图1为本发明模型相关变量示意图;
图2为本发明由粗到细的图像金字塔策略示意图;
图3为本发明算法的流程图。
具体实施方式
下面结合附图对本发明做进一步详细描述:
参见图1和图2,本发明旨在估算出相机与静态场景之间的相对运动参数。其输入量是两幅连续帧图像,输出为相机自运动参数的估计值。首先介绍本发明涉及的运动模型:
假设车载相机在静态场景中进行一般运动,其运动分量包含两部分:即平移运动t=(tx,ty,tz)t和旋转运动w=(wx,wy,wz)t,那么每一个像素点p=(x,y)t处的光流向量可表示为如下形式:
其中,u和v分别是光流向量沿着图像x轴和y轴的分量;f是成像系统的焦距;z是像素点p=(x,y)t处的景物深度。
考虑实际场景,由于车载相机运动的特殊性,我们可以忽略相机的横滚角,进一步的,我们引入针孔相机模型求解景物深度的等效表达式,上式可简化为如下形式:
其中,ρ和α分别是相机安装时的俯仰角和航向角;h是相机中心点到道路平面的距离。
引入光度约束,我们得到求解运动参数的直接形式:
其中,
本发明主要利用几何约束构建的光流向量与运动参数之间的关系,通过引入光度约束将运动参数的求解转换成直接形式,然后对相机的自运动参数进行估计。这就是本发明实现车载相机自运动参数估计的运动模型。
基于上述运动模型,下面介绍本发明估算车载相机自运动参数的具体技术方案。本发明提供一种直接估计车载相机自运动参数的方法,其步骤如下:
步骤一:读入连续帧图像it、it+dt,并对其做适当的尺度变换
引入光度约束的前提条件是相机的运动是小且连续的,但从实际应用的角度出发,我们往往无法保证相机的自运动、环境光照强度等因素满足该假设,这对方法在实际环境中的应用带来了一定的限制。因此我们采用由粗到细的图像金字塔策略对原始图片进行尺寸变换,在已经建立的参数化模型中,运动参数也随之进行相应的变换。通过这样的方式在适当的尺度上求解运动参数,并将结果回溯,使得我们的方法具有一定的普适性。
步骤二:对当前帧图像进行仿射变换
连续两帧图像之前的差异是由相机运动产生的,这其中隐含着相机的运动状态。因此,在已知相机运动参数的情况下,对当前帧图像进行相应的仿射变换,便可绘制出当前帧在已知运动状态的情况下,运动到下一帧时的情形。
步骤三:计算图像的误差熵和纹理度,确立图像匹配的置信程度。
在视频分析的感兴趣区域中,会不可避免的混杂一些无用甚至带来负影响的信息,例如其他机动车辆的遮挡、道路阴影交织的区域、天际线等等。由于这些场景与对应像素的运动关系不符合我们建立的模型,因此直接将这些异常点带入计算势必会导致错误的结果,甚至发散的结果。
因此,建立衡量图像匹配过程中每个像素的置信程度显得至关重要。
在传统方法中,研究人员往往引入均方误差作为衡量图像匹配可靠性的表现。相比传统的均方误差,误差熵更符合不是所有的随机误差都具有相同的随机程度这一事实。因此我们引用误差熵判别规则替代均方误差,误差熵定义如下:
其中,np是一个图像区域中像素点的数目,gτ是高斯核函数,
在实际情况中,视频帧中可能出现的纯色区域,例如道路的阴影等,会使图像在仿射变换后的误差熵达到最小,从而对结果造成意外的影响,因此我们引入纹理度这一标准去衡量目标图片所含特征的多少。
其中,dp是图像的梯度信息,定义如下:
其中,β和γ分别用来调整灰度图像沿x轴和y轴的梯度分量在梯度信息中所占的比重大小。
最终,计算过程中的权重向量定义如下:
qp=ε·ep+σ·tp
其中,ε和σ是用来调整误差熵和纹理度所占比重的系数。
步骤四:利用irls算法迭代求解运动参数,检验估算结果的可靠性。
本发明采用迭代重复加权最小二乘(iterativelyreweightedleastsquares,irls)算法来估算公式中的模型,即拟合相机的运动参数。irls的核心思想是对每一组约束方程赋予相应的权重,每次根据计算结果的置信程度来不断改变方程对应的权重,使得计算中可信的数据较无效的数据具有更大的权重,从而减弱干扰信息的影响。
步骤五:回溯验证;
通过迭代重加权的方式,大部分干扰信息已基本得到排除,如果本次相机自运动参数估计可靠,那么将图片缩放回原尺度时,在已得参数上进行迭代求解的结果应该是收敛的,且仿射变换的结果应与后一帧的结果基本相符。因此,采用回溯验证的方法,在原尺度图像上进行运算求解自运动参数,并将仿射变换结果与后一帧对比,若结果收敛且两幅图像误差可接受,则认为本次估计可靠;否则,适当修改迭代次数和阈值,以期得到正确的估算结果。
实施例:
本实施例是在matlabr2014a语言环境下实现的。首先通过计算机读入连续帧图像,利用运动参数对当前帧图像作仿射变换,并与下一帧对比求解每个像素点的置信程度,再反复迭代求解合适的运动参数,最终通过回溯验证得到最优估计值。
如图3的流程图所示,本实施例提供一种直接估计车载相机自运动参数的方法,包括以下步骤:
步骤一:读入连续帧图像it、it+dt,并对其做适当的尺度变换
(1)在matlabr2014a语言环境下读入连续帧图像it和it+dt;
(2)调用系统函数将图像缩放至合适的尺寸。
步骤二:对当前帧图像进行仿射变换
(1)对当前帧图像的感兴趣区域建立坐标网格;
(2)依据公式计算出在当前运动参数的基础上,仿射变换后每个像素对应的位置;
(3)以变换后的坐标位置为基础进行插值,便可得到仿射后的图像。
步骤三:计算图像的误差熵和纹理度,确立图像的置信程度。
(1)将图像的感兴趣区域化成一个个比较小的子区域,以便后续分析计算。本实施例中将感兴趣区域划分成尺寸大小为20×20,共计42个子区域,每个子区域中的像素点具有相同的置信程度和权重。
(2)依据公式计算每个子区域的误差熵和纹理度,从而得到每个子区域对应的计算权重。
步骤四:利用irls算法迭代求解运动参数,检验估算结果的可靠性。
(1)由于irls算法可以有效的避开干扰项对拟合效果的影响,因此本实施例采用irls来求解自运动参数;
(2)每次迭代开始时,重新计算子区域的误差熵和纹理度,并以此为依据修改权重;
(3)迭代过程中,若仿射变换后的图像与后一帧的差值程度小于阈值δ,或者达到最大迭代次数m,即可跳出迭代。实验中我们设定δ=0.1,m=50。
步骤五:回溯验证;
本实施例中采用回溯验证来检验此次运动估计的可靠性。若运动结果可靠,那么以此时的结果作为初始值,在原尺度图像上进行迭代计算的结果必定是收敛且可靠的。否则,通过适当调整阈值来使得估计可靠。
本实施例的准确性和有效性已经通过合成数据集和真实数据集进行了验证,取得了很好的估计效果。实验结果显示本实施例中的方法能够在充满干扰信息的情况下给出准确的自运动参数估计结果,具有广阔的应用前景和价值。
以上内容仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明权利要求书的保护范围之内。