Skip to main content

A plugin for segmentation by pixel classification using pre-trained neural networks for feature extraction

Project description

License PyPI Python Version tests codecov napari hub

overview conv-paint This napari plugin can be used to segment objects or structures in images based on a few brush strokes providing examples of the classes. Based on the same idea as other tools like ilastik, its main strength is that it can use features from pretrained neural networks like VGG16 or DINOV2, enabling the segmentation of more complex images.

Find more information and tutorials in the docs or read the preprint.

overview conv-paint

Installation

You can install napari-convpaint via pip

pip install napari-convpaint

To install latest development version :

pip install git+https://github.com/guiwitz/napari-convpaint.git

Example use case: Tracking shark body parts in a movie

These are the scribble annotations provided for training:

And this is the resulting Convpaint segmentation:

Check out the documentation or the paper for more usecases!

API

You can now use the API in a fashion very similar to the napari plugin. The ConvpaintModel class combines a feature extractor and a classifier model, and holds all the parameters defining the model. Initialize a ConvpaintModel object, train its classifier and use it to segment an image:

cp_model = ConvpaintModel("dino") # alternatively use vgg, cellpose or gaussian
cp_model.train(image, annotations)
segmentation = cp_model.segment(image)

There are many other options, such as predicting all class probabilities (see below) and we will update the documentation and notebook examples soon. In the meantime feel free to test it yourself.

probas = cp_model.predict_probas(image)

License

Distributed under the terms of the BSD-3 license, "napari-convpaint" is free and open source software

Contributing

Contributions are very welcome. Tests can be run with tox, please ensure the coverage at least stays the same before you submit a pull request.

Issues

If you encounter any problems, please file an issue along with a detailed description.

Authors

The idea behind this napari plugin was first developed by Lucien Hinderling in the group of Olivier Pertz, at the Institute of Cell Biology, University of Bern. Pertz lab obtained a CZI napari plugin development grant with the title "Democratizing Image Analysis with an Easy-to-Train Classifier" which supported the adaptation of the initial concept as a napari plugin called napari-convpaint. The plugin has been developed by Guillaume Witz1, Roman Schwob1,2 and Lucien Hinderling2 with much appreciated assistance of Benjamin Grädel2, Maciej Dobrzyński2, Mykhailo Vladymyrov1 and Ana Stojiljković1.

1Data Science Lab, University of Bern
2Pertz Lab, Institute of Cell Biology, University of Bern

Cite Convpaint

If you find Convpaint useful in your research, please consider citing our work. Please also cite any Feature Extractor you have used in Convpaint, such as ilastik, cellpose or DINOv2.

Convpaint:

@article {Hinderling2024,
	author = {Hinderling, Lucien and Witz, Guillaume and Schwob, Roman and Stojiljković, Ana and Dobrzyński, Maciej and Vladymyrov, Mykhailo and Frei, Joël and Grädel, Benjamin and Frismantiene, Agne and Pertz, Olivier},
	title = {Convpaint - Interactive pixel classification using pretrained neural networks},
	elocation-id = {2024.09.12.610926},
	doi = {10.1101/2024.09.12.610926},
	journal = {bioRxiv},
	publisher = {Cold Spring Harbor Laboratory},
	year = {2024},
}

Suggested citations for feature extractors:

@article {Berg2019,
	author = {Berg, Stuart and Kutra, Dominik and Kroeger, Thorben and Straehle, Christoph N. and Kausler, Bernhard X. and Haubold, Carsten and Schiegg, Martin and Ales, Janez and Beier, Thorsten and Rudy, Markus and Eren, Kemal and Cervantes, Jaime I. and Xu, Buote and Beuttenmueller, Fynn and Wolny, Adrian and Zhang, Chong and Koethe, Ullrich and Hamprecht, Fred A. and Kreshuk, Anna},
	title = {ilastik: interactive machine learning for (bio)image analysis.},
	issn = {1548-7105},
	url = {https://doi.org/10.1038/s41592-019-0582-9},
	doi = {10.1038/s41592-019-0582-9},
	journal = {Nature Methods},
	publisher = {Springer Nature},
	year = {2019},
	journal = {Nature Methods},
}
@article {Stringer2021,
	author = {Stringer, Carsen and Wang, Tim and Michaelos, Michalis and Pachitariu Marius},
	title = {Cellpose: a generalist algorithm for cellular segmentation.},
	elocation-id = {s41592-020-01018-x},
	doi = {10.1038/s41592-020-01018-x},
	journal = {Nature Methods},
	publisher = {Springer Nature},
	year = {2021},
}
@article {oquab2024dinov2learningrobustvisual,
      title={DINOv2: Learning Robust Visual Features without Supervision}, 
      author={Maxime Oquab and Timothée Darcet and Théo Moutakanni and Huy Vo and Marc Szafraniec and Vasil Khalidov and Pierre Fernandez and Daniel Haziza and Francisco Massa and Alaaeldin El-Nouby and Mahmoud Assran and Nicolas Ballas and Wojciech Galuba and Russell Howes and Po-Yao Huang and Shang-Wen Li and Ishan Misra and Michael Rabbat and Vasu Sharma and Gabriel Synnaeve and Hu Xu and Hervé Jegou and Julien Mairal and Patrick Labatut and Armand Joulin and Piotr Bojanowski},
      year={2024},
      eprint={2304.07193},
      archivePrefix={arXiv},
      primaryClass={cs.CV},
      url={https://arxiv.org/abs/2304.07193}
}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

napari_convpaint-0.7.0.tar.gz (17.7 MB view details)

Uploaded Source

Built Distribution

napari_convpaint-0.7.0-py3-none-any.whl (372.0 kB view details)

Uploaded Python 3

File details

Details for the file napari_convpaint-0.7.0.tar.gz.

File metadata

  • Download URL: napari_convpaint-0.7.0.tar.gz
  • Upload date:
  • Size: 17.7 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.2

File hashes

Hashes for napari_convpaint-0.7.0.tar.gz
Algorithm Hash digest
SHA256 fcef3b33ecf7f395de77b29588167c93b0a79f260f35668802152e4a582bfb40
MD5 b4d56e595e0a01f77f7bf26a1dc7ea90
BLAKE2b-256 01b7b03b7b2ef6510b7a69dd0e89117270991b5d1a0d465b54f39aa4b673b6be

See more details on using hashes here.

File details

Details for the file napari_convpaint-0.7.0-py3-none-any.whl.

File metadata

File hashes

Hashes for napari_convpaint-0.7.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a170bd469f6db8bfc8e6a5c0ecec8748a449a78d498fb9420c17f4fa1cc1cdcf
MD5 329ac1692df939bb94821fe191c70cfe
BLAKE2b-256 b860cfedb873924fdcb663ea93f254d423f39ae67543e180e258e57bfbfb2162

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page