大数跨境
0
0

RTE2021 回顾丨基于 V-PCC 框架的点云视频编码与重构技术

RTE2021 回顾丨基于 V-PCC 框架的点云视频编码与重构技术 RTE开发者社区
2021-12-17
0
导读:点云视频编码的前沿研究

动态点云沉浸式数据(V-PCC)不仅可以提供全沉浸(逼真)视觉信号,而且更重要的是可以给出3D对象精确的空间几何信息,将广泛应用于大规模动态地图的自主导航、无人驾驶、文化遗产重构、远程教育、医疗服务以及基于虚拟现实的视频通信和媒体广播等领域,可极大地改变工业视觉与控制、立体观测与监控以及人们生活娱乐方式等。


本文整理自上海大学的研究员/博士生导师,教育部新型显示技术与应用集成重点实验室副主任沈礼权,在 RTE 2021 实时互联网大会视频技术专场上的主题演讲。在演讲中对当前视频发展的背景和点云数据的原理,V-PCC 框架以及 V-PCC 框架下重构点云方法,进行了详细分享。本文是对演讲实录的整理,希望可以帮大家了解点云视频编码方面最前沿的研究成果。


▲图:上海大学教授、博导,沈礼权




随着互联网的发展,人们对视频的需求越来越高,视觉数据从 2D 高清向高维化、密集化方向发展,主要体现在分辨率、帧率以及视场范围上。分辨率和帧率均越做越高,从 2K 到 4K 再到 8K,从 30HZ 到 120HZ;同样地,视场范围也越来越宽,从 45 度、90 度、180 度到现今的 360 度。每一个像素点分辨率做得越来越高,从标准的动态范围到高动态范围,HDR 从 8 位到 12 位。


另一方面,沉浸式发展朝着 AR / VR 全景方向发展。巨大的数据量对编码技术有了更高的挑战,在近年来发布的最新视频编码标准上,视频编码标准联合专家组 JVET 提出了 VVC 标准,压缩效率相较上一代 HEVC,可以大幅提高分辨率视频的压缩率,编码效率可以提高 50%。而在 3D 沉浸式视频这一更新的领域,MPEG 提出了 MPEG-I 标准,包括对三自由度、六自由度等更高维度图像的编码技术。



不过随着用户体验需求的提升,传统的二维视频已经无法满足很多应用场景,这也催生了近年来的沉浸式 3D 视频和相关技术。沉浸式视频的种类分别有:立体成像视频、光场、全景和点云。


首先是立体视频的产生。立体视频就是两个相机采集同一个对象,由于两个成像存在位置偏差导致了视差,进而产生了深度感。立体视频一般被应用在电影院或者各种展览中,需要借助眼镜,使左右眼看到不同的图像,在大脑里面产生立体感。即使头部位置变动,也只能看到这两个图像,和日常生活中,随着头部变动还可以看到不同的信息有明显差异,只有立体感没有沉浸感,是立体成像视频存在的弊端。


针对这种弊端,新的沉浸式视频诞生了,那就是光场。光场包含光的四维函数信息、角度信息。若干个视点,通过集成成像,视角变化较小,但是随着头的位置变化可以看到不同的内容。


然后是全景视频,可以看到 360 度的视角。随着头的转动可以看到不同位置的画面。不管是立体、光场、还是全景视频,它们都还没有真正实现沉浸式,只是通过均匀采样,以视频的形式进行处理与传输。而点云是通过非均匀采样的方式,能对三维空间的信息进行传输与重构,是一种全新的视觉信息表达方式,它可以带来更好的沉浸式用户体验,是未来沉浸式视频的重要发展方向。





随着计算机硬件性能、计算科学、立体采集设备的不断发展,对海量的点直接采集和处理已经可以实现,从而推动了点云在数字媒体、虚拟现实、自动驾驶以及文化等诸多领域的应用,如通过构建沉浸式会议可以把视频会议交流对象呈现到面前,同时也可以构建地图、构建建模对象等。值得一提的是,在 2021 年刚实施的《历史建筑数字化技术标准》中,点云格式也被列入了行业标准。


接下来为大家分别介绍了点云数据的特点、类型以及序列特点。


首先是点云数据的特点,点云是由一种无序的数据构成的。传统的图像只有 RGB 信息,而点云数据除了 RGB 信息,还有坐标、位置等几何信息。


再者,点云的类型按照获取途径的不同可划分为三类:静态点云、动态点云以及动态获取点云。第一类静态点云,物体是静止的,获取点云的设备也是静止的;第二类动态点云,物体是运动的,但获取点云的设备还是静止的;而第三类动态获取点云,物体是运动的,获取点云的设备也是运动的。以无人驾驶导航举例介绍第三类动态获取点云:车上包含若干个相机采集视频图像,还有雷达传感器采集位置信息,获取的内容包含视频和位置信息,可以把动态的画面呈现出来,这就是动态获取的方式。对于动态获取的点云,成像的相机是运动的,对象也是运动的。


其次,点云的视频序列特点是数据量巨大。假设一秒钟是 300 帧,一副点云有 150 万个点,包括 RGB 信息和几何信息,如果它 10 秒钟在不压缩情况下,大小就会是 6.65 G。对比静态点云和动态点云,静态点云像素点更多,每个比特可能用 10 位表示,有的甚至用 20 位表示,因此进行高效的压缩是点云至关重要的工作。



针对不同类型的点云,压缩方式分两种,一种是 G-PCC,基于几何的点云压缩;另一种是 V-PCC,基于视频的点云压缩,将所有三维物体投影到不同的平面上。G-PCC 和 V-PCC 分别对应 TMC13 和 TMC2 两个平台。


G-PCC 这种方式是需要先进行体素化的,本身体素化的过程就是有损的,其后面的过程可以保证无损,但整个过程注定是有损的。其编码方式借鉴了八叉树,根据点云每个体素内的占用与否编码成二进制,占用为 1 不占用为 0。类别 1 和 3 共享八叉树编码机制,类别 3 数据压缩的几何图形通常表示为从根到单个体素的八叉树;对类别  1,压缩的几何图形通常由被修剪的八叉树加上被修剪的每个叶子的近似平面来表示。类别 3 的编解码器被称为八叉树几何编解码器。颜色的信息是通过变幻的方法编码的,把静态点云和动态获取的点云集中在平台,让 TMC13 进行编码。


而 V-PCC 这种方式,主要用 TMC2 平台压缩,点云视频是三维立体的,视频流是二维图像数据,故先将 3D 点云投影到 2D 上成二维视频,然后用二维视频 VVC 编码平台压缩或者 HEVC 编码平台压缩。





上海大学视频编码研究团队做了 V-PCC 框架中的关键步骤研究,包括图像编解码、码流、Patch 划分、三维至二维投影、几何图/纹理图/占用图生成、二维图填充、三维点云重构与平滑等。


V-PCC 是一个投影的过程,它是将所有三维物体投影到不同的平面上,在投影过程中把子块划分,尽量减少遮挡,子块需要有一些比较平滑的边缘,尽量占有比较小的空间来形成最终的压缩图片。



点云是立体的,是三维空间中一组独立的三维点,每个点除了具有三维坐标外,还包含一些其他属性,如纹理,反射率,表面法线等。将三维点云的一个点直接投影到二维图像的一个像素时,是向六个投影方向,并根据六个平面之间的相关性高低选择投影的点,会导致投影产生的 Patch 数量较多,法线产生歧义点,造成编码麻烦,可能产生失真。与此同时,视频三维点云向六个平面投影时产生了三个信息,分别为属性视频、几何图形视频和占用图。由于三维投影到二维后,在 Patch 边缘处会存在空白空间。占用图显示了二维图像中 Patch 的位置,将对应 Patch 位置的像素占用情况设置为 1,将对应 Patch 之间空间设置为 0。没有填充完整信息的图像,会导致视频压缩后的比特率增加。


为了避免这些负面影响,V-PCC 点云压缩方法是基于输入点云的几何特征,将三维点云进行聚类,根据点云的几何和纹理属性分割成 Patch,再投影成单独的二维图像上,这就是 Patch 划分。首先估计每个点的法线,然后通过将每个点与六个单位立方体定向平面中的一个相关联来获得点云的初始聚类,即最大化点法线和平面法线的点积,然后通过基于其法线和其最近邻居的聚类索引迭代地更新与每个点相关联的聚类索引来细化初始聚类,最后一步包括通过应用连接的组件提取过程来提取 Patch。由于投影时可能有多个点投影到同一像素位置,此时可以使用多个图层来存储这些重叠点。假设有一组点 H ( u, v ) 被投影到相同的 ( u, v ) 位置,这时可以使用两个图层:近图层和远图层。近图层存储来自 H ( u, v ) 的具有最低深度值 D0 的点。远图层存储在用户定义的间隔 ( D0, D0 + D ) 内具有最高深度值的点。其中用户自定义区间大小 D 表示表面厚度,可以由编码器设置,用于改进几何编码和重建。



Patch 打包过程旨在将提取的 Patch 映射到 2D 网格上,同时尝试最小化未使用的空间。V-PCC 使用简单的打包策略,迭代地尝试将 Patch 插入 W ⅹ H 的 2D 网格中。W 和 H 是用户定义的参数,其对应于将被编码的几何/纹理图像的分辨率。通过以光栅扫描顺序执行的穷举搜索来确定 Patch 位置。选择可以保证 Patch 无重叠插入的第一个位置,并将 Patch 覆盖的网格单元标记为已使用。如果当前分辨率图像中没有适合 Patch 的空白区域,则网格的高度 H 会暂时加倍并再次执行搜索。在该过程结束时,H 减少以便仅考虑所使用的网格单元。


下图显示了 Patch 打包的占用图、几何图形和纹理图的示例。



通过非空像素块边界来扩展相邻空像素块的颜色信息,实现对像素块间隙的填充,从而获得更好的编码效率,并且最大程度地减少解码图像中的像素块伪像。填充过程,也称几何膨胀,对每一帧独立执行。如果近图和远图的空位置是相同的,使用相似的值可以提高压缩效率。纹理图的填充方式是先压缩,降低分辨率后再进行拉伸、膨胀,然后将填充图像序列从 RGB444 颜色转换为 YUV420,并使用 HEVC 编码器进行编码。



以上进行了编码器相关的介绍,那么为了使解码器能够从几何和纹理图像重建 3D 点云,还需要附加元数据,即占用图和辅助 Patch 信息。解码码流的结构包含了属性信息、几何信息、占用图以及辅助 Patch 信息。Patch 信息在解码码流后依次进行占用图、几何信息、属性信息解码、重建以及后处理,最终 V-PCC 将解码后的视频像素重新投影到 3D 空间中,生成点云。



接下来是点云 MSE 性能的度量介绍,其中包含了点对点 ( D1 ) 、点对平面 ( D2 ) 的几何失真评价和颜色评价。从原始编码图像到解码后的图像,点对点之间越小说明误差越小,而点对平面的差异反映在法线之间。





结合 V-PCC 算法,分析 V-PCC 框架下,重构点云几何失真的特点和形成的主要原因,分析当前几种针对几何失真改进方法的优势和局限性,并介绍 V-PCC 重构点云几何恢复方法。


通过编码、解码、重建等步骤,编码原始图像和解码图像会产生几何失真,并展示了差异图。由图可见,分别有正面、侧面和下巴三个 Patch,且 Patch 之间不连续,出现缝隙,其中蓝色 Patch 在内部产生了稀疏的空位点。



而噪声形成的主要原因有两个:一是占用图向下采样,二是几何信息的有损编码。


