Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Memo in Japanese: VoxelContext-Net: An Octree based Framework for Point Cloud Compression

mocobt
June 21, 2021

Memo in Japanese: VoxelContext-Net: An Octree based Framework for Point Cloud Compression

CVPR 2021のVoxelContext-Net: An Octree based Framework for Point Cloud Compressionの自分用メモ

元論文は https://arxiv.org/abs/2105.02158 です。

mocobt

June 21, 2021
Tweet

More Decks by mocobt

Other Decks in Research

Transcript

  1. VoxelContext-Net: An Octree based Framework for Point Cloud Compression 1

    VoxelContext-Net: An Octree based Framework for Point Cloud Compression Conference/Journal CVPR Property Point Cloud Compression Year 2021 Abstract In this paper, we propose a two-stage deep learning framework called VoxelContext-Net for both static and dynamic point cloud compression. Taking advantages of both octree based methods and voxel based schemes, our approach employs the voxel context to compress the octree structured data. Specifically, we first extract the local voxel representation that encodes the spatial neighbouring context information for each node in the constructed octree. Then, in the entropy coding stage, we propose a voxel context based deep entropy model to compress the symbols of non-leaf nodes in a lossless way. Furthermore, for dynamic point cloud compression, we additionally introduce the local voxel representations from the temporal neighbouring point clouds to exploit temporal dependency. More importantly, to alleviate the distortion from the octree construction procedure, we propose a voxel context based 3D coordinate refinement method to produce more accurate reconstructed point cloud at the decoder side, which is applicable to both static and dynamic point cloud compression. The comprehensive experiments on both static and dynamic point cloud benchmark datasets(e.g., ScanNet and Semantic KITTI clearly demonstrate the effectiveness of our newly proposed method VoxelContext-Net for 3D point cloud geometry compression.
  2. VoxelContext-Net: An Octree based Framework for Point Cloud Compression 2

    Journal/Conference CVPR2021 Subjects cs.CV : Computer Vision and Pattern Recognition eess.IV : Image and Video Processing Link arXiv: https://arxiv.org/abs/2105.02158 GUO LU's Homepage We are organizing a tutorial Learning for Visual Data Compression on CVPR2021. Two papers are accepted at CVPR2021. We are organizing a tutorial on VCIP2020 for Learned Image and Video Compression. Please see the slides Learned Image Compression and Learned Video Compression We are organizing a special issue on IJCV for video understanding and video https://guolusjtu.github.io/guoluhomepage/ Abstract Static/Dynamic Point Cloud Compression ⽤フレームワークの提案 Octree ベースとVoxel ベースの利点を活⽤  Octree の各ノードの空間的な隣接関係をエンコードする局所的なvoxel 表現を抽出  Entropy coding の段階で、voxel に基づいたentropy model を提案  Dynamic Point Cloud Compression のために、時間的に隣接する点群から局所的なvoxel 表現を追加 導⼊  Octree 構成時の歪みを軽減するため、Decoder 側でvoxel を⽤いて三次元座標を精密化 Introduction LiDAR のような3D センサの普及に伴い、⼤規模点群データの圧縮が注⽬を集めている e.g. ⾃動運転での応⽤ 深層学習と点群圧縮の組合せはHot topic で、画像圧縮もしくは点群解析の利点を活かしている 空間的な依存性(spatial dependency) を得るために点群をvoxel 表現へ変換し、画像圧縮の⼿法 を点群圧縮に応⽤
  3. VoxelContext-Net: An Octree based Framework for Point Cloud Compression 3

    Learned Point Cloud Geometry Compression This paper presents a novel end-to-end Learned Point Cloud Geometry Compression (a.k.a., Learned-PCGC framework, to efficiently compress the point cloud geometry PCG using deep neural networks DNN https://arxiv.org/abs/1909.12037 Variational image compression with a scale hyperprior We describe an end-to-end trainable model for image compression based on variational autoencoders. The model incorporates a hyperprior to effectively capture spatial dependencies in the latent representation. https://arxiv.org/abs/1802.01436 PointNet/PointNet++ のような特徴抽出⽤NN を⽤いて、点群を直接圧縮する⼿法もある Deep AutoEncoder-based Lossy Geometry Compression for Point Clouds Point cloud is a fundamental 3D representation which is widely used in real world applications such as autonomous driving. As a newly-developed media format which is characterized by complexity and irregularity, point cloud creates a need https://arxiv.org/abs/1905.03691 3D Point Cloud Geometry Compression on Deep Learning 3D point cloud presentation has been widely used in computer vision, automatic driving, augmented reality, smart cities and virtual reality. 3D point cloud compression method with higher compression ratio and tiny https://dl.acm.org/doi/10.1145/3343031.3351061 しかし、既存⼿法は点群のスパース性を無視しており、計算コストが⼤きいため⼤規模点群データ には適さない 最新⼿法であるOctSqueeze では、点群を構成するためにOctree を⽤いており、各複数の親ノードと 各⼦ノードとの依存関係を活⽤するentropy model を提案している (Figure 1 a 参照)
  4. VoxelContext-Net: An Octree based Framework for Point Cloud Compression 4

    OctSqueeze: Octree-Structured Entropy Model for LiDAR Compression We present a novel deep compression algorithm to reduce the memory footprint of LiDAR point clouds. Our method exploits the sparsity and structural redundancy between points to reduce the bitrate. Towards this goal, we first https://arxiv.org/abs/2005.07178 この⼿法はOctree を⽤いているため効率的な圧縮が可能だが、同じ深さの隣接ノード間の強い 依存関係はentropy model を構成する際に無視される さらに、⽣の点群データからOctree に変換する際に歪みが⽣じ、圧縮効率が下がる 加えて、この⼿法はStatic な点群にのみデザインされており、Dynamic な点群には適さない 以上の問題を解決するため、Octree ベースのフレームワークにvoxel ベースの⼿法の利点を導⼊した 学習ベースの点群圧縮⼿法VoxelContext-Net を提案 利点 Octree ベースであるため、効率的にデータを構成できる Voxel ベースなため、空間的な局所性も捉えられる Static/Dynamic な点群のどちらにも応⽤できる 概要 ⼊⼒点群をOctree へ変換し、⾮葉ノードの⼦ノード8 個でoccupancy を表現 Entropy coding 時にloss-less で各シンボルを圧縮するentropy model を提案 Entropy model を効率的に構築するため、各ノードで局所的な2 値voxel 表現を利⽤
  5. VoxelContext-Net: An Octree based Framework for Point Cloud Compression 5

    各voxel context は同じ深さにある近傍ノードの存在を指す (Figure 1 b 参照) Dynamic point cloud compression の時間的な冗⻑性を排すため、前後フレームで同じ位置 に点群があるか否かを指すvoxel 表現を新たに追加 復元段階で、局所voxel 表現に基づいた座標のrefinement を提案 3. Methodology 3.1 Overview 提案する点群圧縮の全体的なarchitecture をFigure 2 に⽰す。 まず初めに、Static な点群から考える。 最初の段階では、Octree を⽤いてStatic な点群を構成する。なお、我々の⼿法は⾮葉ノードのシンボル をloss-less な⽅法でエンコードすることを⽬的としている。圧縮効率を上げるため、シンボルの確率分 布を正確に予測できるvoxel context ベースのentropy model を提案する。らに、Octree 構成時の歪みを 補償するため、local voxel context ベースの座標refinement module を提案する。 3.2 Octree Construction Figure 3 は、Octree を構成するtoy example を⽰している。
  6. VoxelContext-Net: An Octree based Framework for Point Cloud Compression 6

    Octree は、まず初めに3 次元空間を8 個の同じ⼤きさの⽴⽅体で区切り、要素が空ではないcube に対 して最⼤深さに達するまで再帰的に分割を繰り返すことで点群から構成できる。各ノードの三次元座標 は⽴⽅体中⼼である。各⾮葉ノードに対して、8 個の⼦ノードのoccupancy を表現するため8bit シンボル が⽤いられ、各ビットは各⼦ノードに対応する。 Octree 構成時は、再構成される点群のクオリティはOctree 構造の最⼤深さに依存する。それゆえ、葉 ノードの座標( すなわち⽴⽅体中⼼) は元の点群座標とは同じにならない。例えば、ある点の座標が の場合、対応する葉ノードの座標は と量⼦化される。よって、 Octree 構成時に避けられない歪みが⽣じる。この論⽂では、Octree のノードをlossless で圧縮し、正確 に復号する。 3.3 Local Voxel Context in Octree (0.6,0.7,0.7) (0.625,0.625,0.625)
  7. VoxelContext-Net: An Octree based Framework for Point Cloud Compression 7

    Octree では、親ノードは⼦ノードを8 個⽣成する。これは3 次元空間をx 軸、y 軸、z 軸に沿って分割す ることを意味する。それゆえ、Octree の 番⽬の深さにおける元空間の分割は、x 軸、y 軸、z 軸に沿って それぞれ 回だけ3 次元空間を分割することを意味する。よって、各⽴⽅体に点が存在するか否かを表 すために 個のバイナリvoxel 表現を⽤いる。ここで、各ノード の中⼼にある対応する局所 voxel 表現(local voxel representation) を とし、 は局所voxel 表現のサイズとする。 は圧縮効率を向上するために強いprior として⽤いる。 Figure 3 (c) において、紫の領域は現在のノード のlocal voxel context を表し、局所voxel 表現の詳細 なバイナリ値はFigure 3 (d) に⽰されている。Figure 3 (a) では、3 次元空間における対応するlocal 領域 の3 次元座標範囲を⽰している( 紫dash 線) 。なお、現在のノード におけるlocal voxel context は同 じ深さにある近傍ノードの分布情報を表現している。 3.4 Our Deep Entropy Model 3.4.1 Formulation をOctree 中の⾮葉ノード全体から得られる8-bit occupancy シンボルの列とし、 をOctree におけるノード のシンボルとする。例えば、 のとき、ノード は2 つの⼦ノードをもち、対応するインデックスはそれぞれ4 と8 である1-origin) 。 情報理論に従えば、occupancy を圧縮するときビットレートの下界はShannon entropy となる。しか し、実際の分布 は実アプリケーションでは未知である。それゆえ、実際の分布 を近似することがで きる確率分布を推定するNN を⽤いる。このlearned deep entropy model に従うと、octree から得られ るoccupancy シンボルはlossless で圧縮できる。特に、我々が提案する学習ベースのentropy model の⽬ 的はcross-entropy loss を最⼩化することで、 は の推定確率である。 ノード の⼦の確率分布 は、同じ深さにある近傍ノードやすでにデコードされたノードに依存 するかもしれないため、、この複雑な関係をモデル化するのは難しい。この論⽂においては、現在のノ ード のoccupancy シンボル はそのノードのlocal voxel context のみに依存すると仮定し、ノード 特徴 はノードの三次元座標と深さを含むものとする。 は同じ深さレベルのlocal context information を表しているため、 に基づいて現在ノード の⼦の分布( すなわち ) を推定することは 理にかなっている。これにより、各occupancy シンボル の複雑な依存関係を簡略化することができ、 を次のように分解することができる。 ここで、 は、ノード においてlocal voxel context とノード特徴 が与えられたときの の推定確率を表す。各ノードに対しては同じ確率分布モデルを⽤いることにする。 3.4.2 Network Architecture 上の式1 に基づいてentropy model をparameterize するため、NN を⽤いる。ネットワークアーキテクチ ャはFigure 4 の通りである。はじめに、Section 3.3 で述べた⽅法に基づいてノード についてlocal voxel context を抽出する。この は多層CNN の⼊⼒とし、対応する出⼒は である。この⼿続にお いて、3 次元空間におけるcontext information を効率的に得るために、既存の⼈気なCNN structure を⽤ いる。次に、context feature とノード特徴 を連結する。その後、loxal voxel contextual information とノード情報を混ぜ合わせた256 次元の隠れ特徴を⽣成するため、MLP を⽤いる。最後に各 k 2k 2 ∗ k 2 ∗ k 2k ni V ∈ i RM ×M ×M M Vi ni ni Vi s = [s ,...,s ,...] 1 i si ni s = i [0,0,0,1,0,0,0,1] ni P P E [−logQ (s)] s∼P s Q (s) s s ni q (s ) s i ni si Vi ci Vi Vi ni si s Q (s) s Q (s) = s Π q (s ∣V ,c ) (1) i s i i i q (s ∣V ,c ) s i i i ni Vi ci si ni Vi Vi fi fi ci
  8. VoxelContext-Net: An Octree based Framework for Point Cloud Compression 8

    ノード の8-bit occupancy シンボルの確率 を⽣成するため、softmax 層を⽤いる。我々の ⼿法はOctree ベースの⼿法とボクセルベースの⼿法の利点を兼ね備えており、より効率的な点群圧縮効 率を実現できる。 3.5 Our Coordinate Refinement Method Octree 構成時の歪みを軽減するため、local voxel context に基づいた座標のrefinement ⼿法を提案す る。この⼿法で重要なのは、近傍voxel のlocal context 情報を与えることで現在のノードの座標をより正 確に推定できるという点である。 デコードされたOctree が与えられたとき、座標refinement の⽬的は各ノード についてrefine された 出⼒座標 を次の⽅法で推定することである。 ここで、 はノード のlocal voxel context であり、 は座標refinement ⽤の学習可能関数である。 デコードされた座標 はoctree coding 後の の座標を表す。 Figure 4 (b) に⽰されるように、提案する座標refinement ⽤のネットワークアーキテクチャは、deep entropy model (Figure 4 a) と似ている。我々はoctree のデコードにおいて、まずoctree 全体をglobal binary voxel 表現へ変換する。ノード に対してバイナリvoxel context が与えられたとき、多層 CNN を⽤いて3 次元空間中のcontext information を抽出し、MLP の集合を⽤いてoffset を推定する。葉 ノード の最終的な座標はデコード後の座標と推定したoffset の和とする( 式 2 参照) 。 3.6 Training Strategy ni q (s ∣V ,c ) s i i i ni (x ,y ,z ) i r i r i r (x ,y ,z ) = i r i r i r (x ,y ,z ) + i d i d i d R(V ) (2) i Vi ni R(⋅) (x ,y ,z ) i d i d i d ni ni Vi ni
  9. VoxelContext-Net: An Octree based Framework for Point Cloud Compression 9

    提案⼿法において、local voxel context に基づいたentropy model と座標refinement module は別々に 訓練する。entropy model においては、各葉ノードにおける推定確率 に基づき、以下の損 失関数を⽤いる。 ここで、 は式1 で定義されている。 座標refinement module においては、各点の正確な座標を推定することを⽬的とする。この⽬的に向 けて、MSE ベースの損失を歪みとして⽤いる。 ここで、 はOctree 構成前のノード の座標の真値である。 3.7 Dynamic Point Cloud Compression 提案する点群圧縮フレームワークは⼀般的で、Dynamic な点群圧縮へ容易に拡張できる。動的な点群 は異なる時刻で取得された冗⻑な点群の列を含むことを考えると、時間的な情報を活⽤する必要があ る。 特に、時刻 における点群 と時刻 の隣接する点群 が与えられたとき、点群を 取得したセンサの姿勢情報に基づき、3 つの点群を同じ座標系に配置する。すべての点群は深度毎にデコ ードされているため、現在の点群 の深さ におけるノード をデコードするとき、異なる2 つの点群 の深さ のvoxel 表現が利⽤できる。また、点群 の深さ のvoxel 表現にもアクセ スできる。 Figure 5 に⽰すように、点群 の深さ のノード の局所voxel 表現を とし、対応する点群 の深さ の局所voxel 表現をそれぞれ とし、さらに前時刻の点群 の深さ のvoxel 表現を とする。 q (s ∣V ,c ) s i i i L = entropy − log q (s ∣V ,c ) i ∑ s i i i q (s ∣V ,c ) s i i i L = mse ∣∣(x ,y ,z − i ∑ i r i r i r x ,y ,z )∣∣ i g i g i g 2 2 (x ,y ,z ) i g i g i g ni t Pt t − 1,t + 1 P ,P t−1 t+1 Pt k ni P ,P t−1 t+1 k Pt−1 (k + 1) Pt k ni Vk,i P ,P t−1 t+1 k V ,V k,i − k,i + Pt−1 k + 1 V k+1,i −
  10. VoxelContext-Net: An Octree based Framework for Point Cloud Compression 10

    Entropy model において時間情報を得るため、シンプルなfusion strategy を採⽤し、特徴抽出のため にFigure 4 に⽰されるようなアーキテクチャを⽤いる。ここでは、異なる4 つのvoxel 表現 を連結し、集約した特徴を最終的な確率分布を得るためのsoftmax 層に⼊⼒す る。 のサイズは とし、 のサイズは とする。最終的に octree で再構成される座標はSection 3.5 と同様の⼿法でrefinement される。 Experiments ScanNet とKITTI で実験 ScanNet Stanford University Princeton University Technical University of Munich Submit to our new ScanNet Benchmark Challenge here! ScanNet is an RGBD video dataset containing 2.5 million views in more than 1500 scans, annotated with 3D http://www.scan-net.org/ The KITTI Vision Benchmark Suite We thank Karlsruhe Institute of Technology KIT and Toyota Technological Institute at Chicago TTIC for funding this project and Jan Cech CTU and Pablo Fernandez Alcantarilla UoA for providing initial results. http://www.cvlibs.net/datasets/kitti/ ⽐較対象は以下の通り V ,V ,V ,V k,i k,i − k,i + k+1,i − V ,V ,V k,i k,i − k,i + 9 × 9 × 9 V k+1,i − 10 × 10 × 10
  11. VoxelContext-Net: An Octree based Framework for Point Cloud Compression 11

    MPEG の標準圧縮⼿法 GPCC https://ieeexplore.ieee.org/document/8571288 MPEGGroup/mpeg-pcc-tmc13 mkdir build cd build cmake .. G Xcode open the generated xcode project and build it md build cd build cmake .. G "Visual Studio 15 2017 Win64" open the generated visual studio solution and build it This TMC13 codec https://github.com/MPEGGroup/mpeg-pcc-tmc13 Google のKD-tree ベースの⼿法 Draco) Draco 3D Graphics Compression Draco is an open-source library for compressing and decompressing 3D geometric meshes and point clouds. It is intended to improve the storage and transmission of 3D graphics. View on GitHub " https://google.github.io/draco/ 既存⼿法 OctSqueeze ( 公開repository なし?) ScanNet とKITTI での結果
  12. VoxelContext-Net: An Octree based Framework for Point Cloud Compression 12

  13. VoxelContext-Net: An Octree based Framework for Point Cloud Compression 13

    Refinement module CRM のありなしとOctSqueeze の⽐較 Local voxel representation のサイズによるBpp 圧縮データレートを定義するために、bpp とMbps の概念を理解しましょう! intoPIX 最終的な画像の各ピクセルは、実際には3 つの成分から再構成されます。Y 、Cb 、Cr の3 つの成 分から再構成されます。クロマサブサンプリングは、実際の圧縮を導⼊することなく、Cb とCr の⾊成分の解像度を下げることで構成されています。輝度Y は変化せず、⼈間の⽬に映る主な https://ja.intopix.com/blogs/post/How-to-define-the-compression-rate-according-to- bpp-or-bps
  14. VoxelContext-Net: An Octree based Framework for Point Cloud Compression 14

    デコードにかかる時間 圧縮後のデータを⽤いたobject detection とsemantic segmentation