一种利用生成对抗网络进行稠密点云补全的算法

文档序号:26587770发布日期:2021-09-10 19:52阅读:367来源:国知局
一种利用生成对抗网络进行稠密点云补全的算法

1.本发明涉及自动驾驶以及机器人技术领域,具体的说是一种利用生成对抗网络进行稠密点云补全的算法。


背景技术:

2.点云是一种常用的3d数据格式,可以在三维空间中保持物体原有的几何信息,广泛应用于数字保存、逆向工程测量、建筑、3d游戏、机器人和虚拟现实等多个领域。
3.点云数据通常是通过使用激光扫描仪、立体摄像机或rgb

d扫描仪来获得。实际采集过程中由于遮挡、表面材料的透明度、光线反射、传感器分辨率和视角的限制等因素,会造成物体几何和语义信息的丢失,导致扫描得到的点云数据不完整。因此,为了更好的将点云数据应用到后续其他领域,需要进行形状补全,获得尽可能完整的点云。传统的3d形状补全方法主要包括基于几何的方法和基于模板匹配的方法。基于几何的方法可以利用物体本身的几何信息(表面光滑,对称性等)修复较小的孔洞;基于模板匹配的方法从数据库中搜索相似模板进行替换以实现形状补全。这些方法对于数据要求比较高,且难以实现点云较大比例缺失情况下的补全,模型泛化性能较差。
4.为了克服上述缺陷,后来发展了两种典型的方法。其中一种方法考虑到点云具有无序性的特点,将点云体素化并利用卷积神经网络进行训练,以进行点云补全。该方法有以下缺陷:(1)、计算内存消耗巨大;(2)、随着3d体素网格分辨率的提高,难以实现细节信息的补全。另一种方法中,通过稀疏点云的补全克服上述缺陷,即单个数据样本补全之后的点云数量不超过2048。该方法的优点在于较少的内存开支,降低了神经网络训练的困难程度,但同样存在以下缺陷:(1)、细节特征表现方面不如稠密点云;(2)、如何更有效的提取信息生成量级更大的、信息更加更富的点云数据是一个很大的挑战。


技术实现要素:

5.本发明的目的在于提出了一种利用生成对抗网络进行稠密点云补全的算法n

dpc

gan,其能够利用生成对抗网络构建缺失点云的高维全局特征向量和目标点云的高维全局特征向量之间的一一映射关系,进一步“优化”缺失点云的高维全局特征向量,进而从缺失点云中重构生成完整的点云。
6.为实现上述目的,本发明采用以下技术方案:
7.一种利用生成对抗网络进行稠密点云补全的算法,包括以下步骤:
8.s1、设定生成器,将缺失点云输入encoder
c
编码器提取特征,得到高维全局特征向量gfv
x

9.s2、利用生成器将目标点云经过encoder
n

dpc
编码器,得到高维全局特征向量gfv
y

10.s3、利用生成对抗网络在高维全局特征向量空间训练,实现x

y之间的“风格迁移”;
11.s4、从生成器生成的新特征向量gfv
g(x)
通过解码器decoder
n

dpc
补全得到稠密点
云。
12.优选地,步骤s1中encoder
c
解码器得到高维全局特征向量gfv
x
通过以下步骤实现:
13.s11、将编码器经shapenet数据集训练得到encoder
c
编码器;将解码器经训练得到decoder
c
解码器;
14.s12、将输入的缺失点云标记为pi(x,y,z),其中i=1,...,n,n表示点云的总数量,x、y和z表示点云的三维坐标信息;将输入的n个点的三维坐标信息输入结构为(128,256)的多层感知机中得到[n
×
256]的点云特征信息f,其中点云特征信息f中的每一行都代表一个点的特征信息,利用最大池化得到维度为[1
×
256]的特征向量g;
[0015]
s13、将特征向量g经过复制操作并且和点云特征信息f连接得到维度为[n
×
512]的点云特征信息f;
[0016]
s14、将点云特征信息f输入self

attention注意力机制得到赋予每个点特征不同权重的新点云特征f

,新点云特征f

的特征维度保持为[n
×
512];
[0017]
s15、经过一个结构为(512,1024)的多层感知机以及最大池化操作得到最终的全局特征向量g,全局特征向量g的特征维度为[1
×
1024];
[0018]
s16、将点云特征信息f输入三个不同的多层感知机,分别得到特征g、h和k,利用g和h得到不同特征的分配权重w,权重w的计算公式如下:
[0019]
w=f
softmax
(g
t
h)
[0020]
其中,g
t
表示特征g的转置矩阵,即对于g中的每一个元素g
i,j
(i=1,

,m;j=1,

,n)转置之后变为g
j,i
(j=1,

,n;i=1,

,m),f
softmax
函数将数值归一化到0

1之间;再将得到的权重w和k相乘计算出带有权重的特征,并且结合输入的点云特征信息f得到信息更加丰富的点云特征f


[0021]
优选地,所述生成器在特征向量空间采用全连接层,利用不同层之间的跳跃连接生成新的向量,使其共享更多的有效信息;所述生成器利用高维全局特征向量gfv
x
重新生成新的高维全局特征向量gfv
g(x)

[0022]
优选地,步骤s2通过以下步骤实现:
[0023]
s21、将缺失点云经编码器得到的高维全局特征向量gfvx经过三个输出维度为512,256和256的全连接层分别得到特征向量v1、v2和v3;
[0024]
s22、拼接特征向量v2和v3得到新的维度为512的特征向量m1,再经过一个全连接层得到维度为512的特征向量v4,跳跃拼接向量v1和v4得到1024维度的特征向量m2;
[0025]
s23、经过输出维度为1024的全连接层得到最终的高维全局特征向量gfvg(x),高维全局特征向量gfvg(x)用于后续经过解码器进行点云补全。
[0026]
优选地,步骤s3中使用判别器用于判别高维全局特征向量来源于目标点云还是生成器,具体步骤为:将1024维度的全局特征向量分为每个维度为d的特征向量,设置d为128,每个小的特征向量之间不重叠,共8个特征向量(128
×
8=1024),具体为[1:128,129:256,

,897:1024];再将特征向量分别经过基于全连接层的判别器进行判断得到[o1,o2,

,o8],对所有结果求均值获得最终输出;所述判别器的结构是输出维度为128,64和1的全连接层。
[0027]
优选地,步骤s3中的损失函数如下:
[0028]
令x表示缺失点云,x=encoder
c
(x)表示缺失点云的高维全局特征向量;y表示目
标点云,y=encoder
c
(y)表示目标点云的高维全局特征向量,生成器用于构建x

y之间的映射关系使得判别器无法判断全局特征向量来自y还是来自x经过生成器映射之后的g(x);
[0029]
判别器的训练将一一对应的全局特征向量对(x,y)分类为1(real),将(x,g(x))判别为0(fake);该阶段固定生成器的权重,迭代更新生成器的权重,损失函数如下所示:
[0030]
loss
d
=0.5l
bce
(d(x,y),1)+0.5l
bce
(d(x,g(x)),0)
[0031]
l
bce
(z,t)=

(tlog(z)+(1

t)log(1

z))
[0032]
其中,x服从缺失点云的高维全局特征向量分布,y服从目标点云的高维全局特征向量分布;lbce为二元交叉熵损失函数,z表示网络预测输出,t表示0或者1的标签;
[0033]
生成器的训练同样需要固定判别器的参数,生成器的损失函数如下所示:
[0034]
loss
gadv
=l
bce
(d(x,g(x)),1)
[0035]
将生成器生成的g(x)和y的l1距离引入损失函数,最终的损失函数公式如下所示:
[0036]
loss
l1
=‖y

g(x)‖1[0037]
loss
g
=αloss
gadv
+βlossl1[0038]
其中,α为损失函数中lossgadv的参数,β为lossl1的参数。
[0039]
优选地,步骤s4中所述解码器decoder
n

dpc
包括以下内容:所述解码器decoder
n

dpc
负责将全局特征向量g解码重构生成稠密点云,整个过程分为粗略补全和稠密补全两个阶段。
[0040]
优选地,所述粗略补全阶段首先将通过encoder
c
编码器获得的全局特征向量g输入三个输出特征维度分别为1024,1024和m
×
3的全连接层,其中最后一层全连接网络的特征维度为m
×
3是因为m个点云中每一个点云都有(x,y,z)三个坐标信息,经过三个全连接层得到新特征的维度为[1
×
(m
×
3)],然后经过变形reshape操作得到m个粗略点云的坐标信息[m
×
3]。
[0041]
优选地,所述稠密补全阶段通过引入点云局部特征提取模块,丰富了用于稠密补全的特征信息,用于由粗略点云进一步得到稠密点云,该稠密点云的数量为16384。
[0042]
优选地,步骤s4的具体过程为:
[0043]
s41、粗略点云的点云数量为m,m数值为1024,点云的局部特征提取模块基于pointnet++网络,以点云中的每个点为中心建立一个球体邻域,并将球体内的每一个点通过(64,128,256)的多层感知机获得邻域内每一个点的特征p;
[0044]
s42、将球体内的点云特征进行邻域特征池化得到维度为[m
×
256]的点云局部特征信息l;
[0045]
s43、利用点云的局部特征信息l,由encoder编码器获得的全局特征向量g和粗略点云的三维坐标信息c来生成稠密点云;由于粗略点云的数量m为1024,将点云局部特征信息l和粗略点云的三维坐标信息c复制16倍,将全局特征向量g复制扩展至16384行;
[0046]
s44、拼接全局特征向量g、局部特征信息l和三维坐标信息c得到新的特征{g
f
+l
f
+c
p
},采样点为16个,信息维度为2,得到的点的特征用{g
f
+l
f
+c
p
+2}来表示,将该特征放入结构为(512,512,3)的多层感知机中并与粗略点云的坐标c合并,最终获得数量为16384的稠密点云。
[0047]
采用上述技术方案后,本发明与背景技术相比,具有如下优点:
[0048]
1、本发明基于pointnet的点特征提取的基础上引入了self

attention注意力机
制,使得其更加关注不同点的特征上下文之间的依赖。
[0049]
2、本发明取得了与topnet等杰出方法可比较的结果,且与同为稠密点云补全算法的pcn模型相比在completion 3d提供的cd指标上误差减少7%。
[0050]
3、本发明在不同点云模型缺失比例下表现最优,具有很好的鲁棒性。
[0051]
4、本发明建立缺失点云高维全局特征向量和目标点云高维特征全局特征向量之间的一一映射关系,进一步优化点云补全效果,当点云80%比例缺失时其补全点云分类精度高达86.5%。
附图说明
[0052]
图1为本发明中n

dpc

gan算法的整体网络结构;
[0053]
图2为本发明中n

dpc

gan算法生成器的网络结构;
[0054]
图3为本发明中n

dpc

gan算法判别器的网络结构;
[0055]
图4为本发明中点云80%比例缺失下点云补全的可视化;
[0056]
图5为本发明中不同测试输入数据的比较。
具体实施方式
[0057]
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0058]
本发明主要涉及的是一种利用生成对抗网络进行稠密点云补全的算法,下面结合附图对本实施例进行详细说明。
[0059]
请参阅图1至图5,本发明公开了一种利用生成对抗网络进行稠密点云补全的算法,其包括以下步骤:
[0060]
s1、设定生成器(g),将缺失点云输入encoder
c
编码器提取特征,得到高维全局特征向量gfv
x
(维度为1024);
[0061]
步骤s1中encoder
c
解码器得到高维全局特征向量gfv
x
通过以下步骤实现:
[0062]
s11、定义结合self

