高瑞婷,林 強,滿正行,曹永春,王海軍,陳 軍,鄧 濤
(1.西北民族大學 中國民族語言文字信息技術教育部重點實驗室,甘肅 蘭州 730030;2.西北民族大學 動態流數據計算與應用實驗室,甘肅 蘭州 730030;3.甘肅省人民醫院 核醫學科,甘肅 蘭州 730020)
關節炎是人體關節的炎性病變,主要由微生物感染、機體創傷、免疫力下降、遺傳及關節退行性變等因素引發.臨床上,關節炎具有病癥隱匿、病情進展緩慢、可反復發作等特征,當然也不排除部分急性發作的病例.這種情況若不及時治療則易引起關節功能障礙,嚴重者可致終身殘疾.對于老年患者,關節炎與骨轉移的早期癥狀有著類似的成像特征.在臨床診斷中,準確診斷并精確分割關節炎病灶具有重要的臨床診療價值,已經成為放射醫學中圖像自動分割的重要研究分支[1-3].
在醫學成像中,單光子發射計算機斷層成像(Single-Photon Emission Computed Tomography,SPECT)是主要的核醫學功能成像技術,可同時捕獲器官、組織的功能狀態和結構形態.與傳統的結構成像,如計算機斷層攝影(Computed Tomography,CT)和磁共振成像(Magnetic Resonance Imaging,MRI)相比,核醫學SPECT成像通過檢測骨代謝的變化實現病變的識別,具有較高的靈敏度[4-5].
SPECT是低質量醫學成像模態,一幅全身骨掃描SPECT圖像的分辨率僅為256×1024.同時,SPECT圖像容易受噪聲干擾,還經常包含注射點、膀胱等部位的高濃度殘留.盡管傳統的機器學習方法已經部分應用于SPECT圖像的病灶分割,但受限于SPECT骨成像的低分辨率和低對比度,目前面向全身SPECT骨成像的病灶分割研究很少,幾乎為空白.
深度學習是近年來快速發展和廣泛應用的機器學習技術,具有可從圖像中自動提取特征的獨特功能.在圖像分割研究范疇,學術界提出了系列深度分割網絡,包括面向語義分割的全卷積網絡(Fully Convolutional Networks,FCN)[6]和面向實例分割的Mask R-CNN[7].專注于醫學圖像的分割,Ronneberger等[8]基于FCN構建了U-Net網絡.當前,基于深度學習的圖像分割已經成為醫學圖像分析的重要研究分支,產生了一系列代表性的研究成果,涉及的成像模態主要包括磁共振圖像[9-13]、CT圖像[14-16]、超聲圖像[17-19]分割.
應用傳統的神經網絡,朱春媚等[20]于2007年構建了基于BP神經網絡的全身骨SPECT圖像的骨骼結構分割方法.該方法首先利用神經網絡進行粗分類,然后用模板匹配和去對稱機制排除誤識別的區域,獲得的分割準確率為75.5%;Chen等[21]于2020年提出深度網絡與主動輪廓技術結合的骨SPECT成像骨骼結構分割模型,獲得的DSC(Dice similarity coefficient)值為0.732;Shimizu等[22]于2020年在U-Net網絡的基礎上構建了所謂的蝴蝶型網絡(BtrflyNet),實現全身骨SPECT圖像中13個骨骼部位分割,獲得的DSC值在0.7~0.96之間.
現有研究主要關注的是骨骼結構的分割,尚未涉及疾病病灶的分割.由于骨骼具有比較規則的形狀,并且有可參考的構造常識,因而相對容易分割.相比而言,病灶的形態各異,結構復雜,特別是關節炎病灶單體面積較小、分布密度較大,病灶可靠分割難度較大.借助于深度學習技術的圖像特征自動提取功能,可精確分割SPECT骨成像中的關節炎病灶.本文首先利用歸一化技術將骨SPECT成像數據文件轉換成元素值在特定范圍的圖像,在關節部位圖像裁減的基礎上做標準的圖像鏡像、平移和旋轉處理,實現數據集的適度擴展.然后利用經典的U-Net和Mask R-CNN網絡以及提出基于U-Net網絡的改進模型R_U-Net構建分割模型,實現關節炎病灶的自動分割.最后,使用一組真實的SPECT骨成像數據,驗證本文構建的深度分割模型.實驗結果表明,本文提出的方法可用于SPECT骨成像中關節炎病灶的識別和檢測,獲得的上肢關節炎CPA和IoU分別為0.688和0.648,下肢關節炎CPA和IoU分別為0.640和0.590,MPA、MIoU的值分別為0.776、0.754.
本文實驗所用數據收集于2017年1月至12月甘肅省人民醫院放射科疾病診斷過程中采集的數據.所有患者均采用西門子多光譜伽瑪照相機,配有兩個探測器,靜脈注射Tc-99m亞甲基二磷酸鹽(MDP)放射性藥物2~3 h后的骨顯像.SPECT數據存儲遵循醫學數字成像與通信協議(Digital Imaging and Communications in Medicine,DICOM).DICOM文件中的每個元素都是輻射劑量(16位無符號整數)的數字記錄,而不是預先注射到患者體內的放射性核素或同位素的像素值,矩陣大小為1024×256,可顯示患者大部分身體情況.正常人的SPECT成像均勻、清晰,全身骨放射性分布均勻且對稱,而發生病變的區域會出現放射性核素濃聚,成像表現為團點狀的亮點.
本文擬構建基于深度學習模型的SPECT圖像關節炎病灶分割方法,而深度模型對訓練數據量以及數據輸入格式有較高的要求.SPECT圖像是在疾病診治過程中收集的核醫學影像記錄,患有關節炎的SPECT數據較少,而且原始數據為DICOM文件,無法直接輸入模型訓練.為此,本文采用歸一化方法處理SPECT數據,通過平移、旋轉、鏡像、裁剪等方法來擴展數據,然后將數據集轉換成實驗模型所要求的輸入格式并送入模型訓練.
1.2.1 DICOM矩陣到圖像的轉換
SPECT關節炎病灶數據是以DICOM文件格式存儲,而每個文件都是核素放射量矩陣,如圖1是獲取的2017年所有DICOM文件的數量及其放射量.由圖1看出,放射量大約處于0~11 000之間,范圍變化較大.為了適應模型將其做歸一化處理,轉化為像素值在0~255的普通圖像.運用Min-Max標準對原始數據歸一化線性變換,如公式(1).
(1)
其中,xi表示圖像像素點值,max(x)和min(x)分別表示圖像像素的最大值與最小值.

