双目立体视觉测量技术因其非接触、测量速度快、精度高等特点应用于各行业的智能制造及检测中[1].当搭建一个完整的双目立体视觉系统时,为保证系统的测量精度,先要对系统中的相机进行参数标定.待标定的参数主要为左右相机的内参数及左右相机的相对位置参数,即相机内参数和相机间外参数.理想的相机成像模型为针孔成像模型,但相机凸镜由于受加工运输阶段的影响,模型会发生非线性畸变[2-4];线性成像模型相对简单,但标定精度低,因此这两类成像模型很难应用于工程实际问题.目前,双目视觉系统标定方法主要包括传统相机标定法和BP神经网络标定方法两大类.传统标定方法往往将模型过于理想化,而导致精度不高.BP神经网络标定方法通过网络的训练,来描述相机成像过程中的非线性模型,可以达到较好的计算精度,相关的研究工作也比较多[5-6],然而采用BP神经网络标定有更高精度的同时,越来越多的研究者意识到网络训练质量过度依赖于权重和阈值的初始值,使得求解过程的稳定性及可靠性都比较低.针对以上问题,在传统BP神经网络的基础上,本研究引入种群阻滞增长机制,解决了传统标定方法存在的操作复杂性和BP神经网络训练结果对初始权重和阈值的敏感性的问题.1 阻滞增长神经网络1.1 阻滞增长机制仿生算法是智能算法领域中一个重要的组成部分,它通过模拟自然界生物的某种行为机制,构造具有同样思想的智能算法,广泛应用于求解工程实际问题的遗传算法[7-8]和蚁群算法[9-10]就是典型的仿生算法.阻滞增长机制[11]模拟了在客观条件下,生物种群规模的增长曲线模型,该模型认为在环境资源和其他物种存在的约束下,生物种群数量的增长率是一个随着生物本身种群规模的增加而递减的变量,在进行优化问题搜索的过程中,增长率逐渐递减为0邻域以内,而生物种群数量在环境容纳量附近作小幅度波动,从而使算法实现收敛.阻滞增长机制的优点在于:第一,原理简单,易于编程实现;第二,迭代过程中的迭代次数根据目标函数的变化而改变,保证了跳出迭代时的解为满意解.以文献[12]中的函数优化为例来阐述种群阻滞增长机制的优点,该函数表达式为f(x)=1-sin(10πx)/x, (1)式中x∈[1,2].对于该函数最大值优化问题,编码方式可直接采用二进制编码,取求解精度为0.000 1,因此解的编码长度为13.确定初始参数后,进入循环迭代过程,只有当当前种群数量大于环境容纳量时,结束循环,输出最优解.为验证该机制的有效性,以粒子群优化(PSO)算法和遗传算法(GA)为参照,分别进行试验.当使用PSO算法进行求解时,学习因子分别取0.5和0.6,惯性系数取0.7;当使用GA求解时,染色体长度为13,最大迭代次数取20,交叉概率和变异概率分别取0.6和01,种群规模取30;当使用阻滞增长机制进行求解时,初始种群规模为1×104,环境容纳量为1×108,初始增长率取0.001.将上述三种方法以总迭代次数为20次做独立重复试验30次,从平均最大值、最优值迭代次数、30次试验中收敛的次数及收敛率等方面对比,三种方法的求解结果见表1.10.13245/j.hust.211213.T001表1PSO算法、GA及阻滞增长机制求解结果算法最优解迭代次数收敛次数收敛率/%PSO1.847 048 93171343.3GA1.869 852 6519930.0阻滞增长1.869 823 321130100.0从表1可以看出:在最优解的满意度方面,GA和阻滞增长机制的最优解满意度更高,而PSO算法容易陷入局部最优;在迭代次数及收敛率方面,阻滞增长机制因其在迭代过程中,搜寻新解次数与当前种群规模相关,容易跳出局部最优解,从而在较少的迭代次数情况下可获得满意度较高的解,收敛率较其他方法较高;因此用阻滞增长机制优化BP神经网络的权重和阈值初始化阶段,以提高网络的训练效率和稳定性.1.2 基于阻滞增长机制的改进BP神经网络BP神经网络用于对双目视觉系统进行标定,是近年来的研究热点.但是,初始权重和阈值的随机化取值导致训练结果对初始值依赖较大和训练结果不稳定的问题,这使得传统BP神经网络在解决该类问题时求解效率下降、甚至不收敛.因此,目前的研究主要集中于对初始权重和阈值的优化阶段.本研究将种群阻滞增长机制应用于BP神经网络的权重和阈值的初始化阶段,以BP神经网络的训练误差作为种群中个体的适应度函数进行迭代,直至算法选择出最优的个体作为BP神经网络的初始权重和阈值,改善随机选取权重和阈值的不稳定性.阻滞增长神经网络先构建网络拓扑结构,确定网络层数和各层神经元的个数,采用实数编码的方式对所有的权重和阈值进行编码,作为阻滞增长机制中的初始个体X0,编码长度等于权重和阈值的数量,计算公式为s=NiNh+Nh+NhNo+No, (2)式中Ni,Nh和No分别为输入层、隐含层和输出层的神经元个数.适应度函数用于计算神经网络输出值与期望输出值之间的平均误差,不断产生新个体并与旧个体适应度进行比较,保存适应度高的个体,在每一次运算过程中更新种群的数量及增长率,记录当前代数的适应度.当种群数量达到环境容纳量时,迭代结束,此时个体即为所求最优个体,若权重和阈值均达到最优值,则将其赋给BP神经网络,进入神经网络的训练过程.改进的阻滞增长神经网络模型在模型训练之前引入种群阻滞增长机制,先对初始权重和阈值进行优化,再将优化后的结果返回至神经网络,解决了BP神经网络训练中因初始权重和阈值的随机取值造成对训练结果稳定性和精度的影响,其具体实现流程如下.a. 分配训练集和测试集,搭建BP神经网络拓扑结构.b. 将网络的权重和阈值进行编码作为阻滞增长模拟机制的初始种群个体,编码策略采用实数编码,每一个编码位代表神经网络中的某个权重或阈值,编码长度等于权值和阈值总数量.c. 进行阻滞增长机制的迭代循环判断直至达到环境容纳量,跳出循环,输出最优个体.在迭代过程中,新解产生的方式有片段交叉和多点变异两种方式,如图1所示.10.13245/j.hust.211213.F001图1片段交叉与多点变异方式d. 将最优个体值进行解码,分别赋值给神经网络结构的权重和阈值,即每个编码位上的数值直接代入到网络中,完成网络参数的优化.e. 进行神经网络训练、预测,得到最终的预测结果.阻滞增长神经网络模型具有以下特点:a. 适应度函数直观反映了当前个体下BP神经网络的计算输出值与理论输出值之间的偏差;b. 编码原理简单,实数编码的方式避免了繁琐的编码解码过程;c. 优化后的权重和阈值能够改进网络的训练过程,提高训练效率和降低误差.2 实验2.1 改进Harris角点检测算法Harris角点检测算法是目前常用的角点检测算法之一,主要原理如下:棋盘格在图像中的角点识别通常在较小的局部滑动窗口中进行,窗口的尺寸远小于棋盘格正方形的尺寸,当窗口移动时,若其中灰度值变化较大,则认为含有角点;否则,认为其中不含角点.这里的运动变化是通过平移窗口时所产生的自相似性值来衡量的.假设在图像上一点(x,y)处像素的灰度值为I(x,y),则当距离在点(x,y)处偏移(u,v)时,自相似性E(u,v)为E(u,v)=∑(u,v)∈W(x,y)w(x,y)∙[I(x+u,y+v)-I(x,y)], (3)式中:w(x,y)为加权函数,是以点(x,y)为中心的窗口;I(x,y)为点(x,y)处的像素灰度值;I(x+u,y+v)为在点(x,y)处移动距离(u,v)时的像素灰度值.当E(u,v)的值在窗口中的所有方向上发生变化时,则认为是角点所在的位置.因此对于较小的局部运动而言,式(3)可简化为E(u,v)≅uvMuv, (4)式中M为二阶偏导矩阵,其计算包含导数的计算和累加窗口中偏导值的计算,M=∑x,yw(x,y)Ix2IxIyIxIyIy2, (5)其中Ix,Iy为I(x,y)的偏导数,矩阵M为对角线阵,设λ1和λ2为矩阵M的特征值,则M可写为M=λ100λ2.(6)当λ1和λ2都较大且数值相当时,认为Harris角点检测算法可检测到角点的位置.该方法虽然具有灰度不变性和旋转不变性,但不具有尺度不变性[13-14],且在小范围内图像中的角点可能被视为放大后的边缘特征,从而导致一些角点检测失败.因此,本研究提出一种改进的Harris角点检测算法,该算法引入图像的高斯金字塔模型,在不同的高斯尺度空间内进行Harris角点检测.对每一幅图像I(x,y),令L0层图像为L0(x,y)=I(x,y),(7)当窗口大小取5时,则第j层Lj为Lj(x,y)=∑m=-22∑n=-22w(m,n)Lj-1(2x+m,2n+y), (8)式中w(m,n)为高斯加权函数.引入高斯图像金字塔模型后,用Harris角点检测算法在大尺度图像中进行角点检测,避免了在小范围内将边缘特征视为角点检测对象.完成检测之后再在减小尺度后的图像中进行角点检测,此时依据线性成像特性,只须在对应角点位置的5×5邻域内进行检测,避免在全图范围内进行算法搜索,提高了检测速度.改进前后不同大小棋盘格角点检测效果如图2所示(左侧为改进前,蓝色圈内的角点未检测成功;右侧为改进后,角点均检测成功).10.13245/j.hust.211213.F002图2改进前后Harris角点检测算法对比2.2 实验步骤实验验证方法多采用重投影误差法来衡量标定算法性能的好坏,将角点的成像亚像素坐标值与反投影像素坐标对比,分析平均重投影误差的大小.该方法在计算上易实现,但无法直观反映三维坐标与理想值之间的偏差;因此本研究直接计算坐标值与期望值之间的百分比误差,更直观地体现算法标定结果的优劣.本研究自制的实验设备如图3所示,包含双目相机模组一个,相机等设备主要参数如下:相机图像分辨率为1 280×480,画面帧率为30帧/s(即画面每秒传输帧数);标定棋盘格一个,单格尺寸为20 mm×20 mm,内角点数为13×9;PC机一台,CPU型号为i3-3110M,主频率为2.40 GHz,内存为4 GiB;标定支架一个,支架上附有直角接头,可根据需要上下移动.10.13245/j.hust.211213.F003图3算法标定比对实验设备将棋盘格角点数据作为输入数据,棋盘格角点及其坐标系如图4所示.x方向内角点个数为13,y方向内角点个数为9,且角点间隔均为20 mm,由此可确定每一个内角点的x,y坐标.通过移动标定板可获得多组角点坐标数据.10.13245/j.hust.211213.F004图4标定棋盘格坐标系及内角点空间分布实验具体操作流程如下.a. 用改进的Harris角点检测算法对标定板内的棋盘格角点进行检测,获得z坐标为0时的117个内角点的像素坐标.b. z方向上依次移动标定板,依次进行角点像素坐标检测,由此可获得351组内角点坐标值及其世界坐标系坐标值.c. 搭建BP神经网络,根据经验公式确定网络拓扑结构为4-5-3.d. 将数据集按照训练集与测试集之比为9:1的比例,分为316组训练集数据和35组测试集数据.e. 初始化阻滞增长模拟机制参数.设定初始种群规模P0=1×104,初始增长率r0=0.001,环境容纳量K=1×107,对权重和阈值进行优化.f. BP神经网络依据优化后的权重和阈值开始训练,取迭代次数为100,学习率为0.1.g. 训练完成后,分析测试集的理论值与预测值的百分比误差.3 实验结果与分析本研究首先运用种群阻滞增长机制优化BP神经网络的初始权重和阈值,误差(eavg)收敛曲线如图5所示(图中Q为迭代次数).其次,将优化后的权重和阈值赋值给各神经元进行训练,训练均方误差(eMS)曲线如图6所示,从图中可以看出:当神经网络迭代到73次时,验证集均方误差达到最小值4.617 6;训练集、验证集和测试集的回归系数都接近1,具有较好的拟合效果.10.13245/j.hust.211213.F005图5阻滞增长模拟机制误差收敛曲线10.13245/j.hust.211213.F006图6阻滞增长神经网络均方误差曲线利用坐标平均误差与误差百分比可以更好反映标定坐标值的误差波动情况,坐标平均误差值err与误差百分比ε计算公式为err=(|Xm-Xw|+|Ym-Yw|+|Zm-Zw|)/3; (9)ε=(|Xm-Xw|/Xw+|Ym-Yw|/Yw+|Zm-Zw|/Zw)/3, (10)式中:下标m表示算法的计算值;下标w表示期望值.依据式(9)和(10),计算可得BP神经网络和阻滞增长神经网络的平均误差百分比分别为3.27%和2.49%,相比于常用的BP神经网络方法,阻滞增长神经网络标定法精度提高了1.31倍.就标定精度而言,阻滞增长神经网络标定方法在平均误差值方面小于BP神经网络标定方法的,标定结果更精确;就标定稳定性而言,平均误差百分比方面,阻滞增长神经网络标定方法也小于BP神经网络标定方法的,误差波动较小,标定结果更稳定.4 结论本研究针对传统标定方法存在的精度不高和BP神经网络训练结果对初始权重和阈值的敏感性等问题,开展了理论和实验研究,通过理论推导和实验验证,得到如下结论.a. 将种群阻滞增长机制应用于改进的神经网络模型,利用其具有较好的收敛性特点,对BP神经网络的初始权重和阈值进行优化,提高了神经网络计算结果的稳定性和均方误差曲线的收敛性.b. 运用Harris角点检测算法时,引入了高斯金字塔图像模型,使算法在从高尺度图像向低尺度图像检测过程中,不仅保证了检测速度基本不变,同时还提高了角点检测的成功率.c. 设计并开展了比较实验,实验结果表明:与传统BP神经网络标定方法相比,当采用阻滞增长神经网络算法进行标定时,具有收敛速度快、平均误差小和误差波动小的优点.

使用Chrome浏览器效果最佳,继续浏览,你可能不会看到最佳的展示效果,

确定继续浏览么?

复制成功,请在其他浏览器进行阅读