041掩码生成 (Mask Generation)
掩码生成 (Mask Generation)¶
掩码生成是指为图像生成具有语义意义的掩码的任务。这项任务与图像分割非常相似,但有许多不同之处。图像分割模型是在标注数据集上训练的,因此它们仅限于在训练过程中见过的类别;给定一张图像,它们会返回一组掩码及其对应的类别。
掩码生成模型则是在大量数据上训练的,并且以两种模式运行:
- 提示模式:在这种模式下,模型接收一张图像和一个提示,提示可以是图像中某个对象内的二维点位置(XY 坐标)或围绕对象的边界框。在提示模式下,模型只返回提示指向的对象的掩码。
- 分割一切模式:在分割一切模式下,给定一张图像,模型会生成图像中的每个掩码。为此,会在图像上生成一个点网格并进行推理。
掩码生成任务由 Segment Anything Model (SAM) 支持。这是一个强大的模型,包括基于视觉 Transformers 的图像编码器、提示编码器和双向 Transformers 掩码解码器。图像和提示被编码,解码器接收这些嵌入并生成有效的掩码。

SAM 是一个强大的基础模型,因为它覆盖了大量数据。它是在 SA-1B 数据集上训练的,该数据集包含 100 万张图像和 11 亿个掩码。
在本指南中,您将学习如何:
- 使用批量处理进行分割一切模式的推理,
- 进行点提示模式的推理,
- 进行框提示模式的推理。
首先,让我们安装 transformers: