浙江大学学报(工学版), 2024, 58(2): 279-287 doi: 10.3785/j.issn.1008-973X.2024.02.006

计算机技术、通信技术

基于场景流的可变速率动态点云压缩

江照意,, 邹文钦, 郑晟豪, 宋超, 杨柏林,

浙江工商大学 计算机科学与技术学院,浙江 杭州 310018

Variable rate compression of point cloud based on scene flow

JIANG Zhaoyi,, ZOU Wenqin, ZHENG Shenghao, SONG Chao, YANG Bailin,

School of Computer Science and Technology, Zhejiang Gongshang University, Hangzhou 310018, China

通讯作者: 杨柏林, 男, 教授, 博导. orcid.org/0000-0001-1754-5595. E-mail: ybl@zjgsu.edu.cn

收稿日期: 2023-08-18  

基金资助: 国家自然科学基金资助项目(62172366); 浙江省自然科学基金资助项目(LY21F020013, LY22F020013).

Received: 2023-08-18  

Fund supported: 国家自然科学基金资助项目(62172366);浙江省自然科学基金资助项目(LY21F020013,LY22F020013).

作者简介 About authors

江照意(1975—),男,副教授,硕导,从事计算机图形学、数字几何处理、机器学习等研究.orcid.org/0000-0001-5347-7935.E-mail:zyjiang@zjgsu.edu.cn , E-mail:zyjiang@zjgsu.edu.cn

摘要

针对现有的动态点云压缩神经网络需要训练多个网络模型的问题,提出基于场景流的可变速率动态点云压缩网络框架. 网络以原始动态点云为输入, 利用场景流网络进行运动向量估计, 在压缩运动向量和残差的同时,引入通道增益模块对隐向量通道进行评估和缩放, 实现可变速率控制. 通过综合考虑运动向量损失和率失真损失, 设计新的联合训练损失函数, 用来端到端地训练整个网络框架. 为了解决动态点云数据集缺少真实运动信息标签的问题, 基于AMASS数据集制作带有运动向量标签的人体数据集,用于网络的训练. 实验结果显示, 与现有的基于深度学习动态点云压缩方法相比, 该方法的压缩比特率下降了几个数量级, 与静态压缩网络单独处理每帧的重构效果相比,该方法有5%~10%的提升.

关键词: 动态点云压缩 ; 可变速率 ; 联合损失函数 ; 场景流网络

Abstract

A variable-rate dynamic point cloud compression network framework based on scene flow was proposed in order to address the problem of training multiple network models for existing dynamic point cloud compression neural networks. The raw dynamic point cloud was taken as input, and the scene flow network was utilized to estimate motion vectors. A channel gain module was introduced to evaluate and scale the latent vector channels while compressing motion vectors and residuals, achieving variable-rate control. A new joint training loss function was designed to end-to-end train the entire network framework by comprehensively considering the motion vector loss and rate-distortion loss. A human body dataset with motion vector labels was created based on the AMASS dataset for network training in order to solve the problem of lack of real motion information labels in dynamic point cloud datasets. The experimental results show that the compression bit rate of the method decreases by several orders of magnitude compared with existing deep learning-based dynamic point cloud compression methods. The method has a 5%~10% improvement compared with the reconstruction effect of static compression networks processing each frame separately.

Keywords: dynamic point cloud compression ; variable rate ; joint loss function ; scene flow network

PDF (1060KB) 元数据 多维度评价 相关文章 导出 EndNote| Ris| Bibtex  收藏本文

本文引用格式

江照意, 邹文钦, 郑晟豪, 宋超, 杨柏林. 基于场景流的可变速率动态点云压缩. 浙江大学学报(工学版)[J], 2024, 58(2): 279-287 doi:10.3785/j.issn.1008-973X.2024.02.006

JIANG Zhaoyi, ZOU Wenqin, ZHENG Shenghao, SONG Chao, YANG Bailin. Variable rate compression of point cloud based on scene flow. Journal of Zhejiang University(Engineering Science)[J], 2024, 58(2): 279-287 doi:10.3785/j.issn.1008-973X.2024.02.006

随着三维采集技术的快速发展, 三维点云在三维视觉、遥感测绘、自动驾驶和机器人等领域的应用需求不断增加. 点云具有庞大的数据量, 使得点云的存储和传输需要耗费大量的内存和带宽, 因此 点云的压缩方法受到了相关研究领域的关注. 由于点云具有不规则、稀疏和不均匀等特性,将图像和视频压缩方法推广到点云压缩时,具有很大的挑战性. 根据压缩对象的不同, 点云压缩方法可以分为静态点云压缩和动态点云压缩.与静态点云压缩不同, 动态点云压缩需要额外考虑时间维度上的信息冗余, 难度更大. 两者的关系类似于图像压缩与视频压缩的关系. 就动态点云而言, 目前的压缩方法较少,仅适用于压缩体素化的动态点云. 若要直接压缩三维采集设备获取的原始动态点云, 由于输入点云具有不规则性,需要进行体素化预处理, 造成部分的信息丢失. 此外, 现有的基于深度学习的动态点云压缩方法需要训练多个单独的网络模型,实现可变速率压缩. 为了获取不同的压缩率,需要改变损失函数中系数的取值, 导致网络模型需要重新训练. 这类方法具有显著的局限性,需要独立训练不同系数对应的网络模型和存储对应的网络模型参数, 耗费大量的时间和空间资源.

针对上述问题, 本文提出基于场景流的网络模型,实现可变速率的动态点云压缩. 与现有方法不同, 网络模型直接以原始的动态点云为输入, 不需要对输入点云进行体素化操作. 为了去除动态点云时间维度的信息冗余, 引入场景流网络进行动态点云的帧间运动估计.综合考虑运动向量损失和率失真(rate-distortion, RD)损失, 设计全新的损失函数, 用于端到端地训练动态点云压缩网络模型. 在压缩运动向量和残差信息时,分别设计通道增益模块, 以实现动态点云的可变速率压缩. 基于AMASS数据集, 设计和制作带有场景流标签的人体运动数据集, 用于模型的训练, 以解决现有的原始动态点云数据集没有场景流标签的问题. 实验结果表明,与现有的动态点云压缩方法相比, 本文方法的压缩性能有较大的提升.

1. 相关工作

1.1. 动态点云压缩

近年来, 动态点云的压缩方法主要分为以下2种类型. 1)基于视频的点云压缩 (video based point cloud compression, VPCC), 即将点云投影到二维平面上, 利用视频压缩的方法进行处理. 2)考虑动态点云的运动信息, 利用帧间冗余信息直接进行压缩. VPCC是MPEG团队提出的基于视频流的动态点云压缩标准, VPCC将输入点云经过分块, 投影到立体空间的6个方向的平面, 将各个二维平面的信息填充到同一个二维图像中, 对图像进行压缩. Kathariya等[1]在VPCC的基础上, 对分块重新分组的步骤进行改进, 提出自适应分组方法, 将相似程度高的相邻帧分配到相同的组中. Thanou等[2]用一组序列图来存储转换后的空间序列点云信息, 用图顶点的信息表示点云的几何与属性信息,利用谱图小波变换,在相邻帧点云之间进行特征对应,计算相邻帧之间的残差信息,消除时间冗余. De Queiroz等[3]采用分块的方式, 将单帧的点云分成多个小的体素块, 每个小块内单独处理,利用率失真决定每个小块的具体划分方式. Kammerl等[4]利用八叉树结构压缩动态点云, 通过异或方式将点云的运动信息编码到连续八叉树的特定结构中, 利用八叉树的特性压缩时间冗余. Sun等[5]引入新的投影方式, 通过球面投影将动态点云投影为图像进行压缩. 近年来,出现了一些利用深度学习进行动态点云压缩的方式. Biswas等[6]提出新颖的条件熵模型来建模八叉树符号概率, 兼顾了粗粒度的几何信息以及上下文的几何与密度信息, 用于处理连续的雷达点云序列. Yu等[7]基于曲率估计和分层策略, 提出动态几何压缩方法, 能够有效地平衡压缩质量和压缩时间. Fan等[8]将运动向量映射到高维特征空间, 在特征空间进行多尺度的运动融合,设计三维自适应权重插值方法用于运动补偿, 实现了端到端的动态点云压缩. 除了传统方法之外,现有的基于深度学习的动态点云压缩方法只能处理体素化点云, 利用本文方法可以压缩原始的动态点云.

1.2. 可变速率压缩

基于深度学习的可变速率压缩方法最早来自于图像压缩领域. 在早期的图像压缩方法中, George等[9]采用循环神经网络实现图像压缩的可变速率控制. 由于网络框架构造比较复杂,后续的许多图像压缩工作提出了改进方法. Chen等[10]提出将缩放因子嵌入到自动编码器框架中的方法, 通过缩放因子控制压缩率的变化. Yang等[11]提出基于可调制网络的可调制编码器, 将额外的可调制网络与自动编码器融合, 可调制网络能够通过反向传播,自动学习到类似于缩放因子的缩放调节网络. 最近, Cui等[12]提出新的基于增益和对称高斯混合模型的可变图像压缩方法, 该方法通过增益单元实现连续可调的图像压缩结果,验证了通道的冗余度和增益单元的即插即用特性, 使得增益单元能够兼容其他图像压缩方法.

在点云压缩领域, 大部分现有的点云压缩方法通过训练多个模型来得到不同压缩率, 基于深度学习的可变速率点云压缩很少涉及. Muzaddia等[13]提出可变比特率的静态点云压缩方法, 利用PointNet++[14]网络中的特征提取模块作为编码器, 全连接层作为解码器, 引入权重熵损失函数, 通过裁剪向量的通道控制可变比特率. 这种裁剪方式导致解码端的重构精度下降. 目前,基于深度学习的可变速率动态点云压缩工作未见报道. 本文的任务是压缩动态点云,借鉴了增益单元的思想, 通过消除特征向量在不同通道上的冗余, 减少信息损失.

2. 方法简介

图1所示, 给定一段连续的动态点云序列$ P = \{ {P_1},{P_2}, \cdots ,{P_{t - 1}},{P_t}\} $, 网络的输入为连续的两帧点云${P_{t - 1}}$$ {P_t} $, ${P_{t - 1}}$为前一帧, $ {P_t} $为当前帧, 输出的是当前帧的重构帧$ {\hat P_t} $, $ {\bar P_t} $为当前帧的预测帧, $ {{\boldsymbol{M}}_{{t}}} $为运动向量, $ {{\boldsymbol{\hat M}}_{{t}}} $为经过解码后的运动向量, $ {{\boldsymbol{r}}_{{t}}} $为当前帧与预测帧之间的残差信息, $ {{\boldsymbol{\hat r}}_{{t}}} $为解码后的残差. 整个网络框架的主要模块如下.

