前幾天 meeting 被老師單獨叫過去說:
"黑武士,你知道你這學期要畢業對吧?"
於是乎,為了早點把論文生出來(#)最近看了比較多論文,
其中一個很感興趣的是 3D Spatial Transformer 方法。
這個方法有部分 depened on 2D Spatial Transformer ,
至於 2D Spatial Transformer,李弘毅大師講得很清楚,
我就不多贅述了。
李弘毅老師 – Spatial Transformer Layer
借用一下 2D Spatial Transformer 的架構圖:
Spatial Transformer 架構圖 |
原本 2D Spatial Transformer 的 Localisation Net 等於 Affine ,
但是因為 3D 嘛,多了一個維度,而且抓特徵的方法不同,就用需要新增兩個方法處理。
首先我們要知道三維任務裡面,我們是拿什麼樣的資料來做處理?
這篇文章以 DGCNN 為主幹,DGCNN 抓特徵的方法就是先假設一張圖有 N 個點。
N 個點裡面,每個點都去做 KNN,假設 K值設為 20,
最後我們就是拿 N*20 個最近鄰居點的三維座標當作特徵,進入網路處理。
KNN 示意圖 |
知道了要處理的資料長什麼樣子,那就分別來看看 3D Spatial Transformer 的三種方法。
- Affine & Projective Transformations
這兩個合在一起講,因為相當於 2D Spatial Transformer 的 Affine 功能,
包含 旋轉、縮放、位移,其中 Projective Transformations 是專門處理位移問題。
讓 R 矩陣 代表 Affine , T 矩陣 代表 Projective ,
這兩個矩陣合起來就會變成 M 矩陣,能夠一次處理旋轉、縮放、位移。
M矩陣一次處理 旋轉、縮放、位移。 |
- Projective Transformations
講到這裡一定又很多人會問了,問我怎麼知道每次投影都會把位移量投回來?
論文明明寫共扼到高次方維度,所以怎樣怎樣才會一樣。
黑武士你又在搞,到底在說什麼?
很簡單,四維的世界人類無法想像,那就用三維投二維來舉例:
假設在三維空間中恆有一 av 向量,
我們希望這組猴死囝仔 av 向量在 xy 平面上恆有一點 xy 座標代表,
這樣我們就知道不管這條 av 向量怎麼跑,我們都有方法辨別。
(口裡面一個子 = ㄐㄧㄢˇ,不用謝了。)
這還只是一條向量,如果很多個向量平行,是不是就能在 xy 平面上投出一個圖案?
再加上我們前面有辦法處理 3D 圖片 的旋轉,
是不是一定程度上能在三維空間得到旋轉與平移的容許值?
讓機器更好辨別哪些 3D 圖片 是一樣的?
- Deformable Transformations
這邊論文講了一堆說什麼最重要的、可以改變 3D 圖片外觀的,
簡單來說只做了兩件事情:
- 融合前後層特徵(第一層為原始三維座標)。
- 把融合後的特徵做成 C向量 往下傳播。
原文寫得不是很好, 前面黑色C代表上一層傳遞來的向量,後面紅色C代表往下傳的向量, 兩者是不同內容,避免混淆我就用顏色區分。 |
以上就是我對於 Spatial Transformer for 3D Point Clouds 的論文理解,
如果大家有不同理解,歡迎底下留言讓我知道。