【图像处理基石】Segment Anything Model (SAM) 调研
Segment Anything Model (SAM) 是由 Meta AI 开发的革命性图像分割模型,它能够对图像中的任何物体进行分割,无需针对特定类别进行训练。SAM 具有以下特点:
- 通用性:可以分割任何视觉对象,无论是否见过该类别
- 灵活性:支持多种输入提示(点、框、掩码或文本)
- 实时性:在普通 GPU 上可实现实时分割
- 零样本迁移能力:可直接应用于新的图像分布和任务
SAM 的核心是一个Transformer架构的编码器和一个轻量级解码器,能够根据输入提示高效生成高质量的分割掩码。
使用代码案例
以下是使用 Segment Anything Model 进行图像分割的示例代码:
import numpy as np
import torch
import matplotlib.pyplot as plt
from PIL import Image
import requests
from io import BytesIO
from 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