圖片語意分割是將數位圖片分割成多個區段 (像素集,也稱為圖片物件) 的過程。語意分割的目標是簡化圖片的呈現方式,和/或將其變更為更具意義且更易於分析的形式。
下圖顯示圖片語意分割模型在 Android 上的輸出結果。此模型將以高精確度在目標物件上建立遮罩。
開始使用
如果您是 TensorFlow Lite 的新手,且正在使用 Android 或 iOS,建議您探索下列範例應用程式,這些應用程式可協助您開始使用。
您可以運用 TensorFlow Lite Task Library 的現成 API,只需幾行程式碼即可整合圖片語意分割模型。您也可以使用 TensorFlow Lite Interpreter Java API 整合模型。
下方的 Android 範例示範了 lib_task_api 和 lib_interpreter 這兩種方法的實作方式。
如果您使用的平台不是 Android 或 iOS,或者您已熟悉 TensorFlow Lite API,則可以下載我們的入門圖片語意分割模型。
模型說明
DeepLab 是用於語意圖片語意分割的最先進深度學習模型,其目標是將語意標籤 (例如,人、狗、貓) 指派給輸入圖片中的每個像素。
運作方式
語意圖片語意分割會預測圖片的每個像素是否與特定類別相關聯。這與物件偵測 (偵測矩形區域中的物件) 和圖片分類 (分類整體圖片) 相反。
目前的實作包含下列功能
- DeepLabv1:我們使用 atrous 卷積來明確控制在深度卷積神經網路內計算特徵回應的解析度。
- DeepLabv2:我們使用 atrous 空間金字塔池化 (ASPP),透過多個取樣率和有效視野的濾鏡,以穩健的方式在多個尺度上分割物件。
- DeepLabv3:我們使用圖片層級特徵 [5, 6] 來擴增 ASPP 模組,以擷取更長距離的資訊。我們也加入批次正規化 [7] 參數來協助訓練。特別是,我們在訓練和評估期間套用 atrous 卷積以在不同輸出步幅下擷取輸出特徵,這可有效率地在輸出步幅 = 16 時啟用 BN 訓練,並在評估期間在輸出步幅 = 8 時達到高效能。
- 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 個執行緒以獲得最佳效能結果。