一种基于BP神经网络对透明目标表面点云的曲面重建方法

文档序号:25590805发布日期:2021-06-22 17:07阅读:153来源:国知局
一种基于BP神经网络对透明目标表面点云的曲面重建方法
本发明涉及无线通信
技术领域
,具体涉及一种新型的结合butler矩阵馈电网络的共形oam天线。本发明涉及计算机视觉和计算机图形学领域,具体涉及一种基于bp神经网络对透明目标表面点云的曲面重建方法。
背景技术
:反向传播(bp)神经网络是多层前馈神经网络和误差逆传播学习算法。只要能够提供相当规模的网络结构和合适的传递函数,神经网络便可以通过学习样本数据来实现对任何非线性函数的近似。神经网络中神经元有着多种多样的连接方式,同时每个神经元的连接也是可塑的,可以通过学习训练对网络进行组织处理,以达到对不同的信息处理进行适应的目的。表面重建的核心是从采样物体表面的离散点云数据中重建三维模型。传统的曲面重建方法主要有两种,一种是显式方法,另一种是隐式方法。传统方法易受到数据量的限制和丢失原始模型表面细节的缺点。技术实现要素:本发明的目的是利用bp神经网络针对透明目标表面的高度点云数据进行曲面重建,以提升曲面重建的精度。本发明为解决上述目的采用以下技术方案:一种基于bp神经网络对透明目标表面点云的曲面重建方法,主要是构建适合透明目标表面点云处理的bp神经网络模型。进一步地,所述的透明目标表面的高度点云数据(x,y,z)通过双目视觉系统采集而来。进一步地,所述的bp神经网络是由4层前馈分层网络组成,分别是一个输入层,两个隐含层和一个输出层。进一步地,输入层由两个神经单元组成,即两个输入端,以x,y作为输入矢量。进一步地,两个隐含层各有10个神经单元,并且输入层到第一隐含层的传递函数和第一隐含层到第二隐含层的传递函数均选取了双曲正切s型(tansig)函数。进一步地,输出层由1个神经单元构成,即一个输出端,以z作为输出矢量,同时第二隐含层到输出层的传递函数为纯线性(purelin)函数。进一步地,进行bp神经网络采用共轭梯度下降算法进行网络学习,分为信息的正向传播和误差的反向传播。进一步地,在正向传播阶段,输入信息是通过隐含层从输入到输出层,输出信号在输出端生成。在信号转发过程中,网络的权重是固定的。每层神经元的状态仅仅影响到下一层神经元的状态。如果无法在输出层中获得所需的输出,那么错误信号将向后传播。进一步地,在反向传播阶段,不满足精度要求的误差信号逐步扩展,误差被每一层的所有神经单元所共享。根据错误信号动态调整连接权重。神经元之间的权重值会通过向前和向后调整的周期不断进行校正,当输出信号的误差满足精度要求时,训练停止。附图说明图1为本发明bp神经网络模型图2为本发明经过bp神经网络训练后的数据对比图图3为本发明经过bp神经网络处理后的曲面重建图具体实施方式下面结合附图和具体实施例,进一步阐明本发明,应理解这些实施例仅用于说明本发明而不用于限制本发明的范围。本发明提供的一种基于bp神经网络对透明目标表面点云的曲面重建方法,首先将获取的透明目标表面的点云数据划分为训练数据、测试数据和验证数据,其比例为3:1:1,并对点云数据进行归一化处理。搭建如图1所示的bp神经网络模型:由4层前馈分层网络组成,分别是一个输入层,两个隐含层和一个输出层,以x,y作为输入矢量,z为输出矢量。采用共轭梯度下降算法进行训练,训练过程主要包括信息正向传播和误差反向传播两个过程。(1)信息正向传播首先输入学习样本{x,t},其中x是训练样本的输入向量,t是相应的输出向量。x=(x1,x2,…,xk,…xn),1≤k≤nt=(t1,t2,…,tm,…tq),1≤m≤q其中n是输入层节点数,q是输出层节点数。本发明中输入层节点数n为2,输出层节点数q为1。数据传输通过输入层和隐含层传播到输出层,输出模式产生的权值是训练结果。主要包括以下步骤:步骤1(计算隐含层节点的输出值):隐含层节点的输入值是:其中,n是输入层节点数,p是隐含层节点数,w1kj是连接权重,xk是输入向量的组成部分。节点j的输出值是hj=f1(i1j+θ1j)其中,θ1j是节点j的阈值,函数f1为隐含层激活函数。步骤2(计算输出层节点的输出值):输出层节点m的输入值是节点m的输出值是其中,θ2m输出层节点的阈值,函数f2为输出层的激活函数。(2)误差反向传播通过计算出输出层的输出值和期望值的误差。神经网络将误差从输出层通过隐含层传播到输入层,以此来修改连接权重值。主要包括以下步骤:步骤1(计算输出层节点的输出误差):输出层节点的学习值om与训练样本tm的输出值之间产生的误差是步骤2(测试训练误差):ε0是能够允许的最大训练误差,被定义在[0,1]范围内。如果max(εm)≤ε0,就输入下一个训练样本,否则就调整网络权重和重新输入原本的训练样本。当所有的训练样本满足上述条件时,便结束整个训练过程。步骤3(计算输出层节点的训练误差):输出层节点的训练误差为d2m=om(1-om)(om-tm)步骤4(计算隐含层节点的训练误差):隐含层节点的训练误差为步骤5(修改连接权重w2矩阵的值):设置在t+1时刻将权重值调整为新的权重值,那么w2jm(t+1)=w2jm(t)+ηd2mhj+α[w2jm(t)-w2jm(t-1)]其中,η是学习率,α是动量因子,η和α都在[0,1]范围内。使用α可以加快训练速度,并且有助于克服常用的bp神经网络的局部极小化问题。步骤6(修改连接权重矩阵w1的值):那么w1kj(t+1)=w1kj(t)+ηd1jhk+α[w1kj(t)-w1kj(t-1)]步骤7(修改阈值θ2):输出层节点的阈值为θ2m(t+1)=θ2m(t)+ηd2mhj+α[w2jm(t)-w2jm(t-1)]步骤8(修改阈值θ1):隐含层节点的阈值为θ1j(t+1)=θ1j(t)+ηd1j+α[θ1j(t)-θ1j(t-1)]bp神经网络的训练过程其实就是重复学习的过程,也就是根据期望输出的误差和经过网络的实际输出对连接权重值进行调整的过程。随着信息正向传播和误差反向传播这两个过程的不断重复,神经网络的实际输出逐渐与相应的期望输出接近。如图2所示,经过bp神经网络训练后的数据对比显示,学习达到了预期的效果。同时使用rmse、mae三个指标对将处理前的点云表面重建与处理后的重建结果分别进行比较,如下表所示:透明半球rmsemae处理前0.83151.2717处理后0.23260.9852如上表所示,点云数据经过bp神经网络处理后,精确度得到了很大的提升,如图3所示,对处理后的点云数据进行曲面重建的效果显示,高度还原了透明目标的表面。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1