王嘉儀 陳曉晴 吳傳旭 周文萱 何方舟
(南華大學(xué)計算機(jī)學(xué)院 湖南省衡陽市 421000)
隨著計算機(jī)技術(shù)的廣泛應(yīng)用與普及,計算機(jī)數(shù)量與日俱增,其配套的環(huán)境設(shè)備也日益增多,計算機(jī)視覺與機(jī)器學(xué)習(xí)研究者對圖像語義分割問題越來越感興趣。機(jī)器視覺任務(wù)逐漸成為各大領(lǐng)域關(guān)注的焦點。在醫(yī)療技術(shù)飛速發(fā)展的時代,醫(yī)學(xué)影像已成為診斷患者癥狀的依據(jù)之一,它旨在利用影像技術(shù),高效準(zhǔn)確地判斷疑難雜癥,做到機(jī)器和人類智慧的有機(jī)結(jié)合,目前醫(yī)院中廣泛應(yīng)用的影像系統(tǒng)有CT、MRI、PET 等,對于腫瘤顯影而言,醫(yī)生并不能準(zhǔn)確分辨出腫瘤的良惡性,攝片結(jié)果顯示出的密度高低有時較容易造成誤判,但若利用計算機(jī)方法提前診斷患者病癥,提高腫瘤治療效果,利用醫(yī)學(xué)影像分割系統(tǒng),結(jié)合大數(shù)據(jù)技術(shù),可以有效彌補(bǔ)上述不足,能在早期快速捕捉癌細(xì)胞聚集表現(xiàn),預(yù)測后續(xù)的病情變化,為治療提供依據(jù)。本項目著重研究醫(yī)學(xué)圖像的分割,可以彌補(bǔ)以上提到的不足,解決以下幾個實際問題:
(1)對感興趣區(qū)域進(jìn)行提取,便于醫(yī)學(xué)圖像的分析和識別。
(2)用于醫(yī)學(xué)圖像的三維重建和可視化。
(3)用于人體器官、組織或病灶的尺寸、體積或容積的測量。
本系統(tǒng)使用基于U-Net 改進(jìn)后的模型對醫(yī)學(xué)影像進(jìn)行病灶的分割,經(jīng)過改進(jìn)的模型與原模型相比具有更高的準(zhǔn)確度和運行速率。此外,本系統(tǒng)面向的用戶主要為影像科醫(yī)生,它的主要功能是對輸入的影像進(jìn)行分割,得到的器官或者病灶區(qū)域的位置,方便醫(yī)生觀察,并可以提供預(yù)篩選,以減輕影像學(xué)醫(yī)生的診斷負(fù)擔(dān),提高診斷效率,其分割結(jié)果也可為醫(yī)學(xué)生提供學(xué)習(xí)資源,提升醫(yī)學(xué)生對于醫(yī)療影像的診斷能力。用戶在使用本系統(tǒng)時,只需在網(wǎng)站上進(jìn)行賬號注冊,之后再選擇分割的類型,最后用戶可將待分割的醫(yī)學(xué)影像進(jìn)行傳輸,并在短時間內(nèi)得到分割結(jié)果。
實現(xiàn)醫(yī)學(xué)圖像的自動分割是非常有價值的工作,特別是目前我國國民平均生活水平大幅上升,并且面對即將到來的人口老齡化時代,每個人對自身身體健康越來越關(guān)心,即使我國的醫(yī)療衛(wèi)生體系已經(jīng)快速發(fā)展,但還是不能滿足巨大的醫(yī)療資源需求,所以醫(yī)學(xué)圖像的自動分割在未來的醫(yī)療領(lǐng)域具有極大的價值,此系統(tǒng)不僅可為醫(yī)療資源分擔(dān)任務(wù),而且它可以通過對圖像的分割來高效準(zhǔn)確地判定病人的器官異常部位,當(dāng)醫(yī)生在使用此系統(tǒng)時只需查看感興趣的區(qū)域,從而忽略不需要的區(qū)域的干擾,更有利于醫(yī)生分析病情而減少誤判。
其中閾值分割作為一種最基礎(chǔ)、使用最廣泛的圖像分割技術(shù),通過設(shè)定不同的閾值,將待分割圖像像素分為具有不同灰度級的目標(biāo)區(qū)域,但實際工作環(huán)境中拍攝的醫(yī)學(xué)影像可能包含各種偽影,如陰影、背景噪聲、對比度變化程度等,對處于這種不良狀態(tài)下的影像進(jìn)行準(zhǔn)確的二值化分割是一項極具復(fù)雜且困難的工作。若設(shè)定的閾值不當(dāng),則算法則會錯誤地將待分割影像解釋為噪聲,并錯誤地解釋為對象,最終導(dǎo)致模型的性能下降,為分割任務(wù)帶來不必要的麻煩。
隨著深度學(xué)習(xí)模型在各大區(qū)域的廣泛應(yīng)用,其中的卷積神經(jīng)網(wǎng)絡(luò)也被引入語義分割任務(wù),基于卷積神經(jīng)網(wǎng)絡(luò)的語義分割方法被相繼提出,并且分割速度也不斷的優(yōu)化。CNN(Convolutional Neural Network)可以實現(xiàn)自動的圖像分割,雖然卷積神經(jīng)網(wǎng)絡(luò)在提取圖像特征時有較好的表現(xiàn),但它在進(jìn)行池化操作時很可能會丟失重要的邊緣信息,進(jìn)而影響最終的判別結(jié)果。且基于卷積網(wǎng)絡(luò)的應(yīng)用主要是分類任務(wù),其中輸出到圖像的結(jié)果是單類別標(biāo)簽,然而在大多數(shù)醫(yī)學(xué)影像處理過程中,期望的輸出應(yīng)該包括局部化,即為每個像素分配一個類別標(biāo)簽,并且在生物醫(yī)學(xué)任務(wù)中想在短時間內(nèi)有效訓(xùn)練出大量的數(shù)據(jù)集是遙不可及的。
O.Ronneberger 等人基于卷積神經(jīng)網(wǎng)絡(luò)改進(jìn)得到的U-Net 模型分為編碼(Encode)-解碼(Decode)兩部分,在編碼階段,模型通過3*3 卷積和下采樣提取特征信息,在解碼階段則通過上采樣和卷積將特征信息映射到原始特征空間,得到每一個像素的類別,U-Net 結(jié)構(gòu)本質(zhì)是一個端到端的全卷積神經(jīng)網(wǎng)絡(luò),它通過四次下采樣和四次上采樣對圖像進(jìn)行處理,其中較淺的高分辨率層用來解決像素定位問題,有利于分割精度的提升。
但當(dāng)被訓(xùn)練的網(wǎng)絡(luò)層數(shù)增多,計算機(jī)資源會被過度消耗,訓(xùn)練出的模型容易出現(xiàn)過擬合的現(xiàn)象,并且會產(chǎn)生梯度消失或爆炸等問題,為了解決這些情況,一些研究通過改進(jìn)基于U-Net 結(jié)構(gòu)來分割的算法,通過不斷優(yōu)化U-Net 結(jié)構(gòu),并引入殘差機(jī)制、稠密連接機(jī)制、雙注意力模塊等新的思想來進(jìn)一步實現(xiàn)圖像精準(zhǔn)的自動分割與預(yù)測。本系統(tǒng)結(jié)合上述圖像分割方法的缺陷,使用了一種將殘差網(wǎng)絡(luò)和U-Net結(jié)構(gòu)相結(jié)合的,并在其解碼部分加入多級預(yù)測的分割模型。此系統(tǒng)首先對U-Net 結(jié)構(gòu)做出了部分改進(jìn),使用Resnet-18替換了U-net 結(jié)構(gòu)的編碼部分,并且使用VGG 公式搭建Plain VGG 網(wǎng)絡(luò),在Plain VGG 的卷積網(wǎng)絡(luò)之間插入Identity Mapping,使模型的效果更加準(zhǔn)確。此外,此系統(tǒng)在基于U-Net結(jié)構(gòu)和Resnet 構(gòu)建塊的基礎(chǔ)上,還在解碼部分加入了多級預(yù)測來進(jìn)行跟蹤,多級預(yù)測模塊可以充分利用各層特征的特點,實現(xiàn)對不同尺度目標(biāo)的分割和評估。加入了多級預(yù)測結(jié)構(gòu)后的U-Net 模型在一定程度上優(yōu)化了分割精準(zhǔn)度,在加入多級預(yù)測外,本文還將每一級的預(yù)測加入到下一級的預(yù)測結(jié)果中,這樣可以有效的節(jié)省訓(xùn)練時間,提高模型預(yù)測的準(zhǔn)確度,加入多級預(yù)測的分割模型如圖1 所示。本系統(tǒng)的使用此深度學(xué)習(xí)方法對器官和病灶區(qū)域進(jìn)行分割,并支持多種格式的影像學(xué)數(shù)據(jù)輸入,可以幫助用戶進(jìn)行CT、MRI、WSI(病理圖像)自動分割,與傳統(tǒng)的圖像分割相比有更高的精確度和運行效率。
圖1:加入多級預(yù)測的U-Net 結(jié)構(gòu)
系統(tǒng)整體使用Python 中的Django 庫基于MVT 結(jié)構(gòu)進(jìn)行設(shè)計,其中M 為Model,只要負(fù)責(zé)應(yīng)用和數(shù)據(jù)庫的交互;V 為View,主要負(fù)責(zé)將UI 界面模板呈現(xiàn)給用戶和用戶進(jìn)行交互;T 為Template,主要是UI 界面的模板。應(yīng)用是系統(tǒng)的核心為語義分割,其語義分割采取U-net 框架。根據(jù)交互和語義分割,設(shè)計整體系統(tǒng)結(jié)構(gòu)圖如圖2 所示。
圖2:系統(tǒng)結(jié)構(gòu)圖
該系統(tǒng)主要由用戶交互模塊和語義分割模塊組成,其中用戶交互模塊使用Django 作為后臺框架開發(fā)一個 WEB 應(yīng)用,而語義分割模塊則是利用語義分割算法對用戶提交的影像數(shù)據(jù)進(jìn)行自動分割,得到用戶提交的任務(wù)類型的分割結(jié)果。這兩個模塊由兩個獨立的線程實現(xiàn),在兩個模塊之間使用一個任務(wù)分配線程用于進(jìn)行這兩個模塊之間的數(shù)據(jù)交互。
任務(wù)分配模塊是獨立于 Django 主要線程的一個用于進(jìn)行檢測任務(wù)分配的線程,它主要負(fù)責(zé)從 UI 交互模塊中獲取到分割任務(wù)的相關(guān)信息,這些信息包括模型配置文件、任務(wù)ID 和文件名。獲取到任務(wù)相關(guān)信息后,將其標(biāo)為等待任務(wù),語義分割進(jìn)程能夠處理該任務(wù)時將其取出,通知語義分割線程處理該任務(wù)。
語義分割線程主要是語義分割算法的實現(xiàn),本系統(tǒng)采用的是基于U-net 的架構(gòu),U-Net 是一個編碼(Encode)-解碼(Decode)結(jié)構(gòu),在編碼階段,模型通過卷積和下采樣提取特征信息,在解碼階段則通過上采樣和卷積將特征信息映射到原始特征空間,得到每一個像素的類別,U-Net 中的高低像素語義信息結(jié)合的方式也有效融合了上下文信息,有利于分割定位精度的提升。
由于涉及到影像AI 相關(guān)處理,服務(wù)器硬件資源采用NVDIA Tesla V100、32GB 內(nèi)存以及2.2GHz 主頻的Intel Xeon E5-2650 v4(Broadwel)處理器。此外,為保證醫(yī)生閱片及標(biāo)注的流暢度,客戶端內(nèi)存配置為8G,單用戶帶寬設(shè)置為20M。
本系統(tǒng)的用戶交互模塊包括登錄、注冊、提交檢測請求、檢測結(jié)果查詢以及下載這幾個功能,每一個功能由一個獨立的視圖函數(shù)完成,其中登錄功能在login 視圖函數(shù)中實現(xiàn),注冊功能在register 視圖函數(shù)中實現(xiàn),提交檢測請求在index視圖函數(shù)中實現(xiàn),檢測結(jié)果查詢在results 視圖函數(shù)實現(xiàn)。
3.2.1 登錄/注冊視圖設(shè)計
在登錄視圖函數(shù)中首先根據(jù)登錄模版渲染登錄頁面發(fā)送給客戶端,然后接收到用戶的登錄信息后,使用User 模型向表中查詢是否存在此用戶,并使用用戶名和密碼進(jìn)行認(rèn)證,認(rèn)證成功后則登錄成功轉(zhuǎn)向首頁面。注冊視圖最首先也是根據(jù)注冊模板渲染頁面反饋給客戶端,然后當(dāng)用戶提交注冊信息后使用User 模型向表中插入用戶信息。
3.2.2 提交檢測功能設(shè)計
提交檢測功能要求在頁面渲染完畢后接收用戶的請求,根據(jù)此次請求生成唯一的128 位UUID 作為此次任務(wù)的任務(wù)ID,然后調(diào)用SegTasks 模型向表中插入此次分割任務(wù)信息,然后向獨立任務(wù)分配進(jìn)程的等待隊列中插入此次分割任務(wù)的信息,完成后轉(zhuǎn)向本用戶的所有分割任務(wù)的結(jié)果頁面。
3.2.3 分割結(jié)果視圖設(shè)計
結(jié)果視圖首先是通過SegTasks 查詢到當(dāng)前登錄用戶的所有分割任務(wù)請求,其次是根據(jù)任務(wù)ID 是否在等待,判斷任務(wù)是否處于等待狀態(tài),然后則是通過判斷是否存在結(jié)果文件判斷該次任務(wù)是否已經(jīng)完成。任務(wù)分配線程是通過任務(wù)等待列表,任務(wù)等待隊列和分割任務(wù)隊列實現(xiàn),任務(wù)分配線程通過任務(wù)等待隊列卡死在等待狀態(tài),當(dāng)用戶請求一個新的分割任務(wù)時,插入到任務(wù)等待隊列將會喚醒此次任務(wù)分配線程,此時線程將此次任務(wù)信息插入到任務(wù)等待列表中,而任務(wù)是否可以加入到分割任務(wù)隊列中則需要看此時分割任務(wù)隊列是否已滿并且是否為等待列表中的首個任務(wù),如果未滿且為等待列表中的第一個任務(wù)則可插入。
3.2.4 安全標(biāo)志位設(shè)計
在實驗過程中發(fā)現(xiàn)如果僅采用分割任務(wù)隊列,則可能會存在任務(wù)沖擊正在運行的任務(wù),導(dǎo)致任務(wù)出運行錯誤,因此,在分割任務(wù)隊列的基礎(chǔ)之上增加了一個安全標(biāo)志位,當(dāng)任務(wù)加入到任務(wù)分割隊列并被分割任務(wù)線程取出后安全標(biāo)志位阻止分配任務(wù)繼續(xù)向分割隊列中加入新任務(wù),當(dāng)分割結(jié)束后,安全標(biāo)志位置為安全狀態(tài),分配線程可以繼續(xù)向分割隊列中加入任務(wù)。分割任務(wù)線程主要通過分割任務(wù)隊列和安全標(biāo)志位實現(xiàn),線程通過分割任務(wù)隊列的get 方法將線程陷入等待狀態(tài),當(dāng)分割任務(wù)列表中加入任務(wù)時,線程喚醒,將安全標(biāo)志位置為不安全狀態(tài),根據(jù)任務(wù)信息中的分割任務(wù)配置文件確定模型的參數(shù),包括輸出類別數(shù)、模型輸入通道數(shù)、層數(shù)等。
3.2.5 影像分割實現(xiàn)
同時根據(jù)配置信息獲取任務(wù)所屬類別,根據(jù)不同類別實現(xiàn)不同數(shù)據(jù)的分割,目前已經(jīng)實現(xiàn)針對CT 和MRI 的影像學(xué)數(shù)據(jù)的分割,病理學(xué)圖像的分割即將上線。模型配置好后載入當(dāng)前模型的權(quán)重信息,進(jìn)入分割過程,將三維CT、MRI切分成二維圖片按順序分割后重建得到最終的三維分割結(jié)果,針對病理學(xué)圖像則采用滑動窗口滑動,每次滑動1/2 個窗口大小,每次的重疊區(qū)域的預(yù)測結(jié)果以兩次的平均值為準(zhǔn),當(dāng)窗口滑動過整個病理學(xué)圖像后得到最終的分割結(jié)果。分割結(jié)果得到后,將結(jié)果存入到對應(yīng)該任務(wù)ID 的結(jié)果文件夾中,同時將安全標(biāo)志位置為安全狀態(tài)。
(1)用戶在該界面可以使用賬號密碼直接登錄,也可以點擊注冊進(jìn)行賬號注冊,注冊完成之后登錄進(jìn)入系統(tǒng),同時也可以進(jìn)行找回密碼操作,如圖3 所示。
圖3:系統(tǒng)登陸界面
(2)用戶登陸成功之后進(jìn)入該界面,即首頁,在該界面提交需要分割的腦腫瘤、腎或腎腫瘤文件,選擇相對應(yīng)的任務(wù)類別后,點擊提交按鈕進(jìn)行醫(yī)學(xué)影像的分割,如圖4 所示。
圖4:提交任務(wù)界面
(3)用戶在提交任務(wù)后,進(jìn)入分割任務(wù)列表界面,列表標(biāo)明了每個任務(wù)的ID、類別、提交的時間以及分割的狀態(tài),分割完成后的圖像為nii 格式,屆時用戶可以在ImageITK軟件上打開分割后的照片,分割任務(wù)表如圖5 所示。
圖5:任務(wù)列表界面
醫(yī)學(xué)影像能夠反映患者的病灶區(qū)域,醫(yī)生通過醫(yī)學(xué)影像可以為患者提供準(zhǔn)確個性化的就診建議,但醫(yī)學(xué)影像往往具有模糊、不均勻性等特點,本系統(tǒng)的開發(fā)使用了基于MVT結(jié)構(gòu)進(jìn)行設(shè)計,在系統(tǒng)的開發(fā)中本系統(tǒng)使用基于U-Net 改進(jìn)而得的深度學(xué)習(xí)模型做為分割模型,本醫(yī)學(xué)影像分割的系統(tǒng)意義為:對醫(yī)生難以通過醫(yī)學(xué)影像判斷的器官或病灶區(qū)域進(jìn)行分割和定位,以提高醫(yī)生的診斷效率并有效減少醫(yī)護(hù)人員的工作量,有效的提高了醫(yī)學(xué)影像的分割精度和速率。各診室醫(yī)生在使用本系統(tǒng)時可以進(jìn)行快速注冊,或登錄本系統(tǒng)進(jìn)行醫(yī)學(xué)影像的上傳,最終得到較為準(zhǔn)確的分割結(jié)果。影像的分割結(jié)果為醫(yī)院各大診室醫(yī)生提供了幫助,醫(yī)生可以根據(jù)分割后的照片判定腫瘤的狀態(tài)、位置、性質(zhì),并制定出相應(yīng)的治療方案。
另外此分割系統(tǒng)還存在一定的缺陷,比如在3D 圖像分割中的精度較差,在今后的系統(tǒng)完善和開發(fā)工作中,我們將采用醫(yī)院提供的真實醫(yī)學(xué)影像作為本系統(tǒng)的數(shù)據(jù)集,并且引入Transformer 自注意力機(jī)制與此系統(tǒng)的深度學(xué)習(xí)模型相結(jié)合,著重對3D 的醫(yī)學(xué)影像做進(jìn)一步分割處理,隨著深度學(xué)習(xí)與生物醫(yī)學(xué)的不斷結(jié)合,基于計算機(jī)與醫(yī)學(xué)影像相結(jié)合的應(yīng)用技術(shù)將在未來為我國的醫(yī)療事業(yè)帶來一個新的突破。