This is a reference app to run infer + train tasks to segment Nuclei. It comes with following 2 pre-trained weights/model (UNET).
- Segmentation Nuclei - This show-cases an example for multi-label segmentation. It tries segment following labels.
Dataset | Nuclei Type |
---|---|
PanNuke | Neoplastic cells, Inflammatory, Connective/Soft tissue cells, Dead Cells, Epithelial |
CoNSeP | Other, Inflammatory, Epithelial, Spindle-Shaped |
- Hovernet Nuclei - This show-cases an example for segmentation and classification using HoVerNet. It tries segment and classify following labels.
- Other
- Inflammatory
- Epithelial
- Spindle-Shaped
- NuClick - This is NuClick implementation (UNet model) as provided at: https://github.com/mostafajahanifar/nuclick_torch.
- Classification Nuclei - It is a simple classification model which can be used along with NuClick model to classify Nuclei cells.
Above Nuclei models are trained either on
Pass --conf consep false
option while starting MONAILabel server to use model Segmentation Nuclei
trained on PanNuke Dataset
- WSI Images
- Region (ROI) of WSI Image
Segmentation Mask are produced in one of the following formats
- Standard JSON
- DSA Document (JSON)
- ASAP Annotation XML
We recommend to use Digital Slide Archive as endpoint for studies. However you can also also use FileSystem as studies folder.
git clone https://github.com/Project-MONAI/MONAILabel.git
cd MONAILabel
pip install -r requirements.txt
Install Openslide binaries manually and make sure .dll or .so files for openslide are in system load path.
- For windows, make sure <openslide_folder>/bin is added in PATH environment.
- For ubuntu:
apt install openslide-tools
# download sample wsi image (skip this if you already have some)
mkdir sample_wsi
cd sample_wsi
wget https://demo.kitware.com/histomicstk/api/v1/item/5d5c07539114c049342b66fb/download
cd -
# run server
./monailabel/scripts/monailabel start_server --app sample-apps/pathology --studies datasets/wsi
Once the server is up and running, download QuPath and install MONAILabel plugin for QuPath to run annotations using models available through Pathology App.
The current version of plugin comes with limited features to support basic annotations, submitting label and trigger training. Looking for more contributions from QuPath Developer/Opensource community to make it better.
- Make sure MONAILabel Server URL is correctly through
Preferences
. - Open Sample Whole Slide Image in QuPath (which is shared as studies for MONAILabel server)
- Add/Select Rectangle ROI to run annotations using MONAI Label models.
- For Interactive model you can choose to provide
Positive
andNegative
points through Annotation panel.
You need to install DSA and upload some test images. Refer: https://github.com/DigitalSlideArchive/digital_slide_archive/tree/master/devops/dsa
Following are some config options:
Name | Description |
---|---|
preload | Preload models into GPU. Default is False. |
roi_size | Default ROI Size for inference in [x,y] format. Default is [1024,1024]. |
dsa_folder | Optional. Comma seperated DSA Folder IDs. Normally it is <folder_id> of a folder under Collections where Images are stored. |
dsa_api_key | Optional. API Key helps to query asset store to fetch direct local path for WSI Images. |
dsa_asset_store_path | Optional. It is the DSA assetstore path that can be shared with MONAI Label server to directly read WSI Images. |
# run server (Example: DSA API URL is http://0.0.0.0:8080/api/v1)
./monailabel/scripts/monailabel start_server --app sample-apps/pathology \
--studies http://0.0.0.0:8080/api/v1 \
# run server (Advanced options)
./monailabel/scripts/monailabel start_server --app sample-apps/pathology \
--studies http://0.0.0.0:8080/api/v1 \
--conf dsa_folder 621e94e2b6881a7a4bef5170 \
--conf dsa_api_key OJDE9hjuOIS6R8oEqhnVYHUpRpk18NfJABMt36dJ \
--conf dsa_asset_store_path digital_slide_archive/devops/dsa/assetstore
You can use projectmonai/monailabel-dsa:latest plugin from dockerhub. Otherwise you can build from sources as follows.
cd plugins/dsa
docker build -t projectmonai/monailabel-dsa:latest .
Upload new Task (under Slicer CLI Web Tasks) using the above docker image. This will add/enable MONAILabel under Analysis Page.
The performance benchmarking is done using MONAILabel server and DSA client. All the details are captured here.
Following is summary of the same:
- NucleiDetection (CPU Based DSA Algorithm)
- Segmentation/DeepEdit (MONAILabel models)