深層学習を用いた3D点群圧縮とは？(Deep Point Cloud Compression)

# はじめに
こんにちは、先日書いた記事では、ポイントクラウド圧縮に関連する技術、具体的には変換、量子化、エントロピー符号化などに注目してその内容について調査しました。今回は、ディープラーニングを基盤としたポイントクラウド圧縮手法に焦点をあて、その技術要素について整理していきます。

**前回の記事**

https://qiita.com/Hayato-7812/items/c163a10d3fb5d55cb844


**参考文献**

1. [Point Cloud Compression: Technologies and Standardization, 英語版  Ge Li (著), Wei Gao (著), Wen Gao (著)](https://link.springer.com/chapter/10.1007/978-981-97-1957-0_1)

2. [Xie, L., & Gao, W. (2024). LearningPCC: A PyTorch Library for Learning-Based Point Cloud Compression. In Proceedings of the 32nd ACM International Conference on Multimedia (pp. 11234–11238). Association for Computing Machinery.](https://dl.acm.org/doi/10.1145/3664647.3685512)

# 1. Introduction
- 点群圧縮の主な目的は、点群データの保存や伝送に伴う負荷を効果的に軽減しつつ、重要な幾何(geometric)情報や意味的(semantic)情報を保持することです。この技術により、後続のタスク（認識、検知、分類、予測など）が点群データを正確に処理できるようになります。自動運転やAR/VR、ロボットの近く（自己位置推定）などの様々な応用先に対して当該技術は有効に機能します。
- **Deep Point Cloud Compression** は、従来のデータ圧縮技術とDeepLearning手法を組み合わせることで、データサイズを最小限に抑えつつ、上記の目的を達成するための手法として注目されています。

# 2. Motivation
- 学習について定式化をします。8ビットの占有シンボルのシーケンス$𝑥 = [𝑥_1, 𝑥_2, …, 𝑥_n]$ が与えられたとき、エントロピーモデルの目標は、シンボルの実際の分布 𝑝(𝑥) に対して、クロスエントロピーを最小化する推定分布 𝑞(𝑥) を学習することです。
    
    $$
    H(p,q) = E_{x \sim p} \left[ -\log_2 q(x) \right]
    $$
    - ここで、𝑝(𝑥) は実際のデータ分布、𝑞(𝑥) は学習されたモデルによる推定分布を表します。
    
    - 前回も解説した**シャノンの情報源符号化定理（Shannon’s Source Coding Theorem）** によると、クロスエントロピー $H(p,q)$ は、算術符号化（Arithmetic Coding）や範囲符号化（Range Coding）を用いた場合の達成可能な最小ビットレートの下限（理論値）を与えます。
    - つまり、$𝑞(𝑥)$ が $𝑝(𝑥)$ に近いほど、実際のビットレートは低くなります。そのため、学習プロセスでは、訓練データの分布とモデルの予測分布とのクロスエントロピー損失を最小化するように訓練を行います。

    ※ 上記の記述は[OctSqueeze](https://arxiv.org/abs/2005.07178)という手法を提案する論文内で記述されている内容を参考にしていますが、ベースとなる考え方は、他の手法と共通しています。

# 3. 符号化ドメインによる分類
Deep Point Cloud Compressionは**点群データをどのような表現形式で符号化（エンコード）するか**という「符号化ドメイン」によって以下のように分類できます。

| 符号化ドメイン | 特徴 | 適しているデータ | 代表的な技術 |
|--------------|------|------------|------------|
| **Octree-based** | 階層的に分割し、空間の有効活用 | 幾何情報の圧縮 | OctSqueeze, MuSCLE, OctAttention |
| **Voxcel-based** | 規則的な立方体グリッドに変換 | 高密度な点群 | Voxcel-DNN, PCGCv1 , SpaecePCGC |
| **Point-based** | 点そのものを扱う | スパースな点群 | PointNet, PointNet++ |

## 3.1. Octree-based

- [**Octree**](https://en.wikipedia.org/wiki/Octree#:~:text=An%20octree%20is%20a%20tree,subdividing%20it%20into%20eight%20octants.)は、ある空間をさらに小さな8つの空間に再帰的に分割し、木構造としてモデル化したものです。点群を整理された表現に変換することができ、各点の位置を効率的にインデックス化することができます。この表現方法は、MPEG G-PCC （国際標準）、AVS PCC など、さまざまな点群圧縮規格で広く採用されています。

- 当該手法に関するDeepLearningを用いない圧縮の手順（①Octree構造への変換→②エントロピーモデルの適用）については、[前回の記事](https://qiita.com/Hayato-7812/items/c163a10d3fb5d55cb844#%EF%B8%8F-%E3%82%B8%E3%82%AA%E3%83%A1%E3%83%88%E3%83%AA%E6%83%85%E5%A0%B1%E3%81%AE%E4%BA%88%E6%B8%AC-ex-%E3%82%AA%E3%82%AF%E3%83%84%E3%83%AA%E3%83%BC)で解説しました。

- Deep Point Cloud Compressionでは、シンボルの出現確率（対象のOcrtree nodeが占有されている確率）をニューラルネットワークによってモデル化します。この確率は、利用可能なコンテキスト情報に応じて適応的に変化させることができます（隣接するノードの状態などに基づく**条件付きエントロピーモデル**）。つまり、

    1. **Octree 変換** : 点群を階層的に分割し、ツリー構造に変換することで、位置情報を整理する。
    2. **コンテキストモデル**: Octree 構造の特性を利用し、各ノードの符号化に必要な確率分布を推定する。
    3. **エントロピー符号化**: 確率分布を用いて情報理論に基づいた効率的なビットストリームを生成する。

    という手順で、柔軟で高性能な点群データ圧縮を実現します。


### 具体的な手法の例


1. Lila Huang, Shenlong Wang, Kelvin Wong, Jerry Liu, & Raquel Urtasun. (2021). OctSqueeze: Octree-Structured Entropy Model for LiDAR Compression.

2. Sourav Biswas, Jerry Liu, Kelvin Wong, Shenlong Wang, & Raquel Urtasun. (2021). MuSCLE: Multi Sweep Compression of LiDAR using Deep Entropy Models.

3. Fu, C., Li, G., Song, R., Gao, W., & Liu, S. (2022). OctAttention: Octree-Based Large-Scale Contexts Model for Point Cloud Compression. Proceedings of the AAAI Conference on Artificial Intelligence, 36(1), 625–633.


## 3.2. Voxcel-based
- 点群をOctree構造で表現した後、各ノードはその空間を囲む**Voxcel**（キューブのブロック）としてさらに整理することができ、点群の座標はキューブの中心に配置されます。これにより、点群の幾何情報はボクセルブロックのバイナリ占有推定に変換されます。
- Octree構造での簡単なインデックス化に加えて、3D畳み込みを使用したボクセル表現へのコンテキストモデリングが適用できます。そのため、ボクセルベースの表現は、LiDAR点群シーケンスや密な点群など、さまざまなアプローチで一般的に利用されています。


### 具体的な手法の例

【コメント】Octree-basedの手法と比較して、その内容が多岐に渡るので、手法の概要を記述します。少し込み入った話になりますので、必要に応じてスキップしてください。

1. Nguyen, D., Quach, M., Valenzise, G., & Duhamel, P. (2021). Learning-Based Lossless Compression of 3D Point Cloud Geometry. In ICASSP 2021 - 2021 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP) (pp. 4220-4224).

      - 学習ベースのLossless(損失なしの)圧縮方法。
      - 点群をOctreeを用いて多解像度のボクセルブロックに適応的に分割。
      - 分割結果は信号化され、コンテキスト適応算術符号化を使用してボクセルの確率分布を学習。
  
2. Wang, J., Zhu, H., Liu, H., & Ma, Z. (2021). Lossy Point Cloud Geometry Compression via End-to-End Learning. IEEE Transactions on Circuits and Systems for Video Technology, 31(12), 4909-4923.
      - エンドツーエンドのLossy(非可逆)点群圧縮方法。
      - 入力点群は重ならない3D固体ブロックに分割され、その後ボクセル化される。
      - データは複数の3D畳み込み層に送られ、潜在特徴(hyperprior)が生成される。
      - hyperpriorモジュールを用いてエントロピ符号化の条件付き確率推定精度を向上。
      - 重み付きバイナリ交差エントロピー損失（WBCE）を目的関数として使用し、適応的閾値で空のボクセルブロックを削減。

3. Jianqiang Wang, Dandan Ding, Zhu Li, Xiaoxing Feng, Chuntong Cao, & Zhan Ma. (2022). Sparse Tensor-based Multiscale Representation for Point Cloud Geometry Compression.
      - スパース畳み込みに基づく非可逆および可逆点群圧縮方法。
      - 点群圧縮と再構築のためにスパース畳み込みを活用。

## 3.3. Point-based
- このドメインでは、元の点群データをend-to-endで直接処理する方法を採用します。
- これらの手法では、通常、PointNetのようなネットワーク構造がエンコーディングおよびデコーディング変換の主要モジュールとして使用され、rate-distortion(圧縮レート-歪みの関係)関数が最適化の目的関数として使用されます。
    - 具体的には、レート（$R$）と歪み（$D$）の重み付き和 $λD + R$ を最小化することです。ここで $λ$ はそのトレードオフを制御します。

### 具体的な手法の例

1. Wei Yan, Yiting shao, Shan Liu, Thomas H Li, Zhu Li, & Ge Li. (2019). Deep AutoEncoder-based Lossy Geometry Compression for Point Clouds.
    - 直接点群を入力として使用するオートエンコーダベースの幾何学的圧縮、符号化手法


# 4. 実際の応用と今後の展望
- Deep Learningを活用した点群圧縮技術は、さらに進化していくと予想されます。特に、複雑な点群データを効率的に圧縮するために、より深いニューラルネットワークの設計や、新しいアーキテクチャの開発が必要とされています。現在の技術は、圧縮率を高めるための深層学習モデルのサイズが大きくなる傾向にありますが、これをリアルタイムで適用するには、計算リソースの最適化が重要です。モデル圧縮技術や効率的な計算方法の研究は、低遅延で高精度な圧縮を実現するために欠かせない要素です。

- さらに、点群データは多様な形式で存在し、例えばLiDARデータ、RGB-Dデータ、シーン再構成用の点群などがあり、それぞれに最適な圧縮手法が求められます。これに対応するために、汎用的かつ柔軟に適応できるDeep Learningモデルの開発が進んでいます。

- 【コメント】とはいえ、魅力的な論文があってもその実装コードにはアクセスできないパターンも散見され、毎回しょんぼりします。それでも、オープンソースの取り組みが進んでおり、実装を提供するプロジェクトも増えてきたので、研究者やエンジニア同士のコラボレーションが活発になることを期待しています。


# 5. まとめ

- 今回は前回と比較してだいぶあっさりした内容となりましたが、あらかじめ設計されたフレームワークを使い、手動で各モジュールを調整する方法をとっていた従来手法と比較してend-to-endで学習ができるが故に <font color="red">※概要のみであれば</font>このくらいシンプルになるのもDeepLearningベースの手法の良さと捉えることもできるのではないのでしょうか。（若干強引）
- 点群圧縮技術は、単に圧縮効率を高めるだけでなく、点群データの活用範囲を広げる可能性を持っています。例えば、圧縮された点群データを効率的に送信し、クラウド上で処理や分析を行うことができれば、自動運転やドローン、AR/VRなどの分野で新たな可能性が開けます。今後、点群圧縮技術の進展により、これらの分野におけるデータ活用が加速し、さらに革新的なアプリケーションが生まれるでしょう。