图 1

图 1   动态点云压缩的整体框架图

Fig.1   Overall framework of dynamic point cloud compression


运动估计和运动压缩.该模块输入前一帧和当前帧点云,计算相邻2帧之间的运动向量$ {{\boldsymbol{M}}_{\boldsymbol{t}}} $, 该部分使用了场景流估计网络. 为了减少运动向量的编码量,对$ {{\boldsymbol{M}}}_{t} $通过多尺度编码器进行下采样和编码,使用对应的解码器进行上采样和解码. 在编码的过程中, 引入通道增益模块和逆通道增益模块, 以实现压缩过程中的可变速率控制.

运动补偿.该模块的目标是通过网络模型对当前帧进行预测, 输入是前一帧点云的位置坐标和运动向量, 输出是当前帧的预测帧.

残差压缩.由于前一模块输出的预测帧与当前帧存在部分失真, 为了进一步减小失真信息, 该模块对当前帧和预测帧之间的残差信息$ {{\boldsymbol{r}}_t} $进行编码解码.

重构网络.该模块对运动补偿后的预测帧及残差压缩模块解码后的残差信息进行相加操作, 得到当前帧的重构帧.

受文献[12]的启发, 在压缩运动向量$ {{\boldsymbol{M}}_{{t}}} $和残差$ {{\boldsymbol{r}}_{{t}}} $时, 引入通道增益单元和逆通道增益单元, 用于控制压缩隐变量各通道不均衡的冗余度, 以实现可变速率的控制.

2.1. 运动估计与运动压缩模块

运动估计模块通过场景流网络,根据输入的前一帧点云和当前帧点云的坐标信息, 预测前一帧到当前帧的运动向量. 网络的设计以PointPWC-Net[15]为基础, 整个网络的输入是相邻的2帧点云, 2帧点云不断通过下采样和特征提取操作, 获取输入点云的多尺度特征表示.下采样阶段采用最远点下采样算法进行下采样, 利用PointConv[16]进行特征提取,得到不同尺度下的点云特征.在场景流估计网络中,通过对下一层进行上采样,逐步提升感受野,与上一层提取的点云特征进行拼接,实现粗粒度场景流到细粒度场景流的转换. 中间每一层网络结构相同, 用于估计每一层的运动信息, 其中代价立方体(cost volume, CV)的计算公式如下:

$ \operatorname{Cost}\left(\boldsymbol{p}_{{i}}, \boldsymbol{q}_{{j}}\right)=h\left(\boldsymbol{f}_{{i}}, \boldsymbol{g}_{{i}}, \boldsymbol{q}_{{j}}-\boldsymbol{p}_{{i}}\right) , $

$ \text{CV}\left({{{\boldsymbol{p}}}}_{{c}}\right)={\displaystyle \sum }_{{\boldsymbol{p}}_{{i}}\in {{N}}_{{P}}\left({{{\boldsymbol{p}}}}_{{c}}\right)}{W}_{{ic}}^{{P}}{\displaystyle \sum }_{{{{\boldsymbol{q}}}}_{{j}}\in{{N}}_{{Q}}\left({{{\boldsymbol{p}}}}_{{i}}\right)}{{W}}_{{ji}}^{{Q}}\text{Cost}\left({{{\boldsymbol{q}}}}_{{j}},{\boldsymbol{p}}_{{i}}\right) . $

式中:PQ为输入的2帧点云, $ {{\boldsymbol{f}}_{\boldsymbol{i}}} $为点$ {{\boldsymbol{p}}_i} $的特征, $ {{\boldsymbol{g}}_i} $为点$ {{\boldsymbol{q}}_i} $的特征, $ h( \cdot ) $为多层感知机(multilayer perceptron, MLP), ${W}_{{ic}}^{{P}} $为点云P中顶点i和顶点c之间的权重. 在求解代价立方体前, 要先计算点对点的匹配代价(Cost). 得到Cost后, 针对点云P中的某个点$ {{\boldsymbol{p}}_{{c}}} $, 在点云P中找到点$ {{\boldsymbol{p}}}_{c} $的邻域$ {N_P}\left( {{{\boldsymbol{p}}_{{c}}}} \right) $,对于每个点$ {{\boldsymbol{p}}_i} \in {N_P}\left( {{{\boldsymbol{p}}_c}} \right) $, 在点云Q中寻找点$ {{\boldsymbol{p}}_i} $的邻域$ {N}_{Q}\left({{\boldsymbol{p}}}_{i}\right) $. 通过MLP计算2个相邻顶点的卷积权重,对所有的块之间匹配代价加权求和,得到最终的2帧点云之间的代价立方体. 在求解代价立方体后, 可以联合每层的特征及更粗粒度的场景流信息预测当前层的场景流,最底层的场景流直接用特征和代价立方体进行预测, 具体如图2(b)所示. 上采样层是为了对粗粒度的流信息进行上采样, 与当前层的流信息进行融合. 变形层Warp是作用于当前层的预测场景流以构造真实值与预测场景流之间的残差信息, 减小CV计算时的搜索半径.