attention注意力机制的编码器(encoder)以及融合多种特征信息的解码器(decoder)。将编码器(encoder)经shapenet数据集训练得到encoder
c
编码器;将解码器(decoder)经训练得到decoder
c
解码器;
[0063]
s12、将输入的缺失点云标记为pi(x,y,z),其中i=1,...,n,n表示点云的总数量,x、y和z表示点云的三维坐标信息;将输入的n个点的三维坐标信息输入结构为(128,256)的多层感知机(mlps)中得到[n
×
256]的点云特征信息f,其中点云特征信息f中的每一行都代表一个点的特征信息,利用最大池化(maxpool)得到维度为[1
×
256]的特征向量g;
[0064]
s13、将特征向量g经过复制操作并且和点云特征信息f连接得到维度为[n
×
512]的点云特征信息f;
[0065]
s14、将点云特征信息f输入self

attention注意力机制得到赋予每个点特征不同权重的新点云特征f

,新点云特征f

的特征维度保持为[n
×
512];
[0066]
s15、经过一个结构为(512,1024)的多层感知机(mlps)以及最大池化(maxpool)操作得到最终的全局特征向量g,全局特征向量g的特征维度为[1
×
1024];
[0067]
s16、将点云特征信息f输入三个不同的多层感知机(mlps),分别得到特征g、h和k,利用g和h得到不同特征的分配权重w,权重w的计算公式如下:
[0068]
w=f
softmax
(g
t
h)
[0069]
其中,g
t
表示特征g的转置矩阵,即对于g中的每一个元素g
i,j
(i=1,

,m;j=1,

,n)转置之后变为g
j,i
(j=1,

,n;i=1,

,m),f
softmax
函数将数值归一化到0

1之间;再将得到的权重w和k相乘计算出带有权重的特征,并且结合输入的点云特征信息f得到信息更加丰富的点云特征f


[0070]
所述生成器(g)在特征向量空间采用全连接层,利用不同层之间的跳跃连接生成新的向量,使其共享更多的有效信息;所述生成器(g)利用高维全局特征向量gfv
x
重新生成新的高维全局特征向量gfv
g(x)

[0071]
s2、利用生成器(g)将目标点云(gt)经过encoder
n

dpc
编码器,得到高维全局特征向量gfv
y
(维度为1024);
[0072]
步骤s2通过以下步骤实现:
[0073]
s21、如图2,将高维全局特征向量gfvx经过三个输出维度为512,256和256的全连接层分别得到特征向量v1、v2和v3;
[0074]
s22、拼接特征向量v2和v3得到新的维度为512的特征向量m1,再经过一个全连接层得到维度为512的特征向量v4,跳跃拼接向量v1和v4得到1024维度的特征向量m2;
[0075]
s23、经过输出维度为1024的全连接层得到最终的高维全局特征向量gfvg(x),高维全局特征向量gfvg(x)用于后续经过解码器进行点云补全。
[0076]
s3、利用生成对抗网络在高维全局特征向量空间训练,实现x

y之间的“风格迁移”。
[0077]
如图3所示,步骤s3中使用判别器(d)用于判别高维全局特征向量来源于目标点云(gt)还是生成器(g),具体步骤为:将1024维度的全局特征向量分为每个维度为d的特征向量,设置d为128,每个小的特征向量之间不重叠,共8个特征向量(128
×
8=1024),具体为[1:128,129:256,

,897:1024];再将特征向量分别经过基于全连接层的判别器(d)进行判断得到[o1,o2,

,o8],对所有结果求均值获得最终输出;所述判别器(d)的结构是输出维度为128,64和1的全连接层;
[0078]
步骤s3中的损失函数如下:
[0079]
令x表示缺失点云,x=encoder
c
(x)表示缺失点云的高维全局特征向量;y表示目标点云(gt),y=encoder
c
(y)表示目标点云(gt)的高维全局特征向量,生成器(g)用于构建x

y之间的映射关系使得判别器(d)无法判断全局特征向量来自y还是来自x经过生成器(g)映射之后的g(x);
[0080]
判别器(d)的训练将一一对应的全局特征向量对(x,y)分类为1(real),将(x,g(x))判别为0(fake);该阶段固定生成器(g)的权重,迭代更新生成器(g)的权重,损失函数如下所示:
[0081]
loss
d
=0.5l
bce
(d(x,y),1)+0.5l
bce
(d(x,g(x)),0)
[0082]
l
bce
(z,t)=

(tlog(z)+(1

t)log(1

z))
[0083]
其中,x服从缺失点云的高维全局特征向量分布,y服从目标点云(gt)的高维全局特征向量分布;lbce为二元交叉熵损失函数,z表示网络预测输出,t表示0或者1的标签;
[0084]
生成器(g)的训练同样需要固定判别器(d)的参数,生成器(g)的损失函数如下所示:
[0085]
loss
gadv
=l
bce
(d(x,g(x)),1)
[0086]
将生成器(g)生成的g(x)和y的l1距离引入损失函数,最终的损失函数公式如下所示:
[0087]
loss
l1
=‖y

g(x)‖1[0088]
loss
g
=αloss
gadv
+βlossl1[0089]
其中,α为损失函数中lossgadv的参数,β为lossl1的参数;
[0090]
s4、从生成器(g)生成的新特征向量gfv
g(x)
通过解码器decoder
n

dpc
补全得到稠密点云;
[0091]
步骤s4中所述解码器decoder
n

dpc
包括以下内容:所述解码器decoder
n

dpc
负责将全局特征向量g解码重构生成稠密点云,整个过程分为粗略补全和稠密补全两个阶段。
[0092]
所述粗略补全阶段首先将通过encoder
c
编码器获得的全局特征向量g输入三个输出特征维度分别为1024,1024和m
×
3的全连接层,其中最后一层全连接网络的特征维度为m
×
3是因为m个点云中每一个点云都有(x,y,z)三个坐标信息,经过三个全连接层得到新特征的维度为[1
×
(m
×
3)],然后经过变形reshape操作得到m个粗略点云的坐标信息[m
×
3]。
[0093]
所述稠密补全阶段通过引入点云局部特征提取模块,丰富了用于稠密补全的特征信息,用于由粗略点云进一步得到稠密点云,该稠密点云的数量为16384。
[0094]
步骤s4的具体过程为:
[0095]
s41、粗略点云的点云数量为m,m数值为1024,点云的局部特征提取模块基于pointnet++网络,以点云中的每个点为中心建立一个球体邻域,并将球体内的每一个点通过(64,128,256)的多层感知机(mlps)获得邻域内每一个点的特征p;
[0096]
s42、将球体内的点云特征进行邻域特征池化(neigbourhood feature pooling)得到维度为[m
×
256]的点云局部特征信息l;
[0097]
s43、利用点云的局部特征信息l,由encoder编码器获得的全局特征向量g和粗略点云的三维坐标信息c来生成稠密点云;由于粗略点云的数量m为1024,,为了将数据维度扩充至16384,将点云局部特征信息l和粗略点云的三维坐标信息c复制(tile)16倍,将全局特征向量g复制扩展至16384行;
[0098]
s44、拼接全局特征向量g、局部特征信息l和三维坐标信息c得到新的特征{g
f
+l
f
+c
p
},由于复制(tile)操作导致新的特征每16行数据均相同,为了区分这些行特征加入了2d网格数据d,其来源于一个固定大小的网格内的线性采样,采样点为16个,信息维度为2,即一个二维数据足以定位网格内采样点数据的唯一位置,得到的点的特征用{g
f
+l
f
+c
p
+2}来表示,将该特征放入结构为(512,512,3)的多层感知机(mlps)中并与粗略点云的坐标c合并,最终获得数量为16384的稠密点云。
[0099]
为了能够更直观地理解本发明,以具体的重建过程为例进行说明。实验部分首先测试了本发明在shapenet中2.5d深度图反投影得到的缺失点云数据上的表现(图4),之后进一步探究了本发明在点云不同缺失比例下的表现。结果表明本发明在点云较大比例缺失的情况下表现最优,且缺失比例越大优势越明显,并以点云80%比例缺失为例,从量化和可视化的角度详细探究了不同模型的表现(图5)。同时,对比分析两种测试数据表明本发明在
点云较大比例缺失导致数据模型整体结构性缺失较大的情况下具有显著优越性。
[0100]
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1