交互式图像分割任务指南

并排显示的图片,一张图片显示一把椅子的照片,另一张图片显示椅子突出显示,以指明模型已检测到椅子

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

试试吧!

开始使用

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

任务详情

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

功能

  • 输入图片处理 - 处理包括图片旋转、调整大小、归一化和颜色空间转换。
任务输入 任务输出
  • 图片中对象的兴趣点坐标
  • 要处理的图片文件
Interactive Image Segmenter 会输出经过分割的图片数据,其中可能包括以下一个或两个部分,具体取决于您设置的配置选项:
  • 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 架构类似的卷积神经网络,并配有自定义解码器。

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

任务基准

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

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