图 2

图 2   场景流网络的结构图

Fig.2   Structure diagram of scene flow network


在运动压缩部分, 对运动向量进行压缩编码. 其中的运动向量编码解码网络是多尺度的特征提取网络, 将运动向量$ {{\boldsymbol{M}}}_{t} $视为前一帧点云的特征, 并将其作为网络的输入. 运动向量编码端分为3层, 每层由下采样模块和特征提取模块组成. 下采样模块利用最远点采样算法对运动向量进行下采样, 特征提取模块采用PointNet++[14]中的特征提取模块和注意力模块[17]进行特征提取, 得到中间层的运动向量高维特征$ {{\boldsymbol{f}}_{{{{\mathrm{mv}}}}}} $.$ {{\boldsymbol{f}}}_{{\mathrm{mv}}} $进行量化, 利用熵模型进行压缩, 熵模型的前后利用通道增益模块进行处理, 公式如下:

$ \hat{\boldsymbol{f}}_{{\mathrm{m v}}}=G\left(\boldsymbol{f}_{{\mathrm{m v}}}, s\right)=\boldsymbol{f}_{{\mathrm{m v}}} \odot \boldsymbol{\mu}_s, $

$ {\boldsymbol{f}}_{{\mathrm{m v}}}^{\prime}={\mathrm{IG}}\left(\widehat{{\boldsymbol{f}}}_{{\mathrm{m v}}}, s\right)=\hat{{\boldsymbol{f}}}_{{\mathrm{mv}}} \odot {\boldsymbol{\mu}}'_s. $

式中:${{G}}( \cdot )$表示缩放的处理过程;$\odot $表示通道级别的矩阵逐元素相乘操作; $ {{\boldsymbol{f}}_{{{{\mathrm{mv}}}}}} \in {{\bf{R}}^{c \times N}} $为增益单元输入的运动向量特征, 其中$c 、N $分别为通道的维度和运动向量点数;${{\boldsymbol{\mu }}_s} = [ {\mu _{s,0}},{\text{ }}{\mu _{s,1}},{\text{ }} \cdots {\text{, }}{\mu _{s,c - 1}}] $为增益向量, ${{{\mu}} _{s,i}} \in \bf{R}$, 其中s为增益向量在增益矩阵中的索引. 所有增益向量组成增益矩阵$ {\boldsymbol{\mu }}\in {\bf{R}}^{c\times n} $,其中n为增益向量的个数. 类似地,逆增益单元由逆增益矩阵${\boldsymbol{\mu }}' \in {{\bf{R}}^{c \times n}}$组成, 逆增益矩阵中包含多个逆增益向量,表示为 $ {{\boldsymbol{\mu }}'_s} = [ {\mu '_{s,0}},{\text{ }}{\mu '_{s,1}},{\text{ }} \cdots ,{\text{ }}{\mu '_{s,c - 1}}] $, ${\mu '_{s,i}} \in \bf{R}$, ${\text{IG}}( \cdot )$ 表示逆增益过程.在解码端得到运动向量后, 与编码端对应, 分3层使用子点卷积模块[18], 对运动向量进行上采样. 子点卷积模块是对输入进行分组, 再分别进行卷积并扩展维度, 将各个组合并, 达到上采样的目的. 在经过解码端后,可以得到最终重构的运动向量信息, 用于下一阶段的运动补偿模块.

2.2. 运动补偿模块

运动补偿模块利用上一帧的坐标信息和运动向量,对当前帧进行补偿. 在图像领域也有类似的运动补偿模块, 图像领域利用光流和前一帧的图像信息进行融合. 本文的运动补偿思想借鉴了DVC[19]中的视频运动补偿框架. 在视频压缩框架中, 网络中处理的是$ N\times c\times H\times W $的图片维度输入,用二维卷积网络进行特征提取. 不同于视频压缩, 动态点云压缩中的网络输入是$ N\times c $, 而2d卷积网络无法处理这种维度的输入. 针对点云的特性进行相应的补偿网络改造, 在运动补偿模块设计适用于原始点云处理的网络结构, 下面介绍运动补偿网络的具体结构. 补偿模块的网络结构如图3所示, 网络的输入为前一帧的空间中连续的坐标信息${P_{t - 1}}$和当前帧相对于前一帧的运动向量, 输出是当前帧的预测帧${\bar P_t}$, 使其尽可能地与当前帧${P_t}$一致. 在运动补偿网络中, 前一帧的维度是$N \times 3$, 运动向量可以视作当前帧相对于前一帧的偏移量, 维度是$N \times 3$. 将前一帧直接加上运动向量mv, 得到偏移后的前一帧, 称为变形帧(warpframe). 利用直接算术相加得到的warpframe与当前帧${P_t}$之间存在较大的误差, 为了减小两者之间的误差, 将warpframe和前一帧${P_{t - 1}}$在特征维度进行拼接, 得到中间层的特征f , 维度为$N \times 6$.f输入到变形网络(Warpnet)中进行降维处理, 得到降维后的特征, 并将其与前一帧进行拼接, 得到最终的预测帧. Warpnet网络结构如图3的虚线部分所示,通过一维卷积操作将f 转换到64维高维空间, 利用RELU激活函数进行非线性变换,通过另一层1维卷积网络,将当前帧信息降维到与当前帧坐标相同的维度.使用GroupNorm[20]组归一化函数,对输出进行标准化操作, 得到最终的预测帧坐标信息.

图 3

图 3   运动补偿网络的示意图

Fig.3   Schematic diagram of motion compensation network


2.3. 残差压缩模块

残差压缩网络主要由残差压缩编码器和残差压缩解码器构成. 在编码端, 对残差信息${{\boldsymbol{r}}_t}$进行3次下采样, 和运动压缩模块类似, 利用注意力模块进行特征提取, 得到高维的残差向量${{\boldsymbol{f}}_{\rm{r}}}$. 在利用熵模型对高维残差向量进行算术编码前后,利用通道增益模块和逆通道增益模块进行缩放和反缩放处理. 公式如下:

$ \hat{{\boldsymbol{f}}}_{{\mathrm{r}}}=G\left(\boldsymbol{f}_{{\mathrm{r}}}, s\right)=\boldsymbol{f}_{{\mathrm{r}}} \odot \boldsymbol{\mu}_{s} , $

$ {\boldsymbol{f}}_{{\mathrm{r}}}^{\prime}=\operatorname{IG}(\hat{{\boldsymbol{f}}}_{\mathrm{r}}, s)-\hat{{\boldsymbol{f}}}_{\mathrm{r}} \odot {\boldsymbol{\mu}}_s^{\prime} . $

该过程与对运动压缩模块的处理过程类似,是为了实现整个网络的可变速率控制. 在残差解码端, 利用子点卷积模块,将下采样后的残差向量还原为原始坐标空间的残差.

2.4. 损失函数

整体网络主要包括以下2个部分的损失:1)场景流网络的损失函数部分;2)压缩网络中通用的RD损失. 为了使整个网络可以联合训练, 构造新的联合训练损失函数, 具体公式如下:

