分類: NLP

  • 何謂利用語義分割(semantic segmentation)分類三維點雲?

    前言:

     因為左岸的論文導讀只有一份,而且抄來抄去跟大學生做畢業專題一樣。
     所以我打算自己來幫自己讀的 paper 下註解。

    這篇文章要告訴你兩件事:


    一、語義分割在幹嘛、原理是什麼?


    二、語義分割怎麼用在分類點雲?

    我這篇不會講太多關於 NLP 實務上怎麼做、怎麼實現…

    只會概念式的讓你知道:語義分割與點雲的關係






    一、語義分割在幹嘛、原理是什麼?



     講語義分割就要稍微介紹一下 NLPNatural 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 WangYongbin SunZiwei LiuSanjay E.SarmaMichael M. BronsteinJustin M. Solomon

     我們可以看到機身的顏色不一樣(廢話)

     黃色代表與選取的紅點關係相近的點

     其實這是一張利用"語義分割"做"飛機部件分割"的訓練過程,
     你可以看見由左至右,原本我們找的 紅點 只跟物理距離相近的點有關;

     但是越訓練越往右走,你會發現與 紅點 有關的逐漸像是相同的部件而不是物理距離。
     最後飛機被分為:機翼、渦輪、機身…等各部件。

     在這裡的原始檔案可能是 .ply 或是 .off 都可以
     原理就是把頂點的 x,y,z 拿出來去做部件分割

     然後我們就會把被語義分割出來的各部件拿去做訓練,這樣就可以取得更好的結果。
     (譬如說有些機掰的倒三角翼飛機就不是乖乖的長這樣,但我們可以辨識成飛機。)

     你會問為什麼飛機兩邊的翼明明絕對位置不一樣,還能訓練出來?

     因為其中利用到 NLP 的句子的語義分割,類似"Ben是我"、"我是Ben"
     為同義句,在數學中就是 幾何變換 geometric transformation)

     可以寫矩陣轉換過去,至於怎麼寫就那又是一門學問了
     先交給我們電信仔就行惹 ლ(´ڡ`ლ)
     
     有時間再來談談實作,或許先從怎麼 initial data 開始是不錯的選擇?