語意分割

圖片語意分割是將數位圖片分割成多個區段 (像素集,也稱為圖片物件) 的過程。語意分割的目標是簡化圖片的呈現方式,和/或將其變更為更具意義且更易於分析的形式。

下圖顯示圖片語意分割模型在 Android 上的輸出結果。此模型將以高精確度在目標物件上建立遮罩。

開始使用

如果您是 TensorFlow Lite 的新手,且正在使用 Android 或 iOS,建議您探索下列範例應用程式,這些應用程式可協助您開始使用。

您可以運用 TensorFlow Lite Task Library 的現成 API,只需幾行程式碼即可整合圖片語意分割模型。您也可以使用 TensorFlow Lite Interpreter Java API 整合模型。

下方的 Android 範例示範了 lib_task_apilib_interpreter 這兩種方法的實作方式。

查看 Android 範例

查看 iOS 範例

如果您使用的平台不是 Android 或 iOS,或者您已熟悉 TensorFlow Lite API,則可以下載我們的入門圖片語意分割模型。

下載入門模型

模型說明

DeepLab 是用於語意圖片語意分割的最先進深度學習模型,其目標是將語意標籤 (例如,人、狗、貓) 指派給輸入圖片中的每個像素。

運作方式

語意圖片語意分割會預測圖片的每個像素是否與特定類別相關聯。這與物件偵測 (偵測矩形區域中的物件) 和圖片分類 (分類整體圖片) 相反。

目前的實作包含下列功能

  1. DeepLabv1:我們使用 atrous 卷積來明確控制在深度卷積神經網路內計算特徵回應的解析度。
  2. DeepLabv2:我們使用 atrous 空間金字塔池化 (ASPP),透過多個取樣率和有效視野的濾鏡,以穩健的方式在多個尺度上分割物件。
  3. DeepLabv3:我們使用圖片層級特徵 [5, 6] 來擴增 ASPP 模組,以擷取更長距離的資訊。我們也加入批次正規化 [7] 參數來協助訓練。特別是,我們在訓練和評估期間套用 atrous 卷積以在不同輸出步幅下擷取輸出特徵,這可有效率地在輸出步幅 = 16 時啟用 BN 訓練,並在評估期間在輸出步幅 = 8 時達到高效能。
  4. DeepLabv3+:我們擴充 DeepLabv3 以加入簡單但有效的解碼器模組,以精簡語意分割結果,尤其是在物件邊界附近。此外,在這個編碼器-解碼器結構中,您可以透過 atrous 卷積任意控制擷取的編碼器特徵解析度,以權衡精確度和執行時間。

效能基準

效能基準數字是使用此處所述的工具產生。

模型名稱 模型大小 裝置 GPU CPU
Deeplab v3 2.7 Mb Pixel 3 (Android 10) 16 毫秒 37 毫秒*
Pixel 4 (Android 10) 20 毫秒 23 毫秒*
iPhone XS (iOS 12.4.1) 16 毫秒 25 毫秒**

* 使用 4 個執行緒。

** iPhone 上使用 2 個執行緒以獲得最佳效能結果。

延伸閱讀和資源