Nucleus Segmenter

Get this modelTry the API

Overview

This model detects nuclei in a microscopy image and specifies the pixels in the image that are assigned to each nucleus. The model is developed based on the architecture of Mask R-CNN using Feature Pyramid network (FPN) and a ResNet50 backbone. Given an image (of size 64 x 64, 128 x 128 or 256 x 256), this model outputs the segmentation masks and probabilities for each detected nucleus. The mask is compressed using Run-length encoding (RLE).

The model is based on the TF implementation of Mask R-CNN. The model is trained on the Broad Bioimage Benchmark Collection (Accession number BBBC038, Version 1) dataset of annotated biological images.

Model Metadata

Domain Application Industry Framework Training Data Input Data Format
Vision Object Detection Health Care Keras 2018 Data Science Bowl Image (PNG/JPG/TIFF)

References

  • He, K., Gkioxari, G., Dollár, P. and Girshick, R., 2017, October. Mask R-CNN. In Computer Vision (ICCV), 2017 IEEE International Conference on (pp. 2980-2988). IEEE.
  • Ljosa, V., Sokolnicki, K.L. and Carpenter, A.E., 2012. Annotated high-throughput microscopy image sets for validation. Nature methods, 9(7), pp.637-637.
  • Broad Bioimage Benchmark Collection [Ljosa et al., Nature Methods, 2012].
  • Mask R-CNN Github Repository

Licenses

Component License Link
Model GitHub Repository Apache 2.0 LICENSE
Model Weights Apache 2.0 LICENSE
Model Code (3rd party) MIT LICENSE
Test assets Various Samples README

Options available for deploying this model

This model can be deployed using the following mechanisms:

  • Deploy from Dockerhub:
docker run -it -p 5000:5000 codait/max-nucleus-segmenter
  • Deploy on Kubernetes:
kubectl apply -f https://raw.githubusercontent.com/IBM/MAX-Nucleus-Segmenter/master/max-nucleus-segmenter.yaml

Example Usage

You can test or use this model

Test the model using cURL

Once deployed, you can test the model from the command line. For example:

$ curl -F "image=@samples/example.png" -XPOST http://localhost:5000/model/predict

You should see a JSON response like that below:

{
  "status": "ok",
  "predictions": [
    {
      "mask": [
        3507,
        1,
        3571,
        5,
        3635,
        6,
        3700,
        5,
        3766,
        4,
        3831,
        2
      ],
      "probability": 0.9837305545806885
    }
    ...
  ]
}