Skip to main content

a napari plugin for TIFF-based 2D and 3D U-Net segmentation workflows.

Project description

napari-unet-assistant

napari-unet-assistant is a napari plugin for supervised 2D and 3D U-Net segmentation workflows.

It is designed for users who already have image-mask training data and want to pair files, train a U-Net model, run inference, and inspect results directly inside napari.

This plugin is separate from SAM-based annotation workflows. Its focus is conventional supervised U-Net training from existing image-mask pairs.

What's new in 0.3.0

  • Added recursive dataset-folder auto pairing for TIFF datasets with images/masks, raw/labels, mixed-folder, and nested layouts.
  • Added folder-name role hints so dataset folders can guide image-mask pairing even when filenames are less explicit.
  • Added configurable augmentation presets: none, conservative, balanced, and strong.
  • Added custom augmentation controls for flips, rotation, shear, scale, brightness jitter, and Gaussian noise.
  • Added saving and loading of augmentation settings in run configuration metadata.
  • Added a training stop button that cancels after the current batch, discards the interrupted model state, and clears GPU cache when available.
  • Added a U-Net architecture preview for the selected 2D/3D mode and output-channel configuration.
  • Improved the training UI layout with clearer tabs and more stable dock-widget sizing.

Highlights

  • TIFF-first 2D and 3D U-Net training
  • Binary and multiclass segmentation
  • Recursive smart image-mask pairing
  • Pair review with confidence, reason, and shape-check status
  • Patch-based training with configurable patch size and overlap
  • Optional empty-mask patch inclusion
  • Configurable augmentation presets and custom augmentation controls
  • 80/20 validation split
  • Continue training from a previous run
  • Training cancellation from the UI
  • Single-image and folder inference
  • 2D image and 3D volume prediction
  • TIFF prediction export
  • napari-based visualization and QC

Smart image-mask pairing

The plugin can pair training data from:

  • a dataset root scanned recursively
  • separate image and mask folders
  • one mixed folder containing both images and masks
  • a manual CSV file

Dataset-root auto scan supports common layouts such as:

  • images/ + masks/
  • raw/ + labels/
  • nested TIFF folders under one dataset root
  • one mixed folder containing sample.tif + sample_mask.tif

Supported naming patterns include:

  • sample.tif + sample_mask.tif
  • sample_1.tif + sample_2.tif
  • sample_image.tif + sample_mask.tif
  • sample_raw.tif + sample_label.tif

After scanning, the plugin shows each proposed pair with confidence, reason, and shape-check status. Ambiguous or invalid pairs are reported instead of being silently used for training.

Folder names such as images, raw, masks, and labels can also provide role hints during recursive dataset scans.

Augmentation

Training supports augmentation presets and custom controls:

  • none: no augmentation
  • conservative: flips, small rotations/scales, and light brightness jitter
  • balanced: stronger rotation/scale, shear, brightness jitter, and light Gaussian noise
  • strong: wider rotation/scale/shear ranges, stronger brightness jitter, and stronger Gaussian noise
  • custom: user-selected flips, rotation, shear, scale, brightness, and noise settings

The selected augmentation configuration is saved in each run folder's config.json and restored when loading run metadata.

Training controls

The training panel includes a stop button for cancelling an active training run. Cancellation is checked between batches, so the current batch may finish before the run stops.

When a run is stopped, the interrupted model state is discarded and GPU cache is cleared when available.

Manual CSV pairing

For manual pairing, provide a CSV file with one image-mask pair per row.

Required columns:

  • image_path
  • mask_path

Optional column:

  • key

Example:

key,image_path,mask_path
sample01,/path/to/images/sample01.tif,/path/to/masks/sample01_mask.tif
sample02,/path/to/images/sample02.tif,/path/to/masks/sample02_mask.tif

Use absolute paths for the clearest behavior. Relative paths are interpreted from the current working directory.

Each image and mask should have matching spatial dimensions.

Installation

pip install git+https://github.com/wulinteousa2-hash/napari-unet-assistant.git

For editable development:

git clone https://github.com/wulinteousa2-hash/napari-unet-assistant.git
cd napari-unet-assistant
pip install -e .
napari

Basic workflow

  1. Open napari.
  2. Launch U-Net Assistant.
  3. Choose a pairing mode.
  4. Scan and review image-mask pairs.
  5. Set training options.
  6. Train a 2D or 3D U-Net model.
  7. Load a saved run folder.
  8. Run inference on new images or volumes.
  9. Review prediction masks in napari.

Supported data

2D training

  • image: (Y, X) grayscale TIFF
  • mask: (Y, X) label TIFF
  • binary masks: 0 = background, nonzero = foreground
  • multiclass masks: integer labels

3D training

  • image: (Z, Y, X) grayscale TIFF
  • mask: (Z, Y, X) label TIFF
  • multiclass masks should use integer labels:
    • 0 = background
    • 1 = class 1
    • 2 = class 2
    • 3 = class 3

Patch options

2D

XY patch sizes:

  • 64
  • 128
  • 256
  • 512
  • 1024

Default: 256 x 256

3D

Z patch sizes:

  • 8
  • 16
  • 32
  • 64

XY patch sizes:

  • 64
  • 128
  • 256
  • 512
  • 1024

Default: 16 x 256 x 256

Validation

The current training workflow uses a standard train/validation split. The default validation split is 20%.

K-fold controls may exist in the UI/config, but k-fold training is not active in this release.

Outputs

Each run folder can contain:

  • best_model.pt
  • config.json
  • summary.json
  • history.csv
  • pairs.csv
  • prediction TIFF outputs

Current scope

This release is focused on TIFF-based supervised U-Net training and inference.

OME-Zarr, spectral/lambda workflows, and SAM-assisted annotation are intentionally outside the scope of this version.

Reference

This project builds on U-Net-based nerve morphometry workflows described in:

Moiseev D, Hu B, Li J. Morphometric Analysis of Peripheral Myelinated Nerve Fibers through Deep Learning. Journal of the Peripheral Nervous System. 2019;24(1):87-93.
https://pmc.ncbi.nlm.nih.gov/articles/PMC6420354/

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_unet_assistant-0.3.0.tar.gz (44.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

napari_unet_assistant-0.3.0-py3-none-any.whl (48.0 kB view details)

Uploaded Python 3

File details

Details for the file napari_unet_assistant-0.3.0.tar.gz.

File metadata

  • Download URL: napari_unet_assistant-0.3.0.tar.gz
  • Upload date:
  • Size: 44.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for napari_unet_assistant-0.3.0.tar.gz
Algorithm Hash digest
SHA256 26ac2270a72987f381e243f043d9d70504a82e3d1ca3d0123c8569148293cdb0
MD5 a31157a8da26794c99092659b0ed2349
BLAKE2b-256 f06f9e17464be0ee15ee4990272593b4dd2b619e167a5512cdc7158c0ba2f691

See more details on using hashes here.

File details

Details for the file napari_unet_assistant-0.3.0-py3-none-any.whl.

File metadata

File hashes

Hashes for napari_unet_assistant-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 fc4324bbee71868a7f3037793e6d99fba61493a0d7ee4ed34b8cfc9d14e9c172
MD5 e63f06897ad81d2b8f2d9a8a2facc0f9
BLAKE2b-256 3e5ca21cb41e7066271421569d293a3c3680054792ad627cc63079a49db672cc

See more details on using hashes here.

Supported by

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