
项目概述
该仓库是Meta AI Research(FAIR)开源的Segment Anything项目,核心是Segment Anything Model(SAM)——一款针对图像分割任务的基础模型。项目提供了模型推理代码、预训练权重下载链接及使用示例,旨在帮助开发者快速应用SAM进行图像分割任务。截至目前,仓库获得超过52k Star、6.1k Fork,是计算机视觉领域备受关注的开源项目。
核心功能
SAM的核心能力是基于提示的视觉分割:
1. prompt 驱动分割:能根据用户输入的点(如物体上的一个点)、框(如物体边界框)等提示,生成对应物体的高质量掩码(mask);
2. 全图自动分割:支持对整张图像中的所有物体自动生成掩码,无需人工提示;
3. 零样本泛化:模型训练于1.1亿个掩码、1100万张图像的大规模数据集(SA1B),能在未见过的任务或场景中保持强性能。
安装与依赖
1. 基础依赖:需Python≥3.8,PyTorch≥1.7(推荐带CUDA支持的版本以加速推理);
2. 安装方式:
直接通过pip安装:`pip install git+https://github.com/facebookresearch/segmentanything.git`;
克隆仓库后本地安装:`git clone git@github.com:facebookresearch/segmentanything.git && cd segmentanything && pip install e .`;
3. 可选依赖:`opencvpython`(掩码后处理)、`pycocotools`(COCO格式掩码保存)、`matplotlib`(可视化)、`onnxruntime`(ONNX模型推理)等,用于示例 notebooks 或模型导出。
使用方法
1. 下载模型权重:提供3种不同 backbone 大小的预训练权重,对应模型类型及下载链接:
`vit_h`(默认):[ViTH SAM模型](https://dl.fbaipublicfiles.com/segment_anything/sam_vit_h_4b8939.pth);
`vit_l`:[ViTL SAM模型](https://dl.fbaipublicfiles.com/segment_anything/sam_vit_l_0b3195.pth);
`vit_b`:[ViTB SAM模型](https://dl.fbaipublicfiles.com/segment_anything/sam_vit_b_01ec64.pth);
2. 快速推理示例:
提示驱动分割:使用`SamPredictor`加载模型,输入图像和提示(如点/框),生成掩码;
全图自动分割:使用`SamAutomaticMaskGenerator`自动生成图像中所有物体的掩码;
命令行工具:通过`scripts/amg.py`脚本,从命令行批量处理图像(需指定权重路径、模型类型、输入/输出目录)。
扩展能力:ONNX导出与Web Demo
1. ONNX模型导出:可将SAM的轻量级掩码解码器导出为ONNX格式,支持跨平台推理(如浏览器)。导出命令:`python scripts/export_onnx_model.py checkpoint modeltype output `;
2. Web Demo:`demo/`目录提供React单页应用,展示如何在浏览器中通过多线程运行ONNX模型,实现实时掩码预测(需参考`demo/README.md`配置)。
数据集
项目配套的SA1B数据集是目前最大的图像分割数据集之一,包含1100万张图像、1.1亿个掩码。数据集以JSON格式存储,每个图像对应一条记录,包含:
`image_info`:图像ID、尺寸、文件名;
`annotations`:掩码(COCO RLE格式)、边界框、面积、质量分数(如`predicted_iou`)等。
数据集可通过[Meta官网](https://ai.facebook.com/datasets/segmentanythingdownloads/)下载(需同意SA1B数据集研究许可证)。
许可证与贡献
许可证:模型及代码遵循[Apache 2.0许可证](https://github.com/facebookresearch/segmentanything/blob/main/LICENSE),允许商业使用;
贡献:欢迎社区贡献,需遵循[贡献指南](https://github.com/facebookresearch/segmentanything/blob/main/CONTRIBUTING.md)和[行为准则](https://github.com/facebookresearch/segmentanything/blob/main/CODE_OF_CONDUCT.md);
引用:若使用SAM或SA1B数据集,需引用论文:
“`bibtex
@article{kirillov2023segany,
title={Segment Anything},
author={Kirillov, Alexander and Mintun, Eric and Ravi, Nikhila and Mao, Hanzi and Rolland, Chloe and Gustafson, Laura and Xiao, Tete and Whitehead, Spencer and Berg, Alexander C. and Lo, WanYen and Doll{‘a}r, Piotr and Girshick, Ross},
journal={arXiv:2304.02643},
year={2023}
}
“`
总结
该仓库是使用SAM进行图像分割的核心资源,覆盖了从安装、推理到扩展的全流程支持,适合计算机视觉开发者快速上手图像分割任务,或基于SAM进行二次开发。
相关导航


GitHub – meta-llama/codellama: Inference code for CodeLlama models
![GitHub – yangxy/PASD: [ECCV2024] Pixel-Aware Stable Diffusion for Realistic Image Super-Resolution and Personalized Stylization](https://zaixiandaohang.com/wp-content/themes/onenav/assets/images/favicon.png)
GitHub – yangxy/PASD: [ECCV2024] Pixel-Aware Stable Diffusion for Realistic Image Super-Resolution and Personalized Stylization

AIGC系统程序源码_AI绘画做图_AI机器人模型训练_企业级AI平台系统_长臂猿

SoraWebui: Open Source Text-to-Video Webui with OpenAI’s Sora Model.

IP-Adapter

GitHub – Hillobar/Rope: GUI-focused roop
