huggingface.co
Total runs: 46
24-hour runs: 0
7-day runs: -2
30-day runs: -170
Model's Last Updated: April 19 2024
feature-extraction

Introduction of SegVol

Model Details of SegVol

image/jpeg

Language: [EN / ZH]

The SegVol is a universal and interactive model for volumetric medical image segmentation. SegVol accepts point, box, and text prompts while output volumetric segmentation. By training on 90k unlabeled Computed Tomography (CT) volumes and 6k labeled CTs, this foundation model supports the segmentation of over 200 anatomical categories.

SegVol是用于体积医学图像分割的通用交互式模型,可以使用点,框和文本作为prompt驱动模型,输出分割结果。

通过在90k个无标签CT和6k个有标签CT上进行训练,该基础模型支持对200多个解剖类别进行分割。

Paper , Code Demo 已发布。

Keywords : 3D medical SAM, volumetric image segmentation

Quicktart
Requirements
conda create -n segvol_transformers python=3.8
conda activate segvol_transformers

pytorch v1.11.0 or higher version is required. Please also install the following support packages:

需要 pytorch v1.11.0 或更高版本。另外请安装如下支持包:

pip install 'monai[all]==0.9.0'
pip install einops==0.6.1
pip install transformers==4.18.0
pip install matplotlib
Test script
from transformers import AutoModel, AutoTokenizer
import torch
import os

# get device
device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")

# load model
clip_tokenizer = AutoTokenizer.from_pretrained("BAAI/SegVol")
model = AutoModel.from_pretrained("BAAI/SegVol", trust_remote_code=True, test_mode=True)
model.model.text_encoder.tokenizer = clip_tokenizer
model.eval()
model.to(device)
print('model load done')

# set case path
ct_path = 'path/to/Case_image_00001_0000.nii.gz'
gt_path = 'path/to/Case_label_00001.nii.gz'

# set categories, corresponding to the unique values(1, 2, 3, 4, ...) in ground truth mask
categories = ["liver", "kidney", "spleen", "pancreas"]

# generate npy data format
ct_npy, gt_npy = model.processor.preprocess_ct_gt(ct_path, gt_path, category=categories)
# IF you have download our 25 processed datasets, you can skip to here with the processed ct_npy, gt_npy files

# go through zoom_transform to generate zoomout & zoomin views
data_item = model.processor.zoom_transform(ct_npy, gt_npy)

# add batch dim manually
data_item['image'], data_item['label'], data_item['zoom_out_image'], data_item['zoom_out_label'] = \
data_item['image'].unsqueeze(0).to(device), data_item['label'].unsqueeze(0).to(device), data_item['zoom_out_image'].unsqueeze(0).to(device), data_item['zoom_out_label'].unsqueeze(0).to(device)

# take liver as the example
cls_idx = 0

# text prompt
text_prompt = [categories[cls_idx]]

# point prompt
point_prompt, point_prompt_map = model.processor.point_prompt_b(data_item['zoom_out_label'][0][cls_idx], device=device)   # inputs w/o batch dim, outputs w batch dim

# bbox prompt
bbox_prompt, bbox_prompt_map = model.processor.bbox_prompt_b(data_item['zoom_out_label'][0][cls_idx], device=device)   # inputs w/o batch dim, outputs w batch dim

print('prompt done')

# segvol test forward
# use_zoom: use zoom-out-zoom-in
# point_prompt_group: use point prompt
# bbox_prompt_group: use bbox prompt
# text_prompt: use text prompt
logits_mask = model.forward_test(image=data_item['image'],
      zoomed_image=data_item['zoom_out_image'],
      # point_prompt_group=[point_prompt, point_prompt_map],
      bbox_prompt_group=[bbox_prompt, bbox_prompt_map],
      text_prompt=text_prompt,
      use_zoom=True
      )

# cal dice score
dice = model.processor.dice_score(logits_mask[0][0], data_item['label'][0][cls_idx], device)
print(dice)

# save prediction as nii.gz file
save_path='./Case_preds_00001.nii.gz'
model.processor.save_preds(ct_path, save_path, logits_mask[0][0], 
                           start_coord=data_item['foreground_start_coord'], 
                           end_coord=data_item['foreground_end_coord'])
print('done')
Training script
from transformers import AutoModel, AutoTokenizer
import torch
import os

# get device
device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")

# load model
clip_tokenizer = AutoTokenizer.from_pretrained("BAAI/SegVol")
model = AutoModel.from_pretrained("BAAI/SegVol", trust_remote_code=True, test_mode=False)
model.model.text_encoder.tokenizer = clip_tokenizer
model.train()
model.to(device)
print('model load done')

# set case path
ct_path = 'path/to/Case_image_00001_0000.nii.gz'
gt_path = 'path/to/Case_label_00001.nii.gz'

# set categories, corresponding to the unique values(1, 2, 3, 4, ...) in ground truth mask
categories = ["liver", "kidney", "spleen", "pancreas"]

