一种基于动态图网络的3D物体重建方法

文档序号:25356170发布日期:2021-06-08 14:49阅读:130来源:国知局
一种基于动态图网络的3D物体重建方法
一种基于动态图网络的3d物体重建方法
技术领域
1.本发明属于3d物体重建技术领域,更为具体地讲,涉及一种基于动态图网络的3d物体重建方法。


背景技术:

2.3d物体重建目的是利用物体的二维图像推断出其三维结构,现有3d物体重建方法主要是利用多视角几何学的角度关系对三维结构进行推断,比如【yasutaka furukawa and jean ponce.accurate,dense,and robust multiview stereopsis.ieee transactions on pattern analysis and machine intelligence,32(8):1362

1376,2010】。虽然该3d物体重建方法可以实现高质量的3d物体重建,但受限于专业的设备以及完整的多视角数据,无法推广到基于单张二维图像的3d物体重建中去。
3.近期,nanyang wang等人通过图卷积神经网络,建立一种端到端的深度学习架构,从单一彩色图像生成一个基于网格表示的三维模型,实现单张二维图像的3d物体重建【nanyang wang,yinda zhang,zhuwen li,yanwei fu,wei liu,and yu

gang jiang.pixel2mesh:generating 3d mesh models from single rgb images.in proceedings of the european conference on computer vision(eccv),pages 52

67,2018.】。如图1所示,该3d物体重建方法基于图卷积神经网络,通过逐步变形初始椭球体,最后生成正确的几何形状即三维结构。但是该3d物体重建方法中,图卷积神经网络中的初始关系矩阵缺少必要邻居节点信息即初始图信息不全,导致其不能适应于对应物体的网格关系,限制了其推理效果。


技术实现要素:

4.本发明的目的在于克服现有技术的不足,提供一种基于动态图网络的3d物体重建方法,通过健全初始图信息,以适应于对应物体的网格关系,从而提升重建的准确率和效果。
5.为实现上述发明目的,本发明基于动态图网络的3d物体重建方法,其特征在于,包括以下步骤:
6.(1)、图像特征提取
7.对物体的二维图像i进行图像特征提取,得到一张特征图,该特征图包括n个d维度的特征向量f1,f2,...,f
n
,以及每个特征向量f
n
对应图像区域的中心位置坐标x
n
,y
n
(特征向量坐标),其中,特征向量f
n
为列向量,n=1,2,..,n;
8.(2)、动态图网络输入数据准备
9.预定义一个由n个顶点以及多条边组成椭球体网格模型,并填充初始特征:对于第k个顶点,根据其水平坐标x

k
、垂直坐标y

k
,在特征图上找到距离最近的特征向量坐标x
k

,y
k

,k

∈{1,2,...n},然后,将特征向量f
k

与第k个顶点的水平坐标x

k
、垂直坐标y

k
以及高度坐标z

k
连接为一个特征向量x
k
,其维度为c1,c1=d+3,得到特征输入x,x={x1,x2,...,
x
n
};
10.构建特征输入x对应的关系矩阵a,其中,关系矩阵a=(a
ij
)
n
×
n
,对于关系矩阵a中元素a
ij
:如果第i个顶点、第j个顶点之间有边连接或第i个顶点的特征向量x
i
、第j个顶点的特征向量x
j
之间存在近邻关系(距离小于设定的阈值ε),则元素a
ij
=1,否则元素a
ij
=0;
11.(3)、动态图网络中进行特征映射和卷积
12.所述动态图网络(动态图卷积神经网络)包括动态图学习层以及两层图卷积层;
13.3.1)、在动态图学习层中,首先通过一组可学习的参数θ对特征输入x进行特征映射:对于特征输入x的第i个特征向量x
i
,则映射得到特征向量h
i
:h
i
=θ
t
x
i
,其中,参数θ为c1×
c2大小的矩阵,c2为距离空间中的特征维度;然后度量顶点与顶点之间的距离,得到关系矩阵s,其中,关系矩阵s=(s
ij
)
n
×
n
,对于关系矩阵s中元素s
ij
,其值为:
[0014][0015]
其中,d2()为特征向量之间距离度量函数,exp{}为指数函数;
[0016]
再对关系矩阵s进行归一化,对于归一化后的元素
[0017][0018]
并对每一行的n个元素进行选取,保留最大的k个值,其余的置为0,这样得到关系矩阵其中,关系矩阵
[0019]
最后,将关系矩阵与关系矩阵a融合,生成新的关系矩阵与关系矩阵a融合,生成新的关系矩阵
[0020]
其中,η为用来平衡关系矩阵a与关系矩阵的超参数,根据具体实施情况确定;
[0021]
3.2)、在两层图卷积层中,用新的关系矩阵对特征输入x进行两层图卷积操作,得到特征输出z:
[0022][0023]
其中,特征输出z为n列向量构成的矩阵,为第一层图卷积层的输出,并作为第二层图卷积层的输入,w
(1)
为第一层图卷积层的可学习线性映射参数,w
(2)
为第二层图卷积层的可学习线性映射参数,σ()激活函数;
[0024]
(4)、3d坐标回归层中进行线性回归映射
[0025]
将特征输出z的n个列向量z
i
,i=1,2,

,n,分别作为输入送入3d坐标回归层中进行线性回归映射,输出特征维度为3的坐标向量p
i
,i=1,2,

,n,对应第i个顶点的预测3d坐标;
[0026]
(5)、训练动态图网络
[0027]
5.1)、构建图学习损失函数l
graph

[0028][0029]
其中,z
i
、z
j
分别为特征输出z的第i列向量、第j列向量,|z
i

z
j
|表示求第i列向量、第j列向量的欧式距离,||||
f
表示求范数;
[0030]
5.2)、不断输入不同物体的二维图像i,按照步骤(1)、(2)、(3)进行处理,然后依据图学习损失函数l
graph
,利用梯度下降算法进行反向传播,更新动态图学习层可学习参数θ以及两层图卷积层中的可学习线性映射参数w
(1)
、w
(2)
,当图学习损失函数l
graph
的值不再减小(损失值收敛)时,停止更新,完成动态图网络训练;
[0031]
(6)、训练3d坐标回归层
[0032]
在完成动态图网络后,不断输入不同物体的二维图像i,按照步骤(1)、(2)、(3)、(4)进行处理,使用chamfer distance损失函数,度量各顶点预测3d坐标与各顶点真实3d坐标的距离,利用梯度下降算法进行反向传播,更新整个3d坐标回归层的网络参数,当chamfer distance损失函数的值不再减小,停止更新,完成3d坐标回归层训练;
[0033]
(7)、3d物体重建
[0034]
在完成动态图网络、3d坐标回归层训练后,对于物体的二维图像i,按照步骤(1)、(2)、(3)、(4)进行处理,得到n个顶点的预测3d坐标,得到物体的3d网格模型,从而完成3d物体重建。
[0035]
本发明的目的是这样实现的。
[0036]
本发明基于动态图网络的3d物体重建方法,物体的二维图像i首先经过图像特征提取,得到特征向量;然后进行图网络输入数据准备:预定义一个由n个顶点以及多条边组成椭球体网格模型,并填充初始特征得到特征输入x,并构建对应的关系矩阵a;然后将特征输入x及对应的关系矩阵a送入动态图网络对每个顶点的特征进行融合和推理,融合,生成新的关系矩阵并且根据基于图拉普拉斯正则化对图的边进行更新,发现潜在的边关系,用于后面的图卷积操作,改善初始图信息不全,不能很好地适用与对应物体的网格关系,从而提升重建的准确率以及效果;最后根据动态图网络输出的特征输出z经过3d坐标回归层回归出每个顶点的位置即预测3d坐标。即给定一张物体的二维图像i,输出对应的n个顶点的预测3d坐标,得到物体的3d网格模型,从而完成3d物体重建。本发明重点解决了图网络中初始关系矩阵a缺少必要邻居节点信息以及不能适应于对应物体的网格关系的缺点,这样重建出来的3d网格模型具有完整、光滑等特点,能够适用于游戏,无人机,动画等实际应用中。
附图说明
[0037]
图1是现有技术中一种端到端的深度学习架构示意图;
[0038]
图2是本发明基于动态图网络的3d物体重建方法一种具体实施方式流程图;
[0039]
图3是图1所示动态图网络输入数据准备的示意图
[0040]
图4是图1所示3d物体重建的流程图;
[0041]
图5是图1所示3d物体重建的原理示意图;
[0042]
图6是采用本发明重建的物体的3d网格模型的效果图。
具体实施方式
[0043]
下面结合附图对本发明的具体实施方式进行描述,以便本领域的技术人员更好地理解本发明。需要特别提醒注意的是,在以下的描述中,当已知功能和设计的详细描述也许会淡化本发明的主要内容时,这些描述在这里将被忽略。
[0044]
在本实施例中,如图2所示,本发明基于动态图网络的3d物体重建方法包括以下步骤:
[0045]
步骤s1:图像特征提取
[0046]
对物体的二维图像i进行图像特征提取,得到一张特征图,该特征图包括n个d维度的特征向量f1,f2,...,f
n
,以及每个特征向量f
n
对应图像区域的中心位置坐标x
n
,y
n
(特征向量坐标),其中,特征向量f
n
为列向量,n=1,2,..,n。
[0047]
在本实施例中,物体的二维图像i在进行图像特征提取之前需要进行图像预处理:用现有成熟算法,对物体的二维图像i进行增强、裁剪与统一。在本实施例中,具体裁剪与统一如下:

