一种立体视觉映射模型建立方法与流程

文档序号:11217354阅读:792来源:国知局
一种立体视觉映射模型建立方法与流程

本发明涉及一种机器视觉技术领域,尤其涉及一种立体视觉映射模型建立方法。



背景技术:

目前的视觉系统类型主要包括单目视觉系统和立体视觉系统,简单的单目视觉系统成像方式是基于线性的透镜成像,在考虑了视觉系统的结构之后,扩展其成像到空间成像坐标系,并分别构建了全局坐标系,摄像机坐标系,成像平面坐标系以及像素坐标系。目标物空间点转换的目的是从成像图片中提取出目标物的三维空间坐标值,立体视觉系统在单目成像原理的基础上增加了目标点的景深信息,这使得移动机器人能够很好的识别目标的姿态及空间方位朝向信息。但是摄像机透镜加工时的畸变因素,将不可避免的影响视觉系统对空间坐标点成像位置的判断,因此利用数学算法合理求解畸变因子也是提高移动机器人视觉系统认知信息精度的关键。



技术实现要素:

本发明的目的就在于为了解决上述问题而提供一种立体视觉映射模型建立方法。

本发明通过以下技术方案来实现上述目的:

1、本发明包括以下步骤:

步骤1:粒子采样;对通过改进tsai算法标定的立体视觉内外参数共28个进行采样,因此采样粒子共有28维,采用随机采样法进行粒子采样,重要性密度函数为高斯分布,方差可以通过经验获得;在空间内产生规模为n的粒子群h={h1,h2,…,hn},h为每个粒子在空间内的28维矢量,h=(αx1,αy1,u0l,v0l,k1l,k2l,p1l,p2l,αl,βl,γl,txl,tyl,tzl,αxr,αyr,u0r,v0r,k1r,k2r,p1r,p2r,αr,βr,γr,txrtyr,tzr)

步骤2:利用采样粒子的畸变参数对图像进行校正,利用采样粒子的其他参数生成投影矩阵,这样每个粒子空间(28维矢量)生成了对应的2幅畸变校正图像和2个投影矩阵;

步骤3:确定适应度函数;

pi为k空间点实际投影的像素坐标,表示当前粒子h作为立体视觉非线性模型参数估计的像素坐标值,利用每个粒子生成的投影矩阵求解;

步骤4:粒子群更新;

为了有效地控制粒子迁移速度,使算法具有精细搜索能力,借鉴模拟退火算法思想在粒子群更新策略中引入惯性因子;在每次迁移中,每个粒子根据以下准则更新位置和速度

式(2)中,为第i个粒子在第k次迁移时第d维速度;c1为认知因子,c2为社会因子,分别调节粒子向个体极值和全局极值方向迁移的步长;r1和r2为(0,1)之间分布的随机数;为第i个粒子在第d维的个体极值位置,为粒子群在第d维的全局极值位置,在迭代过程中根据粒子适应度实时更新;惯性因子ω=b–k(b–a)/k,b=0.9,a=0.4,k为最大迁移次数;

步骤5:粒子群更新结束;

当粒子群达到设定的截止迁移次数k或粒子适应值达到期望值ζ,粒子群停止优化;将更新结束后的粒子进行粒子滤波,粒子滤波以棋盘格特征点的3d坐标作为优化条件,也是符合立体视觉实际应用;

步骤6:获取特征点观测值

以棋盘格第一个位置作为世界坐标系,求取棋盘格各特征点的坐标值作为观测值,棋盘格采用的30cm*30cm的黑白方格,很容易获取个特征点的观测值;

步骤7:特征点预测值求解;提取特征点在左右摄像机图像的像素坐标,以当前粒子h作为立体视觉的非线性参数计算对应特征点的预测值;计算方法如下;

其中,(xw,yw,zw,1)为点p在世界坐标系下的齐次坐标,(u1,v1,1)与(u2,v2,1)分别为点p在左右像机的图像坐标系投影的齐次坐标;由式(3)和(4)可以得到关于xw,yw,zw的四个线性方程:

式(5)3个未知数4个方程,为了提高计算精度减少噪声影响,采用最小二乘法求解;

步骤8:粒子权重计算,并做归一化处理;

粒子权重计算就是计算每个粒子hi的概率大小;

由于每个标定特征点pi之间误差分布是独立,标定参数采样粒子的概率大小计算公式如下:

由式(6)可知,如果能够求出每个特征点pi对标定参数采样粒子的影响,也即求出p(pi|hi),通过式(6)很容易求取标定参数采样粒子在所有特征点影响下的概率大小;设每个特征点的观测值预测值为为了计算简单,设p(pi|hi)服从高斯分布,其中均值u为的差值,方差为观察值方差和预测值的方差之和;

其中观测值通过棋盘格获取,误差可以忽略不计,预测值由立体视觉获得;

路标误差计算如下:

式(8)中r,c是特征点在左图像的投影坐标,r0,c0是左图像的中心坐标.变量c,r,d被认为均值为零的高斯随机分布,根据协方差前向传播定理,

j为式(9)的雅克比矩阵,分别为对应变量的协方差,一般取式(9)经计算得到:

归一化权重:

步骤9:求标定参数精确估计值及其协方差,标定参数精确估计值是将每组采样粒子乘以归一化权重然后求和如式(12),其标定参数精确估计值的协方差如式(13):

采用的粒子滤波进行立体视觉标定优化算法,更好的结合了立体视觉导航的具体应用,对所有参数进行整体优化使3维坐标重投影误差最小化。

本发明的有益效果在于:

本发明是一种立体视觉映射模型建立方法,与现有技术相比,本发明对关键畸变因子的标定提出了基于tsai改进算法。详细介绍了基于opencv的实现方法,算法充分考虑了opencv函数库最小二乘法的特性,对图像分步进行畸变校正,避免透镜非线性映射导致的计算量增加,降低了算法迭代次数,是一种高效,简便的算法。为了进一步提高标定精度,采用了粒子群优化粒子滤波的非线性优化算法,通过粒子群优化使粒子集朝后验概率密度分布取值较大的区域运动,从而克服了粒子贫乏问题,并极大地降低了精确预估所需的粒子数,提高估计精度。同时粒子群优化时以投影像素误差作为约束条件,而粒子滤波求取粒子权重时以棋盘格的特征点3d坐标误差进行计算,充分考虑了2维和3维误差,大大提高标定的精度和鲁棒性。最后进行了实验分析,以标定板特征点3d投影误差作为精度评价指标,结果表明本算法精度高、鲁棒性好,在立体视觉导航中有很好的应用前景。

附图说明

图1是本发明的3d路标不确定性图;

图2是本发明棋盘格平面标定模;

图3是本发明成功检测特征点对比图;

图4是本发明畸变矫正标靶。

具体实施方式

下面结合附图对本发明作进一步说明:

本发明包括以下步骤:

步骤1:粒子采样;对通过改进tsai算法标定的立体视觉内外参数共28个进行采样,因此采样粒子共有28维,采用随机采样法进行粒子采样,重要性密度函数为高斯分布,方差可以通过经验获得;在空间内产生规模为n的粒子群h={h1,h2,…,hn},h为每个粒子在空间内的28维矢量,h=(αx1,αy1,u0l,v0l,k1l,k2l,p1l,p2l,αl,βl,γl,txl,tyl,tzl,αxr,αyr,u0r,v0r,k1r,k2r,p1r,p2r,αr,βr,γr,txrtyr,tzr)

步骤2:利用采样粒子的畸变参数对图像进行校正,利用采样粒子的其他参数生成投影矩阵,这样每个粒子空间(28维矢量)生成了对应的2幅畸变校正图像和2个投影矩阵;

步骤3:确定适应度函数;

pi为k空间点实际投影的像素坐标,表示当前粒子h作为立体视觉非线性模型参数估计的像素坐标值,利用每个粒子生成的投影矩阵求解;

步骤4:粒子群更新;

为了有效地控制粒子迁移速度,使算法具有精细搜索能力,借鉴模拟退火算法思想在粒子群更新策略中引入惯性因子;在每次迁移中,每个粒子根据以下准则更新位置和速度

式(2)中,为第i个粒子在第k次迁移时第d维速度;c1为认知因子,c2为社会因子,分别调节粒子向个体极值和全局极值方向迁移的步长;r1和r2为(0,1)之间分布的随机数;为第i个粒子在第d维的个体极值位置,为粒子群在第d维的全局极值位置,在迭代过程中根据粒子适应度实时更新;惯性因子ω=b–k(b–a)/k,b=0.9,a=0.4,k为最大迁移次数;

步骤5:粒子群更新结束;

当粒子群达到设定的截止迁移次数k或粒子适应值达到期望值ζ,粒子群停止优化;将更新结束后的粒子进行粒子滤波,粒子滤波以棋盘格特征点的3d坐标作为优化条件,也是符合立体视觉实际应用;

步骤6:获取特征点观测值

以棋盘格第一个位置作为世界坐标系,求取棋盘格各特征点的坐标值作为观测值,棋盘格采用的30cm*30cm的黑白方格,很容易获取个特征点的观测值;

步骤7:特征点预测值求解;提取特征点在左右摄像机图像的像素坐标,以当前粒子h作为立体视觉的非线性参数计算对应特征点的预测值;计算方法如下;

其中,(xw,yw,zw,1)为点p在世界坐标系下的齐次坐标,(u1,v1,1)与(u2,v2,1)分别为点p在左右像机的图像坐标系投影的齐次坐标;由式(3)和(4)可以得到关于xw,yw,zw的四个线性方程:

式(5)3个未知数4个方程,为了提高计算精度减少噪声影响,采用最小二乘法求解;

步骤8:粒子权重计算,并做归一化处理;

粒子权重计算就是计算每个粒子hi的概率大小;

由于每个标定特征点pi之间误差分布是独立,标定参数采样粒子的概率大小计算公式如下:

由式(6)可知,如果能够求出每个特征点pi对标定参数采样粒子的影响,也即求出p(pi|hi),通过式(6)很容易求取标定参数采样粒子在所有特征点影响下的概率大小;设每个特征点的观测值预测值为为了计算简单,设p(pi|hi)服从高斯分布,其中均值u为的差值,方差为观察值方差和预测值的方差之和;

