PixCon β€” ADE20K (Clean-Positive Contrastive SSSS)

arXiv Demo

PixCon model family β€” Pascal VOC Β· Cityscapes Β· ADE20K Β· πŸ€— Interactive demo Β· 🌐 Project page Β· πŸ’» Code Β· πŸ“„ Paper

PixCon on ADE20K β€” input (left) and predicted segmentation overlay (right)

ADE20K checkpoint for PixCon, a clean-positive pixel-contrastive framework over a DINOv2-Base encoder. PixCon adds one contrastive branch on a UniMatch V2 consistency backbone: a per-class memory bank admitting only labeled pixels the student already classifies correctly (contamination-free positive set, ρ_F = 0, by construction), with no inference-time parameters and no bank-specific threshold. See the Pascal model and the paper for the method and analysis.

  • Backbone: DINOv2-Base (ViT-B/14) + DPT-lite decoder, 150 ADE20K classes.
  • This checkpoint: ADE20K 1/8 split (2,526 labeled images), single seed.

Results (honest framing)

Compute-matched one-switch comparison against our DINOv2 UniMatch V2 reproduction (single seed):

Split PixCon UniMatch V2 (our repro) Published UM2-B
1/8 49.23 49.10 49.8

PixCon ties the compute-matched baseline (+0.13, within noise) and sits below the published UniMatch V2-B figure. ADE20K is the 150-class long-tail, the lowest-precision teacher: the paper measures the pseudo-label false-positive rate ρ_F = 0.106 here (β‰ˆ6Γ— Pascal's 0.018), yet the ρ_F = 0 guarantee still ties rather than wins, which is the paper's point: at foundation-model strength the guarantee acts as robustness, not an accuracy lever. Over the ADE20K 1/8 labeled set essentially all 150 classes accumulate clean anchors (coverage is not the bottleneck). This cell is single-seed (see the paper's ADE20K table).

Usage

import torch
from torchvision import transforms as T
from PIL import Image
from model.segmentor import PixConSegmentor      # from the PixCon code
from core.inference import whole_inference

model = PixConSegmentor(backbone='dinov2_vitb14', nclass=150, pretrained=False).eval()
sd = torch.load('pixcon_ade20k_1_8.pth', map_location='cpu')
model.load_state_dict(sd, strict=False)          # proj_head is inference-unused
norm = T.Compose([T.ToTensor(), T.Normalize((0.485, 0.456, 0.406), (0.229, 0.224, 0.225))])
img = norm(Image.open('example.jpg').convert('RGB')).unsqueeze(0)
with torch.no_grad():
    pred = whole_inference(model, img).argmax(1)  # [1, H, W], class indices 0..149 (ADE cats 1..150)

Interactive demo: psychofict/pixcon-demo.

Citation

@article{tarubinga2026pixcon,
  title   = {PixCon: Clean-Positive Contrastive Learning for Foundation-Model
             Semi-Supervised Segmentation},
  author  = {Tarubinga, Ebenezer},
  journal = {arXiv preprint arXiv:2607.03068},
  year    = {2026}
}
Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support

Space using psychofict/pixcon-ade20k 1

Paper for psychofict/pixcon-ade20k