Team Ai
Modelpublic

BioMike/clipsegmulticlass_v1

sourceHugging Faceupdated 2y agoView on Hugging Face
0likes6downloads
Model Card

๐Ÿง  ClipSegMultiClass

Multiclass semantic segmentation using CLIP + CLIPSeg. Fine-tuned version of `CIDAS/clipseg-rd64-refined` Supports multiple classes in a single forward pass.


๐Ÿ”ฌ Model

Name: `BioMike/clipsegmulticlass_v1` Repository: github.com/BioMikeUkr/clipsegmulticlass Base: CIDAS/clipseg-rd64-refined Classes: ["background", "Pig", "Horse", "Sheep"] Image Size: 352ร—352 Trained on: OpenImages segmentation subset (custom fruit/animal dataset)


๐Ÿ“Š Evaluation

ModelPrecisionRecallF1 ScoreAccuracy
CIDAS/clipseg-rd64-refined0.52390.21140.28820.2665
BioMike/clipsegmulticlass_v10.74600.50350.60090.6763

๐ŸŽฎ Demo

๐Ÿ‘‰ Try it online: Hugging Face Space ๐Ÿš€


๐Ÿ“ฆ Usage

python
from PIL import Image
import torch
import matplotlib.pyplot as plt
import numpy as np
from model import ClipSegMultiClassModel
from config import ClipSegMultiClassConfig

# Load model
model = ClipSegMultiClassModel.from_pretrained("trained_clipseg_multiclass").to("cuda").eval()
config = model.config  # contains label2color

# Load image
image = Image.open("pigs.jpg").convert("RGB")

# Run inference
mask = model.predict(image)  # shape: [1, H, W]

# Visualize
def visualize_mask(mask_tensor: torch.Tensor, label2color: dict):
    if mask_tensor.dim() == 3:
        mask_tensor = mask_tensor.squeeze(0)

    mask_np = mask_tensor.cpu().numpy().astype(np.uint8)  # [H, W]
    h, w = mask_np.shape
    color_mask = np.zeros((h, w, 3), dtype=np.uint8)

    for class_idx, color in label2color.items():
        color_mask[mask_np == class_idx] = color

    return color_mask

color_mask = visualize_mask(mask, config.label2color)

plt.imshow(color_mask)
plt.axis("off")
plt.title("Predicted Segmentation Mask")
plt.show()