交互式图像分割任务指南

借助 MediaPipe Interactive Image Segmenter 任务,您可以将图片划分为两个区域:所选对象和其他所有内容。该任务接受图片中的某个位置,估算该位置处对象的边界,并返回定义对象区域的图片数据。您可以使用此任务以交互方式选择图片中的对象,并使用输出对图片应用效果,例如使用颜色叠加层突出显示对象或对该对象周围的背景进行模糊处理。此任务使用机器学习 (ML) 模型处理图片数据,可用于单张图片、视频文件或连续视频流。

试试吧!

开始使用

如需开始使用此任务,请按照适用于您的目标平台的其中一个实现指南进行操作。这些平台专用指南将引导您完成此任务的基本实现,包括推荐的模型和包含推荐配置选项的代码示例:

任务详情

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

特性

  • 输入图片处理 - 处理包括图片旋转、调整大小、归一化和颜色空间转换。
任务输入 任务输出
  • 图片中对象的地图注点坐标
  • 要处理的图片文件
交互式图像分割器会输出分割图像数据,其中可能包括以下一项或两项,具体取决于您设置的配置选项:
  • CATEGORY_MASK:包含分割掩码(采用 uint8 格式图片)的列表。每个像素值都会指示它是否属于位于相关区域的对象的一部分。
  • CONFIDENCE_MASK:一个通道列表,其中包含一个采用 float32 格式的分割掩码和像素值。每个像素值表示其属于相应区域所处对象一部分的置信度。

配置选项

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

选项名称 说明 值范围 默认值
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

模型

交互式图像分割器可用于多个机器学习模型。开始使用此任务进行开发时,请先使用适用于目标平台的默认推荐模型。其他可用模型通常会在性能、准确性、分辨率和资源要求之间进行权衡,在某些情况下,还会包含其他功能。

该模型可根据关注区域的图片坐标来识别线段。该模型使用具有自定义解码器的卷积神经网络(类似于 MobileNetV3 架构)。

模型名称 输入形状 量化类型 模型卡片 Versions
MagicTouch 512 x 512 x 4 无 (float32) 信息 最新动态

任务基准

以下是基于上述预训练模型的整个流水线的任务基准。延迟时间结果是 Pixel 6 使用 CPU / GPU 时的平均延迟时间。

模型名称 CPU 延迟时间 GPU 延迟时间
MagicTouch 130.11 毫秒 67.25 毫秒