顧軍華,王 鋒,戚永軍,孫哲然,田澤培,張亞娟
(1.電工設備可靠性與智能化國家重點實驗室(河北工業(yè)大學),天津300401;2.河北省大數(shù)據(jù)計算重點實驗室(河北工業(yè)大學),天津300401;3.河北工業(yè)大學人工智能與數(shù)據(jù)科學學院,天津300401;4.北華航天工業(yè)學院信息技術中心,河北廊坊065000)
肺癌作為全球發(fā)病率和死亡率最高的癌癥[1],正在嚴重威脅著人類的健康,能夠在肺癌早期發(fā)現(xiàn)并診斷肺結節(jié)對于肺癌的治療乃至治愈都能起到至關重要的作用。低劑量螺旋CT 掃描是早期發(fā)現(xiàn)肺癌的有效手段,一項對于55~74 歲的重度吸煙人群的篩查研究表明,接受低劑量CT掃描篩查人群的肺癌死亡率較接受X 線平片掃描篩查人群的肺癌死亡率低20%[2]。我國醫(yī)學圖像調查顯示,放射科醫(yī)生的數(shù)量增長遠不及圖像增長,因此,放射科醫(yī)生工作壓力巨大,并且在長時間的CT圖像診斷過程中容易出現(xiàn)效率低、主觀性大以及因生理疲勞出現(xiàn)的漏診、誤診等問題。基于內容的圖像檢索(Content Based Image Retrieval,CBIR)為上述問題提出了決策支持,其過程主要分為特征提取模型構建、圖像特征提取、相似度計算和相似度排序四個過程,最終返回相似度最高的檢索結果。醫(yī)務工作者通過檢索可疑結節(jié),并對檢索結果進行分析,給出輔助診斷的意見,從而降低誤診率。
圖像的特征提取是影響圖像檢索準確率的重要因素,而肺結節(jié)圖像特征難以提取的主要原因是其大小不一的外在形態(tài),如圖1所示。近20年來,無數(shù)研究者為肺結節(jié)的圖像特征提取方法付出了巨大努力:2000 年,Schnorrenberg 等[3]在活檢分析支持系統(tǒng)中增加了圖像檢索功能,能檢索活檢切片圖像,并利用包含57 個乳腺癌病例的數(shù)據(jù)進行了評估;Song 等[4]融合方向梯度直方圖(Histogram of Oriented Gradients,HOG)[5]和局部二值模式(Local Binary Pattern,LBP)[5]特征發(fā)現(xiàn)肺部病變;2009年,Zhi等[6]采用尺度不變特征變換(Scale-Invariant Feature Transform,SIFT)[7]特征對醫(yī)學圖像進行特征提取,進而進行圖像檢索。近年來,由于深度學習方法的廣泛研究使得計算機視覺領域各研究方向取得了長足進步,使用深度學習方法提取特征進行檢索使得檢索精度大大提高。2017 年,Ibanez 等[8]等 采 用 卷 積 神 經(jīng) 網(wǎng) 絡(Convolutional Neural Network,CNN)的特征提取方法,使用相對淺層的網(wǎng)絡結構進行肺結節(jié)特征提取,并取得了69.22%的準確率;2018 年,Nishio 等[9]使用加入遷移學習方法的VGG[10]網(wǎng)絡模型完成肺結節(jié)特征提取再進行分類;2018 年,Zhang 等[11]通過使用殘差塊堆疊的網(wǎng)絡模型對提取的特征進行特征融合的方法提取肺結節(jié)圖像特征,但是其準確率仍然不能滿足現(xiàn)實需求。