圖1 2017年DICOM文件放射量圖
1.2.2 數據擴展
為了解決標注樣本數量較少的問題,需要進行數據擴展.數據擴展能夠有效緩解過擬合問題,從而提高分割精度.
1) 圖像裁剪.SPECT圖像基本包含人體全身部位.為了降低圖像背景對病灶部位的影響,本文通過裁剪方式擴展數據.原始數據大小為1024×256,設置步長為128,以肩、肘、腕、膝、踝關節為目標點依次進行裁剪,確保裁剪后的每張圖像都有一個或者多個病灶點,最終得到尺寸為256×256的圖像.
2) 水平鏡像.SPECT核醫學檢測每次產生兩幅圖像,分別代表前位圖像和后位圖像.檢查過程和數據傳輸、存儲過程均有可能出現圖像丟失現象.為了避免圖像丟失可能帶來的影響,本文對SPECT圖像做鏡像處理.常見的圖像鏡像有水平鏡像和垂直鏡像,但由于人體的垂直對稱性,本文僅選用水平鏡像的處理方法.
設原圖像的高度為h,寬度為w,(xi,yi)為輸入圖像中的點,式(2)給出了經過水平鏡像變換后的點(x0,y0).
(2)
3) 圖像旋轉.疾病檢查過程中,患者的睡姿可能不完全標準,所收集的SPECT圖像中難免會包含傾斜現象.為了彌補這種缺陷,對SPECT圖像做適度旋轉處理.其旋轉幅度需要控制在合理的范圍內.
假設(xi,yi)為輸入圖像中的點,給定旋轉角度θ∈[θ1,θ2],其中θ1和θ2分別代表旋轉角度的下限和上限,取值通過實驗方式確定.式(3)給出了經旋轉處理后的點(x0,y0).
(3)
4) 圖像平移.因患者睡姿的不標準,所收集的SPECT圖像中會產生偏離中心的現象.為消除這一影響,需要對SPECT做平移處理.但醫學圖像不同于自然圖像,平移幅度應該控制在合理的范圍之內.
假設(xi,yi)為輸入圖像中的點,給定平移量Δx∈[Δx1,Δx2],其中Δx1和Δx2分別代表平移量的下限和上限,其取值通過實驗方式確定.式(4)給出了經平移處理后的點(x0,y0).
(4)
Mask R-CNN[7]是一個具有多任務學習能力的神經網絡,在Faster R-CNN[23]網絡分類與目標檢測分支的基礎上并行增加了一個分割的分支,可以同時實現檢測、分類和分割任務.
Faster R-CNN主要是對圖像做檢測與定位,通過區域建議網絡(Region Proposal Network,RPN)找出圖像中的候選區域(Region of Interest,RoI),再利用卷積層提取這幅圖片的整體特征,從而得到特征圖.
Mask分支是使用FCN對每個RoI預測掩模.FCN主要包括卷積和去卷積模塊,即先對圖像進行卷積和池化操作,使其特征圖的大小不斷減小,然后進行反卷積操作,經過神經網絡最后的Softmax分類器,預測某像素屬于某類別的概率.在上采樣的特征圖上進行逐像素的預測分類,從而實現對圖像的準確分割.
RoI Align是使用雙線性插值進行池化操作,使得特征圖中目標區域的精確信息被獲取,并進行分類回歸,從而提高準確性.
在訓練階段,每個樣本的RoI均有一個損失函數(Loss,L),L定義為公式(5).
L=Lcls+Lbox+Lmask
(5)
其中,Lcls為分類損失,Lbox為回歸損失,Lmask為分割損失.Lcls和Lbox是利用全連接預測出每個ROI的所屬類別及其矩形框坐標值.mask分支采用FCN對每個ROI的分割輸出維數為K×m×m的掩膜,對每一個像素應用sigmod函數求相對熵,得到平均相對熵誤差Lmask.
本實驗模型的網絡結構如圖2所示.骨干網絡使用ResNet50,基于ResNet50構建特征金字塔網絡(Feature Pyramid Networks,FPN)做自下而上特征提取.SPECT骨顯像原始圖像大小為256×256,在進入主干網絡前先放大為512×512.ResNet50網絡中劃分為5個模塊,每個模塊的特征圖對應Stride為[4,8,16,32,64].經滑動窗口卷積后再經RPN網絡中3×3的主干卷積神經網絡過濾重疊特征,然后經過兩個1×1的卷積神經網絡生成錨框坐標和前景背景.在病灶位置檢測選取錨點框(anchor)時,將anchor大小分別設置為[24,48,96,192,384]五種尺度,以實現多尺度圖像檢測,以適應大小不同病灶的位置檢測.分類與檢測的結果對Proposals優化更新,RoI Align再作用于Mask分支,將輸出的特征圖分別送入分類和分割兩個分支.在檢測任務分支中分類任務完成后,再進行分割.Mask形成與原圖等大的二值圖,用彩色區域代表不同類別的病灶區域,黑色部分為背景區域.