点云编码时占用图采用的是无损编码,无损编码比特率较高。占用图是使用无损视频编码器编码的二值图像,值 1 表示几何视频中至少有一个有效像素,值 0 表示用图像填充过程中的像素填充的空白区域。那么占用图向下采样,把图变小后再用无损编码传输会使边缘点变少,影响点云解码导致形成噪声。


几何图像的有损编码会引起深度信息的失真,同时每个 Patch 的投影也会引入噪声,量化噪声,使投影方向发生变化,导致 Patch 之间有缝隙,甚至内部存在空位点。



解决以上问题的代表性方法有三种,分别为:


1、V-PCC 几何网格平滑。识别补丁边缘的点并计算小 3D 网格中解码点的质心,在推导出 2 × 2 × 2 网格中的质心和点数后,应用常用的三线性滤波器。


2、Patch 填充。在 Patch 的边界处添加点,在不同 Patch 中添加重复点。减少数据丢失的可能性。


3、Patch 边界过滤。对于轮廓的每个点,根据邻域地图计算到其他 Patch 的距离,并更新轮廓以调整当前 Patch 的形状。对于轮廓的每个点,可以进行两种变形:从轮廓中删除当前点或添加当前点以扩大轮廓。


除了上述三种方法外,为大家介绍一下我们使用的提升算法,是基于 Patch 的几何修复,将三维里不连续的点投影到二维中处理。算法主要分为三步:首先去除 Patch 边界处额外的点,然后在 Patch 边界处稀疏空位上恢复点,最后通过边界,在 Patch 内部进行填充点。三个步骤后进行解码端的几何信息重建。



整个提升算法流程介绍如下:首先占用图和几何图像转化为 2D Patches,属性图像转化为 X、Y、Z & RGB 重建 3D 点云,定位到 Patch 的边界处,用 KD 树进行搜索,通过三个步骤:把不必要的点移除后更新边缘,边缘点的填充以及内部点的填充,先重建几何信息再重建颜色信息。其中包含三个策略:策略一是移除多余的点。方法是寻找边界点及其最相邻 Patch 之间的距离,根据局部最小原则,移除多余的点。策略二是边缘点的填充。方法同样是寻找边界点及其相邻的 Patch,当深度差值大于 1 时,填充该点。策略三是内部点的填充。方法是通过计算几何残差的大小,基于一定的规则,填充或过滤空位点。这些操作都是在二维里进行的,既提高准确性降低复杂度,又使用了三维的几何关系。



最后,这是我们的实验结果,通过该方法,重构点云的主客观质量上都有显著的提升。





往期回顾

RTE2021 回顾丨声网实时背景分割算法研究与应用落地

RTE2021 回顾丨智感超清:给你最优的视觉盛宴!

RTE2021 回顾丨Flat 在线教室的开源初体验

RTE2021 回顾丨面向 RTE 场景的新一代 API 探索和实践

RTE2021 回顾丨实时语音活动背后的质量监控

RTE2021 回顾丨一增两减,助力深度学习在实时推理场景中的应用

RTE2021 回顾丨WebRTC 漫漫成长路,下一个十年将走向何方?

RTE2021 回顾丨基于深度学习的音频编/解码的实现与落地挑战

【声明】内容源于网络
0
0
RTE开发者社区
RTE 开发者社区是聚焦实时互动领域的中立开发者社区。不止于纯粹的技术交流,我们相信开发者具备更加丰盈的个体价值。行业发展变革、开发者职涯发展、技术创业创新资源,我们将陪跑开发者,共享、共建、共成长。
内容 1122
粉丝 0
RTE开发者社区 RTE 开发者社区是聚焦实时互动领域的中立开发者社区。不止于纯粹的技术交流,我们相信开发者具备更加丰盈的个体价值。行业发展变革、开发者职涯发展、技术创业创新资源,我们将陪跑开发者,共享、共建、共成长。
总阅读197
粉丝0
内容1.1k