使用 MediaPipe 圖片分割器工作,您可以根據預先定義的類別將圖片分割成區域。您可以使用這項功能來識別特定物件或紋理,然後套用背景模糊處理等視覺效果。這個工作包含多個專門訓練用來區隔圖片資料中人物及其特徵的模型,包括:
- 人物和背景
- 僅註冊人物的頭髮
- 人物的頭髮、臉部、皮膚、服飾和配件
此工作會使用機器學習 (ML) 模型,針對單張圖片或連續影片串流的圖片資料進行運算。這項作業會輸出區隔區域清單,代表圖片中的物件或區域,具體取決於您選擇的模型。
開始使用
請按照下列目標平台的導入指南操作,開始使用此工作。這些平台專屬指南將逐步引導您完成這項工作的基本實作方式,包括建議的模型,以及含有建議設定選項的程式碼範例:
任務詳細資料
本節說明此工作的功能、輸入內容、輸出內容和設定選項。
功能
- 輸入圖像處理:處理作業包括圖像旋轉、大小調整、標準化和色彩空間轉換。
工作輸入內容 | 任務輸出 |
---|---|
輸入內容可以是下列其中一種資料類型:
|
圖片區隔器會輸出區隔的圖片資料,視您設定的設定選項而定,資料可能包含下列一或兩者:
|
設定選項
此工作提供下列設定選項:
選項名稱 | 說明 | 值範圍 | 預設值 |
---|---|---|---|
running_mode |
設定工作執行模式。共有三種模式: IMAGE:單一圖片輸入模式。 VIDEO:影片解碼影格模式。 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 模式時,將結果事件監聽器設為以非同步方式接收分割結果。只有在執行模式設為 LIVE_STREAM 時,才能使用 |
不適用 | 不適用 |
模型
圖片區隔工具可與多個機器學習模型搭配使用。以下大部分的區隔模型都是為了在人像圖片上執行區隔作業而建構及訓練的。不過,DeepLab-v3 模型是做為通用圖片區隔器而建構。選取最適合應用程式的模型。
自拍區隔模型
這個模型可區隔人物肖像,並用於替換或修改圖片中的背景。模型會輸出兩個類別,索引 0 為背景,索引 1 為人物。這個模型有不同輸入形狀的版本,包括正方形和橫向版本,對於輸入內容一律為該形狀的應用程式 (例如視訊通話),這類版本可能更有效率。
模型名稱 | 輸入形狀 | 量化類型 | 模型資訊卡 | 版本 |
---|---|---|---|---|
SelfieSegmenter (正方形) | 256 x 256 | float 16 | info | 最新 |
SelfieSegmenter (橫向) | 144 x 256 | float 16 | info | 最新 |
頭髮分割模型
這個模型會擷取人物圖片、找出頭髮位置,並輸出頭髮的圖像區隔地圖。您可以使用這個模型為頭髮著色或套用其他頭髮效果。模型會輸出以下區隔類別:
0 - background
1 - hair
模型名稱 | 輸入形狀 | 量化類型 | 模型資訊卡 | 版本 |
---|---|---|---|---|
HairSegmenter | 512 x 512 | None (float32) | info | 最新 |
多元自拍區隔模型
這個模型會拍攝人物圖像,找出頭髮、皮膚和衣服等不同區域,並輸出這些項目的圖像區隔地圖。您可以使用這個模型,為圖片或影片中的人物套用各種效果。模型會輸出下列區隔類別:
0 - background
1 - hair
2 - body-skin
3 - face-skin
4 - clothes
5 - others (accessories)
模型名稱 | 輸入形狀 | 量化類型 | 模型資訊卡 | 版本 |
---|---|---|---|---|
SelfieMulticlass (256 x 256) | 256 x 256 | None (float32) | info | 最新 |
DeepLab-v3 模型
這個模型會為多個類別識別區隔,包括背景、人物、貓、狗和盆栽植物。該模型使用 atrous 空間金字塔池化技術,擷取更長的範圍資訊。詳情請參閱 DeepLab-v3。
模型名稱 | 輸入形狀 | 量化類型 | 版本 |
---|---|---|---|
DeepLab-V3 | 257 x 257 | None (float32) | 最新 |
工作基準
以下是根據上述預先訓練模型,針對整個管道的工作基準。延遲結果是 Pixel 6 使用 CPU / GPU 的平均延遲時間。
模型名稱 | CPU 延遲時間 | GPU 延遲時間 |
---|---|---|
SelfieSegmenter (正方形) | 33.46 毫秒 | 35.15 毫秒 |
SelfieSegmenter (橫向) | 34.19 毫秒 | 33.55 毫秒 |
HairSegmenter | 57.90 毫秒 | 52.14 毫秒 |
SelfieMulticlass (256 x 256) | 217.76 毫秒 | 71.24 毫秒 |
DeepLab-V3 | 123.93 毫秒 | 103.30 毫秒 |