文章鏈接
不得不感嘆大佬終歸是大佬,Charles R. Qi在3D視覺上真的是做出了很多優(yōu)秀的工作,同為浙江人怎么差距這么大 :)
本文提出了新的卷積核「Point Convolution」
首先可以簡單的回顧二維Grid Kernel

卷積核在空間中(二維平面上)的固定位置提供一個固定的weight,因此將這樣的思路借鑒到Irregular Kernel上來(包括二維或者三維)就應(yīng)該是如下所示的

在一個連續(xù)的空間中固定某幾個點,然后這幾個點也可以提供權(quán)重。這些點在文章中被稱為「Kernel Point」,這也是「Point Convolution」這個名字的由來(我認(rèn)為)。
考慮卷積操作

表示的就是卷積核,對于一個領(lǐng)域,通過每個點與centroid的位置關(guān)系,求得對應(yīng)的權(quán)重,并加權(quán)得到卷積的輸出。因此卷積操作的核心就是對的定義方式。
在point convolution中,的定義如下

其中
我們可以這樣理解,每一個neighbor的權(quán)重是通過所有kernel point根據(jù)其與neighbor的關(guān)系加權(quán)得到的,因此每一個neighbor都與所有kernel point有關(guān)系。我想這也是Point Convolution & Graph Convolution之間的區(qū)別,Graph Convolution通過的是Edge Convolution,每一個neighbor的權(quán)重是通過從neighbor與centroid的邊信息里提取的。作者在文章中是這么介紹兩者的不同之處的
Despite the similarity between point convolutions and the most recent graph convolutions [39, 43], the latter learn filters on edge relationships instead of points relative positions. In other words, a graph convolution combines features on local surface patches, while being invariant to the deformations of those patches in Euclidean space. In contrast, KPConv combines features locally according to the 3D geometry, thus capturing the deformations of the surfaces.
其中如何作為衡量每個neighbor與每個kernel point之間的關(guān)系的函數(shù),其被定義為

介紹了如何通過給定的基于point的kernel進(jìn)行convolution之后,一個很重要的問題就是如果對kernel中的點進(jìn)行位置的固定。例如grid kernel,每一個pixel都會有一個固定的位置。
因此作者提出了兩種不同的kernel
- Rigid Kernel
- Deformable Kernel
首先是Rigid Kernel,具體的細(xì)節(jié)我也沒有看,但是在作者的supplementary里面有給出,反正整體的思路好像就是假設(shè)每一個點都有一個排斥力,所有filter內(nèi)的kernel point會形成一個力場,從而每個point都會互相制約,從而達(dá)到穩(wěn)定的位置。
也許會有人覺得如果每個位置都是learnable的,那么整個convolution會更好,但是作者發(fā)現(xiàn)對效果的提升并不明顯,相反作者用了一個很巧妙的方法,就是通過rigid kernel對當(dāng)前的input學(xué)習(xí)一個3K的vector,用來調(diào)整K個kernel point的xyz位置(K * 3),這就是所謂的「Deformed」。通過對position的調(diào)整,那么整個kernel就肯定會更加generable。
總而言之 太強(qiáng)了 (跪