# generate npy data format
ct_npy, gt_npy = model.processor.preprocess_ct_gt(ct_path, gt_path, category=categories)
# IF you have download our 25 processed datasets, you can skip to here with the processed ct_npy, gt_npy files

# go through train transform
data_item = model.processor.train_transform(ct_npy, gt_npy)

# training example
# add batch dim manually
image, gt3D = data_item["image"].unsqueeze(0).to(device), data_item["label"].unsqueeze(0).to(device) # add batch dim

loss_step_avg = 0
for cls_idx in range(len(categories)):
    # optimizer.zero_grad()
    organs_cls = categories[cls_idx]
    labels_cls = gt3D[:, cls_idx]
    loss = model.forward_train(image, train_organs=organs_cls, train_labels=labels_cls)
    loss_step_avg += loss.item()
    loss.backward()
    # optimizer.step()

loss_step_avg /= len(categories)
print(f'AVG loss {loss_step_avg}')

# save ckpt
model.save_pretrained('./ckpt')
Start with M3D-Seg dataset

We have released 25 open source datasets(M3D-Seg) for training SegVol, and these preprocessed data have been uploaded to ModelScope and HuggingFace . You can use the following script to easily load cases and insert them into Test script and Training script.

我们已经发布了用于训练SegVol的25个开源数据集(M3D-Seg),并将预处理后的数据上传到了 ModelScope HuggingFace 。 您可以使用下面的script方便地载入,并插入到Test script和Training script中。

import json, os
M3D_Seg_path = 'path/to/M3D-Seg'

# select a dataset
dataset_code = '0000'

# load json dict
json_path = os.path.join(M3D_Seg_path, dataset_code, dataset_code + '.json')
with open(json_path, 'r') as f:
    dataset_dict = json.load(f)

# get a case
ct_path = os.path.join(M3D_Seg_path, dataset_dict['train'][0]['image'])
gt_path = os.path.join(M3D_Seg_path, dataset_dict['train'][0]['label'])

# get categories
categories_dict = dataset_dict['labels']
categories = [x for _, x in categories_dict.items() if x != "background"]

# load npy data format
ct_npy, gt_npy = model.processor.load_uniseg_case(ct_path, gt_path)

Runs of BAAI SegVol on huggingface.co

46
Total runs
0
24-hour runs
0
3-day runs
-2
7-day runs
-170
30-day runs

More Information About SegVol huggingface.co Model

SegVol huggingface.co

SegVol huggingface.co is an AI model on huggingface.co that provides SegVol's model effect (), which can be used instantly with this BAAI SegVol model. huggingface.co supports a free trial of the SegVol model, and also provides paid use of the SegVol. Support call SegVol model through api, including Node.js, Python, http.

SegVol huggingface.co Url

https://huggingface.co/BAAI/SegVol

BAAI SegVol online free

SegVol huggingface.co is an online trial and call api platform, which integrates SegVol's modeling effects, including api services, and provides a free online trial of SegVol, you can try SegVol online for free by clicking the link below.

BAAI SegVol online free url in huggingface.co:

https://huggingface.co/BAAI/SegVol

SegVol install

SegVol is an open source model from GitHub that offers a free installation service, and any user can find SegVol on GitHub to install. At the same time, huggingface.co provides the effect of SegVol install, users can directly use SegVol installed effect in huggingface.co for debugging and trial. It also supports api for free installation.

SegVol install url in huggingface.co:

https://huggingface.co/BAAI/SegVol

Url of SegVol

SegVol huggingface.co Url

Provider of SegVol huggingface.co

BAAI
ORGANIZATIONS

Other API from BAAI

huggingface.co

Total runs: 6.0M
Run Growth: 812.1K
Growth Rate: 13.68%
Updated: February 22 2024
huggingface.co

Total runs: 2.2M
Run Growth: -2.0M
Growth Rate: -90.33%
Updated: February 21 2024
huggingface.co

Total runs: 2.1M
Run Growth: -107.9K
Growth Rate: -5.04%
Updated: July 03 2024
huggingface.co

Total runs: 1.6M
Run Growth: -464.9K
Growth Rate: -28.46%
Updated: February 21 2024
huggingface.co

Total runs: 781.8K
Run Growth: 150.9K
Growth Rate: 18.90%
Updated: December 13 2023
huggingface.co

Total runs: 449.9K
Run Growth: 26.8K
Growth Rate: 5.89%
Updated: October 12 2023
huggingface.co

Total runs: 192.5K
Run Growth: 19.9K
Growth Rate: 10.13%
Updated: November 14 2023
huggingface.co

Total runs: 137.3K
Run Growth: 67.1K
Growth Rate: 48.53%
Updated: October 12 2023
huggingface.co

Total runs: 52.6K
Run Growth: -28.8K
Growth Rate: -64.27%
Updated: April 17 2024
huggingface.co

Total runs: 33.5K
Run Growth: 32.2K
Growth Rate: 95.90%
Updated: October 12 2023
huggingface.co

Total runs: 28.0K
Run Growth: 11.3K
Growth Rate: 40.01%
Updated: October 12 2023
huggingface.co

