张裕奇
北京师范大学-香港浸会大学联合国际学院 519000
摘要:目前,双目立体视觉广泛应用于三维模型重建和立体匹配等多个领域,对双目立体视觉系统进行校准的首要任务是获取双目立体视觉系统中目标的位置信息。在相机校准过程中,需要确定相机的光学和几何参数以及相机坐标系和自由空间坐标系的相对位置和方向。在双目立体视觉系统中,二维图像点和三维目标对象之间的对应关系只能通过相机校准来实现。
关键词:改进进化;神经网络;双目视觉;系统标定
引言
许多科学家和组织对双目立体视觉系统中的相机标定方法进行了深入研究。主标定方法大致可分为两种:一种是参数标定方法,它首先确定相机坐标和世界坐标之间存在数学映射模型,可以用内部参数和外部参数来表征。当前,该方法的主流方法是双水平法和主动校准法。
1.意义分析
以上所有方法都基于图像的几何特性。首先确定模型的特定形状,然后计算各种校准参数。这些方法的主要缺点是计算繁琐,影响校准精度的非木材因素很多。另一种是非参数标定方法,其主要思想是实现对应空间点与滑动图像点之间的制图关系,其中主要采用神经算法或遗传算法。遗传算法主要用于单相相机参数的校准,但由于不考虑透镜的畸变系数,很难保证三维测量的准确性。此外,随着优化大小的增加,该方法的性能将大大降低。基于神经网络的摄像机标定方法具有二维投影坐标及其三维坐标在点图像平面上快速映射的优点,避免了复杂的非线性计算,实现了更高的精度。神经反馈网络(BP)是多层前馈的人工神经网络,其独特优势在于其强大的非线性映射能力。Bp神经网络用于摄像机的高精度和鲁棒性标定。
2神经网络结构设计
(1)设计网络输入层结构通过处理由左右两个相机采集的像素点,可以确定其在两个图像中的坐标。将两个图像中的坐标设置为神经网络的输入值,神经网络的输出值即为对应的三维坐标。将对应图像的坐标点输入到网络输出层为(x,y,z),输入层的神经元数为4,输出层为3,如图1所示。
(2)设计隐藏层结构目前,网络结构确定尚没有较好的解决方案,只能通过试错法确定神经网络的隐层和神经元数量。首先设置较少的节点,训练网络,并测试网络近似误差,然后逐渐增加节点数,直到测试错误不再显著减少为止。根据上述原理,通过多次试错,选择了3层隐层BP神经网络,隐层神经元数量分别为4,5,100。
(3)设计神经元激励函数隐层激励函数为正切tanh函数,输出范围为。输出层的激励函数是线性函数,使得网络的输出可以是任意大小的值。(4)神经网络的结构如图1所示是具有3个隐藏层的网络结构。其中:(Y)代表由左侧相机拍摄的一系列图像的二维坐标组;(Y)则是由右侧相机拍摄的坐标组;(X,y,z)是三维空间对应点的坐标。
(5)训练函数的选择相机校准工作要求神经网络具有良好的泛化能力,所谓泛化能力是指基于有限样本的神经网络模型也能具备良好的预测能力。泛化能力是衡量神经网络性能的重要标志。目前被普遍应用的提高泛化能力的方法有正则化方法和初始化正则化方法,其目的都是通过修改训练函数来提高神经网络的泛化能力。一般来说,神经网络的训练性能函数基于均方误差函数mse如下。1Ⅳ1,vmse=专∑(ei)2=专∑(fi一口i)2(1)‘’I=l1’‘=1式中:ei,ti,口i分别为第i个样本的训练误差、理想输出和实际网络输出。在正则化方法中,网络性能函数的改进如下:,Nmsereg=f·mse+(1一手)面1∑(2)式中:f是比例因子;∑川N∞;是网络的所有权重之和。采用泛化功能函数可以确保网络训练误差尽可能小,较少网络的有效权重个数,使网络训练输出更加平滑,从而提高网络的泛化能力。初始化正则化方法也可以提高网络的泛化性能。当采用初始化正则化方法时,应避免采用快速收敛的训练算法。正常情况下,正则化方法的综合表现优于初始化正则化方法。
(6)训练样本的预处理输入神经网络的变量值是存在很大差异的,因此必须对输入变量进行归一化。不仅网络的输入层数据需要归一化,输出数据同样需要类似的方法进行处理。对于输出数据,应进行计算以恢复实际值。在本文中,使用matlab中求极值和归一化的工具函数(premnmx,poshrmmx,tramnmx)。其结果是将输入向量和目标向量值设置为的范围。
3校准测试
相机校准过程即是双目立体视觉系统中相机采集数据样本的过程。
3.1校准模板的设置
隐层激励函数为正切tanh函数,输出范围为。输出层的激励函数是线性函数,使得网络的输出可以是任意大小的值。校准模板平均分布95个黑色块,边长为40mm。为了确保样本数据的完整性,令校准模板与x轴y轴形成的平面形成夹角,角度设定为20。如果校准板平行于世界坐标系的三轴,则获取的样本集将是不完整的。合适的样本点对校准精度具有决定性影响,同时校准点的个数与校准精度成正比。
3.2校准图像的获取
将两台高速相机和显示器连接到控制计算机上,两台相机的角度为100。调整焦距和光线并设置触发信号,同步触发相机以捕获校准模板的图像数据。然后多次移动校准模板的位置,并采集数量不同的图片作为神经网络训练的样本,如图2所示。这里测试了不同样本数量以及不同模板位置对神经网络训练的影响。
首先,测试不同训练样本数量对神经网络训练的影响。采集5个位置的图像,采集不同数量的图像作为训练样。训练样本组的数量分别为8、10、12、20。通过图中内容可以看出,在一开始增加样本数量可以使神经网络收敛的均方根误差值降低,并且收敛速度也会有所提高。当采样数超过10组之后,收敛速度由于计算量的加大而升高,但是对于误差降低的贡献则不太明显。
在继续提高训练样本数量之后,神经网络出现了过拟合的现象,误差反而上升了。这是因为神经网络的信息存储能力有限,过多样本会造成一些有用的信息被丢弃。如果样本数量过多,应增加隐层节点数或隐层数目,才能增强学习能力。而增加隐藏节点数或者是隐藏层数则会明显增加计算资源,导致算法时间运行过长,或者出现新的过拟合现象。所以对于样本数量和神经网络规模的设计依赖于经验,需要不断协调才能调整到相对平衡的状态。第二步,测试校准模板移动位置对神经网络训练的影响。
固定取10组图像样本作为训练集,但在取样本过程中分不同次数地移动校准模板,分别更换位置的次数为5、7、9、10由实验结果可以看出,更换位置的次数越多可以使神经网络的训练效果更好,不同校准位置可以提高更丰富的位置信息,有利于神经网络的训练。但如果取更多位置的样本图像,则会造成,过多的训练样本造成神经网络过拟合,所以取样位置和样本数量需要根据神经网络的设计情况作出调整,以适应不同环境的校准实验。
3.3神经网络训练
提取拍摄到的校准模板上像素块点的中心坐标,将这些坐标分为两组,一组用于训练网络,另一组用于验证网络的性能。误差函数采用均方根误差计算方法。如果训练网络的过程最终收敛,则将立体视觉成像几何模型的非线性映射关系将存储在神经网络的连接权重和阈值中。训练的均方误差值为0.0022061,平方权重等于57.9684,梯度为9.2321×10~。这些参数收敛到一个恒定值,网络训练则终止。
4结论
本文探究了一种基于人工神经网络的双目立体视觉系统校准方法。相机参数校准所采用的方法是加入正则泛化过程的反馈神经网络。通过实验验证,这种方法可以在确保精确度的同时,降低相机参数优化的复杂度,同时因为加入了泛化过程,可以使神经网络的训练过程避免过拟合的现象,加强了算法的鲁棒性。这套校准过的双目立体视觉相机系统,可有效应用在粒子的动态捕捉场景,而无需进行复杂的相机调校工作。实验表明,该方法具备良好的可行性,但目前对于神经网络参数的优化,还较为依赖经验设置,下一步的研究可针对神经网络参数的自适应方法进行深入探索。
[参考文献]
[1]HuXC,AnHL,MaHX.GeneticoptimizedBPnetworkmethodforcameracalibrationinbinocularvision[J].TransTechPubl,2013,756(1):3404—3409.
[2]袁野,欧宗瑛,田中旭.应用神经网络隐式视觉模型进行立体视觉的三维重建[J].计算机辅助设计与图形.学学报,2003,15(3):293—296.