图像分割指南

通过 MediaPipe Image Segmenter 任务,您可以根据预定义的 类别。您可以使用此功能来识别特定对象或 然后应用背景模糊等视觉效果。此任务 包含多个经过专门训练的模型,用于对人员及其 特征,包括:

  • 人物和背景
  • 仅人物头发
  • 人的头发、面部、皮肤、服装和配饰

此任务使用机器学习 (ML) 模型对图片数据进行操作, 图片或连续的视频流。它会输出一个细分区域列表, 来表示图像中的对象或区域,具体取决于您要构建的模型 选择。

<ph type="x-smartling-placeholder"></ph> 试试看!

开始使用

使用此任务时,请先按照以下某个实施指南操作 目标平台这些针对具体平台的指南将向您介绍 实现,包括推荐的模型和代码示例 以及建议的配置选项:

任务详情

本部分介绍功能、输入、输出和配置 此任务的选项。

功能

  • 输入图像处理 - 处理包括图像旋转、大小调整 标准化和颜色空间转换。
任务输入 任务输出
输入可以是以下数据类型之一:
<ph type="x-smartling-placeholder">
    </ph>
  • 静态图片
  • 已解码的视频帧
  • 实时视频画面
图像分割器输出经过分割的图像数据,其中可能包括一个或 以下两项,具体取决于您设置的配置选项:
<ph type="x-smartling-placeholder">
    </ph>
  • CATEGORY_MASK:包含分段掩码的列表 转换为 uint8 格式的图片。每个像素值均指明其是否属于此模型支持的特定细分类别。
  • CONFIDENCE_MASK:包含 采用 float32 格式的像素值的分割掩码。每个像素值都表示其属于特定类别的置信度级别 模型支持的自定义技术。

配置选项

此任务具有以下配置选项:

选项名称 说明 值范围 默认值
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 模型是作为通用模型构建的, 用途的图片分割器。选择最适合您的应用的模型。

<ph type="x-smartling-placeholder">

自拍分割模型

此模型可以分割人物的肖像,还可用于替换 或修改图像中的背景。模型输出两类: 索引 0 处的背景和索引 1 处的人。此模型有多个版本 不同的输入形状,包括方形版本和横向版本, 对于输入始终是该形状、 例如视频通话

模型名称 输入形状 量化类型 模型卡片 版本
<ph type="x-smartling-placeholder"></ph> SelfieSegmenter(方形) 256 x 256 浮点数 16 <ph type="x-smartling-placeholder"></ph> 信息 <ph type="x-smartling-placeholder"></ph> 最新
<ph type="x-smartling-placeholder"></ph> SelfieSegmenter(横向) 144 x 256 浮点数 16 <ph type="x-smartling-placeholder"></ph> 信息 <ph type="x-smartling-placeholder"></ph> 最新

头发分割模型

这个模型会拍摄人物图片,找出头发, 输出头发的图像分割映射。您可以将此模型用于 改色头发或应用其他头发特效。模型输出以下内容: 细分类别:

0 - background
1 - hair
模型名称 输入形状 量化类型 模型卡片 版本
<ph type="x-smartling-placeholder"></ph> HairSegmenter 512 x 512 无 (float32) <ph type="x-smartling-placeholder"></ph> 信息 <ph type="x-smartling-placeholder"></ph> 最新

多类别自拍分割模型

此模型会拍摄人物图像,确定不同区域(例如 头发、皮肤和服装,并输出这些项的图像分割映射。 您可以使用此模型对图片中的人物或照片中的人物应用各种效果 视频。模型输出以下细分类别:

0 - background
1 - hair
2 - body-skin
3 - face-skin
4 - clothes
5 - others (accessories)
模型名称 输入形状 量化类型 模型卡片 版本
<ph type="x-smartling-placeholder"></ph> SelfieMulticlass (256 x 256) 256 x 256 无 (float32) <ph type="x-smartling-placeholder"></ph> 信息 <ph type="x-smartling-placeholder"></ph> 最新

DeepLab-v3 模型

此模型可识别许多类别的片段,包括背景、 人、猫、狗和盆栽植物。该模型使用空心空间金字塔 来捕获范围更广的信息。如需了解详情,请参阅 DeepLab-v3

模型名称 输入形状 量化类型 版本
<ph type="x-smartling-placeholder"></ph> DeepLab-V3 257 x 257 无 (float32) <ph type="x-smartling-placeholder"></ph> 最新

任务基准

这是整个流水线的任务基准,这些基准基于上述预训练 模型。延迟时间结果是 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 版本 3 123.93 毫秒 103.30 毫秒