
SAM2来了!Meta新一代"分割一切"模型如何颠覆图像与视频处理?
2023年,Meta发布的 SAM(Segment Anything Model) 成为AI分割领域的里程碑,而2024年推出的 SAM2 更进一步,不仅优化了图像分割精度,还新增了视频实时分割能力,速度提升6倍!无论是自动驾驶中的物体识别,还是影视后期的智能抠像,SAM2都能提供高效解决方案。
1. SAM2 是什么?
SAM2 是Meta开源的多模态视觉分割模型,核心特点包括:
- 图像+视频双支持:可处理单张图片,也能对视频流进行逐帧分割。
- 零样本泛化:无需额外训练,直接分割未见过的物体(如陌生动物、特殊器械)。
- 交互式提示 :通过点击、框选、掩码等方式指定分割目标,适合精细化编辑。
- 记忆模块:引入时空记忆机制,解决视频中物体遮挡、形变等难题。
性能对比(SAM vs. SAM2)
特性 | SAM | SAM2 |
---|---|---|
分割速度(FPS) | ~7 | 44 |
视频支持 | ❌ | ✅ |
长时遮挡处理 | 弱 | 强 |
多提示交互 | 基础 | 优化 |
2. 快速安装SAM2
环境要求
- Python ≥ 3.10
- PyTorch ≥ 2.3.1
- CUDA 12.1(推荐)
安装步骤
bash
# 克隆官方仓库
git clone https://github.com/facebookresearch/segment-anything-2.git
cd segment-anything-2
# 安装依赖(需耐心等待)
pip install -e .
# 下载预训练模型(以hiera_large为例)
wget https://dl.fbaipublicfiles.com/segment_anything_2/092824/sam2.1_hiera_large.pt -P checkpoints/
说明:checkpoints 中额外提供了 tiny、small 等模型,可根据实际环境选择不同的模型
3. 实战:用SAM2分割图像
为了显示蒙上去的效果需要在额外安装 matplotlib
这个库, pip install matplotlib
python
import torch
from sam2.build_sam import build_sam2
from sam2.sam2_image_predictor import SAM2ImagePredictor
import matplotlib.pyplot as plt
import numpy as np
from PIL import Image
checkpoint = "./checkpoints/sam2.1_hiera_large.pt"
model_cfg = "configs/sam2.1/sam2.1_hiera_l.yaml"
predictor = SAM2ImagePredictor(build_sam2(model_cfg, checkpoint))
# 读取图片并设置提示点(前景点坐标)
image = Image.open("car.jpg").convert("RGB")
input_point = np.array([[2152, 1549]]) # 目标点坐标
input_label = np.array([1]) # 1=前景,0=背景
predictor.set_image(image)
# 生成分割掩码
masks, scores, _ = predictor.predict(
point_coords=input_point,
point_labels=input_label,
multimask_output=True # 输出多个候选掩码
)
# 可视化结果(选择分数最高的掩码)
best_mask = masks[np.argmax(scores)]
plt.imshow(image)
plt.imshow(best_mask, alpha=0.5) # 半透明叠加
plt.show()
可以看到当把目标检测点的位置设置在车头时候,sam2 自动把整个车身分割出来了

4. 应用场景
- 影视后期:一键抠像换背景,比传统绿幕效率提升10倍。
- 医学影像:精准分割肿瘤区域,辅助诊断。
- 自动驾驶:实时识别道路行人、车辆。
- 电商设计:批量生成商品透明底图,节省人工成本。
5. 局限性
- 长视频稳定性:超过5分钟的视频可能丢失追踪目标。
- 细小物体:对像素级细节(如发丝)的分割仍需优化。
结语
SAM2的推出,让零门槛、高精度分割成为现实。无论是开发者还是行业用户,都能通过其开源代码快速集成到项目中。
🚀 立即体验:
- 项目地址:GitHub - segment-anything-2
- 在线Demo:Sam2 Demo