原文:点云压缩研究进展与趋势
以激光扫描为代表的主动采集装备在易操作性、机动灵活性、智能化、高效化等方面日益成熟,利用三维成像技术采集密集点的空间坐标、色彩纹理和反射强度等信息,可高保真且快速重建被测目标的三维实体,在工程测量、生物医学、智慧城市、虚拟现实(VR)、增强现实(AR)等科学与工程研究中发挥十分重要的作用[1-4]。
(资料图片仅供参考)
随着多平台、多分辨率采集设备的性能逐渐提高,三维成像传感器能够从三维场景中获取具有空间位置和属性信息的海量点集,得到多细节层次的点云模型,给用户以生动逼真的可视化体验,具有极强的交互式和沉浸式效果。点云模型通常包含几十万至数千万空间域的点,在不经压缩的情况下,对于每帧100万个点的点云模型,30帧/s的传输速率占用总带宽为每秒3 600兆位,这给存储空间容量和网络传输带宽带来了负担与挑战[5],因此对点云数据压缩编码的研究具有重要意义。
过去由于计算机计算能力和点云采集效率的限制,基本沿用构建网格的方法,或按需采样来实现对点云模型的压缩与传输,导致时空压缩性能较低和几何属性特征信息丢失。
现在研究人员主要以计算机图形学和数字信号处理为出发点,通过对点云数据实施分块操作[6-10]或结合视频编码技术[11-13]对点云压缩方法进行优化。运动图像专家组(MPEG)于2017年发出了点云压缩的提案征集邀请,并于2018年发布统一的点云模型压缩编码研究框架。
目前还没有一种方法能适应指数级增加的点云数据容量,以及在高压缩比、低失真率和计算成本三者之间达到平衡。因此,有效提升点云几何信息和属性信息压缩编码的效率,既能有效应对海量点云数据的存储和传输,也能按需保留宏观信息和细节特征,在点云数据处理与应用中贯穿始终。
本文围绕点云压缩编码的核心,重点阐述点云几何和属性压缩研究进展、点云压缩公开数据集、点云压缩公开基准算法性能评价等3个方面,并对点云压缩的重要发展方向予以展望。
点云压缩编码方案的需求与日俱增,全球最具影响力的MPEG和国内外学者共同致力于研究点云压缩标准框架,力求建立完善的点云压缩系统,有效应对多源、多尺度场景点云数据的压缩任务。文献[15-16]分别从空间维度压缩技术和MPEG标准化框架角度出发,对当前的点云压缩方法进行调研与概述。
点云压缩任务按照不同的标准可以将方法划分成不同的类型,主要有以下标准:(1)根据还原质量分类;(2)根据处理方法分类;(3)根据空间维度分类;(4)根据信息类型分类。表 1根据不同的分类标准对当前点云压缩方法进行了汇总。
根据信息还原质量的高低,点云压缩分为无损压缩和有损压缩。无损压缩通过识别并消除统计冗余,使数据结构更加紧凑,解码后的点云与原始点云相同,包括点的数量、各点关联的属性信息。这种方法为尽可能地保持原有数据的特征,使得压缩性能较有限。有损压缩通过量化删除了非必要、视觉上无用的信息,从而减小了数据量,使得原始点云数据和解码后的点云数据之间存在一些差异。这种方法使用了适当的率失真控制,因而在感知数据质量和比特率之间进行了平衡。
根据处理方法的不同,点云压缩分为传统压缩方法和基于深度学习的压缩方法。首先,传统方法基于点云的结构划分进行一系列的预测编码去除了一部分冗余;然后,通过变换与量化将空间域的点云变换到频域并压缩变换系数;最后,经过熵编码进一步压缩得到比特流。这类方法在表示过程中仍然隐藏着大量的冗余信息,如重复的局部结构、形状特征明显的物体类别,期望在压缩过程中利用此冗余信息来进一步降低比特率。深度学习方法通过卷积神经网络将点云数据编码为隐藏表示,再量化隐藏特征,基于学习熵模型和熵编码将上下文输入的情况下每个符号出现的概率压缩并产生比特流,因而需要训练大量的点云数据样本以获得编码器端和解码器端非线性变换。基于深度学习的点云压缩方法可以更好地适应局部结构复杂性,因此具有作为未来基准编码工具的潜力。
根据空间维度的特点,点云压缩分为一维遍历压缩、二维映射压缩和三维去相关压缩,基于维度的划分方法直接决定了点数据的访问容易度,从而影响压缩效率。首先,一维压缩方法通过利用各点之间的距离邻域关系来构建基于树的连接;然后,顺序遍历生成树各节点将几何数据转换为一维,适应预测的信号。这种方法提供了相对简单的实现方式,但未完全考虑三维空间相关性使压缩性能受到很大限制。二维压缩方法将点云解释为3D空间中的二维离散流形,通过映射、网格划分和图像编码对点云进行编码,这种压缩方法涉及到映射过程,导致信息部分失真。三维压缩方法采用稳定结构对点云所在的空间进行分解,再对该结构进行预测与变换以减少冗余,并对上述结果进一步编码即可实现点云压缩,这种方法考虑了点云的分布特性、获取与应用,已成为压缩方法的最主要研究方向。
根据信息类型的差异,点云压缩分为几何信息压缩和属性信息压缩,其中后者通常涉及预处理,且需要与几何信息建立对应关系。首先基于不同的数据结构对点云进行结构化处理,如树、线元、面元和块等;然后进行一系列的预测编码、变换编码、量化、熵编码操作;最后获得比特流。
点云几何压缩方法多基于树结构或块结构组织划分点云,通过对结构化的点云进行描述与编码,文献[24]提出了一种基于八叉树的几何编码方法,首先,在相邻帧之间作异或运算;然后,用八叉树编码运算的结果。该方法既能取得较高的压缩效率,也能有效降低编码计算复杂度,是点云库(PCL)中推荐的点云压缩框架算法。文献[50]利用二叉树结构将无序点云划分为子空间,通过旅行商算法预测各子空间内部的几何信息,通过浅层神经网络的无损压缩算法PAQ完成预测残差编码。但是仅使用树结构或块结构的编码方式压缩未充分利用点云之间的空间相关性,导致大量冗余信息被编码,大大限制了压缩性能。
改进方法沿用树结构或块结构编码近似值的核心思想,加入三角形表面模型[77]、平面表面模型[51, 70]或聚类算法[71]对层间预测和残差计算进行指导。为了提高压缩计算效率,文献[69]提出了分层压缩的概念,首先,利用八叉树结构实现点云的粗粒度编码和表达;然后,在加强层通过图形傅里叶变换实现点云细节的压缩和重建,是目前压缩效率最高的点云几何信息压缩方法。此外,文献[33]提出针对城市大场景的点云压缩框架,首先,对整个点云中最大的平面进行迭代检测;然后,使用Delaunay三角剖分法对平面进行分解;最后,对三角形以及平面的面积和点数进行编码。
文献[66]将几何形状隐式表示为符号距离函数的水平集,对近乎平坦的表面采用较少系数表示,为复杂的曲面保留更多系数,对基系数进行量化和熵编码。
参考深度神经网络在图像和视频压缩方面取得的进展,从理论上讲,可以在压缩过程中利用基于超先验引导与隐空间表达冗余信息来进一步降低比特率。文献[75, 84]提出了基于深度学习的点云几何压缩方法,首先,利用神经网络编码器学习点云的高阶隐含向量;然后,利用算数编码、行程长度编码等熵编码方法对隐含向量进行编码;最后,利用神经网络解码器重建三维点云。基于卷积神经网络(CNN)已广泛用于特征提取、目标检测、图像编码等,文献[86]提出CNN与自动编码器结合的压缩方法,能有效利用相邻点之间的冗余,并表示出对数据编码的适应性。为了提高隐含向量编码的压缩比,文献[86]提出基于变分编码器(VAE)的点云压缩方法,通过学习隐含向量的超先验,使得熵模型的编码概率与隐含向量的边缘概率更加吻合,从而减少算术编码的内存消耗。
属性压缩以减少点云属性之间的冗余为目的,主要依靠重建后的几何信息来进行,首先,基于几何信息在三维空间层次划分;然后,在压缩性能和保真度之间达到平衡,进行后续的预测、变换编码。在压缩时,根据实际需要选择合适的预测、变换算法非常关键,学者们的研究方向大致分为两类:基于信号处理技术,结合图像视频编码技术对点云进行去相关操作;基于图变换的思想,对点云数据进行分块、分层来处理。
以信号处理为主导的点云属性压缩通常参考信号处理方法及图像视频编码技术,以实现点云数据的预测编码和变换编码。文献[37]基于视频编码中帧内预测的平面模式进行点云属性编码,首先,将点云空间划分为基本单元块;然后,沿着被预测块的3个正交基方向寻找邻接的单元块,根据邻接块中点云的属性结合最近邻算法,得到被预测块邻接面上的属性值;最后,借鉴planar模式求出被预测块内各点的属性预测值。文献[41]在几何编码的前提下引入基于联合图像专家组的压缩方法,首先,按照深度优先遍历的顺序将点云属性值映射到结构化的网格上;然后,进行属性预测编码、离散余弦变换和熵编码。
为了提升信号处理点云模型的压缩性能,学者提出利用图形学的方法,以进一步利用点云数据的相关性进行编码。基于图变换的研究内容包括空间划分合理性和各子图维度均匀性,文献[32]提出了基于图变换(GT)的点云属性压缩方法,首先,通过树结构对点云空间进行体素划分,并利用体素的相邻关系构造图形拉普拉斯矩阵;然后,对拉普拉斯矩阵做特征值分解获得图变换矩阵GT,并利用GT对属性冗余信息进行去相关性处理实现点云属性压缩。为了降低GT方法的复杂度,文献[40]提出了一种区域自适应分层变换的压缩算法,通过在子带中对系数进行压缩编码取得与GT相当的峰值信噪比,同时显著降低了计算复杂度。为了进一步探索点云属性的统计特性,文献[44]采用平稳高斯过程对点云属性建模,显著提高了点云属性压缩的性能。文献[56-57]为了减小属性预测的残差,分别使用了K-均值聚类算法和均值漂移算法对点云数据进行聚类,由于在聚类时将属性信息相似的点集中在一起,从而优化属性预测的残差大小,提高预测的准确性。
深度学习的快速发展带动了数据压缩方面技术的发展,且有部分表现效果在图像和视频压缩方面远超过传统方法,为点云压缩带来极大的借鉴意义。文献[92]提出了基于深度学习网络的点云属性方法,首先,将点云属性映射到一个折叠的二维流形空间;然后,利用传统的熵编码算法进行压缩;最后,利用神经网络解码器恢复三维点云。基于深度学习的点云属性压缩方法可以更好地适应局部几何复杂性,因此具有作为未来基准编码工具的潜力。
MPEG点云压缩标准框架公布了3种通用的点云测试数据集[100]:用于表示静态对象和场景的静态点云,用于沉浸式视频和VR应用的动态点云,用于自动驾驶与导航的动态获取点云。所有的测试序列均可在MPEG的官方网站下载获取。
对于静态点云和动态点云,主要由微软公司和8i公司,采用激光扫描仪、红外线深度摄影机等手段获取目标的几何信息,多个传感器或成像摄像机以每秒传输帧数30的速度获取目标的属性信息,包括捕获颜色信息并计算立体深度。静态点云和动态点云数据示意如图 1所示。
对于动态获取点云,采用安装有惯性传感器(IMU)、全球导航卫星系统(GNSS)、激光雷达和颜色空间RGB摄像机的移动式测绘系统。其中,GNSS和IMU用于确定车辆的实时位置,激光雷达用于捕获目标的几何信息,而颜色空间RGB摄像机则通过拍摄图像或视频序列获得目标的属性信息。通过多源数据融合、冗余点和离群点去除等预处理步骤,获得的点云数据包括三维坐标代表的几何信息以及与每个点相关联的颜色、反射率等属性信息,动态获取点云数据见图 2。
压缩效率和重建质量是点云压缩算法性能评价的两项重要指标。在压缩效率方面,根据压缩文件比特数进行衡量,针对点云数据通常使用存储每个点所占的比特位数(BPP)来比较,BPP越低,压缩效率越高。
在重建质量评价方面,采用点云在三维空间中的坐标(x,y,z)和颜色属性(颜色RGB或空间YUV)及其他可选属性来评价原始点云和解码点云之间几何位置或属性表达的相似性。其中主观评价主要指目视评价,客观评价包括几何信息评价和属性信息评价。主观评价主要采用点到点(C2C)获得的峰值信噪对解码点云的几何质量进行评估[101],客观评价将原始点云的属性值与解码后的点云中最近点的属性值进行比较,获得对应的峰值信噪比[102]。
1)对称均方根(root mean square,RMS)距离。以原始点云为参考,计算解码点云基于几何距离的平均距离误差的最大值:
式中,V_o 和V_r 分别表示原始点云和解码点云;v_{o(i)} 和v_{r(k)} 分别表示原始点云和对应的最邻近解码点云;K 是原始点云中的点数;||⋅||表示两个值之间的欧氏距离;D_{RMS} 为最近点之间的平均距离。D_{RMS} 针对原始点云中所有点计算,也针对对应解码点云中所有点计算,因此有必要计算对称距离s_{RMS} 。
2) 对称Hausdorff距离。表示要评估的两个互为邻域的点云之间最大的几何距离:
3) 几何信息峰值信噪比(PSNR)。以原始点云作参考,考虑了原始点云的边界框最大宽度和对称均方根距离,计算基于几何形状的位置偏差:
式中,B_{width} 为原始点云边界框的最大宽度;\text{g}_{PSNR} 为几何信息峰值信噪比。\text{g}_{PSNR} 越大,压缩失真越小。此外,几何信息评价也会用到点到表面(C2S)质量评估指标和点到平面(C2P)质量评估指标,前者通过考虑与原始点云关联的一些参考曲面来评估解码后的点云质量,后者通过考虑与原始点云关联的一些参考曲面来评估解码后的点云质量。C2S和C2P质量评估指标均考虑到被比较的点对相关联表面的相关性,主要缺点是它们取决于所使用的特定表面重构算法。
4) 属性信息峰值信噪比。以颜色为例,将原始点云的每个颜色分量与解码后的云中最近点的颜色进行比较,从而得出YUV颜色空间中每个分量的峰值信噪比:
式中,默认采用8位颜色表示,式(4)使用255作为峰值信号;d_y 表示原始云和解码后的云之间在平均颜色误差方面的差异;变量y(·) 是每个点的亮度值;属性信息峰值信噪比越大,压缩失真越小。
图像压缩质量评价会用到信息保真度准则(IFC)[103]、视觉信息保真度(VIF)[104]和结构相似性(SSIM)[105]作为评估指标,其中IFC和VIF在信息保真度上引入了图像与人眼之间的联系,SSIM则从综合亮度、对比度和结构3方面评估解压缩后图像的失真情况,是符合人眼视觉系统特性的客观评判标准。
为了测试PCL、MPEG、Draco这3种开源点云压缩算法的性能,本实验在MPEG提供的点云测试序列中选择了4个具有颜色属性的单帧点云模型进行测试,包括:安德鲁(http://plenodb.jpeg.org/pc/microsoft)、士兵、红黑裙子女士和长裙子女士(http://plenodb.jpeg.org/pc/8ilabs),所选模型均以.ply文件格式存储。图 3展示了所用的部分测试序列,不同的模型具有不同的采集特点和表面特征。点云数据具有平滑的表面和均匀的区域,没有明显的孔区域。
目前国内外开源的点云压缩算法主要包括PCL库中基于八叉树的点云压缩框架[55]、Chrome Media团队的Draco开源3D图形压缩库[107]及MPEG提出的G-PCC点云压缩平台[68]。
PCL库提供了点云压缩方案,它允许对所有文件格式的点云进行压缩编码。如图 4所示,PCL压缩过程包括读取、采样、编码、解码、存储等。首先,方法使用八叉树数据结构在空间上划分点云来进行初始化;其次,对单位块之间的数据进行相关性分析,通过二进制流对该结构进行序列化;然后,使用点位置编码来编码点的附加信息,如颜色、法线等;最后,采用熵编码进行进一步压缩获得比特流。
Google的Chrome Media团队于2017-01发布了Draco开源压缩库,旨在改善三维图形的存储和传输。Draco为两种格式的数据提供压缩方案,只包含顶点信息的.ply文件格式和包含顶点信息及面信息的.obj文件格式。其中,顶点信息指该点的物体坐标、法线向量、纹理坐标等;面信息指的是由顶点围成面,即一系列顶点索引的集合,包括各顶点及连接信息、纹理坐标、颜色信息、法线和其他与几何相关的任何通用属性。
如图 5所示,Draco整体思路是网格的连接信息和顶点的几何属性信息分别进行编码,针对面信息采用Edge Breaker算法压缩连接信息[106],对于各顶点的基本信息写入缓冲区,其中几何信息采用K维树结构组织并序列化,属性信息采用平行四边形差分方式压缩。对顶点的几何信息、属性信息及面信息进行预测编码、变换编码、量化、熵编码,其中熵编码采用非对称数字系统的范围变体(rANS)算法[107]。
MPEG于2019年提出了G-PCC标准框架,该方法分为几何压缩和属性压缩两部分,其中,属性压缩是要依靠重建后的几何信息来进行,因此基于G-PCC框架的点云压缩是首先进行几何压缩,包括坐标变换、体素化、基于八叉树的几何结构分析,以及对所得结构进行算术编码;然后进行属性压缩,包括区域自适应层次转换、预测转换和提升转换。如图 6所示,G-PCC压缩涉及3部分操作:预处理、几何压缩和属性压缩。
本文实验采用MPEG中的4个具有颜色属性的静态点云测试序列,采用2.20 GHz、i7-8750 CPU以及8GB RAM的笔记本电脑,分别实现PCL库、Draco 3D图形库以及G-PCC平台的静态点云压缩方法。
1) 本文尝试对MPEG提供的点云测试序列进行无损压缩,即不对几何信息和属性信息进行近似或量化,具体表现为:
(1)在PCL压缩中选择细节编码模式,且不对属性信息进行量化;
(2)在G-PCC压缩模式选择Octree-Predictive模式,将参数设置为Lossless Geometry–Lossless Attributes默认值;
(3)在Draco压缩中选择最高压缩等级和不进行量化压缩模式。采用耗时、各点所占比特位数作为编码性能的衡量指标,得到的分析结果如表 2。
安德鲁可视化结果如图 7。
2) 为了测试3种开源方法在不同几何信息有损条件下的性能,本文尝试对PCL、G-PCC和Draco方法在相似的比特率范围内进行实验,表现为:
(1)在PCL压缩中不进行细节编码且不对属性信息进行量化,将八叉树分辨率参数设置为2~16;
(2)在G-PCC压缩模式中选择Octree-Predictive模式,将位置量化比例设置为0.5~0.05,将其他参数设为默认值;
(3)在Draco中坐标量化保留位数设置为8~14。
得到点云测试序列在几何形状与位置的率失真性能曲线结果如图 8所示,其横轴表征点云数据平均每点几何信息编码的码率,纵轴表征各点云压缩的几何峰值信噪比。
3) 为了测试3种开源方法在不同属性信息有损条件下的性能,本文尝试对PCL、G-PCC和Draco方法在相似的比特率范围内进行实验。
1) 在PCL压缩中进行细节编码,将属性量化保留位数设置为3~6。
2) 在G-PCC压缩模式中选择Octree-Predictive模式,将量化步长设置为10~40,将其他参数设置为默认值。
3) 在Draco中属性量化保留位数设置为3~6。
得到点云测试序列在Y通道下率失真性能曲线的结果如图 9所示,其横轴表征点云数据平均每点属性信息编码的码率,纵轴表征各点云压缩的属性峰值信噪比。
由实验结果得出如下结论:从压缩效率来看,在3种实验条件下G-PCC表现出明显优势,在有损压缩条件下压缩效率Draco较PCL高,而在无损压缩条件下PCL比Draco更优;从信息失真情况来看,G-PCC和Draco在不同有损压缩的条件下也能够保持一定的重建精度,它们在几何信息和属性信息方面表现出的保真性能较PCL更好;从压缩、解压缩耗时来看,Draco均优于另外两种压缩方法,PCL次之,而G-PCC有较大的提升空间。
综上所述,G-PCC点云压缩方法拥有更优越的率失真性能,而相比G-PCC点云压缩而言,Draco的压缩效率比较低,但是压缩、解压速度方面更占优势。由此可见,G-PCC和Draco能为不同任务提供具有竞争力的解决方案,以满足各种应用要求,其中G-PCC更适合用在存储空间有限且高保真度要求的情况下,Draco更能应对实时性要求高的任务。
在三维采集技术、传感器技术及计算机处理技术综合化、多样化的背景下,点云数据获取的效率与质量逐步提高,采集的成本不断降低,得以对三维场景进行精细数字化,从而广泛应用于增强现实、远程通信、智能交通、数字地球等新兴产业。一方面,点云数据容量呈指数级增加;另一方面,点云的非结构化、密度不均以及真实场景中目标实体间的相似性等现象使得点云大数据的存储管理、计算分析等面临更大的挑战,推动点云压缩编码算法的改进和创新。
针对点云压缩过程中存在计算复杂度高、无法精细刻画数据分布、难以利用场景先验信息做针对性压缩、重建点云存在细节丢失和全局形变等问题,未来有以下几种发展趋势:
(1)顾及特征同质与信息均衡的点云超体素生成方法,在特征同质与信息均衡的损失函数约束下,完成点云等信息熵的超体素划分,并以此代替等尺寸的单位体素作为点云压缩的基本单元,既提高点云压缩的效率,又降低点云压缩的失真率。
(2)创建基于局部细节差分和全局相似性约束的渐进式点云压缩方法,针对点云的空间分布情况,自适应划分点云空间域,通过不同分辨率的层次结构提高细节重构能力,有效降低解码后的数据失真率。
(3)发展融合超先验引导与稀疏编码的点云隐含空间表达方法,利用高维空间隐含向量的稀疏编码表达点云,并利用超先验知识指导点云编码过程,使得熵模型的编码概率与隐含向量的边缘概率更加吻合,从而减少算术编码的内存消耗,以此提升数据压缩比。
(4)创建基于空间连续函数的点云表达与压缩方法,对点云的几何和属性信息采用合适的体积函数进行表达,并对其进行量化和熵编码,从而充分结合点云数据的几何信息和属性信息,实现兼顾点云几何和属性的联合压缩。
(5)提出更加合理的点云质量评价指标,计算点云压缩产生的几何信息和属性信息损耗,既能从主观上评价压缩对点云可视化效果的影响,也能从客观角度反映压缩对下游任务(如场景理解、模型重建等)的影响。
(6)丰富点云压缩测试数据集(如手持式、地面基站、车载测量系统、无人机测量系统等),完善点云压缩算法在沉浸式远程实时通信、交互式VR、文化遗产展示与修复、动态地图与智能交通等科学与工程研究等案例的应用研究。
(7)改进预测编码、变换编码及熵编码技术方案,合理选择量化参数和码率控制模式,从而实现率失真优化的点云压缩标准框架,有效填补国标和行标的空白。
(8)点云深度学习方法和理论仍处于发展阶段,如何应对小规模数据集和点云的非结构化性质、提高网络的卷积效率、解耦高低频信息等也是点云数据压缩的未来发展方向。
在可预见的未来,在人工智能、云计算、5G通讯等技术的支撑下,相信点云压缩不但可以保证高压缩比和低失真率,还可以结合GPU并行计算能力加速点的选取,使得高效、实时地渲染和传输密集点云成为可能,从而为测绘应用、地球科学研究、智慧城市、数字地球、AR/VR等提供更有力的数据支撑。
三维成像技术的迅速发展,使得快速生成高精度、高密度的点云模型成为可能,为有限的存储空间和传输带宽带来巨大压力,学术界和工业界对标准点云压缩编码方案的需求与日俱增。
如何在保证低失真率、高压缩比的情况下,提升点云压缩编码的效率,成为当前点云模型压缩编码的研究目标。
本文围绕点云压缩的核心,重点对国内外点云压缩算法的研究工作进行总结与说明,并在常用的测试数据上对3种开源点云压缩框架进行比较分析,对点云压缩的重要发展方向予以展望。
关键词: