一种基于无向图学习模型的单图像面片重建方法与流程

文档序号:18512985发布日期:2019-08-24 09:15阅读:250来源:国知局
本发明属于计算机视觉
技术领域
:,尤其涉及一种基于无向图学习模型的单图像面片重建方法。
背景技术
::三维重建即从图像中利用特定的技术恢复图像中包含物体的三维形状。然而该任务是一个病态问题,这是由于图像中不可避免会出现自遮挡的问题,提供的信息有限,需要加入其他先验信息才可完成。事实上,学术界已提出一些三维重建的方法,其中基于视觉线索的三维重建方法是直接根据图像中的计算机视觉特征,以现实世界的物理知识为指导对图像中的物体进行三维建模的方法。如文献1:andrew,alexm."shapefromshading,editedbyhornbertholdkpandbrooksmichaelj.mitpress,cambridge,mass.,1989,577pp.(£49.50)."robotica8.3(1990):263-264最早提出这一理论,其根据物体表面的性质,提取图像中的物体阴影,并将从阴影重建问题转化为求解一阶非线性偏微分方程问题。然而基于视觉线索的方法对于图像拍摄的限制条件十分繁多,而且对于被重建物体的表面材质有较强的约束,用户的拍摄负担很重,难以满足日常使用的需求。随着三维模型集规模的增长,一些研究者提出了数据驱动的三维重建方法。即通过从三维模型集中学习获得用于三维重建的先验信息。如文献2:k.xu,h.zheng,h.zhang,d.cohen-or,l.liu,andy.xiong,“photo-inspiredmodel-driven3dobjectmodeling,”acmsiggraph2011pap.-siggraph’11,vol.1,no.212,p.1,2011从三维模型集中学习获得一类模型的平均模型,然后该平均模型在图像对应的指导下自动变形以匹配图像中的物体。文献3:q.huang,h.wang,andv.koltun,“single-viewreconstructionviajointanalysisofimageandshapecollections,”acmtrans.graph.,vol.34,no.4,pp.1–10,2015做法的关键思想是联合分析物体的图像和三维模型集合,生成图像和模型之间的对应关系,再通过不同部件的拼装和组合获得对象外观的三维表示。这类方法的主要优点是无需用户交互的介入,且不依赖于特征工程选择的计算机视觉特征。而随着神经网络在人工智能领域应用的不断增多,三维重建领域也出现了大量应用神经网络的工作。这类方法是利用神经网络这种具有更强学习能力的学习模型,从三维形状集中习得三维形状先验用于三维重建。不同的神经网络结构被提出以重建获得不同的三维模型表示。如文献4:r.girdhar,d.f.fouhey,m.rodriguez,anda.gupta,“learningapredictableandgenerativevectorrepresentationforobjects,”lect.notescomput.sci.(includingsubser.lect.notesartif.intell.lect.notesbioinformatics),vol.9910lncs,pp.484–499,2016提出tl-嵌入网络,使得图像能够生成对应三维模型所在嵌入空间的向量值,并通过三维反卷积神经网络获得三维体素模型。为了重建获得三角面片模型,文献5:t.groueix,m.fisher,v.g.kim,b.c.russell,andm.aubry,“atlasnet:apapier-m\^ach’eapproachtolearning3dsurfacegeneration,”feb.2018将一个三维模型建模为多个小网格的并集,多层感知机神经网络预测每个网格的的三维位置,通过合并多个小网格近似出一个三维形体。文献6:kurenkov,andrey,etal."deformnet:free-formdeformationnetworkfor3dshapereconstructionfromasingleimage."2018ieeewinterconferenceonapplicationsofcomputervision(wacv).ieee,2018首先检索数据库,找到一个与输入图像类似的数据库中的模型,然后利用自由曲面形变对该模型形变,获得输入图像的重建结果。由于简单的神经网络结构难以直接获得三角面片的拓扑结构,因此只能预先获得参数化的三角面片模型,而模型参数表示的优劣将影响重建面片的质量好坏,而且这类方法多有类别限制,难以适应多样性的模型类别,因此需要使用针对三角面片设计的神经网络结构完成三角面片重建。技术实现要素:发明目的:本发明所要解决的技术问题是针对现有技术的不足,提出一种基于无向图学习模型的单图像面片重建方法,用于从图像中恢复对象的三角面片形状。为了解决上述问题,本发明公开了一种基于无向图学习模型的单图像面片重建方法,包括以下步骤:步骤1,准备神经网络的训练数据:对现有三维模型集中的所有三维模型进行预处理,得到训练图像集;步骤2,构建无向图初始化网络:使用卷积神经网络建立图像编码器,并对图像进行相机视角估计,获得图像对应的相机视角参数;步骤3,构建无向图更新网络:根据相机视角参数对初始三角面片进行投影,获得无向图更新序列,按照无向图更新序列更新每个无向图节点,将更新的特征传播到整个无向图;步骤4,离线训练无向图初始化网络和无向图更新网络:设计无向图初始化网络和无向图更新网络损失,并设置神经网络输入为步骤1中准备的训练图像集,根据无向图初始化网络和无向图更新网络损失反向传播进行离线训练;步骤5,输入测试图像,得到测试图像对应的三角面片结果。步骤1包括以下步骤:步骤1-1,三维模型归一化:对于三维模型集的每个三维模型,计算其轴对齐最小包围盒,对三维模型进行缩放和平移使该包围盒的最长边长度为1且包围盒中心位于坐标原点;步骤1-2,三维模型水密化:对于三维模型集的每个三维模型,使用水密方法去除三维模型的孔洞,使三维模型所有离散部件合并构成整个单一模型;步骤1-3,多视角选取:对三维模型集中的每个三维模型,在三维空间中选取16个与坐标原点距离相等且指向坐标原点的不同视角:view={viewi|i=1,2,…,16},其中view为视角集合,viewi为第i个视角;记第i个可用视角的位置坐标为vpi,观察方向的方向向量为di,即每个视角可记作viewi=(vpi,di),通过下式计算vpi:其中,θi为第i个视角的观察方向向量与三维坐标系的y轴的夹角,为第i个视角的观察方向向量与三维坐标系z轴的夹角,r为观察点距离三维形状中心点的距离,θbase为一个常量;ξi为一个位于区间内的随机实数;而第i个视角的观察方向的方向向量即为由观察点指向坐标原点的向量,即步骤1-4,生成多视角渲染图像:在步骤1-2选取的每个视角方向下对三维模型使用phong光照模型进行渲染得到白色背景图像,将渲染后的图像组成训练图像集。步骤2包括以下步骤:步骤2-1,构建图像信息编码器:将带有残差结构的卷积神经网络应用于图像信息编码器从而提取图像信息,编码器接收步骤1-4中渲染生成的图像作为输入,输出一个抽象图像信息的特征矩阵;具体地,用于编码器的残差网络包括十七层卷积层,每三层卷积层包含一个残差连接结构,所述残差连接结构使信号跨越前两层卷积层直接传递至第三层;步骤2-2,构建相机视角估计网络:使用多个全连接层构建相机视角估计网络,获得图像对应的相机视角参数,即相机在世界坐标系中的坐标;步骤2-3,获得点投影图:从三维模型集中随机选择初始三角面片,根据相机视角参数将初始三角面片顶点投影至二维平面,获得点投影图;步骤2-4,双线性点特征插值:根据点投影图从步骤2-1得到的特征矩阵中利用双线性插值的方法获得每个点的特征值作为无向图初始特征值。步骤2-1包括:令函数g表示步骤2-1中构建的图像信息编码器中卷积层所进行的卷积操作,则图像信息的提取过程通过下式表示:f1=g1(i),f2=g2(f1),f3=g3(f2),f4=g4(f3+f1),fi-2=gi-2(fi-3),fi-1=gi-1(fi-2),fi=gi(fi-1+fi-3),fm-3=gm-3(fm-4),fm-2=gm-2(fm-3),fm-1=gm-1(fm-2+fm-4),fm=gm(fm-1);其中,i表示输入图像的维度为h0×w0×3的三维矩阵,h0、w0分别为输入图像的高和宽,gi为第i层卷积层进行的卷积操作,gi为卷积核,fi为图像编码器中的第i层卷积层输出的特征图,m表示卷积层的层数,通常取值范围为10~50,fm为最终输出的维度为hm×wm×dm特征矩阵,hm、wm和dm分别为特征矩阵的高度、宽度和深度。步骤2-2包括以下步骤:令函数fi(f)=wi·f+bi表示第i层全连接层对特征图f所进行的线性计算操作,wi为权重矩阵,bi为偏置向量,则全连接层通过下式表示:pfc=f3(f2(f1(fm))),其中,pfc为全连接层生成的相机视角估计参数,fi为第i层全连接层所进行的线性计算,通常全连接层一般有3~10层,也即3≤i≤10。步骤2-3包括:从三维模型集中选择一个面片模型作为初始面片,最后重建所得面片与此初始面片同胚,在获得相机视角后,投影过程输入为相机视角和初始面片所有顶点在世界坐标系中的坐标,输出为这些顶点在图像上的位置,记ow=(xw,yw,zw)表示步骤2-2所得的世界坐标系中的相机视角坐标,xw,yw,zw分别表示相机视角ow处的横坐标、纵坐标和垂直坐标;世界坐标系中一点的位置为(x,y,z),在图像坐标系中对应的坐标为(x,y);f=(fx,fy)表示相机在x轴和y轴上的焦距,是图像中点o到相机坐标系光心oc的距离,fx,fy分别表示相机在x轴上的焦距和y轴上的焦距,zc为图像尺寸,则投影过程通过下式计算得到:步骤2-4包括:在获得三角面片所有顶点的二维投影后,将二维投影与图像信息编码器获得的特征图对应,然后用双线性插值从四个附近像素插值获得每个点的特征,以此作为无向图的初始特征值,双线性插值是在x轴和y轴两个方向分别进行一次线性插值,则任一点的特征只与该点相邻的四个像素点有关,记(x1,y1),(x1,y2),(x2,y1)和(x2,y2)是投影点所在的特征图上相邻四个像素点的坐标,f(x,y)表示特征图上点(x,y)的特征值,则特征图上该点插值结果通过下式计算得到:使用无向图重建倾向于生成平滑而连续的三角面片,适合于重建三维形状的主体部分,参见文献7:wang,nanyang,etal.″pixel2mesh:generating3dmeshmodelsfromsinglergbimages.″proceedingsoftheeuropeanconferenceoncomputervision(eccv).2018。步骤3包括以下步骤:步骤3-1,将步骤2-3投影得到的二维点与步骤1-4中渲染生成的图像作比较,与原图像中物体距离越远的点在无向图更新时顺序越靠前;步骤3-2,构建无向图lstm(longshort-termmemory,长短期记忆网络)网络结构,融合全局特征和无向图节点特征,实现无向图的特征更新;步骤3-3,构建无向图cnn网络结构(convolutionalneuralnetworks,cnn,卷积神经网络),既用于无向图特征更新,也用于完成特征空间到三维空间的映射,获得三角面片每个点在三维空间内的坐标,获得重建后的三角面片;步骤3-1包括:给定初始三角面片和相机视角参数,将初始三角面片顶点按照步骤2-3所述的投影过程投影至二维平面,将投影得到的二维点与原图作比较,与原图中物体距离越远的点在无向图更新时顺序越靠前;这种更新序列生成方式可以使得无向图更新过程更有效,参见文献8:liang,xiaodan,etal.″semanticobjectparsingwithgraphlstm.″europeanconferenceoncomputervision.springer,cham,2016。步骤3-2包括:记为节点vi的所有邻居节点,设计无向图lstm每个节点单元的输入包括:节点vi的输入状态节点vi第t层隐藏态节点vi的记忆态以及节点vi相邻节点的隐藏态和记忆态无向图中的任一节点具有任意数量的邻居节点,节点vi的lstm门控隐藏态通过对节点vi的相邻节点的隐藏态求平均来获得。每个无向图节点vj存在一个访问标志指示该节点否已被更新,其中在已被更新时设置为1,否则为0,这一访问标志用二元指示函数控制,门控隐藏态计算方式如下:无向图lstm为节点vi不同的相邻节点指定自适应遗忘门记节点vi对应的输入门为遗忘门为自适应遗忘门为记忆门为输出门为相应地,wu、wf、wc、wo是与输入特征对应的循环门控权重矩阵,uu、uf、uc、uo是与隐藏态对应的循环门控权重矩阵,uun、ufn、ucn、uon是与邻居节点隐藏态对应的权重参数,ufn是无向图所有节点的共享权重度量,bf为偏置权重,上述的权重均为神经网络用于训练的参数。δ是sigmoid函数,⊙是哈达马积函数,每个无向图lstm单元更新过程为:接着更新记忆态和隐藏态:步骤3-3包括:记r表示特征维度,无向图cnn网络层接受的输入为特征矩阵和无向图中节点的邻接矩阵a∈rn×n,输出为do是每个节点的输出维度,第i个节点vi的特征值为xi,n是节点个数,di是第i个节点的输入特征维度;记i是单位矩阵,是的对角节点度矩阵,对角节点度矩阵包含有关每个节点的度的信息,即每个节点的边数;记h为隐藏层特征维度,w(0)表示输入层与隐藏层之间的权重参数,w(1)∈rh×f表示隐藏层与输出层之间的权重参数,则只含一层隐藏层的图卷积函数f0在输入特征矩阵x和邻接矩阵a时输出z为:累积三次图卷积函数,均按照上述图卷积过程进行更新,则最后的网络层输出为:z=f3(f2(f1(x,a)))。步骤4包括以下步骤:步骤4-1,设定无向图初始化网络损失函数,损失函数包括相机视角估计网络损失di-loss,所述相机视角估计网络损失用mse函数度量(meansquareerror,mse,均方误差);步骤4-2,训练无向图初始化网络:对步骤2中构建的无向图初始化网络进行训练,将训练图像集中的图像i作为输入,利用无向图初始化网络输出对应相机视角,计算输出对应相机视角与渲染时使用的相机视角之间的mse作为损失函数度量训练误差,再将训练误差反向传播至网络中的每一网络层,并在每一网络层中使用adam优化算法调整网络层的权重和偏置参数从而最小化所述训练误差;步骤4-3,设定无向图更新网络损失函数:无向图更新网络损失函数du-loss由距离损失函数dcd、点移动距离正则项dm,以及边长和正则项损失de共同决定;步骤4-4,训练无向图更新网络:对步骤3中构建的无向图更新网络进行训练,将训练图像集中的图像i和步骤2-2获得的相机视角参数作为输入,利用无向图更新网络输出对应的三角面片,计算输出三角面片与标准三角面片的无向图更新网络损失函数du-loss作为损失函数度量训练误差,再将训练误差反向传播至网络中的每一网络层,并在每一网络层中使用adam优化算法调整网络层的权重和偏置等参数从而最小化所述训练误差。步骤4-1包括:所述用于度量相机视角估计网络损失的mse函数di-loss如下:di-loss=||ap-ag||2其中,ag表示对应输入二维图像的标准相机视角参数,ap表示步骤2-2获得的相机视角参数;步骤4-3包括:设定距离损失函数dcd:记输出三角面片为vp,标准三角面片为vg,设定三角面片v之间的chamfer距离dcd作为距离损失函数:其中dcd包含两项,第一项称为正向距离,第二项称为反向距离,w1为正向距离的权重,而w2为反向距离的权重,min为求最小值函数,表示欧几里得距离;设定点移动距离正则项dm:其中表示点vp的所有邻居节点,vi表示所有邻居节点中的第i个邻居节点,|·|表示一个集合的元素个数,则即表示点vp所有邻居节点的个数,即表示点vp所有邻居节点的平均位置;设定边长和正则项损失de:步骤5包括:将测试图像ip输入步骤4-2中已经训练好的无向图初始化网络中,获得相机视角ap;再将相机视角ap和测试图像输入步骤4-4中已经训练好的无向图更新网络中,生成三角面片vp。有益效果:本发明具有以下优点:首先,本发明能够全自动地进行三维重建,重建过程中无需任何用户交互,使用方法简单便捷。本发明可以仅从单幅图像重建出对象的三角面片表示,用户的拍摄负担大大减轻,并可利互联网上的海量图像,最后,本发明的三维重建技术本发明的三维重建技术目标对象表面材质以及环境光照等条件并无过高要求,使其具有较强的应用场景适性。附图说明下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述或其他方面的优点将会变得更加清楚。图1是本发明的处理流程示意图。图2是三维重建过程的输入图像示意图。图3是三维重建过程的输入初始三角面片示意图。图4是本发明构建的重建生成的的三角面片示意图。具体实施方式下面结合附图及实施例对本发明做进一步说明。如图1所示,本发明公开了一种基于无向图学习模型的单图像面片重建方法,具体包括以下步骤:步骤一,准备神经网络的训练数据:对现有三维模型集中的所有三维模型的尺寸进行归一化、水密化,再将三维模型渲染在白色背景下,作为训练图像集;步骤二,构建无向图初始化网络:使用卷积神经网络建立图像编码器,并对图像进行相机视角估计,获得该图像对应的相机视角参数;步骤三,构建无向图更新网络:根据估计所得的相机视角参数对初始三角面片进行投影,并获得无向图更新序列,并按照序列更新每个节点,将更新的特征传播到整个无向图;步骤四,离线训练无向图初始化和无向图更新网络:设计无向图初始化和无向图更新网络损失,并设置神经网络输入为步骤1中准备的训练数据,根据无向图初始化和无向图更新网络损失反向传播进行离线训练;步骤五,在线测试重建网络:将用户提供的图像输入三维面片重建网络,得到图像对应的三角面片结果。下面具体介绍各个步骤的主要流程:步骤一包括以下步骤:步骤11,三维形状归一化:本发明所使用的现有的三维模型集来源于shapenet三维形状集的一个子集,共有13类超过个用多边形网格表示的三维形状;对于该三维模型集中的每个三维形状,计算其轴对齐最小包围盒,包围盒的对角线长度ldiag可用下式计算:其中xmax、ymax、zmax为所有顶点中x坐标、y坐标与z坐标的最大值,xmin、ymin、zmin为所有顶点中x坐标、y坐标与z坐标的最小值,ns为三维形状所包含的顶点数,xi、yi、zi分别为三维形状中第i个顶点的x、y、z坐标,max(.)函数是最大值函数,其作用是求取一个集合中的最大值,而min(.)函数是最小值函数,作用是求取一个集合中的最小值;而包围盒的中心点坐标c可通过下式计算:则三维形状s归一化后的顶点坐标可通过下式计算:其中,vi’为三维形状归一化后第i个顶点的三维坐标向量,vi为归一化前第i个顶点的三维坐标向量。步骤12,三维模型水密化:对于三维模型集的每个三维模型,使用水密方法去除三维模型的孔洞,使三维模型所有离散部件合并构成整个单一模型。三角面片水密化过程通过检测并处理悬挂部件、复杂边和奇异顶点缺陷结构,保证输出模型是水密的三角面片模型。该过程依次为删除悬挂边、消除奇异顶点、消除复杂边、删除悬挂顶点等。具体而言,每个步骤过程如下:删除悬挂边。遍历输出模型的面片来查找悬挂面,一旦找到悬挂面即可迭代删除该悬挂面以及由于删除该悬挂面而产生的新的悬挂面。消除奇异顶点。遍历三角面片的所有顶点,对每个顶点相连的面集合依照边连通性划分为不同的子集,如果与顶点相连的面片集合中存在非边连通的面片,则该顶点为奇异顶点。为了消除该奇异顶点,可以将非边连通的面片中该奇异顶点的序号复制子集个数份,每个新顶点与一个子集内的所有顶点形成新三角面片。消除复杂边。检测与每条边相连的面片的数量,如果边连接的面片数量大于2,则该边为复杂边。检测该复杂边的每个顶点的面片在去除该复杂边后的边连通性,如果与顶点相连的面片集合中存在非边连通的面片,则将该顶点复制,将非边连通的面片中该顶点的序号更新为复制得到新的顶点序号,即可消除复杂边。删除悬挂顶点。遍历三角面片中的所有顶点,如果某顶点不属于任何面片,则设定该顶点为悬挂顶点,直接将其删除即可。步骤13,多视角选取:对三维模型集中的每个三维模型,在三维空间中选取16个与坐标原点距离相等且指向坐标原点的不同视角:view={viewi|i=1,2,…,16}其中view为视角集合,viewi为第i个视角,可用观察视角的位置坐标vpi和观察方向的方向向量di表示,即vi=(vpi,di),而vpi可通过下式计算:其中r为观察点距离三维形状中心点的距离,本发明中设r=2.5;θi为第i个视角的观察方向向量与三维坐标系的y轴的夹角,为第i个视角的观察方向向量与三维坐标系z轴的夹角;θbase为一个常量,本发明中ξi为一个位于区间内的随机实数;而第i个视角的观察方向向量即为由观察点指向坐标原点的向量,即步骤14,生成多视角渲染图像:在步骤12选取的每个视角方向下对三维模型使用phong光照模型进行渲染得到白色背景图像,将渲染后的图像组成训练图像集。步骤二包括以下步骤:步骤21,使用深度残差网络构成图像编码器(简称编码器)来编码输入图像从而完成图像信息提取任务,编码器接收图像为输入,输出一个包含了对三维重建有价值的图像信息的特征矩阵。在该网络中,输入图像为三通道图像(即rgb红绿蓝三通道),可使用一个维度为h0×w0×d0的三维矩阵i表示,其中h0为图像高度,w0为宽度,d0为深度(也即图像通道数)。深度残差网络由17层卷积层构成,其中的第一层卷积层输入图像矩阵i,经过卷积操作后输出一个特征图f1,设f1的维度为h1×w1×d1,h1和w1分别为特征图的高和宽,d1为特征图的深度也即卷积层中包含的滤波器(也即卷积核)个数;深度残差网络中的后续卷积层中的第i层输入i-1层卷积层输出的特征图fi-1,并输出一个新的特征图fi,并设的维度为hi×wi×di,hi、wi和di分别为特征图的高度、宽度和深度;卷积层的层数越高,特征图所包含的图像信息的抽象程度越高,且特征图的高度和宽度越小而深度越大。可知,浅层卷积层在大尺度特征图上提取的是细粒度图像信息,深层卷积层在小尺度特征图上提取的是粗粒度的图像信息。为防止梯度弥散现象(指神经网络的训练误差在反向传播过程中其梯度值逐渐减小直至消失导致训练难以进行的现象)且使神经网络的训练效率加快,深度残差网络在相邻的两层前后加入跨层连接,使训练误差(指神经网络的输出结果与真实情况之间的差异)能够通过跨层连接直接传递至浅层卷积层。最后,编码器将输入图像i编码为特征矩阵fm。具体地,令函数g表示图像编码器中卷积层所进行的卷积操作,则图像信息的提取过程(即图像的编码过程)可通过下式表示:f1=g1(i),f2=g2(f1),f3=g3(f2),f4=g4(f3+f1),fi-2=gi-2(fi-3),fi-1=gi-1(fi-2),fi=gi(fi-1+fi-3),fm-3=gm-3(fm-4),fm-2=gm-2(fm-3),fm-1=gm-1(fm-2+fm-4),fm=gm(fm-1);其中,i为表示输入图像的维度为h0×w0×3的三维矩阵,在本发明中h0=w0=128分别为输入图像的高和宽,gi为第i层卷积层进行的卷积操作,gi共包含di个大小为3×3的卷积核,fi为图像编码器中的第i层卷积层输出的特征图,fm为最终输出的维度为hm×wm×dm特征矩阵,在本发明中,m=17,hm=wm=128,dm=32。步骤22,构建相机视角估计网络:使用多个全连接层构建相机视角估计网络,获得图像对应的相机视角参数(即相机在世界坐标系中的坐标),获得每个点的特征值作为无向图初始特征值。令函数fi(f)=wi·f+bi表示第i层全连接层对特征图f所进行的线性计算操作,wi为权重矩阵,bi为偏置向量,则全连接层通过下式表示:pfc=f3(f2(f1(fm)));其中,pfc为全连接层生成的相机视角估计参数,fi为第i层全连接层所进行的线性计算;步骤23,获得点投影图:从三维模型集中选择一个面片模型作为初始面片,在获得相机视角后,投影过程输入为相机视角和点集在世界坐标系中的坐标,输出为点集在图像上的位置。记ow=(xw,yw,zw)描述的步骤22所得的世界坐标系中的相机视角坐标,世界坐标系中一点的位置为(x,y,z),在图像坐标系中对应的坐标为(x,y);f=(fx,fy)表示相机在x轴和y轴上的焦距,是图像中点o到相机坐标系光心oc的距离,zc为图像尺寸,则投影过程通过下式计算可得:步骤24,双线性点特征插值:在获得三角面片所有顶点的二维投影后,将二维投影与图像编码器获得的特征图对应,然后用双线性插值从步骤21提取的特征图中的四个附近像素插值获得每个点的特征,以此作为无向图的初始特征值。双线性插值是在x轴和y轴两个方向分别进行一次线性插值,因此任一点的特征只与该点相邻的四个像素点有关。若记(x1,y1),(x1,y2),(x2,y1)和(x2,y2)是投影点所在的特征图上相邻四个像素点的坐标,f(x,y)表示特征图上该点的特征值,则特征图上点(x,y)插值结果通过下式计算可得:步骤三包括以下步骤:步骤31,生成点序列:给定初始三角面片和相机视角参数,将初始三角面片顶点按照步骤23所述的投影过程投影至二维平面,将投影得到的二维点与原图作比较,与原图中物体最近的点的距离较远的点在无向图更新时更新顺序越靠前。步骤32,构建无向图lstm网络结构:设计无向图lstm每个节点单元的输入包括:节点vi的输入状态节点vi前一层隐藏态节点vi的记忆态以及节点vi相邻节点的隐藏态和记忆态。无向图中的任一节点具有任意数量的邻居节点,节点vi的lstm门控隐藏态通过对节点vi的相邻节点的隐藏态求平均来获得;每个无向图节点vj存在一个访问标志指示该节点否已被更新,其中在已被更新时设置为1,否则为0,这一访问标志用二元指示函数控制,门控隐藏态计算方式如下:无向图lstm为节点vi不同的相邻节点指定自适应遗忘门记节点vi对应的输入门为遗忘门为自适应遗忘门为记忆门为输出门为相应地,wu、wf、wc、wo是与输入特征对应的循环门控权重矩阵,uu、uf、uc、uo是与隐藏态对应的循环门控权重矩阵,uun、ufn、ucn、uon是与邻居节点隐藏态对应的权重参数,ufn是无向图所有节点的共享权重度量,bf为偏置权重,上述的权重均为神经网络用于训练的参数。δ是sigmoid函数,⊙是哈达马积函数,每个无向图lstm单元更新过程为:接着更新记忆态和隐藏态:步骤33,构建无向图cnn网络结构:无向图cnn网络层接受的输入为特征矩阵(每个节点vi的特征值为xi,n是节点个数,di是每个节点的输入特征维度)和无向图中节点的邻接矩阵a∈rn×n,输出为(do是每个节点的输出维度)。若记i是单位矩阵,是的对角节点度矩阵(对角节点度矩阵包含有关每个节点的度的信息,即每个节点的边数)。若记h为隐藏层特征维度,w(0)表示输入层与隐藏层之间的权重参数,w(1)∈rh×f表示隐藏层与输出层之间的权重参数,则只含一层隐藏层的图卷积函数f0在输入特征矩阵x和邻接矩阵a时输出z为:累积三次图卷积函数,均按照上述图卷积过程进行更新,则最后的网络层输出为:z=f3(f2(f1(x,a)))。步骤四包括以下步骤:步骤41,设定无向图初始化网络损失函数:无向图初始化网络损失di-loss函数主要指的是视角估计网络损失,相机视角估计网络损失函数为均方误差mse函数:di-loss=||ap-ag||2其中,ag表示对应输入二维图像的标准相机视角参数,ap表示神经网络预测的相机视角参数。步骤42,训练无向图初始化网络:对步骤2中构建的无向图初始化网络进行训练,将步骤13获得的训练图像集中的图像i作为输入,利用步骤41中的无向图初始化网络输出对应相机视角,计算输出对应相机视角与渲染时使用的相机视角之间的mse作为损失函数度量训练误差,再将训练误差反向传播至网络中的每一网络层,并在每一网络层中使用adam优化算法调整网络层的权重和偏置等参数从而最小化该训练误差;步骤43,设定无向图更新网络损失函数:无向图更新网络损失函数du-loss由距离损失函数dcd、点移动距离正则项dm和边长和正则项损失de共同决定。记输出三角面片为vp,标准三角面片为vg,设定三角面片v之间的chamfer距离dcd作为距离损失函数其中dcd包含两项,第一项称为正向距离,第二项称为反向距离,w1为正向距离的权重,而w2为反向距离的权重,min为求最小值函数,表示欧几里得距离。设定点移动距离正则项dm:其中表示点vp的所有邻居节点,|·|表示一个集合的元素个数,因此即表示点vp所有邻居节点的个数,即表示点vp所有邻居节点的平均位置。设定边长和正则项损失de:最后的总损失计算由上述损失加权求和所得,即du-loss=λ1dcd+λ2dm+λ3de,在本发明中取权重为λ1=10,λ2=0.01,λ3=0.02。步骤44,训练无向图更新网络:对步骤3中构建的无向图更新网络进行训练,将步骤13获得的训练图像集中的图像i和步骤22获得的相机视角作为输入,利用步骤43中的无向图更新网络输出对应的三角面片,计算输出三角面片与标准三角面片的:无向图更新网络损失函数du-loss作为损失函数度量训练误差,再将训练误差反向传播至网络中的每一网络层,并在每一网络层中使用adam优化算法调整网络层的权重和偏置等参数从而最小化该训练误差。步骤五包括以下步骤:对测试图像进行三维重建:将测试图像ip输入步骤42中已经训练好的无向图初始化网络中,获得相机视角ap;再将相机视角ap和输入图像输入步骤44中已经训练好的无向图更新网络中,生成三角面片vp。实施例本实施例中,如图2所示为输入的待重建的图像,通过本发明所述的三维重建方法,可重建出图中对象的三维形状。具体实施过程如下:通过步骤一至步骤四,本发明获得了已经训练好的无向图初始化网络和无向图更新网络。步骤五中,用户输入一张包含待重建椅子对象的图像,如图2所示。同时系统提供一个初始化三角面片,如图3所示。将图像输入无向图初始化网络并被深度残差网络构成图像编码器编码为图像信息特征矩阵。随后,该特征矩阵将输入解码器中,其中解码器的全连接过程将特征矩阵映射为一个大小为三维位置坐标,即为相机视角参数;然后将初始化三角面片根据相机视角参数进行投影,并利用插值从图像信息特征矩阵中获得每个三角面片的点特征,作为无向图的初始化特征。下一步,将初始化后的无向图和图像信息特征矩阵输入无向图更新网络中。其中无向图lstm网络层将无向图特征编码为每个点32维的特征向量,并通过两层无向图lstm网络层获得每个无向图节点64维的特征向量;接着将此无向图输入三层无向图cnn网络层,最后一层的输出为每个无向图节点3维的特征向量,作为该三角面片顶点的三维空间坐标,即通过重建方法获得了图像中物体模型的三角面片表示,如图4所示。本发明提供了一种基于无向图学习模型的单图像面片重建方法,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本
技术领域
:的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部分均可用现有技术加以实现。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1