前言:
因為左岸的論文導讀只有一份,而且抄來抄去跟大學生做畢業專題一樣。
所以我打算自己來幫自己讀的 paper 下註解。
這篇文章要告訴你兩件事:
一、語義分割在幹嘛、原理是什麼?
二、語義分割怎麼用在分類點雲?
我這篇不會講太多關於 NLP 實務上怎麼做、怎麼實現…
只會概念式的讓你知道:語義分割與點雲的關係
一、語義分割在幹嘛、原理是什麼?
講語義分割就要稍微介紹一下 NLP(Natural Language Processing)
NLP 就是把 自然語言(人類講的話:英文、中文、德文…)轉成機器可以用的東西,
基本上這就是 NLP 在做的事情。
口說無憑,舉個例子:
假設"Costco"這個詞在電腦眼裡看起來是"0100" ;
"IKEA"在電腦眼裡看起來是"1111"
(BTW 這邊的字串代表向量)
兩個差了 3 bits
那麼這兩個詞在做 NLP 的時候就不會視為同義詞
電腦不會跟你說:IKEA?我都念 Costco ლ(´ڡ`ლ)
如果是"Ben"與"Benny"的話,因為"Ben"是"Benny"的縮寫,
所以電腦做 NLP 的時候 這兩個詞的向量就會很接近
簡單來語義分割的用途就是把句子裡面的詞一個一個切出來看向量,
比較資料庫裏面的向量找出使用者到底想要表達什麼意思?
通常語音辨識、輸入會大量用到這個功能
NLP 裡面還有很多東西可以講,這只是大概介紹要用到的功能。
二、語義分割怎麼用在分類點雲?
首先我要引用這張圖片:
(ftrom https://arxiv.org/abs/1801.07829 , Yue Wang, Yongbin Sun, Ziwei Liu, Sanjay E.Sarma, Michael M. Bronstein, Justin M. Solomon)
我們可以看到機身的顏色不一樣(廢話)
黃色代表與選取的紅點關係相近的點
其實這是一張利用"語義分割"做"飛機部件分割"的訓練過程,
你可以看見由左至右,原本我們找的 紅點 只跟物理距離相近的點有關;
但是越訓練越往右走,你會發現與 紅點 有關的逐漸像是相同的部件而不是物理距離。
最後飛機被分為:機翼、渦輪、機身…等各部件。
在這裡的原始檔案可能是 .ply 或是 .off 都可以
原理就是把頂點的 x,y,z 拿出來去做部件分割
然後我們就會把被語義分割出來的各部件拿去做訓練,這樣就可以取得更好的結果。
(譬如說有些機掰的倒三角翼飛機就不是乖乖的長這樣,但我們可以辨識成飛機。)
你會問為什麼飛機兩邊的翼明明絕對位置不一樣,還能訓練出來?
因為其中利用到 NLP 的句子的語義分割,類似"Ben是我"、"我是Ben"
為同義句,在數學中就是 幾何變換 (geometric transformation)
可以寫矩陣轉換過去,至於怎麼寫就那又是一門學問了
先交給我們電信仔就行惹 ლ(´ڡ`ლ)
有時間再來談談實作,或許先從怎麼 initial data 開始是不錯的選擇?