> 技术文档 > 【图像处理基石】Segment Anything Model (SAM) 调研

【图像处理基石】Segment Anything Model (SAM) 调研

在这里插入图片描述

Segment Anything Model (SAM) 是由 Meta AI 开发的革命性图像分割模型,它能够对图像中的任何物体进行分割,无需针对特定类别进行训练。SAM 具有以下特点:

  • 通用性:可以分割任何视觉对象,无论是否见过该类别
  • 灵活性:支持多种输入提示(点、框、掩码或文本)
  • 实时:在普通 GPU 上可实现实时分割
  • 零样本迁移能力:可直接应用于新的图像分布和任务

SAM 的核心是一个Transformer架构的编码器和一个轻量级解码器,能够根据输入提示高效生成高质量的分割掩码。

使用代码案例

以下是使用 Segment Anything Model 进行图像分割的示例代码:

import numpy as npimport torchimport matplotlib.pyplot as pltfrom PIL import Imageimport requestsfrom io import BytesIOfrom segment_anything import sam_model_registry, SamPredictor# 设置中文字体plt.rcParams[\"font.family\"] = [\"SimHei\", \"WenQuanYi Micro Hei\", \"Heiti TC\"]def load_image(url): \"\"\"从URL加载图像\"\"\" response = requests.get(url) image = Image.open(BytesIO(response.content)).convert(\"RGB\") return np.array(image)def show_mask(mask, ax, random_color=False): \"\"\"显示分割掩码\"\"\" if random_color: color = np.concatenate([np.random.random(3), np.array