利用MONAI加速医学影像学的深度学习研究
利用MONAI加速醫學影像學的深度學習研究
Accelerating Deep Learning Research in Medical Imaging Using MONAI
醫學開放式人工智能網絡(MONAI)是一個免費提供、社區支持、基于Pythorch的醫療影像學深度學習框架。它為開發訓練工作流程提供了領域優化的基礎功能。
在4月份發布的gtc2020 alpha版本的基礎上,MONAI現在發布了0.2版本,為醫學成像研究人員提供了新的功能、示例和研究實現,以加快人工智能開發的創新步伐。有關更多信息,請參閱NVIDIA和倫敦國王學院宣布MONAI醫療保健研究開源AI框架。
為什么是MONAI研究?
MONAI research是MONAI代碼庫中的一個子模塊。其目的是展示研究原型的實施和從最新出版的醫學影像學與深度學習示范。研究模塊由核心開發團隊定期審查和維護。根據良好的軟件工程實踐,從研究子模塊中識別出的可重用組件被集成到MONAI核心模塊中。
隨著MONAI的靈活性和可用性,設想MONAI research是發布研究代碼、增加研究影響、促進開放性和可重復性研究的合適場所。像MONAI中的所有其他子模塊一樣,歡迎以評論、想法和代碼的形式發表意見。
在這篇文章中,討論了目前已經包含在基于MONAI的實現中的研究出版物,這些出版物解決了醫學圖像分割中的高級研究問題。MONAI不用于臨床。
· COPLE-Net: COVID-19 Pneumonia Lesion Segmentation Network
· LAMP: Large Deep Nets with Automated Model Parallelism for Image Segmentation
COPLE-Net網絡:COVID-19肺炎病灶分割網絡
CT對19例肺炎病灶的準確診斷和隨訪具有重要意義。
圖1. COVID19例肺炎病變的CT表現。掃描(a-c)來自三個不同的病人,紅色箭頭突出顯示了一些病變。掃描(d)顯示不同觀察者給出的(c)注釋。
在COVID-19爆發期間,獲得大量精確的肺炎病變像素級注釋是一項挑戰。本研究主要針對分割作業中的噪音標簽學習。
本研究的主要創新之一是增強的深卷積神經網絡結構。該體系結構具有以下特點:
它使用最大池化和平均池化的組合來減少下采樣過程中的信息丟失。
它使用橋接層來減輕編碼器和解碼器中特征之間的語義鴻溝。
它在瓶頸處采用了ASPP模塊,以更好地處理多個尺度的病變。
圖2. 提出的COPLE網絡體系結構。
這種新穎的建筑是在莫奈提供的。MaxAvgPool和SimpleASPP等關鍵網絡組件可以方便地集成到其他深度學習管道中:
from monai.networks.blocks import MaxAvgPool, SimpleASPP
max_avg_pool =
MaxAvgPool(spatial_dims=spatial_dims, kernel_size=2)
aspp =
SimpleASPP(spatial_dims, ft_chns[4], int(ft_chns[4] / 4),
kernel_sizes=[1, 3, 3, 3], dilations=[1, 2, 4, 6])
圖像預處理管道和預訓練模型加載可以通過MONAI的幾個Python命令完成:
images = sorted(glob(os.path.join(IMAGE_FOLDER, “case*.nii.gz”))) val_files = [{“img”: img} for img in images] # define transforms for image and segmentation infer_transforms = Compose( [ LoadNiftid(“img”), AddChanneld(“img”), Orientationd(“img”, “SPL”), ToTensord(“img”), ] ) test_ds = monai.data.Dataset(data=val_files, transform=infer_transforms) # sliding window inference need to input one image in every iteration data_loader = torch.utils.data.DataLoader( test_ds, batch_size=1, num_workers=0, pin_memory=torch.cuda.is_available() ) device = torch.device(“cuda” if torch.cuda.is_available() else “cpu”) model = CopleNet().to(device) model.load_state_dict(torch.load(MODEL_FILE)[“model_state_dict”])
Pythorch用戶將受益于MONAI醫療圖像預處理器和特定領域的網絡塊。同時,代碼顯示了MONAI模塊和PyTorch本機對象的兼容性,比如torch.utils.data.DataLoader,從而簡化了MONAI模塊在一般PyTorch工作流中的采用。
圖3. 不同損失函數下COPLE網絡分割性能的可視化比較。
在從噪聲標簽中學習COVID-19肺炎病灶分割的場景中,COPLE網絡的實驗結果表明,新的結構比最先進的CNNs具有更高的性能。
LAMP:用于圖像分割的自動模型并行的大型深網
深度學習模型變得越來越大,因為模型尺寸的增加可以顯著提高精度。通過自動模型并行,可以用大的輸入塊,甚至是整個圖像來訓練大型的深3D變換器。
圖4. (上)遠程跳轉連接阻礙了U-Net中的并行性。(底部)顯式地構造了U-Net的一個變體,以消除U-Net中的長程依賴。并行U-Net具有較高的并行效率和吞吐量。
圖5. 分區模型。
在圖5中,一個deep模型被劃分為三個gpu(a)。Fk是第k細胞的前向功能。Bk是反向傳播函數,它依賴于上層的Bk+1和Fk特性。由于模型(b)的依賴性,傳統的模型并行性具有較低的設備利用率。流水線并行性將輸入的小批量拆分為更小的微批次(c),并允許不同的設備同時運行微批次。同步梯度計算可以最后應用。
MONAI research實現通過使用以下預處理模塊顯示了簡單的實現:
· AddChannelDict
· Compose
· RandCropByPosNegLabeld
· Rand3Delasticd
· SpatialPadd
它還使用網絡模塊(如卷積)和分層工廠(layer factory)使用相同的模塊接口輕松處理2D或3D輸入。損失函數和度量模塊簡化了模型的訓練和評估。這個實現還包括一個訓練和驗證管道的工作示例。
Figure 6. Segmentation accuracy (Dice coefficient, %) and inference time (s) comparisons among 3D U-Net and 3D SEU-Net of different sizes (#filters in the first convolutional layer: 32, 64, 128) and different input sizes (64×64×64, 128×128×128, whole image or 192×192×192) on Head and Neck nine organ auto-segmentation and decathlon liver and tumor segmentation datasets.
本研究表明:
大的模型和輸入可以提高分割精度。
大的輸入大大減少了推理時間。LAMP可以作為醫學圖像分析任務的一個有用的工具,例如大圖像配準、檢測和神經結構搜索。
摘要
這篇文章強調了醫學影像學的深度學習研究是如何與MONAI一起建立起來的。這兩個研究實例都使用了MONAI v0.2.0中的代表性特性,它允許快速原型化研究想法。
總結
以上是生活随笔為你收集整理的利用MONAI加速医学影像学的深度学习研究的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 构建可扩展的GPU加速应用程序(NVID
- 下一篇: CUDA刷新器:CUDA编程模型