Skip to main content

DINOCell: Self-supervised Pretraining of Cell Segmentation Models

Python 3.8+ License: MIT Paper

DINOCell is an automated cell segmentation model for live cell microscopy images. Through initialization with DINOv2 weights, pretrained on 1.2B images, and domain-adaptation on 130k unlabeled cell images, DINOCell achieves unparalleled performance across a wide variety of cell types and microscope conditions.

PBL HEK Segmentation

Key Features

  • State-of-the-art Performance: Outperforms existing methods like Cellpose-SAM and SAMCell on both test-set and zero-shot cross-dataset evaluation
  • Zero-shot Generalization: Works on novel cell types and microscopes not seen during training
  • Vision Transformer Architecture: Leverages DINOv2's ViT-based encoder pretrained on 1.2B images for robust image representations, which are further tuned for microscopy through domain-adaptation on 130k unlabeled cell images.
  • Flows Regression: Predicts Cellpose-style Flows instead of binary masks, enabling better separation of densely packed cells

Performance

DINOCell demonstrates superior performance in both test-set and zero-shot cross-dataset evaluation:

LIVECell Test-Set Performance

Method SEG DET MMA
DINOCell 0.784 0.926 0.876
Cellpose-SAM 0.710 0.852 0.807
SAMCell-LIVECell 0.744 0.911 0.834

Zero-Shot Cross-Dataset Performance

Dataset Method SEG DET MMA
PBL-HEK DINOCell 0.553 0.818 0.734
Cellpose-SAM 0.452 0.627 0.617
SAMCell-cyto 0.458 0.765 0.628
SAMCell-LIVECell 0.365 0.660 0.519
PBL-N2A DINOCell 0.859 0.947 0.923
Cellpose-SAM 0.778 0.899 0.801
SAMCell-cyto 0.822 0.932 0.849
SAMCell-LIVECell 0.610 0.699 0.668
Glioma-C6 DINOCell 0.697 0.684 0.737
Cellpose-SAM 0.315 0.387 0.360
SAMCell-cyto 0.475 0.576 0.513
SAMCell-LIVECell 0.000 0.000 0.000

Quick Start

Installation

# Install from PyPI (recommended)
pip install dinocell

# Or install from source
git clone https://github.com/kadenstillwagon/DINOCell.git
cd DINOCell
pip install -e .

Basic Usage

import matplotlib.pyplot as plt
from dinocell import segment

#Set Image Path
img_path = 'demo_images/LiveCell_test_image.png'

#Get Model Output
output_segmentations = segment(img_path)

#Visualize
plt.imshow(output)
plt.show()

Command Line Interface

# Segmentation
dinocell segment image.png --output results/

Citation

If you use DINOCell in your research, please cite our paper:

Stillwagon K, VandeLoo AD*, Magondu B, Forest C.R. (2026) Self-supervised Pretraining of Cell Segmentation Models. https://arxiv.org/abs/2604.10609.

  @misc{stillwagon2026selfsupervisedpretrainingcellsegmentation,
        title={Self-supervised Pretraining of Cell Segmentation Models}, 
        author={Kaden Stillwagon and Alexandra Dunnum VandeLoo and Benjamin Magondu and Craig R. Forest},
        year={2026},
        eprint={2604.10609},
        archivePrefix={arXiv},
        primaryClass={cs.CV},
        url={https://arxiv.org/abs/2604.10609}, 
  }

Support

License

This project is licensed under the MIT License - see the LICENSE file for details.

Institutions

This work was developed at:

  • Georgia Institute of Technology
    • School of Biological Sciences
    • School of Computer Science
    • Department of Biomedical Engineering
    • School of Mechanical Engineering

Acknowledgments

  • Meta AI for the original DINOv2
  • The open-source community for tools and datasets
  • Georgia Tech for computational resources
  • All contributors and users of DINOCell

Metadata

Release files for dinocell 0.74

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for dinocell 0.74
File Size Uploaded
dinocell-0.74.tar.gz 153.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for dinocell 0.74
File Interpreter ABI Platform
dinocell-0.74-py3-none-any.whl Python 3 none any Details

Total release size: 373.1 kB

Release files / dinocell-0.74.tar.gz

Download URL dinocell-0.74.tar.gz
Size 153.2 kB
Tags Source
SHA-256 checksum
How to use checksums
9e9759a7ff8afe5876cdf9459c5a865425914e4c130889e1bf3675ff77fa07ef
BLAKE2b-256 checksum
How to use checksums
2a952996e5368d97fffd1e7efa25be4277253716aaaa31e389346f7564176f09
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.8

Release files / dinocell-0.74-py3-none-any.whl

Download URL dinocell-0.74-py3-none-any.whl
Size 219.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ea7dce7f8a1a35e4bf790ac7c68dbbe41c5a205927f1e6ab4a0c96306b216499
BLAKE2b-256 checksum
How to use checksums
0f11f526411f4eab2ef6214b23068e1a906cb8fc43180a8640d95e7cf9037847
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.8

Release history Release notifications | RSS feed

This release

0.74 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page