賈楠 馬寧 吳燕 李燕
摘? 要:文章構(gòu)建了一個(gè)針對(duì)醫(yī)學(xué)影像的低代碼深度學(xué)習(xí)實(shí)驗(yàn)平臺(tái)。該平臺(tái)可以處理2D、3D醫(yī)學(xué)影像數(shù)據(jù),實(shí)現(xiàn)基于深度學(xué)習(xí)的醫(yī)學(xué)影像分類任務(wù)。該平臺(tái)由數(shù)據(jù)集整理、訓(xùn)練集和測(cè)試集劃分、模型訓(xùn)練、模型推理、結(jié)果展示5部分構(gòu)成。每一部分均不需要編程,只需要指定數(shù)據(jù)路徑或簡(jiǎn)單編寫配置文件即可。文章還以一個(gè)新冠病毒感染智能檢測(cè)的案例貫穿始終。該平臺(tái)能夠方便學(xué)生開展“智慧醫(yī)療”類創(chuàng)新創(chuàng)業(yè)項(xiàng)目,培養(yǎng)學(xué)生的創(chuàng)新能力和動(dòng)手實(shí)踐能力。
關(guān)鍵詞:智慧醫(yī)療;深度學(xué)習(xí);醫(yī)學(xué)影像;創(chuàng)新創(chuàng)業(yè);實(shí)驗(yàn)平臺(tái)
中圖分類號(hào):TP311;TP18;G482 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào): 2096-4706(2023)10-0018-04
Abstract: This paper constructs a low code deep learning experimental platform for medical imaging. The platform can process 2D and 3D medical imaging data and realize medical imaging classification task based on deep learning. The platform consists of five parts: data set sorting, training set and test set division, model training, model reasoning, and result display. No programming is required for each part, just specify the data path or simply write the configuration file is well. This paper also uses a case of intelligent detection of COVID-19 throughout. The platform can facilitate students to carry out “Wise Information Technology of Med” innovation and entrepreneurship projects, and cultivate students' innovation ability and practical ability.
Keywords: Wise Information Technology of Med; deep learning; medical imaging; innovation and entrepreneurship; experimental platform
0? 引? 言
人工智能是研究、開發(fā)用于模擬、延伸和擴(kuò)展人的智能的理論、方法、技術(shù)及應(yīng)用系統(tǒng)的一門新的技術(shù)科學(xué)[1]。世界各國(guó)都十分重視人工智能前沿研究、技術(shù)發(fā)展與教育培養(yǎng)。深度學(xué)習(xí)作為人工智能的一個(gè)細(xì)分領(lǐng)域,近年來發(fā)展迅速,它可幫助計(jì)算機(jī)理解文本、聲音、圖像方面的數(shù)據(jù),其在各行各業(yè)正在逐步的滲透與應(yīng)用[2]。近幾年來,深度學(xué)習(xí)應(yīng)用于醫(yī)學(xué)圖像分析已經(jīng)成為當(dāng)下的熱點(diǎn)。它能夠從各種醫(yī)學(xué)圖像數(shù)據(jù)中自動(dòng)去學(xué)習(xí)以及推斷疾病診斷特征。深度學(xué)習(xí)在醫(yī)學(xué)圖像分類、檢測(cè)、分割、配準(zhǔn)、檢索、圖像生成等各方面都有應(yīng)用。目前,隨著可公開訪問的相關(guān)醫(yī)學(xué)圖像數(shù)據(jù)集數(shù)量的不斷增加,質(zhì)量不斷提高,以及我們常常能夠看到網(wǎng)上舉辦的各種各樣醫(yī)學(xué)圖像分割挑戰(zhàn)賽,都在預(yù)示著隨著深度學(xué)習(xí)算法的不斷改進(jìn),基于深度學(xué)習(xí)的醫(yī)學(xué)圖像分析將大有可為。近年來,教育部開始大力推進(jìn)高等學(xué)校創(chuàng)新創(chuàng)業(yè)教育,鼓勵(lì)高校學(xué)生自主創(chuàng)業(yè)[3]。這是建設(shè)創(chuàng)新型國(guó)家的重大戰(zhàn)略舉措,是培養(yǎng)學(xué)生創(chuàng)新精神和實(shí)踐能力的重要途徑,也是落實(shí)以創(chuàng)業(yè)帶動(dòng)就業(yè),促進(jìn)高校畢業(yè)生充分就業(yè)的重要舉措。然而,針對(duì)醫(yī)學(xué)院校的學(xué)生,如何能將前沿的AI與醫(yī)療相結(jié)合來進(jìn)行創(chuàng)新創(chuàng)業(yè)教育實(shí)踐與實(shí)訓(xùn),沒有統(tǒng)一的模板和規(guī)律可循,亟待解決。
本文將從醫(yī)學(xué)院校學(xué)生的專業(yè)背景出發(fā),探索AI和醫(yī)療相結(jié)合的創(chuàng)新創(chuàng)業(yè)實(shí)踐教育和實(shí)訓(xùn)平臺(tái)的搭建。旨在培養(yǎng)學(xué)生跨學(xué)科學(xué)習(xí)能力,體驗(yàn)跨學(xué)科融合教育,從傳授理論知識(shí)轉(zhuǎn)向培養(yǎng)實(shí)踐創(chuàng)新能力,鍛煉學(xué)生在學(xué)習(xí)過程中提出問題、分析問題、解決問題的能力。
本項(xiàng)目研究的重要意義在于以人工智能、臨床醫(yī)學(xué)和影像醫(yī)學(xué)為依托,探索智能、精準(zhǔn)、快速的診療技術(shù)與疾病預(yù)防的應(yīng)用模式[4]。以完成“智慧醫(yī)療”類的創(chuàng)新創(chuàng)業(yè)項(xiàng)目為目標(biāo),關(guān)注學(xué)生的創(chuàng)新創(chuàng)業(yè)激情,幫助學(xué)生了解該領(lǐng)域的前沿創(chuàng)新,開展智能技術(shù)與醫(yī)療健康交叉的科研活動(dòng)及產(chǎn)品開發(fā),全面提高學(xué)生在智慧醫(yī)療領(lǐng)域的創(chuàng)新創(chuàng)業(yè)實(shí)踐能力。
1? 人工智能平臺(tái)構(gòu)建
1.1? 框架選擇
目前可用的人工智能平臺(tái)眾多,包括Caffe、TensorFlow、
Keras、MXNet、PaddlePaddle、PyTorch等[5-11]。如何選擇一個(gè)合適的平臺(tái)輔助醫(yī)學(xué)院校非計(jì)算機(jī)專業(yè)的學(xué)生進(jìn)行“人工智能+醫(yī)療”創(chuàng)新創(chuàng)業(yè)項(xiàng)目的設(shè)計(jì)與開發(fā)是我們首先面臨的問題,本文調(diào)研了人工智能平臺(tái)如表1所示。
在選擇開源框架時(shí),首先要考慮開源框架的生態(tài)完善性,社區(qū)的活躍程度;其次要考慮學(xué)生前期先修過哪些編程語言,從而降低學(xué)習(xí)門檻;所以綜合以上兩方面的原因,我們選擇PyTorch來搭建本實(shí)驗(yàn)平臺(tái)。
1.2? 設(shè)計(jì)目標(biāo)
本實(shí)驗(yàn)平臺(tái)主要處理的數(shù)據(jù)集為醫(yī)學(xué)圖像數(shù)據(jù)集,包括2D、3D兩類數(shù)據(jù),要能夠?qū)崿F(xiàn)基于深度學(xué)習(xí)的醫(yī)學(xué)圖像分類任務(wù)。由于實(shí)驗(yàn)平臺(tái)面向的是醫(yī)學(xué)專業(yè)的學(xué)生,所以平臺(tái)使用要盡可能簡(jiǎn)單,只需簡(jiǎn)單的配置即可使用,盡可能讓醫(yī)學(xué)生少寫代碼。整個(gè)2D的實(shí)驗(yàn)平臺(tái)框架如圖1所示,3D是在此基礎(chǔ)上稍做調(diào)整。整個(gè)平臺(tái)由5部分構(gòu)成,分別是數(shù)據(jù)集整理、訓(xùn)練集和測(cè)試集劃分、模型訓(xùn)練、模型推理以及結(jié)果展示,每個(gè)部分都不需要編程,只需要改些配置文件即可。
1.3? 2D醫(yī)學(xué)圖像分類實(shí)現(xiàn)思路
1.3.1? 數(shù)據(jù)集制作
針對(duì)2D醫(yī)學(xué)圖像分類任務(wù),平臺(tái)可支持JPG、PNG、JPEG等常用圖像類型。醫(yī)學(xué)圖像一般分為兩種數(shù)據(jù)集,一種不帶有掩膜,另一種帶有掩膜。針對(duì)不帶有掩膜的數(shù)據(jù)集,數(shù)據(jù)集整理步驟如下:1)手工整理數(shù)據(jù),要求一個(gè)文件夾存放一個(gè)類別的數(shù)據(jù),文件夾名稱即為類別名稱。2)運(yùn)行實(shí)驗(yàn)平臺(tái)的class_indices.py文件,自動(dòng)生成標(biāo)簽索引文件label.txt。
本論文以一個(gè)新冠肺炎胸部X光片三分類(新冠肺炎、其他病毒肺炎、正常)數(shù)據(jù)集為例。整理后的文件夾以及運(yùn)行class_indices.py程序的結(jié)果如圖2所示(左邊為數(shù)據(jù)集名稱及各類別文件夾名稱,右邊為類別名稱與之對(duì)應(yīng)索引)。
針對(duì)帶有掩膜的數(shù)據(jù)集,如果想利用原始影像和掩膜提取ROI圖像來訓(xùn)練模型,需要先將原始圖像放入名為images的文件夾中,然后將掩膜放入名為masks的文件夾中,圖像文件名和掩膜文件名要相同,做到一一對(duì)應(yīng)。然后運(yùn)行img_roi_crop.py文件,將輸出的結(jié)果(即提取的ROI圖像)再按照前述不帶有掩膜數(shù)據(jù)集的整理步驟來整理數(shù)據(jù)。
1.3.2? 訓(xùn)練集和測(cè)試集劃分
運(yùn)行實(shí)驗(yàn)平臺(tái)的split_data.py程序,根據(jù)程序提示輸入整理后的數(shù)據(jù)集所在根路徑,指定訓(xùn)練集(train)和測(cè)試集(test)的比例,該程序?qū)⒆詣?dòng)劃分訓(xùn)練集和測(cè)試集。生成相應(yīng)目錄結(jié)構(gòu)如圖3所示。
運(yùn)行實(shí)驗(yàn)平臺(tái)的get_label_info.py程序,自動(dòng)生成訓(xùn)練集和測(cè)試集圖像的“存儲(chǔ)圖像路徑列表+所屬標(biāo)簽”文件train.txt和test.txt,方便訓(xùn)練模型時(shí)加載數(shù)據(jù)。
1.3.3? 模型訓(xùn)練和模型推理
針對(duì)2D醫(yī)學(xué)圖像分類任務(wù),本實(shí)驗(yàn)平臺(tái)集成了當(dāng)前主流的圖像分類模型,具體包括:AlexNet、VGG、ResNet系列、DenseNet、MobileNetV2、MobileNetV3、EfficientNet、ShuffleNetV1、ShuffleNetV2等。同時(shí)這些模型都提供在ImageNet上的預(yù)訓(xùn)練權(quán)重,滿足遷移學(xué)習(xí)的要求。所有模型文件存放在models文件夾下。采用不同的模型訓(xùn)練時(shí),只需要修改configs文件夾下的config.json配置文件即可,不需要修改代碼,方便醫(yī)學(xué)生操作。該文件可進(jìn)行model參數(shù)配置、數(shù)據(jù)配置、優(yōu)化器配置、損失函數(shù)配置、學(xué)習(xí)率調(diào)整策略配置等。配置文件樣例如圖4所示。
平臺(tái)內(nèi)通過json文件解析器對(duì)json配置文件進(jìn)行解析,靈活實(shí)現(xiàn)程序中變量的賦值和函數(shù)的構(gòu)建。訓(xùn)練模型時(shí),只需執(zhí)行如下命令便可開始模型訓(xùn)練,python train.py config.json。測(cè)試模型時(shí),只需執(zhí)行如下命令便可開始模型推理,python predict.py config.json。推理結(jié)束后會(huì)展示相關(guān)指標(biāo)結(jié)果,如圖5所示(圖中Classes Result為各類別指標(biāo)、Total Results為平均指標(biāo)、Confusion Matrix為混淆矩陣)。
1.3.4? 結(jié)果展示
為了能夠?qū)τ?xùn)練好的模型進(jìn)行展示,我們可以利用了Hugging Face[11]這家公司的開源軟件。Hugging Face在人工智能領(lǐng)域的影響力很大,運(yùn)營(yíng)著很大的一個(gè)社區(qū)。它開源了許多的模型、數(shù)據(jù)集、工具庫(kù),尤其在NLP領(lǐng)域特別出名。實(shí)驗(yàn)平臺(tái)用到了Hugging Face新加入的AI應(yīng)用展示的服務(wù)Spaces。該組件可以非常容易的將訓(xùn)練好的模型托管到Hugging Face Spaces中,然后編寫一個(gè)app.py的文件,就可以很好展示模型的效果,使用非常方便。軟件界面如圖6所示。
1.4? 3D醫(yī)學(xué)圖像分類實(shí)現(xiàn)思路
3D影像在醫(yī)學(xué)領(lǐng)域也較為常見,如MR、CT等。針對(duì)3D影像分類任務(wù)也是有著非常大的需求。比如:根據(jù)肺部CT影像判斷腫瘤的良、惡性;根據(jù)腦部MR影像確定膠質(zhì)瘤的分類級(jí)別。常見的實(shí)現(xiàn)分類方法有兩種,平臺(tái)也都支持。無論是哪種方法平臺(tái)都要求3D影像數(shù)據(jù)以及3D掩膜數(shù)據(jù)必須先轉(zhuǎn)換為nii或nii.gz的格式,然后才能使用。
第一種方法是3D轉(zhuǎn)2D;利用mask文件從3D影像中截取ROI區(qū)域最大的圖片,然后構(gòu)建出一個(gè)2D的影像數(shù)據(jù)集。為了實(shí)現(xiàn)該功能我們專門開發(fā)了nii_roi_crop.py程序,該程序可以實(shí)現(xiàn)提取MR、CT序列中ROI區(qū)域最大的那一張圖像以及對(duì)該圖像ROI區(qū)域進(jìn)行最大化的剪裁。程序運(yùn)行后得到是一個(gè)2D的圖片數(shù)據(jù)集,余下的操作步驟和訓(xùn)練2D圖像是一致的。
第二種方法是直接進(jìn)行3D訓(xùn)練;利用mask文件直接進(jìn)行3D ROI區(qū)域剪裁,剪裁后的ROI影像仍然為3D nii格式。該功能的實(shí)現(xiàn)還是依賴于nii_roi_crop.py程序。將剪裁后的nii影像按照2D影像的要求那樣去制作數(shù)據(jù)集、劃分?jǐn)?shù)據(jù)集。模型訓(xùn)練目前本實(shí)驗(yàn)平臺(tái)只支持ResNet(3D)系列,因?yàn)镽esNet(3D)支持3D影像數(shù)據(jù)的直接輸入,更為關(guān)鍵的是該模型有騰訊公司提供的在多個(gè)醫(yī)學(xué)影像數(shù)據(jù)上的預(yù)訓(xùn)練權(quán)重,能夠很好的進(jìn)行遷移學(xué)習(xí)。訓(xùn)練模型時(shí)只需要運(yùn)行train_3D.py程序即可實(shí)現(xiàn)模型訓(xùn)練。最終也可以采用的Hugging Face Spaces進(jìn)行模型效果展示。
2? 結(jié)? 論
基于深度學(xué)習(xí)的醫(yī)學(xué)影像分類是人工智能在醫(yī)療領(lǐng)域的一個(gè)重要應(yīng)用。該平臺(tái)的搭建可以方便醫(yī)學(xué)生開展“人工智能+醫(yī)療”方面的創(chuàng)新創(chuàng)業(yè)項(xiàng)目。同時(shí)該平臺(tái)也為將來學(xué)生再做多組學(xué)(影像數(shù)據(jù)+臨床數(shù)據(jù)+病理數(shù)據(jù)+生理生化數(shù)據(jù)等)融合方面的科學(xué)探索打下了基礎(chǔ)。
參考文獻(xiàn):
[1] 國(guó)務(wù)院.關(guān)于印發(fā)新一代人工智能發(fā)展規(guī)劃的通知 [EB/OL].(2017-07-08)http://www.gov.cn/zhengce/content/2017-07/20/content_5211996.htm.
[2] 王翊,文靜,張海鑫,等.“深度學(xué)習(xí)”實(shí)驗(yàn)教學(xué)四段式教學(xué)法的研究與實(shí)踐 [J].實(shí)驗(yàn)技術(shù)與管理,2021,38(5):208-212.
[3] 李波,覃俊,帖軍.新工科及人工智能背景下計(jì)算機(jī)類專業(yè)創(chuàng)新創(chuàng)業(yè)教育研究 [J].實(shí)驗(yàn)技術(shù)與管理,2021,38(3):18-22.
[4] 陳磊,劉愛娥,詹翊強(qiáng),等.人工智能賦能醫(yī)療影像全流程 [J].人工智能,2021(3):28-37.
[5] BVLC. Caffe: A fast open framework for deep learning [DB/OL].[2022-10-09].https://github.com/BVLC/caffe.
[6] Tensorflow. An open source machine learning framework for everyone [DB/OL].[2022-10-09].https://github.com/tensorflow/tensorflow.
[7] keras. Deep Learning for humans [DB/OL].[2022-10-09].https://github.com/keras-team/keras.
[8] Mxnet. A truly open source deep learning framework suited for flexible research prototyping and production [DB/OL].[2022-10-09].https://github.com/apache/incubator-mxnet.
[9] PaddlePaddle. Parallel distributed deep learning: Machine learning framework from industrial practice [DB/OL].[2022-10-09].https://github.com/PaddlePaddle/Paddle.
[10] Pytorch. Tensors and dynamic neural networks in python with strong GPU acceleration [DB/OL].[2022-10-09].https://github.com/pytorch/pytorch.
[11] Hugging Face. The AI community building the future [DB/OL].[2022-10-09].https://github.com/huggingface.
作者簡(jiǎn)介:賈楠(1984—),男,漢族,內(nèi)蒙古包頭人,講師,碩士,研究方向:醫(yī)學(xué)圖像處理;通訊作者:李燕(1983—),女,漢族,內(nèi)蒙古包頭人,副主任技師,碩士,研究方向:醫(yī)學(xué)圖像處理。