$ L_{\text {total }}=\alpha L_{{\mathrm{RD}}}+\beta L_{{\mathrm{SF}}} . $

式中:$ L_{{\mathrm{RD}}}$为RD损失,$L_{{\mathrm{SF}}} $为场景流损失.与现有的动态点云压缩方法不同,本文方法不直接将RD损失作为整个网络的损失函数. 为了得到更加精确的运动向量估计结果, 考虑压缩网络和场景流网络都是作用于输入的原始点云坐标空间,两者的损失空间分布具有一致性.通过加权的方式将2部分损失结合起来,实现整个网络梯度的反向传播过程. 联合损失函数将RD损失和场景流损失的和作为整个网络的总损失,通过构造不同的权重系数来平衡两者的影响. RD损失部分的公式如下:

$ {L}_{{\mathrm{R D}}}=R+\lambda D=R_{{\mathrm{mv}}}+R_{{{\mathrm{residual}} }}+\lambda D . $

式中:D为当前帧$P$和预测帧$\hat P$之间的倒角距离[21], 用于衡量重构后的点云和真实点云之间的差距,计算的是点级别之间的平均距离;R为比特率损失,包含运动向量部分和残差2部分的比特率损失;$R_{{\mathrm{mv}}} $为编码运动向量的比特率;$R_{{{\mathrm{residual}} }} $为编码残差的比特率.场景流网络的损失公式如下:

$ {L}_{\mathrm{SF}}={\sum}_{l=l_0}^L a_l {\sum}_{{\boldsymbol{p}} \in P}\left\|{\mathrm{S F}}_\theta^l({\boldsymbol{p}})-{\mathrm{S F}}_{{\mathrm{G T}}}^l({\boldsymbol{p}})\right\|_2. $

式中:$l$为层数, ${a_l}$为不同层的系数,$\parallel \cdot {\parallel _2}$为L2范式距离, ${\mathrm{SF}}_\theta ^l\left( {\boldsymbol{p}} \right)$为场景流的预测值, ${\mathrm{SF}}_{{\mathrm{GT}}}^l\left( {\boldsymbol{p}} \right)$为数据集中场景流的真实值.场景流网络采用多尺度的特征提取模块, 所以有多层的场景流预测值. 整个场景流损失是各个尺度下的损失总和. 由于输入点云有运动向量的真实值,整个网络采用有监督的训练方式, 以加快收敛速度,提高预测精确度.

3. 实验结果与分析

3.1. 实验设置

选用AMASS[22]数据集作为预处理的原始数据集. AMASS数据集是三维人体动作捕捉数据集, 经过SMPL模板进行标准化处理, 将现有的基于光学标记的人体运动捕捉的数据集标准化集成到一起, 包括CMU、MPI-HDM05、MPIPose、KIT、BioMotion Lab、TCD和ACCAD等数据集中的样本. AMASS具有丰富的运动数据和长时间的运动序列, 总共包含300多个不同的人体对象, 有超过10 000个不同的动作序列.仅选取AMASS动态网格中的顶点,计算顶点的运动向量作为标签, 得到原始的动态点云数据集, 将它用于网络的训练和验证. 为了检验本文方法的有效性,对来自MPEG中的8i Voxelized Full Bodies(8iVFB)[23]标准人体数据集使用最远点采样算法,从每帧点云中采样出2 048个点,将这类数据集作为测试集.

在训练阶段, 从训练集中的点云片段中选取第1帧为前一帧, 从该片段后续的3帧中随机选取一帧作为当前帧, 将前一帧到当前帧的运动向量作为场景流的真实标签. 在运动压缩网络和残差压缩网络的下采样模块中, 编码端的下采样率和解码端的上采样率分别设置为[1/4,1/2,1/2]、[2,2,4], 整个压缩网络的特征通道的大小设置为16. 在联合损失函数中, RD损失的系数$\alpha $设置为1, 场景流损失部分的系数$\beta $设置为0.1. 与通道增益模块相关的拉格朗日系数设置为$\lambda = \{ 10,50,100,500,1\;000, 4\;000\} $.网络使用的梯度方向传播模块是Adam优化器[24], 优化器的学习率设置为0.001, 网络的batch size大小是16, 总共训练100个轮次.

3.2. 实验结果分析

为了验证本文方法的有效性,选取静态点云压缩的方法Static [25]、Draco点云压缩库 [26]、MPEG组织的VPCC压缩标准 [27]及最新的动态点云压缩方法D-DPCC [8]作为对比, 开展实验结果分析. Static方法是基于深度学习的静态点云压缩方法, Draco是传统的静态压缩方法, 二者均将点云序列的每帧独立压缩的结果作为实验结果进行比较. VPCC是MPEG组织提出的动态点云压缩标准,是一种传统方法, D-DPCC是基于深度学习的动态点云方法. 这2种压缩方法常用来压缩体素化点云序列.

在压缩领域, RD曲线是压缩领域中通用的性能衡量指标. RD曲线中,bpp为逐点压缩比特率;PSNR为峰值信噪比, PSNR越大, 表示解码后的重构效果越好. 本文方法和Static方法的RD曲线对比结果如图4所示, 测试选用预处理得到的AMASS数据集. 图中,D1-PSNR为按点对倒角距离计算的峰值信噪比. 由图4可知, 相比于静态压缩的Static方法,在同样的比特率区间下, 本文方法的PSNR提高了5%~10%. 与静态压缩方法单独压缩每个运动帧不同, 动态压缩方法通过压缩运动向量来减小时间维度的冗余, 从而能够更好地关注前后帧运动较大的区域,对于运动较小的区域, 只须分配较少的比特率.

图 4

图 4   压缩性能的对比

Fig.4   Comparison of compression performance


由于本文方法和Draco、VPCC、DDPCC方法压缩所需的比特率存在较大的差异, 导致RD曲线的可视化效果很差. 选取各种方法对应的最优重构结果, 制作表格进行对比, 如表1所示. 表中,tetd分别为编码时间和解码时间. 其中, Draco采用传统的静态压缩方法, 但由于传统压缩方法在优化点云空间关联方面的局限性,无法自适应地学习到数据中的冗余, 导致编码时的冗余信息偏大. 为了达到与深度学习相近的解码结果, 所需的编码位数是本文方法的几十倍以上. 与VPCC和DDPCC方法相比, 这2种方法所需的bpp比本文方法高2个数量级以上, 这可能是由于VPCC和DPPCC都是用于压缩体素化稠密动态点云的方法, 对于点数较少的点云数据集, 体素化会产生大量的空体素,需要额外的位数表示占位信息, 导致编码时需要使用更多的比特位保存额外信息,用于后续的解码过程. VPCC是传统的压缩方法. 与基于深度学习的DDPCC压缩方法相比, 本文结果所需的bpp非常小, PSNR有5%左右的提升. 如图5所示为可视化结果, 从AMASS数据集中随机选取一帧的重构结果, 对各种方法的结果都进行可视化. 可以看出, 与静态方法Static、Draco及DDPCC的结果相比, 本文方法的重构结果与原始点云的点分布更加相近, 可视化效果更好. Static的重构结果具有明显的噪声点, Draco对大量的点进行量化, 将点的位置都量化到某一区域, 视觉效果中的点分布在集中的多层平面上. 与VPCC方法相比, 虽然本文方法的PSNR指标差于VPCC, 但是对应的bpp明显小于VPCC, 意味着压缩所需的带宽明显优于VPCC. 此外, VPCC重构后的点都是一个一个的局部点形成的小平面, 重构后的点数是原始点云的数十倍, 约为3万个点, 相比而言, 本文方法重构后不仅点数没有增加, 而且不会出现VPCC中顶点局部聚集的现象. 本文方法更接近于原始点云的空间分布.

表 1   不同方法的压缩性能比较

Tab.1  Compression performance comparison results of different methods

方法bpp/bitsPSNR/dBte/std/s
Draco3.0636.0
VPCC34.741.9630.60
DDPCC24.535.60.450.17
Static0.13635.30.260.09
本文方法0.12237.50.30.12

新窗口打开| 下载CSV


图 5

图 5   不同压缩方法的可视化结果对比

Fig.5   Comparison of visualization results of different compression methods