圖2 Mask R-CNN網絡結構
2.2.1 U-Net網絡
U-Net網絡[8]是一種編碼器—解碼器的結構,由收縮路徑和擴張路徑呈對稱狀.收縮路徑進行下采樣操作,用于獲取豐富的上下文信息對骨顯像病灶和背景進行分類,擴張路徑進行上采樣操作,用于實現病灶的精確定位.通過跳躍拼接(skip connection)將淺層特征與深層特征進行融合,以獲得更精確的上下文信息,得到更多的病灶細節信息.
U-Net網絡共有23個卷積層,收縮路徑每一步下采樣包括兩個3×3的卷積.每次卷積后都經過修正線性單元(Rectified Linear Unit,ReLU)函數作用,之后使用一個2×2的最大池化操作實現下采樣,其步長為2.所有下采樣操作使得特征通道翻倍,圖像尺寸減半.共進行四次這樣的下采樣操作.擴張路徑每一步上采樣包括兩個3×3的卷積操作,通過ReLU作激活函數,輸出通道變為原來的一半,圖像尺寸變為原來的2倍.最后,通過1×1的卷積操作將特征映射到所屬類別中.
2.2.2 殘差塊
傳統神經網絡隨著訓練的迭代次數增加,產生的錯誤也會增多,容易產生梯度消失或爆炸問題.為此,He等[24]提出了殘差學習來解決網絡退化問題.對于一個堆疊層結構,當輸入x時學習到的特征記為H(x)=F(x).當直接將一個輸入添加到函數的輸出時,得到的殘差映射為F(x)=H(x)-x.每一個殘差單元計算公式如式(6)、式(7).
yi=F(xi,wi)+h(xi)
(6)
xi+1=f(yi)
(7)
其中,xi和xi+1表示第i個殘差單元的輸入和輸出,F表示學習到的殘差,wi為第i層參數,f表示ReLU激活函數,h(xi)=xi表示恒等映射.殘差單元的結構如圖3所示.

圖3 殘差塊結構
與其他網絡相比,殘差網絡結構相對簡單,該網絡將多個卷積操作得到殘差映射與輸入通過Add操作進行特征融合,減少了訓練參數與訓練時間,在加深網絡深度的同時,有利于提升SPECT圖像關節炎病灶分割的精度.
為了從SPECT數據集中獲取到更多深層特征信息,引入了殘差塊來代替普通的卷積層,殘差塊在加深U-Net網絡的深度,同時可有效解決隨著網絡層數加深出現的梯度消失問題.改進后的R_U-Net網絡如圖4所示.

圖4 R_U-Net網絡結構
R_U-Net網絡結構采用了U-Net網絡的U型結構,由收縮路徑和擴展路徑兩部分組成.收縮路徑的四次下采樣和擴展路徑的四次上采樣都包括兩個3×3的卷積,一個1×1的殘差單元和一個2×2的最大池化層.在下采樣操作中,特征通道變為原來的2倍,依次為[1,64,128,256,512,1024],圖像尺寸變為原來的一半,依次為[256,128,64,32,16].在上采樣操作中,將每一次的輸出特征與相映射的收縮網絡的特征合并在一起,補全卷積邊界像素的丟失.最后,通過1×1的卷積操作,將64通道的特征圖轉為類別數為2的特征圖,并經過sigmoid函數輸出一個概率值.該值反映了預測結果為關節炎的可能性.概率值越大,說明關節炎可能性越大.每次卷積后都通過ReLU函數激活.為了保持輸出圖像與輸出圖像尺寸一致,每個卷積層均采用零填充方式進行填充.
訓練階段采用Dice損失函數作為分割部分的損失函數.Dice系數被定義為公式(8).
(8)
其中,A為預測結果,B為人工標記結果.當預測結果與人工標注結果完全相同時,其Dice系數為1.反之,當預測結果與人工標注結果沒有任何重疊時,其Dice系數為0.Dice損失函數為公式(9).
LDice=1-Dice(A,B)
(9)
3.1.1 實驗數據與環境
本文將患者被診斷為關節炎的325幅SPECT數據作為實驗樣本,主要以患者雙側肩關節、肘關節、腕關節、膝關節和踝關節進行病灶分割.根據部位不同,將雙側肩關節、肘關節和腕關節部位病灶歸為上肢關節炎(D1)類,雙側膝關節和踝關節部位病灶歸為下肢關節炎(D)類.由該醫院三名放射科醫生使用標注工具LabelMe人工勾勒患者五處部位的病灶輪廓,由一名放射科主任醫生負責檢查標記結果來確保標記的正確性.如果三位醫生標記一致,則認為該張圖像標記成功.如果三位醫生中有一位與其他兩位不同,則執行“少數服從多數”原則.三位醫生根據病例報告中對每個病例的描述,結合患者的SPECT骨顯像情況,對該張圖像重新標記,確保每張圖像標記部位準確無誤.標注完成后生成json格式的注釋文件,其中包含每幅圖像中目標區域對應的坐標信息.在數據處理階段,json格式文件被轉換為對應于每個分割區域的掩碼圖像,然后送入模型進行訓練.
原始數據集通過裁剪、鏡像、旋轉和平移等方式得到5 300張.數據集輸入尺寸大小為256×256.實驗中將數據集劃分為訓練集、測試集和驗證集,其中訓練集4 500張,驗證集500和測試集300張.
實驗將Mask R-CNN網絡學習率設置為0.001,學習率的初始動量系數為0.9,batch size設置為8,網絡設置的epoch為200.每個epoch的迭代次數為130,訓練最大迭代次數設置為26 000.將U-Net網絡的學習率設置為0.000 1,batch size設置為4,網絡設置的epoch為200,每個epoch的迭代次數為200,訓練最大迭代次數設置為40 000.為了對比本文改進模型的性能,將R_U-Net網絡與原U-Net網絡作同樣的參數設置.
實驗在Windows 1064位操作系統,有Intel i5-9300X和1塊NVIDIA Ge Force GTX 1050T顯卡的計算機上進行.采用Python 3.6編寫代碼.神經網絡的訓練和測試均以PyTorch框架完成.
3.1.2 評價指標
本實驗使用醫學圖像分割中常用的度量指標來定量評價模型的分割結果,度量指標分別為類別像素精確率(Category Precision Accuracy,CPA)、平均像素準確率(Mean Pixel Accuracy,MPA)、交并比(Intersection over Union,IoU)和平均交并比(Mean Intersection over Union,MIoU).其中,pij表示屬于類i但被預測為類j的像素數量;pii表示屬于類i且被預測為類i的像素數量;pji表示屬于類j但被預測為類i的像素數量,k代表圖像分割類別個數,k+1為包括背景在內的類別總個數.具體公式見式(10)~式(13).
(10)
(11)
(12)
(13)
將預處理好的訓練集在Mask R-CNN網絡、U-Net網絡和R_U-Net網絡上分別訓練.當設置網絡的epoch從1開始增加時,三種網絡的目標函數值一直處于減少狀態,損失值也開始逐漸減小.三種網絡訓練過程曲線圖如圖5所示,橫坐標表示網絡訓練的迭代次數,縱坐標表示訓練損失值.
由圖5看出,三種網絡隨著迭代次數的增加損失值不斷減小,表示網絡在迭代過程中充分學習數據集的特征,Mask R-CNN網絡大約在26 000次迭代后損失值達到最小.U-Net網絡大約在迭代39 000次后達到收斂狀態,R_U-Net網絡大約在迭代40 000次后達到收斂狀態.

