技术领域
[0001] 本
发明涉及
机器人领域的机器人导航
定位、同时定位与制图以及无人车自动驾驶等领域,具体涉及一种全向图像中二次曲线的拟合方法。
背景技术
[0002] 利用鱼眼镜头以及反射折射镜头,相机可以获取全向图像。由于全向图像在
水平方向上具有360°的全向
视野,利用单幅全向图像即可获取相机周围360°全向视野范围内的环境信息。因而在视频监控、机器人导航等领域得到广泛应用。在机器人领域,通常通过在图像中检测场景中的点、直线等特征来实现机器人、无人车等的视觉导航、视觉定位等功能。与点相比,利用场景中的直线作为特征进行视觉导航定位具有更高的
精度和可靠性。但是与普通图像相比,全向图像在取得超广
角视野的同时会发生严重
变形,场景中的直线在全向图像中变形为二次曲线。并且机器人和无人车等应用对实时性要求较高。因此如何快速、精确地估计出对应场景中直线的全向图像中的二次曲线,即拟合出其参数,是一个迫切需要解决的难题。
[0003] 利用
图像处理中的边缘提取等技术,可以从全向图像中提取出二次曲线,在这些得到的二次曲线上
采样,利用采样点可以拟合出二次曲线的参数。为了获得较高的拟合精度,传统方法多依赖于梯度下降
算法。典型的梯度下降算法包括三个步骤:梯度方向计算、下降步长计算、更新待拟合参数。传统
梯度下降法在确定下降步长时使用固定的梯度值。考虑到使用固定的梯度值严重限制了计算的速度,Qian首次将梯度预测引入梯度下降法中去计算曲线参数(Qian N,On the momentum term in gradient descent learning algorithms.Neural Networks,12(1):145-151,1999),通过自适应地确定梯度值可以提高运算速度和拟合精度,在性能上显著地超过了传统方法。遵循这一思想,出现了一系列方法来提升曲线拟合的计算效率或者精度。但是这些方法仍然存在如下局限:第一,对包含一些具有较大误差采样点的曲线进行拟合时,精度仍较低。第二,拟合运算过程中容易出现呈“之”字型收敛的情况,导致收敛速度仍无法满足实时性应用的要求。
发明内容
[0004] 本发明提出了一种全向图像中二次曲线的拟合方法。首先,是对经过灰度化和边缘化处理的全向图像进行特征点采样,生成作为算法输入的数据点集;其次,对本方法公式中涉及的参数初始化;再次,计算梯度预测权重系数、梯度权重系数,并且根据预测权重系数和梯度权重系数求出步长
加速系数与梯度权重校正系数;然后,进行
迭代运算更新待拟合参数直至算法收敛或达到最大迭代次数;最后,输出曲线的拟合结果并在原图像中绘制出待拟合曲线。
[0005] 为了实现上述目的,本发明提供了如下方案:
[0006] 一种全向图像中的二次曲线拟合方法,所述方法包括以下步骤:
[0007] 步骤1:对全向图像进行预处理,在待拟合曲线上获取采样点;
[0008] 步骤2:初始化曲线拟合方法中各参数;
[0009] 步骤3:计算第n次迭代的预测梯度权重系数αn、梯度权重系数βn和步长加速系数γn;
[0010] 步骤4:计算第n次迭代的梯度权重校正系数εn;
[0011] 步骤5:计算第n次迭代的待拟合参数θn,及第n次迭代的合成梯度向量Vn,并返回步骤3,直至算法收敛或终止,得到最终的待拟合参数θN,N代表最终迭代次数;
[0012] 步骤6:根据最终的待拟合参数θN输出拟合结果,绘制待拟合曲线。
[0013] 进一步,所述的对全向图像进行预处理,在待拟合曲线上获取采样点,具体包括如下步骤:
[0014] 1)全向图像预处理:利用灰度化处理将输入的彩色全向图像变换为灰度图像,然后利用图像平滑对灰度图像进行降噪,再利用边缘提取技术提取边缘,得到
边缘图像。
[0015] 2)提取采样点:在得到的边缘图像中对待拟合的二次曲线上的点进行采样,生成包含I个点的数据点集{Xi,i=1,2,…,I}(I>3),作为拟合算法的输入。所述的待拟合曲线指一幅图像里面比较容易被区别出来的特征线条,通过对原图像边缘化处理后人为选择得到,具体选择可以从实际需要出发,综合考虑曲线的长度、
曲率以及和其他已选中曲线的距离三个方面的因素。
[0016] 进一步,所述的初始化曲线拟合方法中各参数,具体包括如下参数:
[0017] 参数1:待拟合参数θ
[0018] 所述待拟合参数θ是一个包含待拟合函数所有参数的矢量,对于待拟合二次曲线f(X,θ)=0,通过最小化代价函数 可以得到待拟合参数θ的最优值。在初始阶段需对其进行赋初值操作,一般令待拟合参数θ0的各分量初始化为1。
[0019] 参数2:预测梯度权重系数α
[0020] 所述梯度预测权重系数α用来描述预测梯度值Vf在计算合成梯度运算过程中所占比重。一般在初始化时令梯度预测权重系数α0为0.5。
[0021] 参数3:梯度权重系数β
[0022] 所述梯度权重系数β用于描述当前梯度值V在计算合成梯度运算过程中所占比重。一般在初始化时令梯度权重系数β0为0.5。
[0023] 参数4:步长加速系数γ
[0024] 所述步长加速系数γ用来描述算法在迭代运算过程中每一步是对步长λ加速还是减速的参数。一般初始化时对步长加速系数γ0的值取1。
[0025] 参数5:梯度权重校正系数ε
[0026] 所述梯度权重校正系数ε是用来描述利用二阶导信息对权重系数α和β进行校正的参数。一般在初始化时令梯度权重校正系数ε0取0。
[0027] 参数6:步长λ
[0028] 所述步长λ是用来描述迭代运算过程中每一步沿合成梯度方向运动幅值的参数。一般在0.0001~0.1之间取值。
[0029] 参数7:最大迭代次数
[0030] 所述最大迭代次数是为保证实时性,用于描述在有限时间内无法收敛的情况下允许的最大运算次数。一般在50~80间取值。前述的待拟合参数θ、预测梯度权重系数α、梯度权重系数β、步长加速系数γ和梯度权重校正系数ε在后续迭代执行的每一步都会发生更新,为进行区分,为上述参数引入下标n表示对应第n次迭代时取值。n的最大上限即为此处的最大迭代次数。
[0031] 进一步,所述更新预测梯度权重系数αn、梯度权重系数βn和步长加速系数γn,具体包括如下操作:
[0032] 通过分析现有梯度下降法下降过程中梯度值变化,给出预测梯度Vf的权重系数αn与当前梯度V的权重系数βn随预测梯度值Vf与当前梯度值V的差值(Vf-V)变化函数,设计出两个权重系数的表达式:
[0033]
[0034] 分析预测梯度值Vf与当前梯度值V的关系确定步长加速系数γn,这里给出一组步长加速系数γn的表达式:
[0035]
[0036] 根据计算得到的预测梯度值Vf和当前梯度值V,即可确定预测梯度的权重系数αn、梯度权重系数βn和步长加速系数γn。
[0037] 进一步,所述计算梯度权重校正系数εn,具体包括如下操作:
[0038] 对当前梯度V运算结果求导确定当前梯度值V的变化率 得到,用于减少迭代运算的次数。通常梯度权重校正系数εn小于0.2,根据预测梯度值与当前梯度值的变化量与当前梯度的导数关系,其表达式如下:
[0039]
[0040] 进一步,所述重复迭代步骤3至步骤5,更新待拟合参数,直至算法收敛或终止,具体包括如下步骤:
[0041] 1)将预测梯度权重系数αn、梯度权重系数βn、梯度权重校正系数εn和步长加速系数γn带入如下待拟合参数θn的更新公式,其中梯度权重校正系数ε将预测梯度的权重系数α修正为将(α-ε)且将当前梯度的权重系数β修正为(β+ε):
[0042]
[0043] 其中n为迭代更新次数计数参数,▽表示梯度,▽J(θn-1-Vn-1)为预测梯度值Vf,▽J(θn-1)为当前梯度值V,Vn为由本发明所提出方法自适应确定的合成梯度向量。
[0044] 2)重复迭代执行步骤3至步骤5,对于待拟合二次曲线f(X,θ)=0,通过最小化代价函数 得到待拟合参数θ的最优值或达到最大迭代次数得到待拟合参数θ的最优值。
[0045] 有益效果:
[0046] 本发明提供一种利用全向图像中提取的二次曲线上的采样点拟合出全向图像中二次曲线的参数的方法。拟合出二次曲线后利用全向图像成像公式可以估计出对应的场景中直线的方程,进而利用n条直线透视(Perspective of n Lines,PnL)方法可以实现导航定位等功能。相对于其他全向图像中二次曲线拟合方法,本发明具有较好的实时性。在实时性要求较高的机器人导航定位、同时定位与制图以及无人车自动驾驶等应用中,在限定的极短计算时间内能够以更高的精度和鲁棒性拟合二次曲线,进而实现导航定位。
附图说明
[0047] 图1是本发明提供的全向图像中二次曲线的拟合方法的算法
流程图;
[0048] 图2是采用本发明提供的方法得到的二次曲线拟合效果图。
具体实施方式
[0049] 本发明的目的是提供一种全向图像中二次曲线的拟合方法,通过分析梯度下降法拟合二次曲线过程中当前梯度值与预测梯度值的大小以及方向,设计算法自适应地调节两个梯度值的比例合成新的梯度值,并对梯度下降步长进行自适应调整,实现二次曲线拟合。在保证运算速度同时,显著提高拟合的精度和鲁棒性。
[0050] 下面将结合附图对本发明加以详细说明,应指出的是,所描述的
实施例仅旨在便于对本发明的理解,而对其不起任何限定作用。
[0051] 图1是本发明提供的全向图像中二次曲线的拟合方法的算法流程图。通过将预测梯度值与当前梯度值以一定的权重结合在一起自适应地生成混合梯度值,并且根据权重值的大小决定对下降步长的放大效果。具体步骤如下:
[0052] 步骤1.对全向图像进行预处理,在待拟合曲线上获取采样点:
[0053] 本发明实施例中所使用的图像为利用配有鱼眼镜头的相机采集的实验室室内环境的全向图像。如图2所示,室内的
天花板以及地面上的直线在得到的全向图像中发生了严重变形,从直线变形为二次曲线。本发明要解决的问题是对严重变形的直线进行更加精确的曲线拟合,为后续应用奠定
基础。本发明针对全向图像严重形变这一特性,对输入的全向图像进行灰度化处理,将输入的彩色全向图像变换为灰度然后利用图像平滑对灰度图像进行降噪,再利用边缘提取技术提取边缘,得到边缘图像。从边缘图像中,根据实际需求,人为选择待拟合曲线(如图2中的曲线1、2、3、4),然后在得到的边缘图像中对待拟合的二次曲线上的点进行采样,生成包含I个点的数据点集{Xi,i=1,2,…,I}(I>3),作为拟合算法的输入。
[0054] 步骤2.初始化曲线拟合方法中各参数:
[0055] 记全向图像中某一待拟合二次曲线的方程为f(X,θ)=0,其中θ为待拟合参数,通常为有6个分量的矢量,X为该二次曲线上的点。拟合二次曲线可以描述为根据二次曲线方程f(X,θ)=0,利用步骤1得到的采样点集合{Xi}估计该二次曲线的参数θ。理论上f(Xi,θ)=0,在实际应用中由于存在噪声、干扰等,该等式并不成立。通常利用其残差构造代价函数其中I为采样点个数。利用所提出的算法,最小化代价函数J(θ)得到
对应代价函数最小值的参数值 作为拟合结果。为了保证算法的泛用性在初始阶段对待拟合参数θ进行赋初值操作。一般将二次曲线的待拟合参数θ0的分量全部取1。预测梯度权重系数α与梯度权重系数β用来描述预测梯度值Vf与当前梯度值V两个梯度值在计算合成梯度运算过程中所占比重。在初始化阶段一般可都取值0.5;步长加速系数γ是用来描述算法在迭代运算过程中每一步是对步长λ加速还是减速的参数。通过对比预测梯度值Vf与当前梯度值V的大小,确定步长加速系数γ的值,即本次运算是加速还是减速。一般初始化时对步长加速系数γ0的值取1,表示本次计算不对步长λ进行加速;梯度权重校正系数ε是用来描述利用二阶导信息对权重系数α和β进行校正的参数。一般在初始化时令梯度校正系数ε0取值0,表示在初始化时合成梯度既不偏向预测梯度也不偏向当前梯度;步长λ是用来描述迭代运算过程中每一步沿合成梯度方向运动幅值的参数。步长λ的取值范围一般在0.0001~
0.1之间,一般先以10为倍数在取值范围内寻找可以收敛的步长值,之后再在这个步长值的基础上进行微调;最大迭代次数是为保证实时性,用于描述在有限时间内无法收敛的情况下允许的最大运算次数。一般在50~80间取值。
[0056] 步骤3.计算第n次迭代的梯度预测权重系数αn、梯度权重系数βn和步长加速系数εn:
[0057] 当利用梯度下降法通过求代价函数最小值对该二次曲线进行拟合时,求解过程在外观上通常呈现为沿山脉从山峰下降到山谷形式。标准梯度下降法梯度下降的过程中会经历三个阶段:当点在“山脉”峰顶
位置附近时,此时梯度值相对较小,呈现出逐渐增大的趋势;经过一定次数迭代后到达“山脉”的中部“斜坡”位置,此时梯度值较大,呈现出从增大到减小的趋势;最后运算到“山脉”底部的“山谷”位置,此时梯度值较小,呈现趋于0的趋势。通过对梯度下降过程的分析可以得到预测梯度的权重系数αn与当前梯度的权重系数βn随预测梯度值Vf与当前梯度值V的差值(Vf-V)变化函数,由此可设计出两个权重系数的迭代表达式。这里给出一组表达式:
[0058]
[0059] 根据计算得到的预测梯度值Vf和当前梯度值V,即可确定预测梯度的权重系数αn,最后得到当前梯度的权重系数βn。
[0060] 拥有较好的梯度值并不能直接降低迭代次数,只有增加每一次迭代的步长才能加快迭代收敛的速度。根据预测梯度值Vf与当前梯度值V的关系可以确定步长加速系数γn与梯度值差(Vf-V)的关系,这里给出一组步长加速系数γn的表达式:
[0061]
[0062] 步骤4.计算第n次迭代的梯度权重校正系数εn:
[0063] 当前的一些梯度下降法虽然考虑到了结合之前的梯度值来矫正当前梯度值,但是却忽略了协调梯度值与下降步长λ大小的关系。这会导致在“峰顶”附近时梯度下降方向与代价函数的实际方向相比向下偏移,而在“山谷”附近时梯度下降方向与代价函数的实际方向相比向上偏移,这就需要更多次迭代计算来消除这些偏移误差。所以通过对当前梯度V运算结果求导确定当前梯度值V的变化率 得到梯度权重校正系数εn,通常梯度权重校正系数εn小于0.2,根据预测梯度值与当前梯度值的变化量与当前梯度的导数关系,其表达式如下:
[0064]
[0065] 由当前梯度值V可以确定梯度校正系数εn。此时的梯度下降值能够很好地进行自适应运算,克服固定步长λ限制运算速度的
缺陷。
[0066] 步骤5.迭代执行步骤3至本步骤,更新待拟合参数,直至算法收敛或终止:
[0067] 1)将前面各步求得的预测梯度权重系数αn、梯度权重系数βn、梯度权重校正系数εn和步长加速系数γn等参数带入如下待拟合参数θn的更新公式:
[0068]
[0069] 其中n为迭代更新次数计数参数,▽表示梯度,▽J(θn-1-Vn-1)为预测梯度值Vf,▽J(θn-1)为当前梯度值V,Vn为由本发明所提出方法自适应确定的合成梯度向量,[0070] 2)重复迭代执行步骤3至步骤5,对于待拟合二次曲线f(X,θ)=0,通过最小化代价函数 得到待拟合参数θ的最优值或达到最大迭代次数得到待拟合参数θ的最优值。
[0071] 步骤6.输出拟合结果,绘制待拟合曲线:
[0072] 本实施例在全向图像中选取了四条二次曲线进行了拟合,由本方法求得图中所示曲线③的表达式为:
[0073] 0.0059x2+0.0125y2-0.0030x·y-0.1590x+0.0003y+1.2125=0。
[0074] 如图2所示,曲线①~④分别对应全向图像中
天花板上的四条直线,拟合之后利用全向图像成像公式可以估计出场景中直线的方程进而可以实现导航定位等功能。相对于其他全向图像中二次曲线拟合方法,本发明具有较好的实时性。在实时性要求较高的机器人导航定位、同时定位与制图以及无人车自动驾驶等应用中,在限定的极短计算时间内能够以更高的精度和鲁棒性拟合二次曲线,进而实现导航定位。
[0075] 以上所述,仅为本发明中的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉该技术的人在本发明所揭露的技术范围内,可理解想到的变换和替代,都应涵盖在本发明的包含范围之内,因此,本发明的保护范围应该以
权利要求书的保护范围为准。