GPCC入门说明

1.什么是点云
点云 是指海量三维点的几何,这些点除了几何坐标还包括了一些附加属性,比如颜色,反射率等等。
根据激光测量原理得到的点云,包括三维坐标(XYZ)和激光反射强度(reflectance)。
根据摄影测量原理得到的点云,包括三维坐标(XYZ)和颜色信息(RGB)。
结合激光测量和摄影测量原理得到点云,包括三维坐标(XYZ)、激光反射强度(reflectance)和颜色信息(RGB)。
在获取物体表面每个采样点的空间坐标后,得到的是一个点的集合,称之为“点云”(Point Cloud)。
2.点云的分类
点云可以按获取的途径进行分类:
1、静态点云:即物体是静止的,获取点云的设备也是静止的。
2、动态点云:物体是运动的,但获取点云的设备是静止的。
3、动态获取点云:获取点云的设备是运动的。

3.点云可以做什么
按点云的用途分为两大类:
类别一:机器感知点云。可以用于自主导航系统、实时巡检系统、地理信息系统、视觉分拣机器人、抢险救灾机器人等场景。
类别二:人眼感知点云。可以用于数字文化遗产、自由视点广播、三维沉浸通信、三维沉浸交互等点云应用场景。

4.为什么要压缩点云
前面说了点云是海量点的集合,存储这些点云数据不仅会消耗大量的内存,而且不利于传输,目前根本没有这么大的带宽可以支持将点云不经过压缩直接在网络层进行传输,因此对点云进行压缩是很有必要的。一个100万个点得点云文件1000000×(12×3 + 8×3 )= 6×107≈57m的比特,对于每秒25帧的动态点云,在第二个中将传输的数据量将是25×57≈1425M比特。这对于当前的网络带宽不适用。

目前国际上以及国内正在推进点云标准的制定,主要有国际上MPEG的G-PCC、V-PCC两个平台;以及国内AVS的AVS-PCC平台。后续主要对这两个平台的点云编码框架进行跟进。
二、什么是G-PCC
MPEG从2017年呼吁提出建议(CFP),并正在开发3D点云的相应压缩标准。 2017年10月,第一个若干平台,即静态3D点云压缩,测试模型类别2(TMC2)[16]用于动态3D点云压缩,测试模型类别3,测试模型类别1(TMC1)[15]。提出了用于动态获取的3D点云的(TMC3)[17]。虽然Schwarz等人。 [1]已经引入了MPEG的3D点云压缩标准化的进展,仅提供了三种测试模型的定性评估。由于MPEG PCC标准仍是一个正在进行的项目,因此越来越多的新技术正在出现。最近,因为TMC1和TMC3的3D几何压缩方法类似地,TMC1和TMC3已被组合成新平台,即TMC13 [18](也称为G-PCC,即基于几何的PCC),而TMC2被称为V-PCC(即基于视频的PCC)。
★一些G-PCC使用过程中遇到得名词:

voxel(体素):可以理解成三维像素,最小得组成单元。
occupancy code(占用码):在构建八叉树时表示子立方体得占用情况,有点为“1”无点为“0”.
八叉树:八叉树是一种用于描述三维空间的树状数据结构,八叉树的每个节点表示一个正方体的体积元素,每个节点有八个子节点,将八个子节点所表示的体积元素加在一起就等于父节点的体积
坐标变换:世界坐标变换为内部坐标
位置量化(体素化):通过乘以一个量化参数减少坐标不同点的数目,量化后的原先不同的点可能被赋予了相同的坐标,需要去除多余的点,即删除重复点。
属性转换:给定点云几何、属性和重构的几何信息,确定使得属性失真最小化的转换属性
属性信息编码:对于一类数据一般采用RAHT,对于三类数据一般采用lifting transform。
LOD(The level of detail)详细等级:在Predicting Transform中根据用户指定的一组欧几里德距离d,将一组点重新组织为一组按细化等级排序的点。
三、如何使用G-PCC

1、源代码:https://github.com/MPEGGroup/mpeg-pcc-tmc13
数据链接:https://pan.baidu.com/s/1BAONDr38-YbCsNrn0b_nUA 提取码:amaf
2、环境安装:windows
1)
安装Visual Studio 2017:
参考:https://blog.csdn.net/xucongyoushan/article/details/86030173
下载 community版本 ,安装完成登陆账号即可
2)
安装Cmake(工程所需环境、参数编译软件)
参考:https://blog.csdn.net/m0_37407756/article/details/79790417

3)
安装Git(数据集编解码参数获得工具)
参考:https://blog.csdn.net/huangqqdy/article/details/83032408
安装完成即可
4)
安装MeshLab(查看点云软件)
官网:http://www.meshlab.net/
3、配置文件下载
1)编解码配置文件的获得
打开mpeg-pcc-tmc13-master\cfg,在当前文件中右键点击git bash here,输入:
…/scripts/gen-cfg.sh --all
在这里插入图片描述

然后会出现缺少文件:
在这里插入图片描述

说明缺少List::Moreutils module,需要在C:\Program Files\Git\usr\share\perl5\core_perl(你安装GIT的路径)路径下添加缺少的module,在https://metacpan.org/author/REHSACK网站下下载需要的module
★以上述缺少List::Moreutils module(注意缺少的module不止这一个,需要重复以下操作多次)为例,根据以下操作步骤操作:
在这里插入图片描述

在这里插入图片描述

下载后安装包打开找到如下
将文件夹放入C:\Program Files\Git\usr\share\perl5\core_perl(安装GIT的路径)路径即可。
在这里插入图片描述

之后在重复上述操作。
上述配置文件也放在了百度网盘中:
链接:https://pan.baidu.com/s/1SC7ofp0nsjOfzKYgyD65Ug
提取码:u6jd
在这里插入图片描述

当输入…/scripts/gen-cfg.sh没有错误后,然后执行…/scripts/gen-cfg.sh --all,生成不同几何属性等配置文件

4、cmake编译工程文件
在代码文件相同目录下创建工作文件夹,打开camke
在这里插入图片描述
在这里插入图片描述

点击configure
在这里插入图片描述

点击open project进入Visual Studio
5、编码
在这里插入图片描述
在这里插入图片描述

右键设置tmc3为启动项,右键属性

命令参数输入编码参数,工作目录输入创建的工作目录路径
例如:
命令参数:-c encoder.cfg --uncompressedDataPath=“soldier_vox10_0690.ply” --compressedStreamPath=compressed.bin
工作目录:D:\Projects\G-PCC_test\workspace
点击调试,即编码完成,得到二进制码流文件compressed.bin
运行结果如下所示:

在这里插入图片描述
在这里插入图片描述

2)解码
将命令参数改为:-c decoder.cfg --compressedStreamPath=compressed.bin --reconstructedDataPath=“chongjian.ply”
重复上述步骤,即可解码完成,得到重建点云
结果如下所示:
在这里插入图片描述
在这里插入图片描述

用MeshLab查看原始点云与重建点云:

原始点云
在这里插入图片描述

重建点云
在这里插入图片描述

四、G-PCC框架说明
在这里插入图片描述

在图1中,绿色模块通常用于第1类数据。橙色模块通常用于第3类数据。所有其他模块在类别1和类别3之间是通用的。
三种属性变编码方式:
区域自适应层次变换(RAHT)编码,
基于插值的层次最近邻预测(预测变换),基于插值的层次最近邻更新/提升步预测(提升变换)。

1、analyze octree
在这里插入图片描述

如上图八叉树分解过程中。当前八叉树深度为2,包围框左上角划分三个红色被占点。即这一级别有三个子立方体被占用。占用码为0110 0001。

2、LOD生成
在这里插入图片描述

假设P0为起始点,计算各点的欧氏距离,遍历所有点之间的距离,根据点与点之间的距离,划分层级。如图所示,LOD1层级,P0,P2,P8,P9为同一层级,因为它们之间的距离相较于其他点之间的距离要>某个阈值。LOD2层级中的点又包含LOD1层级的点,往后以此类推。
3、lifting transform:
在这里插入图片描述

基于插值的预测(Predict Transform):然后预测颜色信息,并按照LoD生成过程定义的顺序进行差分编码。注意,只有已经编码/解码的点才能作为预测的参考点。对于第i个点,可以通过其k个最近邻的线性组合来预测其属性值:

提升变换(LT):为了进一步提高编码效率,[41]中提出了LT。该方法的基础是使下层LOD中的点更有影响力(即,因为它们经常用于进行预测)。
n该方法,用于预测点(表示为的点(表示为Δ)的下层点(表示为Δ),通过第n个LOD中的点的残差更新第n个LOD,如图所示。

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值