为了验证本文方法的泛化能力及深度学习网络框架的有效性, 对8iVFB数据集下采样, 与现有的基于深度学习的压缩方法DDPCC进行比较. 由于原始8iVFB 数据集是稠密点云,对该数据集进行下采样, 选取Soldier、Loot、Longdress、 Redandblack数据进行测试, 如表2所示. 可知, 本文方法压缩所需的bpp都明显小于DDPCC的bpp, 说明本文方法在压缩比特率上具有良好的拓展性, 适用于在带宽有限的情况下压缩点云. 此外, 本文方法在Soldier、Loot、Redandblack上的PSNR都优于DDPCC的结果, 只在Longdress数据集上略差. 可能原因是Longdress是穿裙子的女性人体, 裙摆处的点云分布与训练集的无衣着的人体相比,更加离散化, 和腿部的点存在部分遮挡区域, 因此本文方法在原始空间重构这些点可能误差偏大. 本文方法在所有测试集上的总体结果较好.

表 2   在8i数据集上与D-DPCC的结果对比

Tab.2  Comparison of results with D-DPCC on 8i dataset

数据集本文方法DDPCC
bpp/bitsPSNR/dBbpp/bitsPSNR/dB
Soldier0.12541.524.835.0
Loot0.11839.424.435.2
Longdress0.12235.424.335.7
Redandblack0.12036.124.435.6

新窗口打开| 下载CSV


3.3. 消融分析

3.3.1. 联合损失函数消融实验

在网络损失的设计中,采用场景流网络损失和压缩网络损失作为共同训练的联合损失. 压缩损失是所有基于深度学习的方法中的基本损失函数, 场景流损失需要场景流真实标签来提高运动向量预测的准确性. 现有的多数点云压缩网络框架都直接使用RD损失作为最终的损失.为了验证联合损失函数的有效性,设计单独使用RD损失和联合损失的对比实验, 结果如图6所示. 可以看出, 本文方法只将RD损失作为整个网络的损失,会导致运动估计模块缺乏准确的真实标签, 相当于是在无监督的情况下进行运动向量的预测, 导致估计的运动向量与真实的运动向量差距较大,影响了重构点云的准确性.为了验证联合损失函数中的场景流损失加权系数$ \beta $对重构结果的影响, 选取不同的$ \beta $进行实验, 结果如表3所示. 可以看出, 不同的加权系数对重构精度具有一定的影响, 当点数不变时, 将场景流损失系数设置为0.1, 可以得到最好的重构结果. 在最终的实验参数设置中, 选用对应重构效果好的场景流损失系数.

图 6

图 6   损失函数消融的对比图

Fig.6   Comparison chart of loss function ablation


表 3   不同稀疏消融的实验结果

Tab.3  Experimental results of different sparse ablation

$ \beta $PSNR/dB
10028.8
135.7
0.137.3
0.0136.2

新窗口打开| 下载CSV


3.3.2. 可变速率控制消融实验

为了实现可变速率压缩,在压缩网络中使用通道增益模块, 这可以减少计算不同比特率下重复训练相同网络的时间和参数量. 为了验证通道增益模块的有效性,对比了加上通道增益模块前、后在不同比特率下压缩所需的网络模型参数量和计算复杂度, 没有通道增益模块, 相当于训练多个网络模型. 对比结果如表4所示, 可变速率模型对应的网络模型参数量和计算复杂度是非可变速率模型的1/5, 计算复杂度明显下降. 这说明可变速率能够有效地减小训练所需的参数量和计算复杂度.

表 4   可变比特率和非可变比特率模型的复杂度比较

Tab.4  Complexity comparison of variable rate and unvariable rate models

网络模型模型参数量/kB计算复杂度/MB
可变比特率41.272.8
非可变比特率206364

新窗口打开| 下载CSV


4. 结 语

面向原始动态点云, 本文提出基于场景流的可变速率压缩网络框架. 在整个框架中,利用场景流预测网络实现动态点云的运动信息估计, 设计适用于动态点云的运动补偿和压缩网络,构造残差信息, 利用残差压缩网络对残差进行编码. 设计新的联合损失函数, 能够端到端地训练整个网络,提高压缩性能.在压缩运动向量和残差信息时,设计通道增益模块, 以实现动态点云的可变速率压缩. 制作适用于动态点云任务的人体数据集, 该数据集带有真实场景流标签, 解决了动态点云数据集缺少真实运动信息标签的问题. 实验结果证明, 本文的新数据集能够很好地应用于压缩任务. 下一步的研究方向是在更多数据集上验证本方法, 将其推广至任意动态点云的可变速率压缩及更有效的可变速率控制方式.

参考文献

KATHARIYA B, LI L, LI Z, et al. Lossless dynamic point cloud geometry compression with inter compensation and traveling salesman prediction [C]// Data Compression Conference . Boston: IEEE, 2018: 414.

[本文引用: 1]

THANOU D, CHOU P A, FROSSARD P

Graph-based compression of dynamic 3D point cloud sequences

[J]. IEEE Transactions on Image Processing, 2016, 25 (4): 1765- 1778

DOI:10.1109/TIP.2016.2529506      [本文引用: 1]

DE QUEIROZ R L, CHOU P A

Motion-compensated compression of dynamic voxelized point clouds

[J]. IEEE Transactions on Image Processing, 2017, 26 (8): 3886- 3895

DOI:10.1109/TIP.2017.2707807      [本文引用: 1]

KAMMERL J, BLODOW N, RUSU R B, et al. Real-time compression of point cloud streams [C]// IEEE International Conference on Robotics and Automation . [S. l.]: IEEE, 2012: 778-785.

