借助 MediaPipe Image Segmenter 任务,您可以根据预定义的类别将图片划分为多个区域。您可以使用此功能来识别特定对象或纹理,然后应用背景模糊处理等视觉效果。此任务包括几个经过专门训练的模型,用于在图片数据中细分人物及其特征,包括:
- 人物和背景
- 仅人的头发
- 人物的头发、面部、皮肤、服装和配饰
此任务使用包含单张图片或连续视频流的机器学习 (ML) 模型对图片数据执行操作。它会输出分割区域的列表,表示图像中的对象或区域,具体取决于您选择的model。
开始使用
如需开始使用此任务,请按照适用于您的目标平台的其中一个实现指南进行操作。这些平台专用指南将引导您完成此任务的基本实现,包括推荐的模型和包含推荐配置选项的代码示例:
任务详情
本部分介绍此任务的功能、输入、输出和配置选项。
特性
- 输入图片处理 - 处理包括图片旋转、调整大小、归一化和颜色空间转换。
任务输入 | 任务输出 |
---|---|
输入可以是以下数据类型之一:
|
图像分割器会输出经过分割的图像数据,其中可能包括以下一项或两项,具体取决于您设置的配置选项:
|
配置选项
此任务具有以下配置选项:
选项名称 | 说明 | 值范围 | 默认值 |
---|---|---|---|
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 ”时使用 |
N/A | N/A |
模型
图像分割器可用于多个机器学习模型。以下大部分分割模型都是构建和训练的,用于用人物图片执行分割。但是,DeepLab-v3 模型是作为通用图片分割器构建的。选择最适合您的应用的模型。
自拍分割模型
此模型可以分割人像,并可用于替换或修改图片中的背景。该模型会输出两个类别:背景位于索引 0 处,人物位于索引 1 处。此模型具有输入形状不同的版本,包括方形版本和横向版本,对于输入始终采用该形状的应用(例如视频通话),可能更高效。
模型名称 | 输入形状 | 量化类型 | 模型卡片 | Versions |
---|---|---|---|---|
SelfieSegmenter(方形) | 256 x 256 | 浮点数 16 | 信息 | 最新动态 |
SelfieSegmenter(横向) | 144 x 256 | 浮点数 16 | 信息 | 最新动态 |
头发分割模型
此模型获取一个人的图像,定位其头发,并输出其头发的图像分割图。您可以使用此模型将头发改色或应用其他头发效果。该模型会输出以下细分类别:
0 - background
1 - hair
模型名称 | 输入形状 | 量化类型 | 模型卡片 | Versions |
---|---|---|---|---|
HairSegmenter | 512 x 512 | 无 (float32) | 信息 | 最新动态 |
多类别自拍分割模型
此模型获取一个人的图像,定位不同区域(如头发、皮肤和服装)的区域,并为这些项目输出图像分割图。您可以使用此模型对图片或视频中的人物应用各种效果。该模型会输出以下细分类别:
0 - background
1 - hair
2 - body-skin
3 - face-skin
4 - clothes
5 - others (accessories)
模型名称 | 输入形状 | 量化类型 | 模型卡片 | Versions |
---|---|---|---|---|
SelfieMulticlass (256 x 256) | 256 x 256 | 无 (float32) | 信息 | 最新动态 |
DeepLab-v3 模型
该模型可识别许多类别的细分,包括背景、人、猫、狗和盆栽植物。该模型使用星空空间金字塔池化来捕获更长范围的信息。如需了解详情,请参阅 DeepLab-v3。
模型名称 | 输入形状 | 量化类型 | Versions |
---|---|---|---|
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 毫秒 |