Skip to main content

Create annotations for instance segmentation using Segment Anything models

Project description

napari-SAM4IS

License Apache Software License 2.0 PyPI Python Version tests codecov napari hub

napari plugin for instance and semantic segmentation annotation using Segment Anything Model (SAM)

This is a plugin for napari, a multi-dimensional image viewer for Python, that allows for instance and semantic segmentation annotation. This plugin provides an easy-to-use interface for annotating images with the option to output annotations as COCO format.


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

Installation

To use this plugin, you'll need to install the napari multi-dimensional image viewer and the Segment Anything Model (SAM) library.

napari Installation

You can install napari using pip:

pip install "napari[all]"

Alternatively, you can install napari and all of its dependencies with conda:

conda install -c conda-forge napari

For more detailed instructions, please refer to the napari installation guide.

SAM Installation

You can install SAM from the official GitHub repository using pip:

pip install git+https://github.com/facebookresearch/segment-anything.git

Or you can install from source by cloning the repository:

git clone https://github.com/facebookresearch/segment-anything.git
cd segment-anything
pip install -e .

For more detailed instructions, please refer to the SAM installation guide.

napari-SAM4IS Installation

You can install napari-SAM4IS via pip:

pip install napari-SAM4IS

To install latest development version :

pip install git+https://github.com/hiroalchem/napari-SAM4IS.git

Usage

Preparation

  1. Open an image in napari and launch the plugin. (Opening an image after launching the plugin is also possible.)
  2. Upon launching the plugin, three layers will be automatically created: SAM-Box, SAM-Predict, and Accepted. The usage of these layers will be explained later.
  3. In the widget that appears, select the model you want to use and click the load button. (The default option is recommended.)
  4. Next, select the image layer you want to annotate.
  5. Then, select whether you want to do instance segmentation or semantic segmentation. (Note that for 3D images, semantic segmentation should be chosen in the current version.)
  6. Finally, select the output layer as "shapes" for instance segmentation or "labels" for semantic segmentation. (For instance segmentation, the "Accept" layer can also be used.)

Annotation

  1. Select the SAM-Box layer and use the rectangle tool to enclose the object you want to segment.
  2. An automatic segmentation mask will be created and output to the SAM-Predict layer.
  3. If you want to make adjustments, do so in the SAM-Predict layer.
  4. To accept or reject the annotation, press "a" or "r" on the keyboard, respectively.
  5. If you accept the annotation, it will be output as label 1 for semantic segmentation or converted to a polygon and output to the designated layer for instance segmentation.
  6. If you reject the annotation, the segmentation mask in the SAM-Predict layer will be discarded.
  7. After accepting or rejecting the annotation, the SAM-Predict layer will automatically reset to blank and return to the SAM-Box layer.

Saving

  1. If you have output to the labels layer, use napari's standard functionality to save the mask.
  2. If you have output to the shapes layer, you can save the shapes layer using napari's standard functionality, or you can click the "save" button to output a JSON file in COCO format for each image in the folder. (The JSON file will have the same name as the image.)

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 Apache Software License 2.0 license, "napari-SAM4IS" is free and open source software

Issues

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

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-SAM4IS-0.0.5.tar.gz (13.6 kB view details)

Uploaded Source

Built Distribution

napari_SAM4IS-0.0.5-py3-none-any.whl (14.2 kB view details)

Uploaded Python 3

File details

Details for the file napari-SAM4IS-0.0.5.tar.gz.

File metadata

  • Download URL: napari-SAM4IS-0.0.5.tar.gz
  • Upload date:
  • Size: 13.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.10

File hashes

Hashes for napari-SAM4IS-0.0.5.tar.gz
Algorithm Hash digest
SHA256 5a0b97e340acd93c0accb2457c76df2b105907e1984b2085ccecc5b89a5b057a
MD5 744db7cb2762e61231494162153ca7e1
BLAKE2b-256 cda92f82f9464d0a0d83cd3001b4ce2095705c3d2c472bcb2a588be2fd9526b3

See more details on using hashes here.

File details

Details for the file napari_SAM4IS-0.0.5-py3-none-any.whl.

File metadata

File hashes

Hashes for napari_SAM4IS-0.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 e37dcee69cb5e03974a5c3f81a0b6eee12b0498c0140c2f11ed5e58006ebdeef
MD5 86f2381482e32db146d1e30928d7544c
BLAKE2b-256 19ff73008605bf8fddb6b24ed6fa817a92652142910bdd5d735473ca1577b7ba

See more details on using hashes here.

Supported by

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