圖1 不同尺寸的肺結節(jié)Fig.1 Pulmonary nodules of different sizes
針對肺結節(jié)高級語義特征難以提取、檢索精度低的問題,本文提出了一種基于卷積特征融合的網(wǎng)絡模型LMSCRnet 用于提取肺結節(jié)圖像特征。由于肺結節(jié)尺寸大小不一,傳統(tǒng)的串行單一尺寸卷積濾波器在對肺結節(jié)圖像進行特征提取時效果不佳,因此本文采用多種尺度的卷積濾波器對肺結節(jié)圖像同時卷積再進行特征融合的方法以獲得完整的圖像語義信息;隨著網(wǎng)絡層次的加深,能夠獲得更高級的語義特征,但是同時會伴隨出現(xiàn)網(wǎng)絡退化現(xiàn)象,為此,本文引入了SE-ResNeXt 塊很好地解決了上述問題。最后,為滿足現(xiàn)實對于在海量數(shù)據(jù)中完成檢索任務的需求,本文將距離計算、排序過程部署到分布式平臺上。
圖像的特征提取對于提升圖像檢索的準確率至關重要,最大限度保留圖像的信息是保障圖像檢索準確率的重要前提。針對肺結節(jié)尺寸大小不一的特性,本文提出了一種多尺度卷積特征融合的深度網(wǎng)絡模型LMSCRnet 用于提取肺結節(jié)圖像特征。網(wǎng)絡模型總體結構如圖2所示,其中:Conv代表卷積層,Concatenate 代表圖像特征拼接操作,Avg-pooling 代表池化層。
肺結節(jié)大小范圍為4~64,具有尺度多樣的特點,針對這一特點,將輸入的圖像同時通過4 種不同尺寸的卷積核,大小依次為1×1、3×3、5×5、7×7,步長設為2,經(jīng)過卷積之后,將得到的圖像特征圖通過Concatenate 操作進行特征融合。相對于傳統(tǒng)的串行網(wǎng)絡模型,本文提出的多尺度卷積、特征拼接方法可以從肺結節(jié)圖像中更好地提取復雜特征,保證了特征的全面性、多樣性。進行Concatenate 操作之后,選用深度為64、尺寸為3×3的卷積核進行卷積,步長設為1。在卷積層之后,為了提取更深層的特征,采用了3個SE-ResNeXt[12]塊進行堆疊。為了充分利用全局空間和高度緊湊的特征以達到提高結節(jié)識別和分類性能的目的,將最后一個SE-ResNeXt 塊和平均池化層的輸入端連接起來。在池化層之后,將特征進行扁平化處理,然后再使用一個全連接層將所有的局部卷積特征連接成一個全局特征。softmax 激活函數(shù)可以將多個神經(jīng)元的輸出映射到(0,1)區(qū)間內,表示結節(jié)屬于某一類的概率,從而得到分類的結果。函數(shù)定義為式(1),其中j=1,2,…,K,K為softmax 層輸入輸出元素個數(shù),zj為輸入向量的第j 個元素值,σ(z )j代表通過softmax層后對應位置的值。

為了在網(wǎng)絡退化較小的前提下盡可能地加深網(wǎng)絡以便學習更高級的特征,在網(wǎng)絡中加入了3 個SE-ResNeXt Block,每個塊的輸出通道數(shù)分別設置為64、125 和256,每個SEResNeXt Block 由3 個單位塊串聯(lián)而成,單位塊結構如圖3(a)所示:Global avgpooling 代表全局池化,F(xiàn)C 代表全連接層,ReLU 代 表ReLU 激 活 函 數(shù),Sigmoid 代 表Sigmoid 激 活 函 數(shù),Scale 代表通道權重與通道特征之間的乘法加權。SEResNeXt 是在ResNeXt 的基礎之上加入了SEnet[12]的思想,考慮特征通道之間的關聯(lián),能夠有效地在增加不多的計算量的基礎之上提取更多的圖像特征。ResNeXt[13]是基于Resnet[14]與Inception[15]的產物,結構簡單、易懂又足夠強大,所傳遞的信息也不會因為層數(shù)的增加而有太多丟失,其網(wǎng)絡結構如圖3(b)所示,n 代表n 通道輸入輸出,layer 以(輸入通道,卷積核尺寸,輸出通道)的形式表述。
本文通過使用多尺度卷積核進行卷積,在面對大小尺度不一的肺結節(jié)圖像時能夠更好地提取圖像特征,同時SEResNeXt 塊的引入使得加深網(wǎng)絡模型學習高級特征的同時,網(wǎng)絡退化較小,顯著提高了網(wǎng)絡的性能。
為了確定網(wǎng)絡中哪一層對圖像進行特征表示能夠最大限度完整地保留圖像信息以進行圖像檢索,使用網(wǎng)絡中的相關層提取的特征進行檢索實驗,實驗結果顯示,使用全局平均池化層提取的特征作為圖像的特征表示進行檢索的準確率最高。
隨著肺部圖像數(shù)據(jù)的日益增長,為滿足海量肺結節(jié)圖像數(shù)據(jù)檢索需求,本文將相似度匹配過程部署到Spark分布式平臺[16]上。相對于Hadoop 平臺[17],基于內存的Spark 分布式并行計算平臺在繼承了Hadoop 平臺優(yōu)點的同時,由于其在運算時的中間結果存儲在內存中,在處理迭代問題時擁有更高的性能,處理能力更強。因此,基于Spark分布式計算平臺,將圖像檢索的相似度計算、排序過程并行設計,建立了并行檢索模式。

圖2 總體網(wǎng)絡結構Fig.2 Overall network structure

圖3 SE-ResNeXt和ResNeXt的結構Fig.3 Structures of SE-ResNeXt and ResNeXt
本文的檢索方法在Spark 上的并行實現(xiàn)主要分為五個步驟:1)將圖像庫通過訓練好的網(wǎng)絡模型形成相應的圖像特征庫,并存儲到Hadoop 分布式文件系統(tǒng)(Hadoop Distributed File System,HDFS)[18]中;2)從HDFS 上讀取特征庫數(shù)據(jù),并將數(shù)據(jù)劃分到不同的分區(qū)中;3)對分區(qū)上的特征數(shù)據(jù)與待檢圖像特征進行相似度計算;4)對分區(qū)度量結果進行升序排序計算;5)合并所有分區(qū)排序結果,生成特征庫中圖像根據(jù)與待檢圖像的相似度作為排序依據(jù)的有序序列。算法并行實現(xiàn)過程如圖4所示。
歐氏距離作為一種圖像檢索領域常用的相似度度量方法,以其簡單的計算、易于理解的物理意義等優(yōu)點在圖像檢索領域被廣泛使用。本文使用歐氏距離作為兩個特征之間的相似度度量方法,取值越小表明兩個特征表示的兩張肺結節(jié)圖像的相似度越高。歐氏距離定義如式(2)所示:

其中:Qi代表待檢目標圖像特征的第i 個分量,Pi代表圖像特征庫中單張圖像特征的第i個分量。

圖4 本文算法并行實現(xiàn)過程Fig.4 Parallel implementation process of the proposed algorithm
具有大規(guī)模標注信息的數(shù)據(jù)集對于模型的學習和推廣至關重要[19],如COCO[20]、ImageNet[21]等。LIDC-IDRI 數(shù)據(jù)集[22]是由美國國家癌癥研究所發(fā)起收集的,是目前應用最多的肺部CT 圖像數(shù)據(jù)集。該數(shù)據(jù)集中共收錄了1 018 個實例,244 527 張肺部切片圖像,數(shù)據(jù)集大小為124 GB,對于每個研究實例都由4 位經(jīng)驗豐富的醫(yī)生進行標注。但是相對于肺結節(jié)大小,肺實質占據(jù)整張圖像的大部分面積,對于整張肺部切片圖像來說有研究價值的部分比較小。因此,對數(shù)據(jù)集進行預處理,根據(jù)數(shù)據(jù)集的標注信息將肺結節(jié)圖像提取出來,只保留有研究價值的部分。
數(shù)據(jù)集中最大的結節(jié)大小為63 個像素,所以提取肺結節(jié)圖像尺寸定為64×64。在提取肺結節(jié)圖像之后,以數(shù)據(jù)集標注信息中的良惡性等級標簽為標準將圖像分為五類,標簽信息為1~5。分類之后出現(xiàn)類間數(shù)據(jù)量不平衡的情況,采用旋轉、增加高斯、椒鹽噪聲的方式生成更多的肺結節(jié)圖像,以在解決類間不平衡問題的同時避免網(wǎng)絡模型過擬合,旋轉角度為θ ∈[-10°,10°]。
最后,本文采用的數(shù)據(jù)集類別為5 類,每類3 277 張,共計16 385 張。在訓練網(wǎng)絡模型時取每類的2 950 張(共計14 750張)作為訓練集,剩余的每類327 張(共計1 635 張)作為測試集;在測試檢索性能時將訓練集作為圖像庫,測試集的每張圖像作為待檢目標圖像;在驗證是否能夠處理海量圖像檢索任務時從每類中隨機抽取5 000張、10 000張、15 000張作為圖像庫,在剩余圖像中隨機抽取一張作為待檢目標圖像。
本文實驗分為線上和線下部分,線下部分完成特征提取及索引,線上部分完成圖像檢索。線下部分實驗操作系統(tǒng)為Ubuntu 16.04,GPU 為Nvidia Quadro P5000,GPU 顯存32 GB,內存256 GB;線上部分為Spark 計算機集群,集群為Spark2.0.0,集群環(huán)境包含6 個節(jié)點,其中1 個Master 節(jié)點,5個Worker 節(jié)點,每個節(jié)點的配置相同,且處在同一個局域網(wǎng)內,操作系統(tǒng)為CentOs 6.5,CPU 為E5-2620 v4,核心頻率2.10 GHz,節(jié)點內存32 GB。
在對模型進行訓練過程中,將初始學習率設置為0.1,衰減率設為5×10-4,batch_size 設為32,損失函數(shù)使用交叉熵。為了防止出現(xiàn)過擬合現(xiàn)象,使用了L2 正則化和dropout[23],dropout 率設為0.5,dropout 的機制使模型訓練時隨機讓網(wǎng)絡某些隱含層神經(jīng)元的權重不工作,不工作的那些節(jié)點可以暫時認為不是網(wǎng)絡結構的一部分,但是它的權重需保留下來暫時不更新,到下次樣本輸入時可能再次工作。選擇Momentum優(yōu)化器對模型進行優(yōu)化,同時加入了Batch Normalization[24],有效地解決了梯度消失問題。epoch 設為500,在153 個epoch之后達到最優(yōu)解。在模型訓練完成之后使用測試集對網(wǎng)絡進行驗證,測試模型在分類能力上的表現(xiàn)。然后按照第1 章所述方法進行檢索實驗,同時計算檢索平均準確率。
2.4.1 肺結節(jié)分類
肺結節(jié)圖像分類效果的好壞直接影響肺結節(jié)圖像的檢索結果,因此使用LMSCRnet 對肺結節(jié)分類,查看模型在分類上的表現(xiàn)。本文將提出的網(wǎng)絡模型與傳統(tǒng)機器學習方法SIFT、深度學習方法VGG網(wǎng)絡模型、文獻[8]提出的CNN方法、文獻[11]提出的基于殘差塊的網(wǎng)絡模型以及改進之前的SEResNeXt 網(wǎng)絡模型進行了對比實驗。采用準確率作為評價指標,如式(3)所示,其中:P為正確分類樣本數(shù)量,N為錯誤分類樣本數(shù)量,P+N代表樣本總數(shù)。

將文獻[8]所提方法記為CNNs,文獻[9]所提方法記為M_resnet,表1中的實驗結果顯示本文提出的特征提取模型在分類上的表現(xiàn)準確率為86.78%,高于其他對比方法。這說明本文提出的特征提取模型能夠更好地提取圖像高級語義信息、完成圖像分類。

表1 肺結節(jié)分類實驗結果 單位:%Tab.1 Experimental results on pulmonary nodule classification unit:%
2.4.2 特征選擇對于檢索結果的影響
為了確定使用網(wǎng)絡中的哪一層提取的圖像作為圖像的特征表示才能獲得最好的檢索效果,將3 個SE-ResNeXt 塊提取的特征和全局平均池化層提取的特征進行檢索實驗,并計算其檢索查準率。查準率計算公式如式(4)所示,其中:Nm為返回正確的圖像結果個數(shù),K為返回檢索結果總數(shù)。

實驗結果如圖4 所示,橫軸代表網(wǎng)絡層名稱,縱軸為查準率,全局池化層的查準率相較于其他三層最高,能夠最好地提取圖像特征。因此,采用全局池化層對圖像進行特征提取。

圖5 特征選擇對于檢索結果的影響Fig.5 Influence of feature selection on retrieval result
2.4.3 肺結節(jié)檢索
選取每張測試圖像檢索結果序列的前100 張圖像,查看每張檢索結果圖像的類別是否與測試圖像的類別相同,相同則為檢索正確,反之為錯誤,并計算查準率,最后計算整個測試集的平均查準率。
表2 所示的實驗結果中,本文提出的基于多尺度卷積特征融合的特征提取模型的平均查準率為84.48%,高于其他的特征提取模型,表明本文的特征提取模型能夠更好地提取圖像高級語義信息。

表2 肺結節(jié)檢索實驗結果 單位:%Tab.2 Experimental results of pulmonary nodule retrieval unit:%
2.4.4 并行優(yōu)化
實驗通過改變圖像庫的數(shù)據(jù)量大小,分析算法在Spark平臺上不同節(jié)點數(shù)目計算所需時間,進而通過計算加速比來評價算法的并行效果。加速比Sp計算如式(5)所示,其中:t為使用1個節(jié)點實驗所需時間,tp為使用p個節(jié)點實驗所需時間。

圖像庫中圖像分別取5 000 張、10 000 張、15 000 張時,實驗結果如圖6所示。通過圖6可知,算法的加速比與節(jié)點數(shù)目的關系近似線性正比關系,因此,本文算法在并行框架上擁有較好的并行效果,能夠處理海量圖像數(shù)據(jù)檢索任務。

圖6 所提算法在不同節(jié)點數(shù)目下的加速比Fig.6 Speedup of the proposed algorithm with different number of nodes
肺結節(jié)圖像檢索對于醫(yī)生來說能夠起到輔助診斷的作用,但大數(shù)據(jù)量的圖像檢索存在準確率不高、檢索速度慢的問題。基于上述問題,本文提出了一種多尺度卷積特征融合網(wǎng)絡模型LMSCRnet 提取圖像特征,再將距離計算相似度匹配等過程部署到Spark并行平臺上。實驗結果表明,本文提出的網(wǎng)絡模型能夠有效提高肺結節(jié)圖像檢索的準確率,并且通過將特征距離計算及排序過程部署到Spark平臺上,隨著集群節(jié)點數(shù)目增加,執(zhí)行效率不斷提高,算法加速比近似于線性增長,說明該算法擁有良好的擴展性和并行性,能夠滿足現(xiàn)實對于海量圖像數(shù)據(jù)檢索的需求。