改进遗传算法优化BP神经网络的双目相机标定

2022-01-22 10:40胡志新
电光与控制 2022年1期
关键词:张氏双目标定

胡志新, 王 涛

(东华理工大学机械与电子工程学院,南昌 330000)

0 引言

主流的视觉测量技术主要有单目视觉测量技术、双目视觉测量技术[1]和结构光视觉测量技术[2]3种。相机标定是视觉测量技术中最重要的一步,相机标定的精度会直接影响到最终的结果。在相机标定领域,国内外学者都做了大量的研究。其中,介于自标定法和传统标定法之间的张氏标定法得到广泛应用,它既克服了传统方法需要高精度标定物的缺点,又提高了标定精度[3]。潘晓在分析相机标定原理的基础上提出了基于神经网络的标定方法;傅其凤等[4]通过神经网络建立了二维图像坐标与世界坐标之间的关系,利用神经网络来减少非线性相机的系统误差。以上研究中,基于BP神经网络的双目相机标定方法具有简便、易操作等优点,但同时也具有迭代时间较长、精度较低等不足。

实验以张氏标定法[5-6]为基础,利用改进遗传算法优化BP神经网络来进一步优化,结合张氏标定法的简单便捷、遗传算法[7]的寻优性和神经网络的非线性,获得较高的相机标定精度,克服了常规BP神经网络方法迭代时间长、精度低等缺点。

1 基于张氏标定法求解世界坐标

机器视觉测量是从二维图像坐标到三维世界坐标的过程。在此过程中会涉及到4个坐标系,分别是像素坐标系、图像坐标系、相机坐标系和世界坐标系。通过针孔成像模型可以建立二维像素坐标系与三维世界坐标系的联系。

双目视觉测量基于人眼的视差原理,通过模仿人眼来获取物体的三维信息。两台相机从不同的角度拍摄物体,通过视差原理来恢复物体的三维信息。使用如图1所示的任意位置放置相机的双目视觉模型,再结合针孔成像模型进行计算。

图中,点P(XP,YP,ZP)为待测物体点,OL,OR分别表示左右相机的光心,点P在左右相机成像平面上的成像点分别为p和p′,CL,CR分别为左右相机的相机坐标系。

图1 双目相机模型Fig.1 Binocular camera model

首先根据坐标系之间的关系,可确定从像素坐标转化到世界坐标的关系,然后利用张氏标定法求出相机内外参数,设M为内外参数矩阵的乘积,表示为

(1)

式中:fx,fy分别为相机x轴和y轴的像素单位焦距;(u0,v0)为像素坐标系原点;γ为径向畸变系数;R,T分别为3×3旋转矩阵和3×1平移向量;0和1为矩阵补齐常数。

左右相机从像素坐标转化到世界坐标的关系分别为

(2)

(3)

式中:ZC1,ZC2分别为左右相机坐标系的尺度因子;ML,MR分别为左右相机的内外参数乘积;(XW,YW,ZW)为标定板角点的世界坐标。

联立式(2)、式(3),可得

(4)

式中,(u1,v1),(u2,v2)分别为左右相机所拍摄图片的像素坐标系下的点。再采用最小二乘法,即可由式(4)的4个方程联立求解出(XW,YW,ZW)[8]。实验中,当相机标定完成后就不可再移动,且需要拍摄不同角度的照片。因此,该方法只适用于双目相机的标定,不宜用于单目相机。

2 基于改进遗传算法优化BP神经网络的双目相机标定

2.1 BP神经网络设定

实验中,BP神经网络设置为输入层、隐含层和输出层3层。研究表明,单隐含层的神经网络可实现任何有理函数的逼近。实验的输入量为标定板角点世界坐标(XW,YW,ZW),输出量是经过神经网络计算后得到的标定板角点新世界坐标(X′W,Y′W,Z′W),所以输入层与输出层均是3个神经元。隐含层神经元的个数为

(5)

式中:a为输入层节点数;b为输出层节点数;δ为1~10之间的常数。

实验中,常规BP神经网络的输入层、输出层节点数均为3,隐含层节点数设置为9,训练次数设为2000,学习速率设为0.01,训练目标设为0.000 1。对数据的输入进行归一化操作,输出进行反归一化处理。

2.2 改进遗传算法优化BP神经网络

实验主要是改进遗传算法[9],以提高其收敛性全局寻优的能力,使BP神经网络获得更好的权值和阈值。

适应度函数为

(6)

根据个体得到的神经网络初始权值和阈值,用BP神经网络进行寻优,将预测输出和期望输出之间的误差绝对值之和作为个体适应度值。式中:y为期望输出;o为预测输出;j为神经网络输出节点数;k为系数。

在传统遗传算法中,交叉概率和变异概率的默认值分别是在0.3~0.8和0.001~0.1之间。交叉概率和变异概率的选择直接影响遗传算法的全局寻优能力和收敛速度。因此,在遗传算法的改进中,需要动态调整交叉概率和变异概率。

交叉概率为

(7)

变异概率为

(8)

随着迭代次数的不断增加,交叉概率由最大的0.8降至最小的0.3,变异概率由最小的0.001增加至0.1。在迭代的初期,选择较大的交叉概率和变异概率来扩大全局搜索范围。在迭代的后期,较小的值可以加快其收敛速度。

实验中,遗传算法的迭代次数设置为50,种群规模设置为10,神经网络的参数设置与常规BP神经网络一致。

使用改进遗传算法对BP神经网络的初始权值和初始阈值进行优化赋值[10-12],可解决训练过程中陷入局部较小值问题。流程如图2所示。