[本文引用: 1]

SUN X, MA H, SUN Y, et al

A novel point cloud compression algorithm based on clustering

[J]. IEEE Robotics and Automation Letters, 2019, 4 (2): 2132- 2139

DOI:10.1109/LRA.2019.2900747      [本文引用: 1]

BISWAS S, LIU J, WONG K, et al

Muscle: multi sweep compression of lidar using deep entropy models

[J]. Advances in Neural Information Processing Systems, 2020, 33 (2): 22170- 22181

[本文引用: 1]

YU S, SUN S, YAN W, et al

A method based on curvature and hierarchical strategy for dynamic point cloud compression in augmented and virtual reality system

[J]. Sensors, 2022, 22 (3): 1262

DOI:10.3390/s22031262      [本文引用: 1]

FAN T, GAO L, XU Y, et al. D-DPCC: deep dynamic point cloud compression via 3D motion prediction [C]// Proceedings of the 31st International Joint Conference on Artificial Intelligence . Vienna: [s. n.], 2022: 898-904.

[本文引用: 2]

GEORGE T, SEAN M, SUNG J, et al. Variable rate image compression with recurrent neural networks [C]// International Conference on Learning Representations . Puerto Rico: [s. n.], 2016.

[本文引用: 1]

CHEN T, MA Z. Variable bitrate image compression with quality scaling factors [C]// IEEE International Conference on Acoustics, Speech and Signal Processing . Barcelona: IEEE, 2020: 2163-2167.

[本文引用: 1]

YANG F, HERRANZ L, WEIJER J, et al. Variable rate deep image compression with modulated autoencoder [J]. IEEE Signal Processing Letters , 2020, 27: 331-335.

[本文引用: 1]

CUI Z, WANG J, GAO S, et al. Asymmetric gained deep image compression with continuous rate adaptation [C]// Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition . Baltimore: IEEE, 2021: 10532-10541.

[本文引用: 2]

MUZADDID M A, BEKSI W J. Variable rate compression for raw 3D point clouds [C]// International Conference on Robotics and Automation . Philadelphia: [s. n.], 2022: 8748-8755.

[本文引用: 1]

QI C R, YI L, SU H, et al. Pointnet++: deep hierarchical feature learning on point sets in a metric space [C]// Advances in Neural Information Processing Systems . Long Beach: [s. n.], 2017: 30.

[本文引用: 2]

WU W, WANG Z Y, LI Z, et al. Pointpwc-net: cost volume on point clouds for (self-) supervised scene flow estimation [C]// 16th European Conference on Computer Vision. Glasgow: Springer, 2020.

[本文引用: 1]

WU W, QI Z, FUXIN L. Pointconv: deep convolutional networks on 3d point clouds [C]// Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition . Seattle: IEEE, 2019: 9621-9630.

[本文引用: 1]

ENGEL N, BELAGIANNIS V, DIETMAYER K

Point transformer

[J]. IEEE Access, 2021, 9 (1): 134826- 134840

[本文引用: 1]

HE Y, REN X, TANG D, et al. Density-preserving deep point cloud compression [C] // Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition . New Orleans: IEEE, 2022: 2333-2342.

[本文引用: 1]

LU G, OUYANG W, XU D, et al. Dvc: an end-to-end deep video compression framework [C]// Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition . Seattle: IEEE, 2019: 11006-11015.

[本文引用: 1]

WU Y, HE K. Group normalization [C]// Proceedings of the European Conference on Computer Vision . Munich: [s. n.], 2018: 3-19.

[本文引用: 1]

HUANG L, WANG S, WONG K, et al. Octsqueeze: octree-structured entropy model for lidar compression [C] // Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition . Seattle: IEEE, 2020: 1313-1323.

[本文引用: 1]

MAHMOOD N, GHORBANI N, TROJE N F, et al. AMASS: archive of motion capture as surface shapes [C]// Proceedings of the IEEE/CVF International Conference on Computer Vision . Seoul: IEEE, 2019: 5442-5451.

[本文引用: 1]

SEBASTIAN S, MARIUS P, VITTORIO B, et al

Emerging mpeg standards for point cloud compression

[J]. IEEE Journal on Emerging and Selected Topics in Circuits and Systems, 2019, 9 (1): 133- 148

DOI:10.1109/JETCAS.2018.2885981      [本文引用: 1]

ZHANG Z. Improved Adam optimizer for deep neural networks [C]// IEEE/ACM 26th International Symposium on Quality of Service . Banff: IEEE, 2018: 1-2.

[本文引用: 1]

ZHANG J, LIU G, DING D, et al. Transformer and upsampling-based point cloud compression [C]// ACM MM Workshops on Advances in Point Cloud Compression, Processing and Analysis. Lisbon: ACM, 2022: 33-39.

[本文引用: 1]

Google. Draco 3D data compression [EB/OL]. [2023-08-01]. https://github.com/google/draco.

[本文引用: 1]

JANG E S, PREDA M, MAMMOU K, et al

Video-based point-cloud-compression standard in MPEG: from evidence collection to committee draft standards in a nutshell

[J]. IEEE Signal Processing Magazine, 2019, 36 (3): 118- 123

DOI:10.1109/MSP.2019.2900721      [本文引用: 1]

/