论文笔记:PRIN: Pointwise Rotation-Invariant Networks
生活随笔
收集整理的這篇文章主要介紹了
论文笔记:PRIN: Pointwise Rotation-Invariant Networks
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
PRIN: Pointwise Rotation-Invariant Networks
1、四個問題
- 使用特殊結(jié)構(gòu)的神經(jīng)網(wǎng)絡(luò)來提取具有旋轉(zhuǎn)不變性的點云特征。
- 提出了一套新的網(wǎng)絡(luò)結(jié)構(gòu):Pointwise Rotation-Invariant Network(PRIN),所提取的特征具有旋轉(zhuǎn)不變性。
- 預(yù)處理階段,使用密度感知自適應(yīng)采樣(Density-Aware Adaptive Sampling,DAAS)從稀疏點云上采樣球形信號(spherical signals)。
- 隨后采用Spherical Voxel Convolution(SVC)從點云提取旋轉(zhuǎn)不變特征。
- 在目標(biāo)分類、部件分割等任務(wù)上,可以不進(jìn)行額外的數(shù)據(jù)增強(qiáng),就能有效地處理旋轉(zhuǎn)變化,并取得了SOTA(state-of-the-art)的效果。
- 關(guān)于旋轉(zhuǎn)不變性的部分基本上是照搬Spherical CNN里的那一套東西,給人的感覺更像是把被人的東西用到了點云分類、點云部件分割等任務(wù)上,但是球形信號的采樣方法還是比較有參考價值的。
2、論文概述
2.1、簡介
- 盡管PointNet和PointNet++都在點云感知和形狀分析相關(guān)的任務(wù)中取得了相當(dāng)不錯的效果,但是他們都只關(guān)注于理想的情況,即不考慮旋轉(zhuǎn)變換,假定所有物體都是出于同一個固定視角下。然后實際中,往往還存在旋轉(zhuǎn)變換,而PointNet這類的方法肯定就會失效,因為我們事先無法知道物體的方向以及旋轉(zhuǎn)角度。示意圖如圖1所示,旋轉(zhuǎn)變換會導(dǎo)致PointNet系的網(wǎng)絡(luò)失效。
- 因此這篇論文就提出了一系列應(yīng)對旋轉(zhuǎn)變化的方法。
- 提出了一個具有旋轉(zhuǎn)不變性的網(wǎng)絡(luò):PRIN(pointwise rotation-invariant network)。
- 使用密度感知自適應(yīng)采樣(density-aware adaptive sampling,DAAS)來采樣球形信號。
- 使用球形體素卷積(spherical voxel convolution,SVC)來提取旋轉(zhuǎn)不變特征。
2.2、準(zhǔn)備知識
- 球形卷積。
- 球形卷積是在Spherical CNN中提出的,主要思想是實現(xiàn)等變性。如果輸入信號旋轉(zhuǎn)了,那么卷積后的輸出也相應(yīng)地旋轉(zhuǎn)。接著再進(jìn)行全局最大池化就可以得到全局旋轉(zhuǎn)不變特征了。
- 如果有興趣進(jìn)一步了解,可以查看我之前的博客:論文筆記:Spherical CNN
- 示意圖如圖2所示。
2.3、密度感知自適應(yīng)采樣(DAAS)
- Spherical CNN中已經(jīng)通過理論推導(dǎo)和實驗證明了球形卷積具有旋轉(zhuǎn)等變性,但是它是應(yīng)用在mesh結(jié)構(gòu)的數(shù)據(jù)上,無法直接用來處理不規(guī)則的點云數(shù)據(jù)。所以還需要對點云進(jìn)行預(yù)處理,即將點云轉(zhuǎn)換為歐式結(jié)構(gòu)的球形體素。
- 作者認(rèn)為直接對點云進(jìn)行均勻采樣是不合理的,因為在兩極附近的點相對稀疏,而在赤道附近的點則更加稠密。我們應(yīng)該將這個點云分布的不均勻性也考慮進(jìn)去,根據(jù)分布的稠密程度自適應(yīng)地對點進(jìn)行采樣,構(gòu)建球形體素。
- 一些定義如下:
- 單位球:
- 單位球S2S^2S2上的任意點為p∈R3p \in \mathbb{R}^{3}p∈R3,點的模長為1。這是一個二維流型,我們使用球面坐標(biāo)(α,β)(\alpha, \beta)(α,β)來定義。α∈[0,2π]\alpha \in[0,2 \pi]α∈[0,2π]指的是XY平面上的方位角。β∈[0,π]\beta \in[0, \pi]β∈[0,π]指的是到正Z軸的極距角。
- 球形體素空間:
- 一個球形體素定義為S2×HS^2 \times HS2×H,其中(α,β)∈S2(\alpha, \beta) \in S^{2}(α,β)∈S2表示點被投影到單位球上的坐標(biāo),而h∈Hh \in Hh∈H表示點到球體中心的距離。
- 單位球:
- 給定了一個離散球形體素的位置(α[i],β[j],h[k])(\alpha[i], \beta[j], h[k])(α[i],β[j],h[k]),我們要計算信號f:S2×H→Rf : S^{2} \times H \rightarrow \mathbb{R}f:S2×H→R,其中i∈{0,1,…,I}i \in\{0,1, \ldots, I\}i∈{0,1,…,I},j∈{0,1,…,J}j \in\{0,1, \ldots, J\}j∈{0,1,…,J},K∈{0,1,…,K}K \in \{0,1, \ldots, K\}K∈{0,1,…,K},并且III,JJJ,KKK都是預(yù)先定義好的分辨率。在S2×HS^{2} \times HS2×H上的第nnn個點的坐標(biāo)為(αn,βn,hn)\left(\alpha_{n}, \beta_{n}, h_{n}\right)(αn?,βn?,hn?),且總共有NNN個點。采樣函數(shù)fff的計算公式如下:
- f(α[i],β[j],h[k])=∑n=1Nwn?(δ?∥h[k]?hn∥)∑n=1Nwnf(\alpha[i], \beta[j], h[k])=\frac{\sum_{n=1}^{N} w_{n} \cdot\left(\delta-\left\|h[k]-h_{n}\right\|\right)}{\sum_{n=1}^{N} w_{n}}f(α[i],β[j],h[k])=∑n=1N?wn?∑n=1N?wn??(δ?∥h[k]?hn?∥)?
- 其中:wn=1(∥α[i]?αn∥<δ)?1(∥β[j]?βn∥<ηδ)?1(∥h[k]?hn∥<δ)\begin{aligned} w_{n}=& \mathbf{1}\left(\left\|\alpha[i]-\alpha_{n}\right\|<\delta\right) \\ & \cdot \mathbf{1}\left(\left\|\beta[j]-\beta_{n}\right\|<\eta \delta\right) \\ & \cdot \mathbf{1}\left(\left\|h[k]-h_{n}\right\|<\delta\right) \end{aligned}wn?=?1(∥α[i]?αn?∥<δ)?1(∥β[j]?βn?∥<ηδ)?1(∥h[k]?hn?∥<δ)?
- δ\deltaδ是預(yù)先定義好的濾波器寬度。
- 每個球形體素的信號都是(δ?∥h[k]?hn∥)∈[0,δ]\left(\delta-\left\|h[k]-h_{n}\right\|\right) \in[0, \delta](δ?∥h[k]?hn?∥)∈[0,δ],表示沿著HHH軸的信息,與S2S^2S2正交,同時對于旋轉(zhuǎn)變換是不變的。
- 密度感知系數(shù):
- η=sin?(β)\eta=\sin (\beta)η=sin(β)用來控制fff自適應(yīng)地對非均勻密度下的點集進(jìn)行采樣。示意圖間圖4。
2.4、球形體素卷積(SVC)
- 旋轉(zhuǎn):
- 旋轉(zhuǎn)群SO(3)SO(3)SO(3),也被叫作特殊正交群,是一個三維流型,可以參數(shù)化為ZYZ歐拉角(α,β,γ)(\alpha, \beta, \gamma)(α,β,γ),其中α∈[0,2π]\alpha \in[0,2 \pi]α∈[0,2π],β∈[0,π]\beta \in[0, \pi]β∈[0,π],γ∈[0,2π]\gamma \in[0,2 \pi]γ∈[0,2π]。
- 球形體素信號的旋轉(zhuǎn):
- 定義球形體素信號的旋轉(zhuǎn)操作子LRL_RLR?。
- [LRf](x,h)=f(R?1x,h)\left[L_{R} f\right](x, h)=f\left(R^{-1} x, h\right)[LR?f](x,h)=f(R?1x,h)
- 其中,R∈SO(3)R \in S O(3)R∈SO(3),x∈S2x \in S^{2}x∈S2,h∈Hh \in Hh∈H并且f:S2×H→Rf : S^{2} \times H \rightarrow \mathbb{R}f:S2×H→R。
- 這里的旋轉(zhuǎn)只會影響球面坐標(biāo),而不會對HHH域有影響。
- 球形體素卷積(spherical voxel convolution):
- 兩個球面信號相互卷積的計算公式如下:
- [ψ?f](p)=?Lp~ψ,f?=∫h∫xψ(p~?1x,h)f(x,h)dxdh\begin{aligned}[\psi \star f](p) &=\left\langle L_{\tilde{p}} \psi, f\right\rangle \\ &=\int_{h} \int_{x} \psi\left(\tilde{p}^{-1} x, h\right) f(x, h) d x d h \end{aligned}[ψ?f](p)?=?Lp~??ψ,f?=∫h?∫x?ψ(p~??1x,h)f(x,h)dxdh?
- 其中p∈S2×Hp \in S^{2} \times Hp∈S2×H,p~∈SO(3)\tilde{p} \in S O(3)p~?∈SO(3),x∈S2x \in S^{2}x∈S2,h∈Hh \in Hh∈H,還有ψ,f:S2×H→R\psi, f : S^{2} \times H \rightarrow \mathbb{R}ψ,f:S2×H→R。
- 具體實現(xiàn)部分請參考Spherical CNN。
- 兩個球面信號相互卷積的計算公式如下:
- 等變性:
- [ψ?[LRf]](p)=[LR[ψ?f]](p)\left[\psi \star\left[L_{R} f\right]\right](p)=\left[L_{R}[\psi \star f]\right](p)[ψ?[LR?f]](p)=[LR?[ψ?f]](p)
- 上式對于任意的R∈SO(3)R \in S O(3)R∈SO(3)都成立。
- 旋轉(zhuǎn)不變KL散度損失:
- 對于每個點ppp的損失函數(shù)定義為:Loss?(p)=KL([ψ?f](p),y(p))\operatorname{Loss}(p)=K L([\psi \star f](p), y(p))Loss(p)=KL([ψ?f](p),y(p))。
- fff是輸入信號,ψ\psiψ是要學(xué)習(xí)的卷積核,yyy是ground truth的one-hot標(biāo)簽。
- 旋轉(zhuǎn)不變性證明:
- 假設(shè)點ppp旋轉(zhuǎn)了RRR,得到:f′=LRff^{\prime} = L_R ff′=LR?f,p′=Rpp^{\prime} = R pp′=Rp。
- 拿過來前面定義的幾個公式:
- 等變性公式:[ψ?[LRf]](p)=[LR[ψ?f]](p)(Equation?5)\left[\psi \star\left[L_{R} f\right]\right](p)=\left[L_{R}[\psi \star f]\right](p) \text { (Equation } 5 )[ψ?[LR?f]](p)=[LR?[ψ?f]](p)?(Equation?5)
- 球形信號旋轉(zhuǎn)公式:[LRf](x,h)=f(R?1x,h)(Equation?3)\left[L_{R} f\right](x, h)=f\left(R^{-1} x, h\right) \text { (Equation } 3 )[LR?f](x,h)=f(R?1x,h)?(Equation?3)
- 代入前面兩個公式:
- Loss?(p′)=Loss?(Rp)=KL([ψ?f′](Rp),y(p′))=KL([ψ?[LRf]](Rp),y(p′))=KL([LR[ψ?f]](Rp),y(p′))(Equation?5)=KL([LR?1LR[ψ?f]](p),y(p′))(Equation?3)?=KL([ψ?f](p),y(p′))=KL([ψ?f](p),y(p))(label?stays?the?same)?=Loss?(p)\begin{aligned} \operatorname{Loss}\left(p^{\prime}\right) &=\operatorname{Loss}(R p) \\ &=K L\left(\left[\psi \star f^{\prime}\right](R p), y\left(p^{\prime}\right)\right) \\ &=K L\left(\left[\psi \star\left[L_{R} f\right]\right](R p), y\left(p^{\prime}\right)\right) \\ &=K L\left(\left[L_{R}[\psi \star f]\right](R p), y\left(p^{\prime}\right)\right) \quad \text { (Equation } 5 ) \\ &=K L\left(\left[L_{R^{-1}} L_{R}[\psi \star f]\right](p), y\left(p^{\prime}\right)\right) \quad \text { (Equation 3) } \\ &=K L\left([\psi \star f](p), y\left(p^{\prime}\right)\right) \\ &=K L([\psi \star f](p), y(p)) \quad \text { (label stays the same) } \\ &=\operatorname{Loss}(p) \end{aligned}Loss(p′)?=Loss(Rp)=KL([ψ?f′](Rp),y(p′))=KL([ψ?[LR?f]](Rp),y(p′))=KL([LR?[ψ?f]](Rp),y(p′))?(Equation?5)=KL([LR?1?LR?[ψ?f]](p),y(p′))?(Equation?3)?=KL([ψ?f](p),y(p′))=KL([ψ?f](p),y(p))?(label?stays?the?same)?=Loss(p)?
- 對于每個點ppp的損失函數(shù)定義為:Loss?(p)=KL([ψ?f](p),y(p))\operatorname{Loss}(p)=K L([\psi \star f](p), y(p))Loss(p)=KL([ψ?f](p),y(p))。
- 實際實現(xiàn)時采用了FFT先將球形信號與濾波器信號都轉(zhuǎn)換到頻域,相乘后再做逆變換轉(zhuǎn)換回原先的空域。主要目的是加速計算。
2.5、網(wǎng)絡(luò)結(jié)構(gòu)
- 上圖是PRIN的分類網(wǎng)絡(luò)和分割網(wǎng)絡(luò)示意圖。
- 分類網(wǎng)絡(luò)比較簡單,就是SVC提取旋轉(zhuǎn)不變特征,然后接上一個全局最大池化,然后進(jìn)行分類。
- 分割網(wǎng)絡(luò)在SVC提取特征后,還需要重新上采樣回原始點集,這里用到了三線性插值。每個點的特征是其最近鄰的8個體素的加權(quán)平均和,權(quán)重是距離的倒數(shù)。
2.6、實驗
3,參考資料
總結(jié)
以上是生活随笔為你收集整理的论文笔记:PRIN: Pointwise Rotation-Invariant Networks的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 论文笔记:Group Equivaria
- 下一篇: 论文笔记:KD-Net