、将物体的二维图像i裁剪成大小为256
×
256的图像,通过边缘检测算法,去除背景区域颜色,用绿色填充;

、对物体的二维图像i进行色彩归一化,统一图像的像素值符合高斯分布。
[0048]
在本实施例中,将预处理后的二维图像i图像,输入到已经用imagenet图像数据库训练好的残差网络(residual network)resnet50模型进行特征提取。resnet50模型由多个3x3卷积层、激活函数层以及批量归一化层组成,同时包含短路连接,将上层特征与下层特征相连接。resnet模型通常由多个块(block)组成,在本实施例中,为了获取与图像区域对应的特征,去掉最后一个块(block)block,最后得到一张16
×
16个512维度的特征向量的特征图,该特征图包括n=16
×
16个d=512维度的特征向量f1,f2,...,f
256
,以及每个特征向量f
n
对应图像区域的中心位置坐标x
n
,y
n
(特征向量坐标)。
[0049]
步骤s2:动态图网络输入数据准备
[0050]
如图3所示,预定义一个由n个顶点以及多条边组成椭球体网格模型,并填充初始特征:对于第k个顶点,根据其水平坐标x

k
、垂直坐标y

k
,在特征图上找到距离最近的特征向量坐标x
k

,y
k

,k

∈{1,2,...n},然后,将特征向量f
k

与第k个顶点的水平坐标x

k
、垂直坐标y

k
以及高度坐标z

k
连接为一个特征向量x
k
,其维度为c1,c1=d+3,得到特征输入x,x={x1,x2,...,x
n
}。在本实施例中,维度c1=512+3=256。
[0051]
构建特征输入x对应的关系矩阵a,其中,关系矩阵a=(a
ij
)
n
×
n
,对于关系矩阵a中元素a
ij
:如果第i个顶点、第j个顶点之间有边连接或第i个顶点的特征向量x
i
、第j个顶点的特征向量x
j
之间存在近邻关系(距离小于设定的阈值ε),则元素a
ij
=1,否则元素a
ij
=0。
[0052]
在本实施例中,椭球体网格模型包括256个顶点以及6
×
256条边。
[0053]
步骤s3:动态图网络中进行特征映射和卷积
[0054]
所述动态图网络包括动态图学习层以及两层图卷积层;
[0055]
步骤s3.1:在动态图学习层中,首先通过一组可学习的参数θ对特征输入x进行特征映射:对于特征输入x的第i个特征向量x
i
,则映射得到特征向量h
i
:h
i
=θ
t
x
i
,其中,参数θ为c1×
c2大小的矩阵,c2为距离空间中的特征维度;然后度量顶点与顶点之间的距离,得到关系矩阵s,其中,关系矩阵s=(s
ij
)
n
×
n
,对于关系矩阵s中元素s
ij
,其值为:
[0056][0057]
其中,d2()为特征向量之间距离度量函数,exp{}为指数函数。
[0058]
再对关系矩阵s进行归一化,对于归一化后的元素
[0059][0060]
并对每一行的n个元素进行选取,保留最大的k个值,其余的置为0,这样得到关系矩阵其中,关系矩阵
[0061]
对于每个顶点,过多的邻居顶点,会在特征聚合的过程中造成图过度平滑问题,使得所有顶点的特征都趋于一样,导致动态图网络训练失败。因此,本发明从而对关系矩阵进行稀疏化:根据距离,归一化每个邻居顶点的权重,对每个顶点,保留和此顶点最近的k个顶点,去掉其余链接。
[0062]
最后,将关系矩阵与关系矩阵a融合,生成新的关系矩阵与关系矩阵a融合,生成新的关系矩阵
[0063]
其中,η为用来平衡关系矩阵a与关系矩阵的超参数,根据具体实施情况确定。
[0064]
步骤s3.2:在两层图卷积层中,用新的关系矩阵对特征输入x进行两层图卷积操作,得到特征输出z:
[0065][0066]
其中,特征输出z为n列向量构成的矩阵,为第一层图卷积层的输出,并作为第二层图卷积层的输入,w
(1)
为第一层图卷积层的可学习线性映射参数,w
(2)
为第二层图卷积层的可学习线性映射参数,σ()激活函数。
[0067]
其中,特征输入x与w
(1)
相乘为线性映射,与关系矩阵相乘为邻居节点特征聚合
[0068]
步骤s4:3d坐标回归层中进行线性回归映射
[0069]
将特征输出z的n个列向量z
i
,i=1,2,

,n,分别作为输入送入3d坐标回归层中进行线性回归映射,输出特征维度为3的坐标向量p
i
,i=1,2,

