HQ-SAM代码复现

本文介绍了如何快速和标准方式安装及配置HQ-SAM库,包括环境设置(PyTorch、TorchVision等),从GitHub克隆仓库,安装依赖,创建conda环境,以及加载不同规模的预训练模型。提供详细步骤以供用户在PyCharm中实现高质量图像分割任务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

代码地址SysCV/sam-hq: Segment Anything in High Quality [NeurIPS 2023] (github.com)

一:快速安装

适用于已经配好环境,可以直接上手使用。对于新手不推荐使用这种方式,不太容易看懂。

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](checkpoint=sam_checkpoint)
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](checkpoint=sam_checkpoint)

这段代码的意思是找到这个 segment_anything_hq 所在的位置,然后修改下面模型的名字和模型的地址。 

可以通过运行下面这个命令具体使用用例

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

二:标准安装

2.1环境配置

需要的环境有PyTorch和TorchVision依赖项,安装支持CUDA的PyTorch和TorchVision。

PyTorch官网地址Start Locally | PyTorch

pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118

具体安装Pytorch可以查看这篇文章在PyCharm中安装Pytorch的GPU版本-优快云博客

我这边做一个简单的介绍,在官网中找到符合自己型号的cuda,然后复制下面的命令到PyCharm中去下载。

pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118

2.2在本地克隆储存库并使用

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

2.3安装依赖项

用于掩码后处理,以COCO格式保存掩码、示例笔记本以及ONNX格式导出模型是必需的。juptyer也需要运行notebooks。

pip install opencv-python pycocotools matplotlib onnxruntime onnx timm

2.4conda环境的创建

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)

2.5模型检查点

HQ-SAM模型有三种不同的型号版本,对应不用的主干尺寸。这些模型可以直接使用。

我们首先先创建一个文件夹,文件夹就按这下面的命令创建。然后把下载的模型放到这个文件夹中。

mkdir pretrained_checkpoint

然后下载模型 ,由下面这张图我们可以看出,由B到L,再到H,模型的大小是越来越来大的,对应的推理速度也是越来越慢。

from segment_anything import sam_model_registry
sam = sam_model_registry["<model_type>"](checkpoint="<path/to/checkpoint>")

上面这段代码的意思是,找到segment_anything所在的模块,然后修改下面模型的名称和模型的位置。模型在以下这个位置。

修改下面这两个地方。

2.6开始使用

配置完环境,修改完路径和名称就可以使用了。

要想获得HQ-SAM的视觉效果

python demo/demo_hqsam.py

 

 

 

 

03-25
### HQ-SAM 技术概述 HQ-SAM 是一种用于提升 Segment Anything Model (SAM) 性能的技术方案,旨在实现高质量的零样本分割。它通过对 SAM 进行轻量化改进,在几乎不影响性能的情况下显著提升了分割质量[^1]。 #### 关键技术特点 - **高质量令牌(HQ-Output Token)** HQ-SAM 提出了一个新的高质量输出令牌,替代了原始 SAM 中的标准输出令牌。这一改动使得模型能够更精确地预测掩码,从而提高分割的质量[^3]。 - **全局-本地特征融合** 此外,HQ-SAM 引入了一种机制来融合全局和局部特征,这有助于更好地捕捉不同尺度下的细节信息,进一步增强分割效果。 #### 训练与推理效率 HQ-SAM 的设计不仅关注分割质量,还注重计算资源的有效利用。相比基础版 SAMHQ-SAM 增加的参数量不到 0.5%,而推理速度仍保持在原速度的 96% 左右。更重要的是,HQ-SAM 可以在较少的数据集上完成训练——只需约 44,000 个高精度掩码即可达到理想的效果,远低于 SAM 需要的 11 亿个掩码[^2]。 #### 应用场景 HQ-SAM 不仅适用于静态图像分割任务,还在多个视频分割基准测试中表现出色。它的零样本迁移能力使其能够在未见过的对象类别和复杂场景下依然提供可靠的分割结果。 --- ### HQ-SAM 使用说明 为了充分利用 HQ-SAM 的功能,开发者可以通过 API 调用来控制具体行为。相比于传统的配置文件方式,HQ-SAM 更倾向于动态传递参数,这意味着可以根据实际需求灵活调整输入设置[^4]。 以下是使用 HQ-SAM 的基本代码示例: ```python from hq_sam import HQSAM # 初始化 HQ-SAM 模型 model = HQSAM(model_type="vit_l", checkpoint_path="path/to/checkpoint") # 加载图片并指定目标区域 image = load_image("example.jpg") points = [(100, 200), (300, 400)] # 用户定义的目标点坐标 # 推理阶段 masks, scores = model.predict(image=image, points=points) # 输出结果 for i, mask in enumerate(masks): save_mask(f"mask_{i}.png", mask) ``` 上述代码展示了如何加载预训练权重、处理输入数据以及获取最终的分割掩码。 --- ###
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lylsalt

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值