Total runs: 24.9K
Run Growth: -1.4K
Growth Rate: -5.38%
Updated: October 12 2023
huggingface.co

Total runs: 20.5K
Run Growth: -12.0K
Growth Rate: -59.24%
Updated: January 15 2025
huggingface.co

Total runs: 5.6K
Run Growth: 419
Growth Rate: 7.87%
Updated: December 26 2022
huggingface.co

Total runs: 5.0K
Run Growth: 1.0K
Growth Rate: 20.73%
Updated: September 21 2023
huggingface.co

Total runs: 4.9K
Run Growth: 241
Growth Rate: 4.84%
Updated: August 15 2024
huggingface.co

Total runs: 4.5K
Run Growth: -9.5K
Growth Rate: -214.25%
Updated: February 22 2024
huggingface.co

Total runs: 2.7K
Run Growth: -491
Growth Rate: -17.93%
Updated: October 12 2023
huggingface.co

Total runs: 2.5K
Run Growth: 1.8K
Growth Rate: 70.28%
Updated: September 18 2023
huggingface.co

Total runs: 2.5K
Run Growth: 685
Growth Rate: 27.91%
Updated: August 15 2024
huggingface.co

Total runs: 2.4K
Run Growth: -11.8K
Growth Rate: -272.27%
Updated: October 23 2024
huggingface.co

Total runs: 2.3K
Run Growth: 577
Growth Rate: 24.57%
Updated: February 07 2024
huggingface.co

Total runs: 1.9K
Run Growth: -276
Growth Rate: -14.18%
Updated: November 28 2024
huggingface.co

Total runs: 1.5K
Run Growth: -3.5K
Growth Rate: -136.57%
Updated: October 23 2024
huggingface.co

Total runs: 1.3K
Run Growth: -3.0K
Growth Rate: -174.67%
Updated: October 24 2024
huggingface.co

Total runs: 747
Run Growth: 141
Growth Rate: 17.83%
Updated: June 07 2024
huggingface.co

Total runs: 732
Run Growth: -9.2K
Growth Rate: -1272.69%
Updated: March 07 2024
huggingface.co

Total runs: 637
Run Growth: 314
Growth Rate: 49.22%
Updated: April 02 2024
huggingface.co

Total runs: 615
Run Growth: 69
Growth Rate: 11.52%
Updated: October 27 2023
huggingface.co

Total runs: 558
Run Growth: 0
Growth Rate: 0.00%
Updated: January 15 2025
huggingface.co

Total runs: 439
Run Growth: 0
Growth Rate: 0.00%
Updated: January 14 2025
huggingface.co

Total runs: 301
Run Growth: 293
Growth Rate: 97.67%
Updated: April 18 2023
huggingface.co

Total runs: 218
Run Growth: -12
Growth Rate: -5.50%
Updated: October 29 2023
huggingface.co

Total runs: 146
Run Growth: -244
Growth Rate: -171.83%
Updated: August 15 2024
huggingface.co

Total runs: 114
Run Growth: 0
Growth Rate: 0.00%
Updated: January 20 2025
huggingface.co

Total runs: 96
Run Growth: 48
Growth Rate: 51.06%
Updated: August 23 2023
huggingface.co

Total runs: 96
Run Growth: 17
Growth Rate: 18.09%
Updated: December 21 2023
huggingface.co

Total runs: 84
Run Growth: 54
Growth Rate: 60.00%
Updated: August 15 2024
huggingface.co

Total runs: 65
Run Growth: 0
Growth Rate: 0.00%
Updated: January 01 2025
huggingface.co

Total runs: 64
Run Growth: -244
Growth Rate: -369.70%
Updated: June 21 2024
huggingface.co

Total runs: 52
Run Growth: -243
Growth Rate: -398.36%
Updated: June 24 2024
huggingface.co

Total runs: 47
Run Growth: -25
Growth Rate: -53.19%
Updated: October 27 2023
huggingface.co

Total runs: 46
Run Growth: -57
Growth Rate: -116.33%
Updated: December 21 2023
huggingface.co

Total runs: 39
Run Growth: -5
Growth Rate: -11.90%
Updated: August 15 2024
huggingface.co

Total runs: 37
Run Growth: 6
Growth Rate: 15.38%
Updated: August 28 2024
huggingface.co

Total runs: 36
Run Growth: -10.2K
Growth Rate: -25530.00%
Updated: February 07 2024
huggingface.co

Total runs: 34
Run Growth: -273
Growth Rate: -827.27%
Updated: June 24 2024
huggingface.co

Total runs: 26
Run Growth: 10
Growth Rate: 38.46%
Updated: July 24 2023
huggingface.co

Total runs: 21
Run Growth: -57
Growth Rate: -285.00%
Updated: December 31 2022
huggingface.co

Total runs: 18
Run Growth: -107
Growth Rate: -594.44%
Updated: May 13 2024
huggingface.co

Total runs: 17
Run Growth: -22
Growth Rate: -129.41%
Updated: July 02 2024
huggingface.co

Total runs: 15
Run Growth: -18
Growth Rate: -112.50%
Updated: December 25 2023