,n,对应第i个顶点的预测3d坐标。
[0070]
步骤s5:训练动态图网络
[0071]
步骤s5.1:构建图学习损失函数l
graph

[0072][0073]
其中,z
i
、z
j
分别为特征输出z的第i列向量、第j列向量,|z
i

z
j
|表示求第i列向量、第j列向量的欧式距离,||||
f
表示求范数。
[0074]
步骤s5.2:不断输入不同物体的二维图像i,按照步骤(1)、(2)、(3)进行处理,然后
依据图学习损失函数l
graph
,利用梯度下降算法进行反向传播,更新动态图学习层可学习参数θ以及两层图卷积层中的可学习线性映射参数w
(1)
、w
(2)
,当图学习损失函数l
graph
的值不再减小(损失值收敛)时,停止更新,完成动态图网络训练。
[0075]
传统的图网络(图卷积神经网络)需要输入特征输入x以及对应的关系矩阵a,关系矩阵a作为特征聚合的操作输入,而在整个过程中关系矩阵a是不变的、固定的。也就意味着初始的关系矩阵a对特征传递和聚合过程有很大的影响,而初始的关系矩阵a存在信息不全(比如缺少边)以及不能很好地对应于物体的网格关系的缺点,于是本发明设计和提出了一种基于动态图网络的3d物体重建方法。和传统的基于图卷积神经网络的3d物体重建方法不同,动态图网络会对每个顶点的特征进行一次映射,并且根据基于图拉普拉斯正则化对图的边进行更新,发现潜在的边关系,经过距离计算以及对生成的潜在图进行稀疏化,最后与初始的关系矩阵a进行融合得到新的关系矩阵用于后面的图卷积操作。新的关系矩阵相比与初始的关系矩阵a,改善了初始的关系矩阵a的信息不全,能够更好地适用于对应物体的网格关系,从而提升重建的准确率以及效果。
[0076]
步骤s6:训练3d坐标回归层
[0077]
在完成动态图网络后,不断输入不同物体的二维图像i,按照步骤(1)、(2)、(3)、(4)进行处理,使用chamfer distance损失函数,度量各顶点预测3d坐标与各顶点真实3d坐标的距离,利用梯度下降算法进行反向传播,更新整个3d坐标回归层的网络参数,当chamfer distance损失函数的值不再减小(损失值收敛)时,停止更新,完成3d坐标回归层训练。
[0078]
chamfer distance损失函数用于度量预测值与真实值的距离,其表达式为:
[0079][0080]
其中,m代表预测顶点集合,g代表真实顶点集合。对于一个顶点集合中每一个顶点,chamfer distance损失函数找到另一个顶点集合中最近的点,然后把距离的平方相加。第一项代表预测顶点集合中每个顶点p到真实顶点集合中最近点距离之和,第二项则表示真实顶点集合中每个顶点q到预测顶点集合最近点距离之和的。如果距离l较大,则说明预测顶点集合与真实顶点集合区别较大;如果距离l较小,则说明预测顶点集合与真实顶点集合区别较小,则说明重建效果较好。chamfer distance倒角距离主要用于点云重建或者3d重建工作。
[0081]
在本实施例中,chamfer distance损失函数为l
regress

[0082][0083]
其中,q
i*
为到第i坐标向量p
i
最近的真实3d坐标构成的坐标向量,p
i*
为到第i个顶点真实3d坐标对应的坐标向量q
i
最近的坐标向量,q
i
为第i个顶点真实3d坐标构成的坐标向量;
[0084]
步骤s7:3d物体重建
[0085]
如图4、5所示,在完成动态图网络、3d坐标回归层训练后,对于物体的二维图像i,按照步骤s0、s1、s2、s3、s4进行处理:图像预处理、图像特征提取、动态图网络输入数据准
备、动态图网络中进行特征映射和卷积以及3d坐标回归层中进行线性回归映射,得到n个顶点的预测3d坐标即(x,y,z)的值,得到物体的3d网格模型,从而完成3d物体重建。
[0086]
其中,图4所示,动态图网络包括动态学习层以及两层图卷积层。在动态学习层中进行特征映射、距离度量、稀疏化以及关系矩阵融合,学习得到新的关系矩阵发现潜在的边关系;在图卷积层中,进行特征映射和邻居节点特征融合,得到特征输出z。具体的3d物体重建的原理示意图如图5所示。
[0087]
采用本发明,对部分物体的二维图像i进行处理,得到物体的3d网格模型,然后转换为重建效果图,如图6所示。从图6可以看出,本发明重建出来的3d网格模型具有完整、光滑等特点,能够适用于游戏,无人机,动画等实际应用中。
[0088]
尽管上面对本发明说明性的具体实施方式进行了描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1