sam-hq

SysCVApache-2.0长期未更新

在 SAM 基础上做高质量分割的升级版,能输出更精细的边缘和掩码,适合需要高精度抠图与标注的场景。

Segment Anything in High Quality [NeurIPS 2023]

暂无版本4,268star +1 / 7 天260fork同步于 2026-11-10 11:38 UTC

怎么上手

由 README 提炼,执行前请确认
pip install segment-anything-hq
git clone https://github.com/SysCV/sam-hq.git
cd sam-hq; pip install -e .
硬件要求按 README 说明

README 未说明具体显存要求;提供 ViT-Tiny 轻量版用于实时场景(41.2 FPS),代码建议安装 CUDA 版 PyTorch 与 TorchVision。

支持 Apple Silicon需要 CUDA
下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

在 SAM 基础上做高质量零样本分割的升级版模型,解决复杂结构物体掩码边缘粗糙的问题

在 SAM 基础上做高质量分割的升级版,能输出更精细的边缘和掩码,适合需要高精度抠图与标注的场景。

核心能力

  • 引入可学习 High-Quality Output Token 注入掩码解码器
  • 融合早期与最终 ViT 特征提升掩码细节
  • 仅新增少量参数并保留 SAM 预训练权重
  • 提供 ViT-B/L/H 及 TinyViT 轻量版本
  • 支持 pip 安装与 ONNX 导出

容易踩的坑

需自行下载模型 checkpoint 并放入 pretrained_checkpoint 目录;掩码后处理、COCO 保存和 ONNX 导出需额外安装 opencv-python、pycocotools、onnxruntime、onnx、timm;README 中示例导入路径有 segment_anything 与 segment_anything_hq 两种写法,注意与安装方式对应。

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

0 个版本

