【技术实现步骤摘要】
一种基于Transformer的点云几何编解码方法
[0001]本专利技术涉及点云几何编解码
,具体为一种基于Transformer的点云几何编解码方法。
技术介绍
[0002]点云是对三维物体表面的数字化采样,在表现形式上是由点的几何信息(x,y,z)和属性信息(R,G,B和纹理信息等)组成。利用三维点云信息可以重建真实的三维世界。三维点云信息主要应用在无人驾驶、高精度地图重建、虚拟现实和增强现实等领域。相比于排列规则的2D图像,三维点云是无规则点的集合,而且点云的数据量庞大,难以对点云的集合信息进行压缩,基于此,本专利技术设计了一种基于Transformer的点云几何编解码方法以解决上述问题。
技术实现思路
[0003]本专利技术的目的在于提供一种基于Transformer的点云几何编解码方法,以解决上述
技术介绍
中提出的,,,,,。
[0004]为实现上述目的,本专利技术提供如下技术方案:一种基于Transformer的点云几何编解码方法,包括从ModelNet数据集平台中获得一组测试点云传 ...
【技术保护点】
【技术特征摘要】
1.一种基于Transformer的点云几何编解码方法,其特征在于,包括从ModelNet数据集平台中获得一组测试点云传入计算机1中,其具体步骤如下:步骤1:将3379个训练点云放在名为
‘
train
’
的文件夹内,将用来测试的621个测试点云放在名为
‘
test
’
的文件夹内;步骤2:3D卷积操作对输入张量的大小要求为[Bs,Ic,T,H,W];步骤3:循环遍历
‘
train
’
文件夹内的数据或
‘
test
’
文件夹内的数据,保存每个文件的索引地址方便后面查找使用;步骤4:进入神经网络后,经过第一次卷积操作,第一次3D卷积操作参数设置如下:Ks表示为卷积核的尺寸,St表示为卷积操作滑动步长,Ba表示为偏置量,Pa表示为对原始三维网格空间的填充,3D卷积操作所使用的卷积核为三维矩阵,矩阵中所有元素的值为随机生成,其范围为[
‑
1,1]区间;在所使用的输入张量为[1,1,64,64,64],Bs输入批量大小为1,Ks大小为(3,3,3),St的步长为1;Pa的输入为1,偏置量设置为True,输出通道设置为16;经过第一次3D卷积操作之后得到的张量大小为[1,16,64,64,64];步骤5:然后利用RELU激活函数对第一次3D卷积操作得到的张量进行第一次非线性拟合;步骤6:将一次非线性拟合得到的张量输入到第二次3D卷积操作,输入的张量大小为[1,16,64,64,64],Bs输入批量大小为1,Ks的大小为(3,3,3),St的步长为2,Pa的输入为0,偏置量设置为True,输出通道设置为32;经过第二次3D卷积操作之后得到的张量大小为[1,32,32,32,32];步骤7:然后利用RELU激活函数对第二次3D卷积操作得到的张量进行第二次非线性拟合;步骤8:将第二次非线性拟合得到的张量输入到第一个Transformer模块中,Transformer里的参数如下,con_pat表示为第三次卷积操作中卷积核的尺寸,con_hid为通道数,con_tr_ml_dim为多层感知机的单元个数,con_tr_ml_num_h为多头注意力的分支个数,con_tr_ml_num_l为多头注意力模块的个数,con_tr_at_drop_rate为在多头注意力模块中随机的的关闭点与点之间的路径,con_tr_drop_rate为在Transformer中随机的的关闭点与点之间的路径;在中参数设置如下:con_pat为(4,4,4),con_hid为768,con_tr_ml_dim为3072,con_tr_ml_num_h为12,con_tr_ml_num_l为2,con_tr_at_drop_rate为0.0,con_tr_drop_rate为0.1;步骤9:在第一个Tranformer中将第二次非线性拟合得到的张量输入到第三次3D卷积操作中;步骤10:将第三次卷积操作得到的张量的[Bs,Ic,T,H,W]按照行优先展开,转换成[Bs,Ic,T*H*W]的形式;在中展开后得到的张量大小为[1,768,512];步骤11:然后将第三次卷积操作得到张量的第二维和第三维进行位置互换,输入到第一个Transformer模块的编码器中进行特征提取,得到张量大小为[1,512,768];步骤12:将第一次Transformer操作后得到的张量[Bs,T*H*W,Ic]转换成[Bs,Ic,T,H,W]的形式;步骤13:3D反卷积对张量的大小要求为[Bs,Ic,T,H,W];3D反卷积操作中各个参数的含义如下:Ic表示为输入张量的通道数,T表示为输入三维空间网格点云的长;H表示为输入三
维空间网格点云的高;W表示为输入三维空间网格点云的宽;步骤14:将第一次Transformer操作后得到的张量输入到第一次3D反卷积操作中;步骤15:将第一次3D反卷积操作之后得到的张量输入到第二次3D反卷积操作中,还原成输入到第一次Tranformer操作之前的张量大小;在实际使用的输入张量为[1,32,16,16,16],Ks的大小为(2,2,2),St的步长为2;偏置量设置为True,输出通道设置为32;经过3D卷积之后得到的张量大小为[1,32,32,32,32];步骤16:将第二次3D反卷积操作得到的张量输入到第四次3D卷积操作中,在实际使用的输入张量为[1,32,32,32,32],Ks的大小为(3,3,3),St的步长为1,Pa的输入为1,偏置量设置为True,输出通道设置为64;经过3D卷积之后得到的张量大小为[1,64,32,32,32];步骤17:然后利用它RELU激活函数对第四次3D卷积操作得到的张量进行第三次非线性拟合;步骤18:将第三次非线性拟合得到的张量输入到第五次3D卷积操作中,在实际使用的输入张量为[1,64,32,32,32],Ks的大小为(2,2,2),St的步长为2,偏置量设置为True,输出通道设置为64;经过第五次3D卷积操作之后得到的张量大小为[1,64,16,16,16];步骤19:然后利用它RELU激活函数对第五次3D卷积操作得到的张量进行第四次非线性拟合;步骤20:将第四次非线性拟合得到的张量输入到第二个Transformer模块中;步骤21:在第二个Tranformer中将第四次非线性拟合得到的张量输入到第六次3D卷积操作中;第六次3D卷积操作的参数设置如下:输入的张量大小为[1,64,16,16,16],Bs输入批量大小为1,Ks的大小为(4,4,4),St的步长为4,Pa的输入为0,偏置量设置为True,输出通道设置为768;经过第六次3D卷积操作之后得到的张量大小为[1,768,4,4,4];步骤22:将第六次卷积操作得到的张量的[Bs,Ic,T,H,W]按照行优先展开,转换成[Bs,Ic,T*H*W]的形式;在中展开后得到的张量大小为[1,768,64];步骤23:然后将第六次卷积操作得到张量的第二维和第三维进行位置互换,输入到Transdormer模块的编码器中进行特征提取,得到张量大小为[1,64,768];步骤24:将第二次Transformer操作后得到的张量[Bs,T*H*W,Ic]转换成[Bs,Ic,T,H,W]的形式;步骤25:将第二次Transformer操作后得到的张量输入到第三次3D反卷积操作中,第三次3D反卷积操作需要设置的参数如下Ks表示为卷积核的尺寸,St表示为卷积操作滑动步长,Ba表示为偏置量,Pa表示为对原始三维网格空间的填充;3D卷积所使用的卷积核为三维矩阵,矩阵中所有元素的值为随机生成,其范围为[
‑
1,1];在实际使用的输入张量为[1,768,4,4,4],Ks的大小为(2,2,2),St的步长为2;偏置量设置为True,输出通道设置为64;经过第三次3D反卷积操作之后得到的张量大小为[1,64,8,8,8];步骤26:将第三次3D反卷积操作之后得到的张量输入到第四次3D反卷积操作中,还原成输入到第二次Tranformer操作之前的张量大小;在实际使用的输入张量为[1,64,8,8,8],Ks的大小为(2,2,2),St的步长为2;偏置量设置为True,输出通道设置为64;经过3D卷积之后得到的张量大小为[1,64,16,16,16];步骤27:将第四次3D反卷积操作得到的张量输入到第七次3D卷积操作中,在实际使用的输入张量为[1,64,16,16,16],Ks的大小为(3,3,3),St的步长为1;Pa的输入为1,偏置量
设置为True,输出通道设置为32;经过3D卷积之后得到的张量大小为[1,32,16,16,16];步骤28:然后利用它RELU激活函数对第七次3D卷积操作得到的张量进行第五次非线性拟合;步骤29:将第五次非线性拟合得到的张量输入到第八次3D卷积操作中,在实际使用的输入张量为[1,32,16,16,16],Ks的大小为(2,2,2),St的步长为2;Pa的输入为1,偏置量设置为True,输出通道设置为32;经过第八次3D卷积操作之后得到的张量大小为[1,32,8,8,8];步骤30:然后利用它RELU激活函数对第八次3D卷积操作得到的张量进行第六次非线性拟合;步骤31:将第六次非线性拟合得到的张量输入到第三个Transformer模块中,第三个Transformer里的参数如下,con_pat表示为第八次卷积操作中卷积核的尺寸,con_hid为通道数,con_tr_ml_dim为多层感知机的单元个数,con_tr_ml_num_h为多头注意力的分支个数,con_tr_ml_num_l为多头注意力模块的个数,con_tr_at_drop_rate为在多头注意力模块中随机的的关闭点与点之间的路径,con_tr_drop_rate为在Transformer中随机的的关闭点与点之间的路径;在中参数设置如下:con_pat为(4,4,4),con_hid为768,con_tr_ml_dim为3072,con_tr_ml_num_h为12,con_tr_ml_num_l为2,con_tr_at_drop_rate为0.0,con_tr_drop_rate为0.1;步骤32:在第三个Tranformer中将第六次非线性拟合得到的张量输入到第九次3D卷积操作中;第九次3D卷积操作的参数设置如下:输入的张量大小为[1,32,8,8,8],Bs输入批量大小为1,Ks的大小为(4,4,4),St的步长为4,Pa的输入为0,偏置量设置为True,输出通道设置为768;经过第六次3D卷积操作之后得到的张量大小为[1,768,2,2,2];步骤33:将第九次卷积操作得到的张量的[Bs,Ic,T,H,W]按照行优先展开,转换成[Bs,Ic,T*H*W]的形式;在中展开后得到的张量大小为[1,768,8];步骤34:然后将第九次卷积操作得到张量的第二维和第三维进行位置互换,输入到第三个Transdormer模块的编码器中进行特征提取,得到张量大小为[1,8,768];步骤35:将第三次Transformer操作后得到的张量[Bs,T*H*W,Ic]转换成[Bs,Ic,T,H,W]的形式;步骤36:将第三次Transformer操作后得到的张量输入到第五次3D反卷积操作中,第五次3D反卷积操作需要设置的参数如下Ks表示为卷积核的尺寸,St表示为卷积操作滑动步长,Ba表示为偏置量,Pa表示为对原始三维网格空间的填充;3D卷积所使用的卷积核为三维矩阵,矩阵中所有元素的值为随机生成,其范围为[
‑
1,1];在实际使用的输入张量为[1,768,2,2,2],Ks的大小为(2,2,2),St的步长为2;偏置量设置为True,输出通道设置为64;经过第三次3D反卷积操作之后得到的张量大小为[1,32,4,4,4];步骤37:将第五次3D反卷积操作之后得到的张量输入到第六次3D反卷积操作中,还原成输入到第三次Tranformer操作之前的张量大小;在实际使用的输入张量为[1,32,4,4,4],Ks的大小为(2,2,2),St的步长为2;偏置量设置为True;经过第六次3D反卷积之后得到的张量大小为[1,32,8,8,8];步骤38:将第六次3D反卷积操作得到的张量输入到第十次3D卷积操作中,在实际使用的输入张量为[1,32,8,8,8],Ks的大小为(3,3,3),St的步长为1;Pa的输入为1,偏置量设置
为True,输出通道设置为32;经过3D卷积之后得到的张量大小为[1,8,8,8,8];步骤39:将第十次3D卷积操作得到的三维网格空间点云,输入到熵模型编解码模块中,将三维网格空间点云里的数据随机加上0.5或
‑
0.5进行量化,再将三维网格空间点云张量量化成
‑
1或0或1;再使用sigmoid函数对得到最后的张量进行第七次非线性拟合,得到数据来选择与用于对三维网格空间点云占用模式进行熵编码的编码器相关联的概率;将点云的最终张量表示进行熵编码形成最终比特流;步骤40:将熵编码得到的比特流传输到熵编码解码端,还原成第十次3D卷积操作得到的三维网格空间点云;步骤41:将熵编码解码器得到张量输入到第七次3D反卷积操作中,在所使用的输入张量为[1,8,8,8,8],Bs输入批量大小为1,Ks的大小为(2,2,2),St的步长为1;偏置量设置为True,输出通道设置为64;经过第七次3D反卷积操作之后得到的张量大小为[1,64,16,16,16];步骤42:然后利用RELU激活函数对第七次3D反卷积操作得到的张量进行第八次非线性拟合;步骤43:对第七次3D反卷积操作得到的张量输入到第十一次3D卷积操作中,输入的张量大小为[1,64,16,16,16],Bs输入批量大小为1,Ks的大小为(3,3,3),St的步长为1,Pa的输入为1,偏置量设置为True,输出通道设置为64;经过3D卷积之后得到的张量大小为[1,64,16,16,16];步骤44:然后利用RELU激活函数对第十一次3D卷积操作得到的张量进行第九次非线性拟合;步骤45:将第九次非线性拟合得到的张量输入到第四个Transformer模块中,第四个Transformer里的参数如下,con_pat表示为第三次卷积操作中卷积核的尺寸,con_hid为通道数,con_tr_ml_dim为多层感知机的单元个数,con_tr_ml_num_h为多头注意力的分支个数,con_tr_ml_num_l为多头注意力模块的个数,con_tr_at_drop_rate为在多头注意力模块中随机的的关闭点与点之间的路径,con_tr_drop_rate为在Transformer中随机的的关闭点与点之间的路径;在中参数设置如下:con_pat为(4,4,4),con_hid为768,con_tr_ml_dim为3072,con_tr_ml_num_h为12,con_tr_ml_num_l为2,con_tr_at_drop_rate为0.0,con_tr_drop_rate为0.1;步骤46:在第四个Tranformer中将第九次非线性拟合得到的张量输入到第十二次3D卷积操作中;第十二次3D卷积操作的参数设置如下:输入的张量大小为[1,64,16,16,16],Bs输入批量大小为1,Ks的大小为(4,4,4),St的步长为4,Pa的输入为0,偏置量设置为True,输出通道设置为768;经过第六次3D卷积操作之后得到的张量大小为[1,768,4,4,4];步骤47:将第十二次3D卷积操作得到的张量的[Bs,Ic,T,H,W]按照行优先展开,转换成[Bs,Ic,T*H*W]的形式;在中展开后得到的张量大小为[1,768,64];步骤48:然后将第十二次3D卷积操作得到张量的第二维和第三维进...
【专利技术属性】
技术研发人员:韩成,张超,杨华民,卢时禹,李岩芳,李华,权巍,胡汗平,徐超,
申请(专利权)人:长春理工大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。