其中观测值通过棋盘格获取,误差可以忽略不计,预测值由立体视觉获得;

路标误差形成如图1,计算如下:

式(8)中r,c是特征点在左图像的投影坐标,r0,c0是左图像的中心坐标.变量c,r,d被认为均值为零的高斯随机分布,根据协方差前向传播定理,

j为式(9)的雅克比矩阵,分别为对应变量的协方差,一般取式(9)经计算得到:

归一化权重:

步骤9:求标定参数精确估计值及其协方差,标定参数精确估计值是将每组采样粒子乘以归一化权重然后求和如式(12),其标定参数精确估计值的协方差如式(13):

采用的粒子滤波进行立体视觉标定优化算法,更好的结合了立体视觉导航的具体应用,对所有参数进行整体优化使3维坐标重投影误差最小化。

实验与结果分析

如图2所示:由于3d标定物的精度难以保证,这里采用多个空间方位角度不同黑白交替排列的棋盘格平面标定模板。使用pointgreyresearch公司生产的bumblebee2camera作为图像采集设备。双目视觉系统基线长120mm,最大分辨率为1024×768,像素面积为4.65um×4.65um,帧数为30fps,70°水平视角下的焦距为3.8mm,50°水平视角下的焦距为6mm,数字图像位深由支持的数据格式定为24bit,图像信号噪声比率在0db的时候增益大于60db。

目标棋盘格标定板尺寸270mm×210mm,每个棋盘格尺寸为30mm×30mm,中心距30mm,阵列9×7,每幅图像像素比均为640×480,位深8bit,标定面的平整度误差范围在-0.05mm以内,透镜成像平面与标定靶面的夹角保持在50°以内。

实验时,双目摄像头一共采集3组共10副不同空间方位的图像,应保证获取的棋盘格占据成像平面大部分区域。算法进行特征点提取时,首先在图像中心点区域范围内绘制特征点图像,以避免图像边缘过畸变导致的标定实际误差,特征点位置用图中圆圈内两直径的交点表示,然后标定平板上特征点的行列数。提取成功的图像,前一行的最后一个特征点与后一行的第一个特征点由彩色直线相连,以判断是否找到所有特征点,每一行特征点都用不同颜色的圆圈区别。图中第一行的三幅棋盘格图像为左摄像机特征点提取结果,第二行的三幅图像是在相同空间成像映射下,右摄像机的特征点提取结果。

如图3所示:为了验证本文标定方法的可行性,将本文提出的粒子群优化粒子滤波优化算法(方法1)分别与遗传算法非线性优化标定的立体视觉两步标定法[81](方法2)和仅使用粒子群算法非线性优化标定的立体视觉两步标定法[77](方法3)进行了比较,方法1中粒子数位500,截止迁移次数500,方法2中遗传截止进化代数为10000,方法3中粒子群截止迁移次数为3000,优化后具体参数如表3.2所示。

表3.2参数对比

通过粒子群优化粒子滤波优化算法后更接近真实值,为了进一步评价算法的优劣,结合立体视觉导航应用环境,采用了空间真实坐标点与重建后对应的坐标值的均方根作为评价指标,如式(3-30),其参数如表3.3。

表3.3性能评价结果

三种算法标定的立体视觉的相互位置参数如表3.4,粒子群优化粒子滤波的参数更接近厂家出厂的参数。

表3.4左右相机相互位置参数比较

最后用标定的畸变参数对图像进行了畸变矫正,图3棋盘标定格图像经过畸变矫正后结果如图4,可以看出,算法可以显著纠正透镜成像时发生在图像边缘的径向畸变和切向畸变。

小结

本发明内容介绍了立体视觉标定,通过对目前常用的几种视觉系统的标定方法的分析,提出了一种基于2d平面靶标的多项畸变模型立体摄像机标定方法,算法线性求解了尺度焦距因子、像素平面中心点坐标、旋转矩阵参数、平移矩阵参数在内的十项摄像机参数。对关键畸变因子的标定提出了基于tsai改进算法。详细介绍了基于opencv的实现方法,算法充分考虑了opencv函数库最小二乘法的特性,对图像分步进行畸变校正,避免透镜非线性映射导致的计算量增加,降低了算法迭代次数,是一种高效,简便的算法。为了进一步提高标定精度,采用了粒子群优化粒子滤波的非线性优化算法,通过粒子群优化使粒子集朝后验概率密度分布取值较大的区域运动,从而克服了粒子贫乏问题,并极大地降低了精确预估所需的粒子数,提高估计精度。同时粒子群优化时以投影像素误差作为约束条件,而粒子滤波求取粒子权重时以棋盘格的特征点3d坐标误差进行计算,充分考虑了2维和3维误差,大大提高标定的精度和鲁棒性。最后进行了实验分析,以标定板特征点3d投影误差作为精度评价指标,结果表明本算法精度高、鲁棒性好,在立体视觉导航中有很好的应用前景。

以上显示和描述了本发明的基本原理和主要特征及本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1