暂无 release 数据(可能没有发版,或尚未同步)。

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    Segment Anything in High Quality

    Huggingfaces Open in OpenXLab Downloads

    Segment Anything in High Quality
    NeurIPS 2023
    ETH Zurich & HKUST

    We propose HQ-SAM to upgrade SAM for high-quality zero-shot segmentation. Refer to our paper for more details.

    Latest updates

    2025/06 -- :fire::fire: HQ-SAM is supported in the Huggingface Transformers library. Please see the detailed usage instruction here. The pretrained model checkpoints can also be downloaded at here.

    2024/11/17 -- HQ-SAM 2 is released

    • A new suite of improved model checkpoints (denoted as HQ-SAM 2, beta-version) are released. See Model Description for details. Change working directory by cd sam-hq2

    HQ-SAM2 results comparison

    Updates

    :fire::fire: SAM for Video Segmentation: Interested in intersecting SAM and video? HQ-SAM is supported by DEVA in its text-prompted mode! Also, check the work MASA and SAM-PT with SAM.

    :fire::fire: SAM in 3D: Interested in intersecting SAM and 3D Gaussian Splatting? See our new work Gaussian Grouping! Also, if you are interested in intersecting SAM and NeRF, please see work SANeRF-HQ!

    More: HQ-SAM is adopted in Osprey, CaR, SpatialRGPT, GLaMM, ENIGMA-51 to provide fine-grained mask annotations.

    Platform integration: HQ-SAM is supported in the OpenMMLab PlayGround for annotation with Label-Studio, in segment-geospatial for segmenting geospatial data, and mask annotation tool ISAT, and Supervisely!

    2023/08/11: Support python package for easier pip installation. Light HQ-SAM is in EfficientSAM series combining with Grounded SAM!

    :rocket::rocket: 2023/07/17: We released Light HQ-SAM using TinyViT as backbone, for both fast and high-quality zero-shot segmentation, which reaches 41.2 FPS. Refer to Light HQ-SAM vs. MobileSAM for more details.

    :trophy::1st_place_medal: 2023/07/14: Grounded HQ-SAM obtains the first place:1st_place_medal: in the Segmentation in the Wild competition on zero-shot track (hosted in CVPR 2023 workshop), outperforming Grounded SAM. Refer to our SGinW evaluation for more details.

    2023/07/05: We released SAM tuning instuctions and HQSeg-44K data.

    2023/07/04: HQ-SAM is adopted in SAM-PT to improve the SAM-based zero-shot video segmentation performance. Also, HQ-SAM is used in Grounded-SAM, Inpaint Anything and HQTrack (2nd in VOTS 2023).

    2023/06/28: We released the ONNX export script and colab notebook for exporting and using ONNX model.

    2023/06/23: Play with HQ-SAM demo at Huggingfaces, which supports point, box and text prompts.

    2023/06/14: We released the colab demo and automatic mask generator notebook.

    2023/06/13: We released the model checkpoints and demo visualization codes.

    Visual comparison between SAM and HQ-SAM

    SAM vs. HQ-SAM

    Introduction

    The recent Segment Anything Model (SAM) represents a big leap in scaling up segmentation models, allowing for powerful zero-shot capabilities and flexible prompting. Despite being trained with 1.1 billion masks, SAM's mask prediction quality falls short in many cases, particularly when dealing with objects that have intricate structures. We propose HQ-SAM, equipping SAM with the ability to accurately segment any object, while maintaining SAM's original promptable design, efficiency, and zero-shot generalizability. Our careful design reuses and preserves the pre-trained model weights of SAM, while only introducing minimal additional parameters and computation. We design a learnable High-Quality Output Token, which is injected into SAM's mask decoder and is responsible for predicting the high-quality mask. Instead of only applying it on mask-decoder features, we first fuse them with early and final ViT features for improved mask details. To train our introduced learnable parameters, we compose a dataset of 44K fine-grained masks from several sources. HQ-SAM is only trained on the introduced detaset of 44k masks, which takes only 4 hours on 8 GPUs. We show the efficacy of HQ-SAM in a suite of 9 diverse segmentation datasets across different downstream tasks, where 7 out of them are evaluated in a zero-shot transfer protocol.

    Quantitative comparison between SAM and HQ-SAM

    Note: For box-prompting-based evaluation, we feed SAM, MobileSAM and our HQ-SAM with the same image/video bounding boxes and adopt the single mask output mode of SAM.

    We provide comprehensive performance, model size and speed comparison on SAM variants:

    Various ViT backbones on COCO:

    backbones Note: For the COCO dataset, we use a SOTA detector FocalNet-DINO trained on the COCO dataset as our box prompt generator.

    YTVIS and HQ-YTVIS

    Note:Using ViT-L backbone. We adopt the SOTA detector Mask2Former trained on the YouTubeVIS 2019 dataset as our video boxes prompt generator while reusing its object association prediction. ytvis

    DAVIS

    Note: Using ViT-L backbone. We adopt the SOTA model XMem as our video boxes prompt generator while reusing its object association prediction. davis

    Quick Installation via pip

    pip install segment-anything-hq
    python
    from segment_anything_hq import sam_model_registry
    model_type = "<model_type>" #"vit_l/vit_b/vit_h/vit_tiny"
    sam_checkpoint = "<path/to/checkpoint>"
    sam = sam_model_registry[model_type](https://github.com/SysCV/sam-hq/blob/HEAD/checkpoint=sam_checkpoint)
    

    see specific usage example (such as vit-l) by running belowing command:

    export PYTHONPATH=$(pwd)
    python demo/demo_hqsam_pip_example.py
    

    Standard Installation

    The code requires python>=3.8, as well as pytorch>=1.7 and torchvision>=0.8. Please follow the instructions here to install both PyTorch and TorchVision dependencies. Installing both PyTorch and TorchVision with CUDA support is strongly recommended.

    Clone the repository locally and install with

    git clone https://github.com/SysCV/sam-hq.git
    cd sam-hq; pip install -e .
    

    The following optional dependencies are necessary for mask post-processing, saving masks in COCO format, the example notebooks, and exporting the model in ONNX format. jupyter is also required to run the example notebooks.

    pip install opencv-python pycocotools matplotlib onnxruntime onnx timm
    

    Example conda environment setup

    conda create --name sam_hq python=3.8 -y
    conda activate sam_hq
    conda install pytorch==1.10.0 torchvision==0.11.0 cudatoolkit=11.1 -c pytorch -c nvidia
    pip install opencv-python pycocotools matplotlib onnxruntime onnx timm
    
    # under your working directory
    git clone https://github.com/SysCV/sam-hq.git
    cd sam-hq
    pip install -e .
    export PYTHONPATH=$(pwd)
    

    Model Checkpoints

    Three HQ-SAM model versions of the model are available with different backbone sizes. These models can be instantiated by running

    from segment_anything import sam_model_registry
    sam = sam_model_registry["<model_type>"](https://github.com/SysCV/sam-hq/blob/HEAD/checkpoint="<path/to/checkpoint>")
    

    Download the provided trained model below and put them into the pretrained_checkpoint folder:

    mkdir pretrained_checkpoint
    

    Click the links below to download the checkpoint for the corresponding model type. We also provide alternative model downloading links here or at hugging face.

    Getting Started

    First download a model checkpoint. Then the model can be used in just a few lines to get masks from a given prompt:

    from segment_anything import SamPredictor, sam_model_registry
    sam = sam_model_registry["<model_type>"](https://github.com/SysCV/sam-hq/blob/HEAD/checkpoint="<path/to/checkpoint>")
    predictor = SamPredictor(sam)
    predictor.set_image(<your_image>)
    masks, _, _ = predictor.predict(<input_prompts>)
    

    Additionally, see the usage examples in our demo , colab notebook and automatic mask generator notebook.

    To obtain HQ-SAM's visual result:

    python demo/demo_hqsam.py
    

    To obtain baseline SAM's visual result. Note that you need to download original SAM checkpoint from baseline-SAM-L model and put it into the pretrained_checkpoint folder.

    python demo/demo_sam.py
    

    To obtain Light HQ-SAM's visual result:

    python demo/demo_hqsam_light.py
    

    HQ-SAM Tuning and HQ-Seg44k Data

    We provide detailed training, evaluation, visualization and data downloading instructions in HQ-SAM training. You can also replace our training data to obtain your own SAM in specific application domain (like medical, OCR and remote sensing).

    Please change the current folder path to:

    cd train
    

    and then refer to detailed readme instruction.

    Grounded HQ-SAM vs Grounded SAM on SegInW

    Grounded HQ-SAM wins the first place:1st_place_medal: on SegInW benchmark (consist of 25 public zero-shot in the wild segmentation datasets), and outpuerforming Grounded SAM using the same grounding-dino detector.

    Please change the current folder path to:

    cd seginw
    

    We provide detailed evaluation instructions and metrics on SegInW in Grounded-HQ-SAM evaluation.

    Light HQ-SAM vs MobileSAM on COCO

    We propose Light HQ-SAM based on the tiny vit image encoder provided by MobileSAM. We provide quantitative comparison on zero-shot COCO performance, speed and memory below. Try Light HQ-SAM at here.

    Note: For the COCO dataset, we use the same SOTA detector FocalNet-DINO trained on the COCO dataset as our and Mobile sam's box prompt generator.

    ONNX export

    HQ-SAM's lightweight mask decoder can be exported to ONNX format so that it can be run in any environment that supports ONNX runtime. Export the model with

    python scripts/export_onnx_model.py --checkpoint <path/to/checkpoint> --model-type <model_type> --output <path/to/output>
    

    See the example notebook for details on how to combine image preprocessing via HQ-SAM's backbone with mask prediction using the ONNX model. It is recommended to use the latest stable version of PyTorch for ONNX export.

    Citation

    If you find HQ-SAM useful in your research or refer to the provided baseline results, please star :star: this repository and consider citing :pencil::

    @inproceedings{sam_hq,
        title={Segment Anything in High Quality},
        author={Ke, Lei and Ye, Mingqiao and Danelljan, Martin and Liu, Yifan and Tai, Yu-Wing and Tang, Chi-Keung and Yu, Fisher},
        booktitle={NeurIPS},
        year={2023}
    }  
    

    Related high-quality instance segmentation work:

    @inproceedings{transfiner,
        title={Mask Transfiner for High-Quality Instance Segmentation},
        author={Ke, Lei and Danelljan, Martin and Li, Xia and Tai, Yu-Wing and Tang, Chi-Keung and Yu, Fisher},
        booktitle={CVPR},
        year={2022}
    }
    

    Acknowledgments