本篇介紹如何安裝與使用 MONAI Label 醫學影像標註工具,透過持續學習(continuously learning)協助使用者標註影像資料。
建立 Python 虛擬環境
安裝 Python 的 venc
套件之後,建立一個 MONAI 專用的 Python 虛擬環境:
# 安裝 Python 的 venv 套件 apt install python3.8-venv # 建立 Python 虛擬環境 monaienv python3 -m venv monaienv
載入 Python 虛擬環境 monaienv
:
# 載入 Python 虛擬環境 monaienv
source monaienv/bin/activate
安裝 MONAI Label
透過 pip
安裝 MONAI Label:
# 安裝 MONAI Label
pip install monailabel
查詢並列出 MONAI Label 中內建的範例 App:
# 列出可用的範例 App
monailabel apps
Available Sample Apps are: (/home/ubuntu/monaienv/monailabel/sample-apps) ---------------------------------------------------- Deepedit based Apps ---------------------------------------------------- deepedit : /home/ubuntu/monaienv/monailabel/sample-apps/deepedit deepedit_multilabel : /home/ubuntu/monaienv/monailabel/sample-apps/deepedit_multilabel Deepgrow based Apps ---------------------------------------------------- deepgrow : /home/ubuntu/monaienv/monailabel/sample-apps/deepgrow Standard Segmentation Apps ---------------------------------------------------- segmentation : /home/ubuntu/monaienv/monailabel/sample-apps/segmentation segmentation_left_atrium : /home/ubuntu/monaienv/monailabel/sample-apps/segmentation_left_atrium segmentation_spleen : /home/ubuntu/monaienv/monailabel/sample-apps/segmentation_spleen
下載 deepedit
範例 App 至 apps
目錄下:
# 下載 deepedit 範例 App 至 apps 目錄下 monailabel apps --download --name deepedit --output apps
deepedit is copied at: /home/ubuntu/monai_label/apps/deepedit
列出可用的資料集:
# 列出可用的資料集
monailabel datasets
Available Datasets are: ---------------------------------------------------- Task01_BrainTumour : https://msd-for-monai.s3-us-west-2.amazonaws.com/Task01_BrainTumour.tar Task02_Heart : https://msd-for-monai.s3-us-west-2.amazonaws.com/Task02_Heart.tar Task03_Liver : https://msd-for-monai.s3-us-west-2.amazonaws.com/Task03_Liver.tar Task04_Hippocampus : https://msd-for-monai.s3-us-west-2.amazonaws.com/Task04_Hippocampus.tar Task05_Prostate : https://msd-for-monai.s3-us-west-2.amazonaws.com/Task05_Prostate.tar Task06_Lung : https://msd-for-monai.s3-us-west-2.amazonaws.com/Task06_Lung.tar Task07_Pancreas : https://msd-for-monai.s3-us-west-2.amazonaws.com/Task07_Pancreas.tar Task08_HepaticVessel : https://msd-for-monai.s3-us-west-2.amazonaws.com/Task08_HepaticVessel.tar Task09_Spleen : https://msd-for-monai.s3-us-west-2.amazonaws.com/Task09_Spleen.tar Task10_Colon : https://msd-for-monai.s3-us-west-2.amazonaws.com/Task10_Colon.tar
下載 Medical Segmentation Decathlon(MSD)中的 Task09_Spleen
資料集至 datasets 目錄:
# 下載 MSD 的 Task09_Spleen 資料集至 datasets 目錄 monailabel datasets --download --name Task09_Spleen --output datasets
Task09_Spleen.tar: 1.50GB [01:43, 15.6MB/s] 2022-04-13 10:16:39,159 - INFO - Downloaded: datasets/Task09_Spleen.tar 2022-04-13 10:16:42,211 - INFO - Verified 'Task09_Spleen.tar', md5: 410d4a301da4e5b2f6f86ec3ddba524e. 2022-04-13 10:16:42,211 - INFO - Writing into directory: /home/ubuntu/monai_label/datasets. Task09_Spleen is downloaded at: datasets/Task09_Spleen
啟動 deepedit
範例 App 對 Task09_Spleen
資料集進行標註:
# 啟動 deepedit 範例 App 對 Task09_Spleen 資料集進行標註 monailabel start_server --app apps/deepedit --studies datasets/Task09_Spleen/imagesTr
MONAI Label 開發版
由於 MONAI Label 還在初期發展階段,若需要嘗試新功能,可以安裝最新的開發版:
# 安裝 MONAI Label
pip install monailabel-weekly
最新的開發版跟穩定版有一些差異,詳細使用參數要參考最新的 GitHub 網頁說明,以下是使用 MONAI Label 0.4.dev2215 版的操作指令。
查詢並列出 MONAI Label 中內建的範例 App:
# 列出可用的範例 App
monailabel apps
Available Sample Apps are: (/home/ubuntu/monaienv/monailabel/sample-apps) ---------------------------------------------------- Radiology based Apps ---------------------------------------------------- radiology : /home/ubuntu/monaienv/monailabel/sample-apps/radiology Pathology based Apps ---------------------------------------------------- pathology : /home/ubuntu/monaienv/monailabel/sample-apps/pathology
下載 radiology
範例 App 至 apps
目錄下:
# 下載 radiology 範例 App 至 apps 目錄下 monailabel apps --download --name radiology --output apps
radiology is copied at: /home/ubuntu/monai_label/apps/radiology
列出可用的資料集:
# 列出可用的資料集
monailabel datasets
Available Datasets are: ---------------------------------------------------- Task01_BrainTumour : https://msd-for-monai.s3-us-west-2.amazonaws.com/Task01_BrainTumour.tar Task02_Heart : https://msd-for-monai.s3-us-west-2.amazonaws.com/Task02_Heart.tar Task03_Liver : https://msd-for-monai.s3-us-west-2.amazonaws.com/Task03_Liver.tar Task04_Hippocampus : https://msd-for-monai.s3-us-west-2.amazonaws.com/Task04_Hippocampus.tar Task05_Prostate : https://msd-for-monai.s3-us-west-2.amazonaws.com/Task05_Prostate.tar Task06_Lung : https://msd-for-monai.s3-us-west-2.amazonaws.com/Task06_Lung.tar Task07_Pancreas : https://msd-for-monai.s3-us-west-2.amazonaws.com/Task07_Pancreas.tar Task08_HepaticVessel : https://msd-for-monai.s3-us-west-2.amazonaws.com/Task08_HepaticVessel.tar Task09_Spleen : https://msd-for-monai.s3-us-west-2.amazonaws.com/Task09_Spleen.tar Task10_Colon : https://msd-for-monai.s3-us-west-2.amazonaws.com/Task10_Colon.tar
下載 Medical Segmentation Decathlon(MSD)中的 Task09_Spleen
資料集至 datasets 目錄:
# 下載 MSD 的 Task09_Spleen 資料集至 datasets 目錄 monailabel datasets --download --name Task09_Spleen --output datasets
Task09_Spleen.tar: 1.50GB [01:43, 15.5MB/s] 2022-04-15 10:05:42,902 - INFO - Downloaded: datasets/Task09_Spleen.tar 2022-04-15 10:05:45,886 - INFO - Verified 'Task09_Spleen.tar', md5: 410d4a301da4e5b2f6f86ec3ddba524e. 2022-04-15 10:05:45,887 - INFO - Writing into directory: /home/ubuntu/monai_label/datasets. Task09_Spleen is downloaded at: datasets/Task09_Spleen
啟動 deepedit
範例 App 對 Task09_Spleen
資料集進行標註:
# 啟動 radiology 範例 App 以 deepedit 模型對 Task09_Spleen 資料集進行標註 monailabel start_server --app apps/radiology --studies datasets/Task09_Spleen/imagesTr --conf models deepedit
3D Slicer
安裝最新的 3D Slicer Preview 版本,在主選單中開啟「View」→「Extension Manager」→「Active Learning」→「MONAI Label」,點選「Install」按鈕安裝這個 plugin。

安裝好 MONAI Label plugin 之後,重新啟動 3D Slicer,即可從模組選單的「Active Learning」分類中,選擇「MONAILabel」來使用。

如果時常要使用 MONAI Label 的話,可以在主選單中開啟「Edit」→「Application Settings」,點選「Modules」頁籤,以滑鼠將「MONAILabel」拖曳至「Favorite Modules」中。

這樣 MONAI Label 的按鈕就會出現在工具列中。

當選擇了 MONAI Label 模組之後,可以輸入 MONAI Label 伺服器位址(例如 http://localhost:8000/
),然後按下 Fetch 按鈕進行連線,若不輸入 MONAI Label 伺服器位址,則會使用預設的位址。

連接至 MONAI Label 伺服器之後,按下「Next Sample」即可開始使用 MONAI Label 的工具進行標註了。

當一張影像標註完成之後,可以按下「Submit Label」將標註結果送回 MONAI Label 伺服器。若想要更新標註的模型,可以按下「Train」按鈕。
OHIF Viewer
MONAI Label 也可以搭配網頁介面的 OHIF Viewer 進行標註,但這種方式需要配合 DICOMWeb 伺服器使用,使用前先參考 Orthanc DICOM 影像伺服器安裝與使用教學安裝好 Orthanc 伺服器,並將要進行標註的 DICOM 醫學影像匯入 Orthanc 伺服器中。如果需要對 NIfTI 檔案進行標註,可以參考醫學影像、標註 NIfTI 轉 DICOM 格式教學與範例,先將 NIfTI 檔案轉為 DICOM 格式之後,再匯入 Orthanc 伺服器。
MONAI Label 本身就內建了 OHIF Viewer,只要在啟動時指定 DICOMWeb 伺服器位址,即可使用 OHIF Viewer 進行標註:
# 以 OHIF Viewer 進行標註(開發版) monailabel start_server --app apps/radiology --studies http://127.0.0.1:8042/dicom-web --conf models deepedit
此時開啟 http://127.0.0.1:8000/ohif/
這個網址,即可看到 OHIF Viewer 的頁面,並使用 MONAI Label plugin 工具在網頁上進行標註,甚至訓練模型。

在 OHIF Viewer 網頁上標註的資料,也可以直接下載為 Nrrd 檔案。