(a)Mask R-CNN模型Loss曲線 (b)U-Net模型Loss曲線 (c)R_U-Net模型Loss曲線
為綜合評價分割效果,本實驗以上肢關節炎和下肢關節炎病灶的人工標注結果作為參考,根據300張測試圖像的分割結果計算兩類病灶的CPA和IoU值.表1展示了Mask R-CNN、U-Net和R_U-Net三種網絡模型對不同病灶類別的度量指標結果.

表1 三種模型對不同類別的指標結果
由表1看出,三種網絡模型對于上肢關節炎(D1)的分割結果優于下肢關節炎(D).在SPECT關節炎數據集中,部分數據的D1病灶點比D病灶點更加濃聚,利于網絡學習特征,從而可獲得相對較好的分割結果.但是三種網絡整體分割效果一般,是因為D1病灶和D病灶具有較高的相似性,且SPECT數據較少,使得三種網絡模型不能很好地識別兩種病灶,導致部分D1病灶和D病灶數據出現類別預測錯誤的情況.
為了更好地評價Mask R-CNN、U-Net和R_U-Net三種網絡模型對SPECT圖像關節炎病灶的分割性能,實驗計算了MPA和MIoU的值,結果如表2所示.
由表2可以看出,U-Net網絡分割效果高于Mask R-CNN網絡,是因為Mask R-CNN網絡層數較深且復雜.而SPECT關節炎病灶數據集較少,模型學習特征的能力不足,使得關節炎病灶分割效果較差.R_U-Net網絡的分割指標MPA和MIoU比原U-Net網絡分別提高了7.4%和6.8%,是因為原U-Net網絡深度略有不足,模型學習到的深度特征較少,而R_U-Net網絡里增加了多個殘差塊,加深了原U-Net網絡的深度,能夠從SPECT數據集中獲取更多深層特征信息,殘差塊還將多個卷積操作得到殘差映射與輸入通過Add操作進行特征融合,從而獲取多個層次的特征,提高了分割精度.
為了更直觀地看到三種網絡的模型分割效果,圖6列出2組上肢關節(D1)和下肢關節(D)在測試集上的分割病灶結果.(a)為原始圖像,(b)為人工標記病灶圖,(c)為Mask R-CNN網絡模型分割病灶結果圖,(d)為U-Net網絡模型分割病灶結果圖,(e)為R_U-Net網絡模型分割病灶結果圖.
由圖6可看出,三種模型都可以分割出上肢關節病灶部位和下肢關節病灶部位:1)組中R_U-Net網絡模型分割結果與人工標記的重疊區域比Mask R-CNN模型和U-Net模型更大,更接近人工標注區域;2)組中R_U-Net網絡模型分割結果曲線要比其他兩種模型更圓滑.實驗結果表明,將殘差塊與原U-Net網絡相結合的改進R_U-Net網絡模型能提升SPECT圖像的關節炎病灶分割精度,能夠進一步為診斷疾病及后續治療提供更多輔助信息.

圖6 關節炎病灶分割結果
以SPECT成像關節炎病灶的自動分割為目標,本文研究并構建基于Mask R-CNN網絡和U-Net網絡的分割模型,提出在U-Net網絡中加入殘差塊的R_U-Net網絡.首先,對SPECT圖像的預處理和數據擴展過程給予了交代.然后詳細說明了構建的深度分割模型.最后,基于真實的SPECT檢查數據,對構建的分類模型進行了實驗驗證.實驗結果表明,本文提出的改進方法在關節炎病灶圖像分割中具有可行性.未來將從如下幾個方面對本文工作予以擴展:
1)進一步優化模型,提升模型的分割性能.
2)收集更多真實數據,驗證模型的有效性和可用性.
3)拓展研究領域,構建面向多疾病多病灶的深度分割模型,進而研發可實際部署的SPECT關節炎CAD系統.