MediaPipe 圖片區隔工作可讓您根據預先定義的類別,將圖片分為不同的區域。您可以使用此功能來識別特定物件或紋理,然後套用背景模糊等視覺效果。這項工作包含數個專門訓練的模型,用來區隔圖片資料中的人物及其特徵,包括:
- 人物和背景
- 只有人頭髮
- 某人的頭髮、臉部、肌膚、服裝和配件
這項工作會搭配單一圖片或連續影片串流的機器學習 (ML) 模型對圖片資料運作。這會輸出區隔區域清單,代表圖片中的物件或區域,視您選擇的model而定。
開始使用
如要開始使用這項工作,請按照目標平台適用的任一實作指南操作。下列平台專用指南將逐步引導您完成這項工作的基本實作方式,包括建議的模型,以及含有建議設定選項的程式碼範例:
任務詳細資料
本節說明這項工作的功能、輸入、輸出和設定選項。
功能
- 輸入圖片處理 - 處理包括圖像旋轉、大小調整、正規化及色域轉換。
工作輸入內容 | 工作輸出內容 |
---|---|
輸入內容可以是下列任一資料類型:
|
「圖片區隔」會輸出經過區隔的圖片資料,可根據您設定的設定選項,納入下列其中一或兩種資料:
|
設定選項
這項工作有以下設定選項:
選項名稱 | 說明 | 值範圍 | 預設值 |
---|---|---|---|
running_mode |
設定工作的執行模式。共有三種模式: IMAGE:單一圖片輸入的模式。 影片:影片已解碼影格的模式。 LIVE_STREAM:輸入資料串流 (例如攝影機) 的直播模式。在這個模式下,必須呼叫 resultListener 才能設定事件監聽器,以非同步方式接收結果。 |
{IMAGE, VIDEO, LIVE_STREAM } |
IMAGE |
output_category_mask |
如果設為 True ,輸出結果會包含 uint8 圖片的區隔遮罩,其中每個像素值都代表勝出類別值。 |
{True, False } |
False |
output_confidence_masks |
如果設為 True ,輸出結果會包含以浮點值圖片形式的區隔遮罩,其中每個浮點值都代表該類別的可信度分數對應關係。 |
{True, False } |
True |
display_names_locale |
設定標籤語言,用於工作模型中繼資料內的顯示名稱 (如有)。英文的預設值是 en 。您可以使用 TensorFlow Lite Metadata Writer API,在自訂模型的中繼資料中加入本地化標籤。 | 語言代碼 | en |
result_callback |
在圖片區隔處於直播模式時,設定結果監聽器以非同步方式接收區隔結果。只能在執行模式設為 LIVE_STREAM 時使用 |
不適用 | 不適用 |
模型
圖片區隔工具可與多個機器學習模型搭配使用。下列大部分的區隔模型都需要經過建構和訓練,才能根據人物圖片執行區隔。不過,DeepLab-v3 模型的建構是一般用途的圖片區隔器。選取最適合您應用程式的型號。
自拍區隔模型
這個模型可以分割人物的肖像,並可用於取代或修改圖片中的背景。模型會輸出兩個類別: 索引為 0 的背景和索引 1 的人這個模型具有不同輸入形狀的版本 (包括方形版本和橫向版本),如果應用程式的輸入內容始終是該形狀 (例如視訊通話),使用起來會更有效率。
模型名稱 | 輸入形狀 | 量化類型 | Model Card | 版本 |
---|---|---|---|---|
SelfieSegmenter (正方形) | 256 x 256 | 浮點值 16 | 資訊 | 最新 |
SelfieSegmenter (橫向) | 144 x 256 | 浮點值 16 | 資訊 | 最新 |
髮型
這個模型會擷取一個人的圖片、找出頭髮的頭髮,並輸出頭髮的圖片區隔圖。你可以使用這個模型改變頭髮或套用其他美髮效果。模型會輸出下列區隔類別:
0 - background
1 - hair
模型名稱 | 輸入形狀 | 量化類型 | Model Card | 版本 |
---|---|---|---|---|
髮型區隔 | 512 x 512 | 無 (float32) | 資訊 | 最新 |
多類別自拍區隔模型
這個模型會擷取人物的圖片,找出髮型、皮膚和衣物等不同區域的區域,然後輸出這些項目的圖片區隔地圖。您可以使用這個模型,對圖像或影片中的人物套用各種效果。模型會輸出下列區隔類別:
0 - background
1 - hair
2 - body-skin
3 - face-skin
4 - clothes
5 - others (accessories)
模型名稱 | 輸入形狀 | 量化類型 | Model Card | 版本 |
---|---|---|---|---|
SelfieMulticlass (256 x 256) | 256 x 256 | 無 (float32) | 資訊 | 最新 |
DeepLab-v3 模型
這個模型用於辨識多種類別的片段,包括背景、人物、貓、狗和盆栽。模型使用特羅斯空間金字塔集區擷取較長的範圍資訊。詳情請參閱「DeepLab-v3」。
模型名稱 | 輸入形狀 | 量化類型 | 版本 |
---|---|---|---|
DeepLab-V3 | 257 x 257 | 無 (float32) | 最新 |
工作基準
以下為整個管道根據上述預先訓練模型所產生的工作基準。延遲時間結果是 Pixel 6 使用 CPU / GPU 的平均延遲時間。
模型名稱 | CPU 延遲時間 | GPU 延遲時間 |
---|---|---|
自拍區隔 (正方形) | 33.46 毫秒 | 35.15 毫秒 |
自拍區隔 (橫向) | 34.19 毫秒 | 33.55 毫秒 |
HairSegmenter | 57.90 毫秒 | 52.14 毫秒 |
SelfieMulticlass (256 x 256) | 217.76 毫秒 | 71.24 毫秒 |
DeepLab-V3 | 123.93 毫秒 | 103.30 毫秒 |