图2 改进遗传算法优化BP神经网络的相机标定算法流程图Fig.2 Flow chart of camera calibration algorithm based on BP neural network optimized by the improved GA

2.3 标定流程

实验采用张氏标定法标定相机,由得到的参数对拍摄图片进行校正,以方便准确获得左右相机拍摄的棋盘格像素坐标,然后利用双目立体视觉模型解出棋盘格的世界坐标,再利用世界坐标作为输入量,理论的世界坐标作为输出量,使用改进遗传算法优化的BP神经网络进行数据计算,构建新的神经网络。具体流程如下。

1) 利用双目相机设备拍摄多张标定板图片,然后使用C++调用OpenCV的findChessboardCorners,calibrateCamera,stereoRectify等函数,求解出相机的内外参数等。

2) 选取多组拍摄图片,先利用OpenCV求出图片像素坐标,再求出世界坐标。实验使用的标定板是“10×8”的标定板,其共有80个角点和99个黑白方格,每个方格均为边长20 mm的正方形。

3) 将这些数据分成训练组和测试组,把训练组作为改进遗传算法优化BP神经网络的输入值,理论世界坐标作为输出值。

4) 实验采用的BP神经网络拓扑结构为3-9-3结构。种群中每个个体都包含了一个网络权值和阈值,个体通过遗传算法的一系列操作找到最优适应度值对应的个体。

5) 将这个个体的权值和阈值对BP神经网络的初始权值和阈值进行赋值,以此得到训练完毕的改进遗传算法优化BP神经网络(改进GA-BP神经网络)。

6) 将测试组数据经过归一化后代入训练好的改进GA-BP神经网络,将得到的数据进行反归一化后即得到优化的世界坐标。

3 实验与结果

对于世界坐标验证,传统方法一般是使用重投影法,将得到的三维世界坐标转化为像素坐标,然后再与用角点检测得到的像素坐标进行对比,此方法虽然简单,但并不直观。本文实验采用将被测物像素坐标转变为世界坐标的方法,并将由常规BP神经网络得到的世界坐标,由改进GA-BP神经网络得到的世界坐标以及由理论计算得到的世界坐标进行直观对比。

利用双目相机拍摄多张照片,其中一对照片如图3(a)所示,亚像素角点法提取标定点如图3(b)所示。

图3 标定棋盘格图Fig.3 Calibration checkerboard

改进遗传算法优化后的适应度曲线如图4所示,其终止迭代次数为50,适应度随迭代次数的增加而阶梯化减小,38次迭代后适应度趋于0.862,并稳定下来。

图4 改进遗传算法优化后的适应度曲线Fig.4 Fitness curve optimized by the improved GA

误差率为

(9)

评价指标为

(10)

式中:(X,Y,Z)为不同标定方法求出的标定板角点世界坐标;(XT,YT,ZT)为其相应理论值。

根据实验数据,列出表1所示的张氏标定法得到的世界坐标、BP神经网络得到的世界坐标和改进GA-BP神经网络得到的世界坐标与理论世界坐标数据。

表1 实际坐标与理论坐标对比(部分)Table 1 Comparison between actual coordinates and theoretical coordinates (partial) mm

再结合式(9)分别列出表2所示的张氏标定法得到的世界坐标、BP神经网络得到的世界坐标和改进GA-BP神经网络得到的世界坐标与理论世界坐标的误差数据和误差率。

表2 实际坐标与理论坐标误差(部分)Table 2 Error between actual coordinates and theoretical coordinates (partial)

根据式(9)以及表1和表2的数据可得图5的世界坐标误差和图6的均方根误差曲线。

图5 世界坐标标定误差Fig.5 Calibration error of world coordinates

根据式(10)以及实验数据,张氏标定法、BP神经网络法和改进GA-BP神经网络法的平均误差率依次为13.036 9%,4.818 7%和3.248 6%。此外,从图5的对比结果可以看出,通过张氏标定法获得的世界坐标误差范围大概在4~16 mm之间,最大误差达到了22 mm;而改进GA-BP神经网络法获得的世界坐标与理论世界坐标差值范围在0~3 mm之间,70%以上的区域在0~3 mm区间。

图6 均方根误差曲线图Fig.6 Root mean square error curve

从图6可以看出,张氏标定法测得的均方根误差基本在0.35~0.45 mm之间,常规BP神经网络法则从最开始的0.3 mm以上误差降低到了0.2 mm左右,甚至在0.15 mm以下。而改进GA-BP神经网络法的误差均方根值更小,其整体曲线相比于BP神经网络曲线误差有更进一步减小的趋势。

4 结束语

通过最小二乘法,根据常规的双目立体视觉模型将二维像素坐标转换为三维世界坐标,同时结合BP神经网络法来对世界坐标标定进行优化。针对BP神经网络法在双目相机标定过程中收敛速度慢、容易陷入局部极值等问题,采用了一种改进的遗传算法来优化BP神经网络。实验结果表明,改进后的GA-BP神经网络双目相机标定方法精度更高、效果更好,满足了更高的标定要求。

猜你喜欢
张氏双目标定
张氏头针治疗儿童多发性抽动症的随机对照临床研究
霜 降 苏美玲
使用朗仁H6 Pro标定北汽绅宝转向角传感器
基于双目测距的卡尔曼滤波船舶轨迹跟踪
清河县档案馆馆藏文化特色档案又添新品
CT系统参数标定及成像—2
CT系统参数标定及成像—2
基于MATLAB 的CT 系统参数标定及成像研究
ECAS下线检测及标定系统开发
基于双目视觉图像的长度测量方法