HTML
-
深度神经网络(deep neural network, DNN)的结构如图 3所示。网络框架由含32层中间隐藏层构成。层间激活函数为tanh,以σ表示,层间连接采用可有效防止模型过拟合的随机舍弃方式。每层隐含层含有18个记忆神经元,输入为单个像素点的9维光强特征,输出为此点的对应高度预测值。
机器学习中的神经网络模型在本质上是一种标签学习算法[3],通过使用样本集训练学习模型f(·): Rm→Ro,其中f(·)表示两集合间的映射逻辑关系,Rm和Ro分别表示有m和o个元素的集合。此种模型无需相机的标定和解包裹等繁杂过程,直接建立输入量和预测值之间的函数关系。Rm的下标m在神经网络模型中表示输入样本的特征维度数,Ro的下标o为模型预测值的维度数[3],即输入一条特征X=[x1 x2 ⋯ xm]T和标签y,神经网络通过学习训练,可以拟合出一个高纬非线性函数。在输入结点与输出结点之间,会存在一个层或者多层的非线性层,称为隐藏层。
图 4是1维输出且只含有1层隐藏层的多层感知机[4](multilayer perceptron, MLP)。在此MLP结构中,样本特征由输入层导入,为一列代表样本特征值的神经元构成。信息传递途径隐藏层,上一层的信息经过下一层隐藏层中的结点进行加权求和: z=w1x1+w2x2+⋯+wmxn,其中参数wm为各输入项的加权值,加上一个偏置项后,由非线性单元进行z值的非线性转换。最右边的层叫做输出层,其收到的传递值是最后一个隐藏层经过非线性加权变换的输出值。而DNN的核心原理就是对MLP的横向方向进行隐藏层的层数拓展[5]。当网络结构确定后,神经网络的训练过程就是求解所有层间权重和偏置的过程,在整个神经网络模型训练完成后,即可对新的物体直接建立其光照强度和真实高度信息,如图 5所示。
DNN模型在本质上是一个处处可导的多元复合函数,在理论上能拟合出任意维度的超曲面,其训练过程是数据在网络中正向传播, 再以反向传播求取函数梯度更新权重,以进行参数迭代求解目标函数最优解的过程。具体训练流程如图 6所示。
-
通过改变条纹光的投影角度,增加了神经网络训练样本的特征维度。更多维度的光强信息训练,能使得模型鲁棒性增加[6],使得训练好的模型在投影系统参数(如环境光强噪声、测量深度等)强噪音的情况下能够精确复现出被测对象的3维面形。在条纹光的部署上,与传统N步相移法在单一方向上改变条纹光相位不同,将周期为T=8 pixel、变量区间为0~512 pixel的仿真余弦条纹以0°、45°和90°3个旋转角度, 以15°倾斜角投影在被测物体上。由于被测对象的面形起伏,当正弦条纹光投影到被测对象上时,会让光栅条纹的相位发生调制型变化,再用CCD相机收集这些条纹光光强信息组,得到总共9幅条纹图,如图 7所示。
图 7中,I0°, φ1, I0°, φ2, I0°, φ3为投影条纹光于0°旋转角下沿水平方向经3步相移调制后的调制条纹图。I45°, φ1, I45°, φ2, I45°, φ3为投影条纹光于45°旋转角下沿对角线方向经3步相移调制后的调制条纹图,以此类推。输入层以条纹调制前后总计9个光强信息作为训练集维度特征,分别记为F1 ~ F9,输出值以每个点的真实高度值作为其自身标签,即y。投影仪本身不发生位置和角度改变,通过编码调整投影条纹的旋转角,可以得到同一点在不同条纹角度下的光强信息。单点光照强度的特征采集方式如图 8所示。
在图 8的样本集表格中,y1~yi表示各样本点对应的真实高度值,即为样本标签。将每个样本数据写作计算机更易于处理的向量形式,以每个像素点在9幅调制图中所对应的光照强度值作为其特征值I1, 1~I1, 9。在训练时,若取训练集的一个像素点的特征值和标签值组成向量X1,作为神经网络的输入值,则其表达式为:
式中,X1表示此点是(1, 1)位置的像素对应的样本点,I1, 1~I1, 9表示同一点在3种旋转角下3步相移的光强值,h1表示此点的真实高度值。对于一个分辨率为512×512的重建对象,一共具有512×512=262144个像素级样本,记为训练集S={X1, X2, ⋯, X262144},以训练深度神经网络的拟合函数。
-
图 9为简化的节点信息传递图。红色表示权重为负,蓝色连线表示权重为正,灰色连线表示随机舍弃[7]的层节点;方框中的绿色曲线表示激活函;a0, 1表示神经网络输入层的第1个输入项,ω1, 1表示a0, 1项在第1层神经网络的第1个权重系数,b1, 1表示第1层神经网络的第1个偏置系数,以此类推。经过激活函数将线性映射转换为非线性关系,得到神经网络第1层的其中一个输出a1, 1,以tanh函数为线性转非线性的映射激活,其转换关系如下:
BP神经网络是一种采用梯度下降算法[8]进行学习的多层信息前向传递误差反向传播神经网络,根据深度信念网络[9]理论,BP神经网络隐层的神经结点数越多,就越可以以极大精度拟合任意连续超曲面。BP网络有特征光强值的前馈传导和逆向传播两个相互影响制约的步骤[10]。特征光强值的前馈传导步骤是:输入的特征光强值通过输入结点和随机舍弃的隐藏层逐一计算出各单元输出值。逆向传播步骤是:递归循环地计算模型预测值与样本标签高度值的残差,并根据代价函数最小化来自动调整每个神经元结点的权重比例和后续激活阈值[11],最后以全连接作为输出预测值[12]。将神经网络中的权重和偏置参数以和的形式记录,其中下标i和下标j分别表示此参数是属于第i层网络的j个权重或偏置参数。输入量A1为样本数据X1除去标签值h1的剩下部分,输入量A1的各分量在神经网络中传播时以an, m表示,其中n表示数值此刻正传递于神经网络的第n层,m表示此分量为A1的第m个特征数值。记神经网络第1层所有权重参数组成的系数矩阵为W1,所有偏置系数组成的偏置向量为B1,则神经网络第1层的层间线性矩阵映射关系如下:
将上述结果记为Z1,再通过激活函数tanh对Z1的第1个分量z1, 1为例,对于层间非线性软化的转换,可将(7)式简化,记Z1=W1A1+B1,其转换关系如下:
可见神经网络的本质是一个多层复合函数。对于整个网络,其完整函数表达式是非常繁琐的。以ŷ表示神经网络最后输出的高度预测值,以σ表示激活运算,则整个预测过程表达式可写作:
将得到的高度预测值ŷ与真实值y作残差得到损失函数L,度量了回归值对于真实值的偏差,记为:
本文中以弹性网络[12]作为目标函数惩罚项,同时使用l1和l2范数进行正则化,将二者的优点都结合了起来,兼顾了拉索回归[13]和岭回归[14]的各自优势,其目标函数惩罚项Ω(W)的数学表达式如下:
式中,超参数α和ρ为取值在(0, 1)之间的动态可控值,以控制两种正则化类型所占比重, W为由(9)式中W1~W32各矩阵的所有行列元素按角标顺序重新组合构成的向量,即W=[ω1, 1 ω1, 2 ⋯ ω32, 324]T,其中ω32, 324的下标32表示其位于第32层网络,324表示其为此层网络的第18×18=324个参数。使用l1范数项作为估计稀疏系数的惩罚项,会趋向使目标函数解的非零系数变少的方向,降低最小值对应解所需的特征维度达到降维的效果,即将惩罚为0,从而减少参数ω的数量。而l2范数项作为控制网络的收缩量,使得ω往更小的值收敛,神经网络对未知数据的鲁棒性就更强[15]。将损失项和惩罚项合并,即得到了目标优化函数,如下:
问题转化为求取目标函数最小值时对应的参数值,一旦将所有权重系数和偏置系数,神经网络模型就确定了。现在转化为如下数学问题:
式中, B表示由(9)式中B1~B31各向量的所有分量按角标顺序重新组合并加上b32, 1所构成的向量,即B=[b1, 1 b1, 2 ⋯ b32, 1]T,其中b32, 1的下标32表示其位于第32层网络,1表示最后一层网络只有此一个偏置项。
-
本文作者使用非常适合处理万量级以上样本数的随机梯度下降[16](stochastic gradient descent, SGD)的迭代算法来求解上述问题,如本训练对象的512×512=262144个像素级样本。因SGD是针对每个样本进行逐一迭代的[17],所以SGD对样本集的特征缩放非常敏感,需要将样本特征即9维的光照强度信息,全部归一化到均值为0、方差为1的区间内。每次将样本集S={X1, X2, ⋯, X262144}中的多个样本传入算法流程,以迭代方式更新参数值,其迭代公式如下:
式中,Θ(t)为当前迭代的参数值组成的向量,Θ(t+1)为下一迭代后的参数值组成的向量,η(t)为第t时刻的自适应学习率[18],▽fobjΘ(t)为目标函数在Θ(t)处的梯度,是一个k行1列的向量,其中k为所求参数的总数。记迭代过程收敛时刻的t=τ,即当fobj(Θτ) < ε时(ε为一极小量),终止迭代。训练结束时获得的所有的ω值和b值即为神经网络模型的最终参数。下面以反向传播运算加速梯度值的求取速度。
-
神经网络的反向传播,是一种以链式法则求取函数梯度分量的过程[19]。通过增加电脑内存占用为代价,提高神经网络的训练速度。目标函数的梯度为:
式中,梯度的分量为目标函数的偏导数,由于神经网络的层层复合,参数所在神经网络的层级越初级,其偏导计算式越繁琐:
反向传播即以占用更多内存为代价,如图 10所示。算力较强的计算机,在DNN架构的设计策略上,可增加网络的宽度和深度[20],或使用不同的处理器,如在图形处理器上进行并行运算。在提高拟合精度的同时,还能显著减少神经网络的训练时间[21]。
将各个链式中间项写入计算机内存, 便可快速求解任意第p层的第q个权重的偏导数, 让神经网络可以较为快速地迭代出收敛区间下的神经网络全参数。只要训练完成,迁移适用性也会变得非常强, 这使得在测量新型面形时,无需再重复训练, 而神经网络权值参数的优化更新,是一个可多次输入样本簇并迭代优化的过程。
-
为了增加网络的泛化能力,本文作者使用了总计260×104个像素级样本点对神经网络进行参数训练,且对每类物体进行多个轮次训练,体现了神经网络的进阶学习性。如加入刀锋和波纹状样本进行训练,可强化神经网络对物体表面划痕或刮痕的重建鲁棒性,如图 11a和图 11b所示。加入随机噪点样本进行训练,可强化神经网络对表面含较多毛刺物体的重建鲁棒性,如图 11c所示。
将两个呈共轭关系等阶梯状物体的像素点记为样本集送入神经网络再次迭代参数,既可优化神经网络在断崖式物体面形测量上表现,同时又优化了此类阶梯型样本数据在空间上分布不均衡所导致神经网络的欠鲁棒性,如图 12和图 13所示。
总共进行193个轮次时均方误差(mean square error, MSE)达到一个收敛区间(1.0×10-8~1.0×10-9)。图 14为深度神经网络模型输出高度值的MSE随迭代轮次的变化结果。图 15为其它性能指标的参数走势图。当然,如此高的测量精度只是在理想样本集上精度的表现。在对实际物体进行测量时精度会降低1~2个数量级。作者将收敛的DNN模型储存起来,然后在真实物体数据集上进行面形重建实验。
因本文中重建物体面形的方法与其自身实验装置的耦合性较强,部分主要实验装置配置和神经网络的最优参数如表 1所示。
experimental configuration table network training parameters inclination angle of projector 15° initial learning rate 0.01 rotation angle of projector 0°, 45°, 90° weight decay open distance between projector and base plane 0.966 m optimizer Adam distance between camera and base plane 1.0 m number of learning rounds 193 epochs program platform MATLAB/Python number of hidden layers 32 model of projector XGIMI NEW Z6X number of neurons per layer 18 GPU model of computer GTX 1650 activation function tanh CUDA model of computer 896 interlayer connection dropout experimental environment chamber penalty function elastic net Table 1. Training parameters and experimental configuration of DNN
2.1. 深度神经网络的基本结构
2.2. DNN训练数据采集与预处理
2.3. DNN的前向传播与代价函数
2.4. 随机梯度下降迭代过程
2.5. 反向传播求取梯度
2.6. 多次训练至网络收敛
-
本文作者使用相关软件进行仿真重建实验,以训练好的深度神经网络重建了软件中内置山峰函数的绝对值函数,还原结果和误差分布图如图 16和图 17所示。
经典FTP法和PMP法的重建单点最大误差大于1.00 mm,MLP法的重建单点最大误差为1.00×10-2 mm。GUO等人[2]的BP神经网络的平均重建时间为3.8 s,单点最大误差为0.34×10-3 mm。本文中的DNN单点最大误差在1.42×10-4 mm以下,重建时间达到了非常短的0.27 s之内。因为整个DNN的高度复原计算方法是对单点进行的直接映射关系预测,结构相对简单,也没有较大的区域性误差。本文中的DNN对于物体面形的重建从速度和精度上相较于其它方法都存在着优势,且对于反光材质的物品(如铁制镀漆物品)的还原结果也较为优良。
考虑到不同测量距离和测量环境对面形恢复精度的影响,对西南石油大学铁制校徽进行了对照重建实验,如图 18所示。对本文中方法的面形重建能力进行了定量评价,具体数值如表 2所示。
measuring distance/mm light interference average error/mm maximum error /mm reconstruction time/s 1.0×103 no interference 1.40×10-4 1.42×10-4 0.27 1.0×103 bright light 1.93×10-4 1.94×10-4 0.30 2.0×103 no interference 1.62×10-4 1.65×10-4 0.27 2.0×103 bright light 2.82×10-4 2.84×10-4 0.31 3.0×103 no interference 2.16×10-4 2.29×10-4 0.26 3.0×103 bright light 3.72×10-4 3.81×10-4 0.31 4.0×103 no interference 3.46×10-4 3.72×10-4 0.25 4.0×103 bright light 4.21×10-4 4.84×10-4 0.32 5.0×103 no interference 3.84×10-4 4.04×10-4 0.25 5.0×103 bright light 5.39×10-4 5.77×10-4 0.33 6.0×103 no interference 4.34×10-4 4.72×10-4 0.24 6.0×103 bright light 5.79×10-4 6.00×10-4 0.35 7.0×103 no interference 5.57×10-4 5.83×10-4 0.23 7.0×103 bright light 6.83×10-4 6.93×10-4 0.37 8.0×103 no interference 6.26×10-4 6.63×10-4 0.20 8.0×103 bright light 7.55×10-4 7.75×10-4 0.41 9.0×103 no interference 7.54×10-4 7.94×10-4 0.19 9.0×103 bright light 8.40×10-4 8.75×10-4 0.43 10.0×103 no interference 7.81×10-4 8.51×10-4 0.18 10.0×103 bright light 9.89×10-4 9.96×10-4 0.51 Table 2. Comparison of reconstruction capabilities under different conditions
本文中的DNN具有一定的迁移泛化能力,即一旦网络参数全部训练完毕,便可在无需再次训练情况下迅速重建物体面形信息。即使在光线干扰较强的室外,且测量距离小于10 m之内的情况下,对物体的重建平均误差不超过9.96×10-4 mm。
为了验证本文中DNN在真实情况下的对物体面形恢复的效果,作者对太阳神鸟(仿品)和某观音饰品进行了真实试验,如图 19和图 20所示。
同时,为了对比本文中DNN对物体面形恢复效能,作者以同等阶梯状物体的面形恢复效果作了横向对比。其中,样本规模是指参与训练的总样本数量,样本规模和训练轮数越大,在相同性能的计算机下耗费的计算资源和计算时间也就越大。对比结果如表 3所示。
methods sample size training time/
(s/batch)MSE maximum error/mm reconstruction time/s PMP/FTP — — >1.00 >1.00 >1 MLP unknow unknow >1.00 1.00×10-2 >1 BP neural network 32768000 3.9 9.27×10-4 3.40×10-3 3.8 our approach 2621440 1.11 4.12×10-5 1.42×10-4 0.27 Table 3. Comparison of properties of step objects reconstructed by different methods