網格分割


原文鏈接

網格分割是什么

網格由頂點和面組成,我們對網格頂點或者面的進行分類,就是網格分割。它是一個分類問題,而分類問題是機器學習里的經典問題。

分割需要對數據進行特征建模,這個建模方法可以是人工的,比如各種幾何相關的特征構建;建模方法也可以是自動的,比如深度學習的特征學習方法。

分類的方法,可以是自動分類,比如無監督學習里的各種分類方法;也可以是監督學習,因為分類是一個很主觀的問題,我們可以從學習集里學習到分類的標准;還有最近用的比較多的深度學習。下面這張圖很好的給網格分割方法做了個分類。

Segmentation_Class

常見的幾何特征

  • 曲率
  • 測地距離
  • 形狀直徑函數
  • 法線
  • 對稱性
  • 凹凸性
  • 滑動分析
  • 圖元屬性
mesh_attribute

監督學習的方法

網格分割是一個分類問題,有時候分類結果是很主觀的。比如這個圖形,我們可以有不同的分割結果,每個結果都有道理。具體選擇哪一個結果,可能要根據具體的應用來決定。而監督學習的訓練集,就可以很好體現出這種主觀性。

segment_difres

常見的幾何特征有非常多的種類,到底選擇哪一種或者哪幾種來進行分類,是個很頭疼的問題。監督學習的方法,可以從訓練集里學習出這種特征選擇。比如下面這個學習方法(Learning 3D Mesh Segmentation and Labeling - Siggraph2010),不同的物體的分類,其幾何特征的選擇是不同的,並且幾何特征在分類過程中的權重也是不同的。

segmentation_feature_selection

這類方法的討論:

  • 雖然監督學習可以對特征進行選擇,但是特征集合的創建對學習結果影響還是很大的。特征的創建需要有豐富領域知識經驗的專家來創建。
  • 訓練集的數量對訓練結果影響很大。我們知道,三維數據集的數量級別是不大的。
  • 每次學習只能針對特定類型的模型進行分割,對於一般的模型分割,還是不行的。

交互式的分割方法

用戶的分割意圖,也可以通過交互來體現。比如這個例子,用戶想分割出兔子的頭,在兔頭上畫了一條藍色的線,在兔子身上畫了一條紅色的線,得到了一個分割結果。這個結果不是很理想,於是用戶再用紅色的線標記了兔子身體,得到了期望的分割結果。

segmentation_interactive

交互的方法,需要盡量的簡單,並且分割結果要進來的准確。這類分割問題一般采用圖割的方法來分出前景和背景區域。比如下面是一些不同的交互方式。

segmentation_interactive_method

深度學習的方法

網格特征的建模,需要豐富的有經驗的領域專家來設計。這其實是有一定的局限性的。深度學習可以直接進行端到端的學習,跨過領域特征建模這個模塊。

end2endlearning

深度學習在圖像分割領域發展了很多年了,已經很成熟了。一個直觀的想法是直接應用圖像分割的方法來對網格進行分割。圖像和網格的信息結構是有差異的,圖像是規則的二維矩陣,網格是不規則的圖結構。那么最簡單的可以把網格轉化未規則的信息結構,比如把網格映射到二維圖像,或者網格體素化。早些時候的網格深度學習方法就是采用的這些方法。最近幾年,開始有直接把深度學習應用到不規則的信息結構上,比如三維點雲,三維網格。

下面這個方法(MeshCNN: A Network with an Edge – Siggraph2019),就是直接在不規則的網格上進行深度學習:

  • 網格的邊類比圖像的像素。這樣邊有穩定的四鄰域結構,可以定義卷積算子和Pooling算子。
edgeaspixel
  • 邊的特征信息為邊的二面角+兩個對角+兩個邊長比。這個特征信息類似圖像像素的RGB值。
edgefeature
  • Pooling算子采用了網格簡化的方法,邊簡化的順序跟學習目標相關。比如下面這個例子,上面一排的簡化順序用於識別花瓶是否有把手;下面一排的簡化順序用於識別花瓶是否有瓶頸。
edge_pooling_target
  • 下面是一個人體分割的例子
segmentation_human_result

 有興趣的讀者,歡迎參考視頻版本


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM