# [Point 4D Transformer Networks for Spatio-Temporal Modeling in Point Cloud Videos](https://ieeexplore.ieee.org/document/9578674)(IEEE)
### :small_blue_diamond: Journal reference:
*2021 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR), Nashville, TN, USA, 2021, pp. 14199-14208*
### :small_blue_diamond: Authors:
*Hehe Fan , Yi Yang , Senior Member, and Mohan Kankanhalli*
### :small_blue_diamond: Github:
[P4Transformer
](https://github.com/PIC4SeR/MPOSE2021_Dataset)
## :white_check_mark: 論文主要解決的問題
捕捉動態在點雲影片中,通常採用點追蹤。然而,由於點可能跨幀流入和流出,計算精確的點軌跡極為困難。此外,追蹤通常依賴點顏色,因此可能無法處理無色點雲。
## :white_check_mark: 論文主要貢獻
1. 為了避免點跟踪,作者提出了一個基於transformer網絡,名為 P4Transformer,用於時空點雲影片建模。據作者所知,他們是第一個應用transformer的在點雲影片建模中。
2. 嵌入局部時空結構並減少transformer要處理的點數,作者提出了4D點卷積。
3. 對四個資料集的廣泛實驗,表明P4Transformer有效提高了3D動作辨識和4D語意分割的精度。
## :white_check_mark: Related works
### 1. 基於網格的影片中的時空建模
深度神經網路在以下方面取得了優異的性能RGB/RGBD影片中的時空建模,捕捉有關外觀或運動信息。例如:雙流卷積神經網路、循環神經網路、3D卷積神經網路等。
### 2. 靜態點雲深度學習
深度學習有被廣泛應用於許多點雲問題,例如:分類、物件部分分割、場景語意分割。
### 3. 點雲影片處理
有兩種主流的處理方法:一種是基於體素化,將點雲幀轉換為體素,然後透過3D卷積或4D時空卷積網路提取外觀和運動特徵。另一種是直接使用點雲,作者的P4Transformer屬於第二種類別,旨在捕獲整個點雲影片的時空相關性時避免點跟踪。
### 4. Transformer網路
基於自註意力的架構,尤其是Transformer,具有顯著的推進自然語言處理的方法。作者也使用Transformer網路來捕獲時空點雲影片的結構以避免點跟踪問題。
## :white_check_mark: 點雲特徵擷取之方法演進

a) MeteorNet應用點追蹤來查找影片中每個點的軌跡,如圖1a所示。然而,由於點可能會流入和流出幀,準確追蹤點極為困難,特別是對於長視頻。
b) PSTNet透過觀察限制時間建模範圍每個本地只有幾個幀(時間窗口)區域,假設一個點不會逃離該區域在短時間內,如圖1b所示。然而,當幀採樣頻率較低或物體移動較快時,點仍可能從局部區域逃逸。
c) P4Transformer如圖1c所示,主要是對特徵進行加權求和,另外PSTransformer是具有編碼時空結構的能力。
d) PSTransformer如圖1d所示,對時空進行編碼參考點的結構,影片中的特徵是基於時空位移進行編碼影片中所有要點的參考。然後,特徵被更新為編碼的加權和特徵,其中不相關的點被排除。
> c)跟d)的差異在於d)得到每個點之間的距離差異(x'-x, y'-y, z'-z)再去做全局的softmax,c)只有將所有的點座標跟深度(x, y, z)直接做softmax。
>
> b)、c)、d)都為同一群作者所寫的
## :white_check_mark: Point 4D Transformer Networks 架構介紹
* **Overview of the P4Transformer architecture:**

1. Input: point cloud video
2. Point 4D Convolution
3. 4D Coordinate and Local Feature Embedding
4. m層Transformer
5. Max pooling
6. MLP
7. Classification
* **Point 4D Convolution:**
重點:讓kernel進行學習,用於擷取局部網格特徵(中心網格到它的鄰居網格)。
公式:

G 是時空上的點雲,位於中心點 (x, y, z, t) 周圍的局部區域。因為空間和時間是正交且相互獨立的另外,我們可以將區域 G 分割成一系列空間序列區域,由空間半徑 rs 和時間半徑定義半徑 rt。
有除了(x, y, z, t)的特徵,像:顏色、密度等:
首先根據時間採樣 st 選擇鄰近幀,我們採用最遠點採樣(FPS)對每個選定的 N′ = N/ss 點進行子採樣幀,其中 ss = 32是空間子點雲取樣率。這些二次抽樣然後將點轉移到最近的 rt 幀。原始和傳輸的二次取樣點形成時空局部區域的中心軸。最後,空間根據每個的空間半徑 rs 搜尋鄰居所選幀或最近幀中的二次採樣點。
* **4D Coordinate and Local Feature Embedding:**
重點:Transformer缺乏位置信息,為了添加位置信息,論文提出將位置信息結合到點雲特徵中。

Wi是轉換4D座標的權重,I是自註意力輸入。
* **Self-Attention:**
重點:根據相關的局部區域來合併特徵,使得每個點都有更大的感受野感知周圍發生的事情。

self-attention 可以被描述為映射一個查詢和一組鍵值對到輸出,在其中產生查詢、鍵和值由輸入本身計算,輸出計算為值的加權和。
原本的 self-attention 對於每個 QK 內積的結果作 softmax ,但在本研究中,softmax的分母會被整段影片中所有的區域採樣點取代,這被稱為 video-level self-attention在這篇論文中。
## :white_check_mark: EXPERIMENTS
### 1. 3D Action Recognition
每幀2048點雲,會將一部影片(同一動作的影片)分成好幾段,以固定幀數去切分。
在訓練過程:影片級的動作label會等於切分後的片段動作label。
在驗證過程:片段的動作label平均
* default:
* temporal radius rt = 1
* temporal stride st = 2
* spatial subsampling rate ss = 32
* patial radius rs 每個資料集不一樣
* 5 self-attention (m = 5) blocks
* 8 heads (h = 8) per block
* 50 epochs
* SGD optimizer
* Learning rate lr = 0.01
* decays rate = 0.1 at the 20th epoch and the 30th epoch, respectively
* MSR-Action3D:
* 567 Kinect v1 depth videos
* 20 action categories
* 23K frames
* spatial radius rs = 0.5

* NTU RGB+D 60:
* 56K videos
* 60 action categories
* 4M frames
* spatial radius rs = 0.1
* NTU RGB+D 120:
* 114K videos
* 120 action categories
* 8M frames
* spatial radius rs = 0.1

### 2. Computational efficiency

## :white_check_mark: Ablation Study
* Influence of the temporal radius rt and spatial radius rs

* Influence of the number of transformer layers (m) and the number of heads (h) on 3D action recognition

* Influence of frame-level and video-level self-attention on 3D action recognition

## :white_check_mark: Conclusion
> 以下是作者提供的結論:
1. 網路擷取時空相關性來自原始點雲視頻,P4Transformer 組成點 4D 卷積和 Transformer。
2. 點 4D 卷積將時空局部結構嵌入表示子樣本幀和點以便後續 Transformer 處理。Transformer 捕捉整個運動訊息透過執行自註意力來獲取局部區域對於整個影片的關係。
3. 廣泛的實驗展示我們的 P4Transformer 的有效性點雲視訊建模。