何強,高瞻,段鈺桔,周利炆,趙亮
(1.十堰市太和醫院精準醫學研究中心,湖北十堰 442000;2.十堰市太和醫院醫學影像中心,湖北十堰 442000;3.湖北醫藥學院生物醫學工程學院,湖北十堰 442000)
肝臟局灶性病變(Focal Liver Lesion,FLL)種類多樣、尺寸較小、特征稀少,這類病灶容易被忽視,影響醫生對病人病情的診斷[1]。如何利用極少的特征,聚焦病灶區域本身,降低偽影噪音等假陽性的干擾,準確分割出肝臟中小病灶區域,是該文研究重點。
近年來關于醫學圖像分割的研究主要分為傳統圖像分割和基于深度學習的圖像分割。傳統圖像分割算法主要包括邊緣檢測[2]、閾值分割[3]、區域分割[4]、超像素分割[5]等。傳統圖像分割算法往往針對某個特定場景設置超參數,泛化能力較差。深度學習對微小目標分割方法可分為多尺度預測[6]、數據增強[7]、超分辨率[8]、上下文信息[9]等。雖然深度學習在其他醫學圖像分割中表現優異,但是目前對小目標的分割精度遠遠不夠。另外,目前暫無醫學相關微小目標的分割數據集可供研究。
該文針對目前小目標分割的研究現狀,結合肝臟微小病灶的特點,提出多維局部聚類分割肝臟微小病灶的算法,主要用到灰度、相對位置坐標、梯度等特征。該文的主要貢獻有以下幾點:
1)肝臟區域裁剪為不相交子塊,在圖像局部用聚類算法做分割。
2)利用子塊中灰度值、相對位置坐標以及梯度信息構成多維向量進行聚類。
3)采用統計方法對潛在病灶進行分析,精確篩選微小病灶。
所有數據樣本均進行三步預處理:1)感興趣區域(ROI)提取。由影像科經驗豐富的醫生,使用自研可加載DICOM 格式的圖像標注軟件,勾畫肝臟和肝臟病灶輪廓。其中包含肝臟2 247 張,病灶841 張。2)轉換像素值。CT值的單位是亨斯菲爾德(Hounsfield Unit,HU),范圍為(-1 024,3 071),用于衡量人體組織對X 射線的吸收率[10]。轉換時從DICOM 頭文件中讀取兩個標簽信息,分別是Rescale Intercept、Rescale Slope,分別記為RI和RS,PV表示像素值,然后通過式(1)計算得到灰度值。3)將轉換后的CT 值歸一化到[0,1],并映射到[0,255],保存為長寬為512 個像素的png 圖片。將肝臟輪廓繪制于(512,512)的全零矩陣上,肝臟區域填充1,非肝臟區域填充0,保存為png 圖片格式。肝臟病灶掩膜采用相同方法處理。

統計所有小病灶灰度均值m和標準差s。將肝臟區域裁剪為不相交子塊,在子塊中使用海森矩陣[11]計算灰度值梯度,并結合灰度值、相對位置坐標構成多維向量,采用kmeans++[12-13]聚類算法對子塊進行分割,然后將分割結果根據裁剪坐標拼接起來,最后進行后處理和假陽性過濾。肝臟微小病灶切片聚類分割算法過程如圖1 所示。

圖1 肝臟微小病灶分割算法示意圖
考慮像素級圖像分割存在毛刺、空洞等問題,采用膨脹、腐蝕算法對拼接結果進行后處理,并根據小病灶形態學特征提出假陽性過濾策略,如圖2 所示。

圖2 潛在病灶假陽性過濾策略
該算法主要步驟:
1)以病灶區域為單位,刪除大于144 個像素的病灶區域,在原始肝臟灰度圖中計算剩余病灶區域平均灰度值ave。定義集合X,保存所有ave,考慮人工勾畫時不可避免的誤差,ave的取值區間在[0,100],然后計算集合內所有平均灰度值的均值m和標準差s。
2)讀取原始肝臟灰度圖,記為O,讀取對應文件名肝臟掩膜圖片,記為矩陣M,以最小矩陣框出肝臟部分,矩形左上頂點坐標為(x,y),長為w,寬為h,肝臟灰度矩陣mask=M×O[y:y+h,x:x+w]。
3)對框出的肝臟mask,依次沿著x軸和y軸,裁剪(16,16)的尺寸,裁剪步長設置為16 個像素,依次得到每個子塊mask_patch,并對mask_patch 做直方圖均衡化。
4)在每個mask_patch 中,利用海森矩陣計算梯度信息。依次遍歷mask_patch,獲取非0 位置的灰度值h,相對位置坐標(x,y),梯度值t,組成[h,x,y,t]向量形式,保存在數組n中。
5)定義kmeans++聚類,n_clusters=2。對數組n進行聚類,計算兩類CT 平均值x1,x2,取落在區間[m-s,m+s]的一類作為病灶候選結果,如果沒有則不取;如果都在區間[m-s,m+s]內,則取數值較小的一類。所有病灶候選結果根據裁剪坐標拼接到和矩陣M大小相同的全零矩陣new中。
6)將new進行先膨脹后腐蝕操作,填補中間空心區域,去掉周圍毛刺。檢測new的輪廓,得到new若干輪廓點集conts,如果單個輪廓點集個數小于4,刪除該輪廓。如果大于4,則計算最小框住輪廓矩形的長和寬,如果長寬比例大于1.5,刪除該輪廓。
7)最后利用裁剪x、y、w、h信息,將new還原到(512,512)大小,即為最終的病灶分割結果。
采用Dice 來對分割結果做評價,Dice 系數是一種集合相似度度量指標,通常用于計算兩個樣本的相似性[14]。定義為:

式中,TP表示正確預測肝占位的像素個數,FP表示將肝臟預測為肝占位的像素個數,FN表示將肝占位預測為肝臟的像素個數。指標范圍為[0,1],數值越大,效果越佳。該算法中,將子塊的分割結果拼接還原為(512,512),與人工標注病灶結合來計算Dice。
該實驗使用的數據集來自2018 年至2020 年在十堰市太和醫院采集的上腹部CT 掃描。影像科醫生篩選多發小低密度病灶的病例53 例,由6 名中低年資影像科醫生對病灶定位并確定邊界,兩名高年資影像科醫生審核校正。微小病灶數據樣本示例如圖3 所示。

圖3 微小病灶數據樣本示例
所有數據預處理之后保存為png 格式,預處理結果如圖4 所示。左邊為原圖,中間為肝臟掩膜,右邊為肝臟病灶掩膜。

圖4 預處理結果示例
統計所有微小病灶平均灰度值,其直方圖如圖5所示。

圖5 微小病灶平均灰度值直方圖
為了驗證該算法的分割效果,該文設計三組實驗,每組實驗經過十則交叉驗證,計算Dice 的平均值和標準差。第一組為傳統的圖像分割算法分割結果,基于固定閾值的圖像分割的閾值為統計小病灶平均灰度值加標準差,實驗結果如表1 所示。第二組比較深度學習經典圖像分割算法:Fcn8s、Unet、Segnet、Pspnet、Deeplabv3+,每個模型訓練50 個epoch,所有參數都一樣,取最高Dice 為模型最終訓練結果,實驗結果如表2 所示。第三組比較不同的聚類算法:kmeans++聚類、層次聚類[15]、Dbscan[16]聚類,kmeans++聚類中使用灰度值、相對位置坐標和梯度信息聚類,實驗結果如表3 所示。

表1 傳統圖像分割算法實驗結果

表2 基于深度學習的圖像分割實驗結果

表3 不同聚類算法及不同維度聚類實驗結果
傳統的圖像分割算法Dice 偏低,對于圖像中出現噪音、偽影或肝裂、血管等復雜情況,無法很好地分割,且傳統圖像分割都存在超參數,不能適用整個數據集。從圖6 可以看出,基于固定閾值的圖像分割,分割出了血管、肝裂、邊緣等大量噪音。

圖6 分割結果比較
深度學習模型中,Deeplabv3+(resnet50)Dice 更高,但是數據集總量較少,模型分割小病灶輪廓較粗糙。從圖6 可以看出,Deeplabv3+模型分割結果中遺漏邊緣和中間的微小病灶,并且勾畫區域比實際區域偏大。
在不同的聚類算法實驗中,將灰度值、相對位置坐標和梯度信息構成多維向量,使用kmeans++算法分割表現最好。從圖6 可以看出,該文算法分割結果中,相對于閾值分割,減少了大量假陽性病灶,且閾值作為超參,無法適用。相對于Deeplabv3+模型,對肝臟邊緣和內部微小病灶更加敏感,且勾畫區域更加貼合原始病灶。
肝臟中微小病灶像素信息少,特征不明顯,肝裂、血管間隙以及膽管等組織和病灶特征相似,使肝臟中小病灶的診斷更加困難。針對小病灶特點,該文提出多維局部聚類分割算法,將整個肝臟裁剪為子塊,子塊中肝臟區域灰度值、相對位置坐標、梯度信息組成多維向量聚類,并根據小病灶形態特征過濾明顯的假陽性。最后從理論分析和實驗結果角度,驗證了方法的準確性和可靠性。該文方法在影像診斷中,可以快速定位微小病灶,節省醫生診斷時間,避免遺漏,在一定程度上緩解醫生閱片診斷壓力。另外,在缺少微小病灶數據集的背景下,該算法預勾畫肝臟病灶,減小人工勾畫工作量,提高人工勾畫微小病灶的精度,快速積累原始數據。