The napari hub is transitioning to a community-run implementation due to launch in June 2025.
Since October 1, 2024, this version is no longer actively maintained and will not be updated. New plugins and plugin updates will continue to be listed.

napari Label Propagation

napari-labelprop

Label propagation through deep registration

License PyPI Python Version tests codecov napari hub

3D semi-automatic segmentation using deep registration-based 2D label propagation


This napari plugin was generated with Cookiecutter using @napari's cookiecutter-napari-plugin template.

About

See "Semi-automatic muscle segmentation in MR images using deep registration-based label propagation" paper :

[Paper]Paper [PDF]PDF

Installation

To install this project :

pip install napari['all']
pip install git+https://github.com/nathandecaux/napari-labelprop.git

Usage

Download pretrained weights.

Open napari from terminal and start using functions from 'napari-labelprop' plugin (Under Plugins scrolling menu).

Available functions are :

  • Inference : Propagate labels from trained weights (Pytorch checkpoint required)
  • Training : Start training from scratch or from the pretrained weights.

PS : "Unsupervised pretraining" is not yet implemented. See CLI option at LabelProp repository.

Every operation is done in the main thread. So, napari is not responsive during training or inference, but you can still follow the progress in the terminal.

Training

To train a model, reach the plugin in the menu bar :

Plugins > napari-labelprop > Training

Fill the fields with the following information :

  • Image : Select a loaded napari.layers.Image layer to segment
  • Labels : Select a loaded napari.layers.Labels layer with the initial labels
  • hints : Select a loaded napari.layers.Labels layer with scribbled pseudo labels
  • Pretrained checkpoint : Select a pretrained checkpoint from the server-side checkpoint directory
  • Slices shape : Slices are resample to this shape for training and inference, then resampled to original shape. So far, slices must be squares.
  • Propagation axis : Set the axis to use for the propagation dimension
  • Max epochs : Set the maximum number of epochs to train the model
  • Checkpoint output directory
  • Checkpoint name
  • Weighting criteria : Defines the criteria used to weight each direction of propagation ncc = normalized cross correlation (slow but smooth), distance = distance to the nearest label (fast but less accurate)
  • Reduction : When using ncc, defines the reduction to apply to the ncc map mean / local_mean / none. Default is none
  • Use GPU : Set if whether to use the GPU or not. Default is True (GPU). GPU:0 is used by default. To use another GPU, set the CUDA_VISIBLE_DEVICES environment variable before launching napari.
Inference

To run inference on a model, reach the plugin in the menu bar :

Plugins > napari-labelprop-remote > Inference

Fill the fields like in the training section. Then, click on the Run button.

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.

License

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

Issues

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

Version:

  • 1.0.0

Last updated:

  • 21 June 2023

First released:

  • 19 June 2023

License:

Supported data:

  • Information not submitted

Plugin type:

GitHub activity:

  • Stars: 0
  • Forks: 0
  • Issues + PRs: 0

Python versions supported:

Operating system:

Requirements:

  • deep-labelprop
  • napari-nifti
  • numpy
  • magicgui
  • qtpy