李家成,葉哲江,楊嘉林,張鵬飛
(昆明理工大學(xué) 信息工程與自動化學(xué)院,云南 昆明 650500)
世 界 衛(wèi) 生 組 織(World Health Organization,WHO)的統(tǒng)計(jì)數(shù)據(jù)表明,全球每年發(fā)生200萬至300萬例非黑色素瘤皮膚癌和132萬例黑色素瘤皮膚癌[1]。在美國,雖然黑色素瘤在所有皮膚癌中所占比例不到5%,但它們約占所有皮膚癌相關(guān)死亡病例的75%,每年造成10 000多人死亡[2]。皮膚病早期的診斷與預(yù)防已經(jīng)成為遏制皮膚病癌變惡化的有效手段,尤其是黑色素瘤,早期的診斷與治療能有效降低致死率[3-4]。
臨床上一般通過有豐富經(jīng)驗(yàn)的皮膚科專家結(jié)合自己的經(jīng)驗(yàn)和特定的方法如CASH方法[5]、Menzies方法[6]、ABCDE方法[7]等對病理圖片進(jìn)行診斷。人工診斷存在有診斷經(jīng)驗(yàn)的皮膚科專家的缺乏、不同專家診斷水平參差不齊、準(zhǔn)確率難以保證、費(fèi)時費(fèi)力等缺點(diǎn)。隨著深度學(xué)習(xí)的發(fā)展,基于深度學(xué)習(xí)的皮膚病診斷在以往研究中獲得了可觀的成果。ESTEVA[2]等整合多個皮膚病數(shù)據(jù)集,構(gòu)建了一個包含2 000多種皮膚病種類的大型皮膚病數(shù)據(jù)集,使用GoogLeNet作為其分類網(wǎng)絡(luò)并將遷移學(xué)習(xí)技術(shù)應(yīng)用到自己的數(shù)據(jù)庫上,最終準(zhǔn)確率能與皮膚科專家診斷結(jié)果相媲美,證明了基于深度學(xué)習(xí)的皮膚病自動分類的可行性。李航等[8]采用深度學(xué)習(xí)和傳統(tǒng)機(jī)器學(xué)習(xí)相結(jié)合的方式,先使用預(yù)訓(xùn)練的ResNet152模型遷移學(xué)習(xí)提取皮膚病病灶特征信息,再通過支持向量機(jī)(Support Vector Machine,SVM)進(jìn)行診斷分類。LEQUAN Y等[9]提出方法先用一個全卷積殘差網(wǎng)絡(luò)(Fully Convolutional Residual Networks,F(xiàn)CRN)對皮膚病圖像病灶進(jìn)行分割,緩解數(shù)據(jù)量不足問題,再使用ResNet50網(wǎng)絡(luò)進(jìn)行分類。CODELLA[10]等提出將卷積神經(jīng)網(wǎng)絡(luò)、稀疏編碼和支持向量機(jī)(SVM)集成到黑色素瘤識別中。MAHBOD[11]等提出了基于6種不同大小輸入圖像、3種成熟CNN模型(EfficientNetB0、EfficientNetB1、SeRe-NeXt50)多尺度多模型方法,表明了輸入圖像尺寸對皮膚病診斷有影響。
上述研究都取得了一定的成果,但使用的模型參數(shù)量都非常大,訓(xùn)練的時間長,準(zhǔn)確率也有提升的空間。隨著皮膚病數(shù)據(jù)庫的日益豐富,減少模型參數(shù)、設(shè)計(jì)輕量型網(wǎng)絡(luò)可以避免過擬合,提高識別準(zhǔn)確率。針對以上問題,本文設(shè)計(jì)了一個基于DSception結(jié)構(gòu)和SE模塊的輕量型網(wǎng)絡(luò)。文章主要內(nèi)容如下:
(1)引進(jìn)深度可分離卷積(Depthwise Separable Convolution,DS),大量地減少參數(shù),保證網(wǎng)絡(luò)加深提取不同深度特征的可能性。
(2)將DS卷積和Inception結(jié)構(gòu)相結(jié)合,提出DSception模塊,增加了網(wǎng)絡(luò)的寬度,多尺度提取圖像特征的同時,大量減少參數(shù),降低時間復(fù)雜度。
(3)在ResNet50的基礎(chǔ)上,用通道注意力(Squeeze-and-Excitation,SE)模塊替換原來的瓶頸結(jié)構(gòu),使得模型參數(shù)量減少,有效加權(quán)了重要圖像通道特征,抑制了無用信息。
本文基于ResNet50模型[12]的主體結(jié)構(gòu),提出了包含DSception模塊的SE模塊的Conv_block和包含SE模塊的Identity_block。改進(jìn)的Conv_block、Identity_block保留了原有的殘差結(jié)構(gòu),解決由于網(wǎng)絡(luò)深度加深而產(chǎn)生的學(xué)習(xí)效率變低與準(zhǔn)確率無法有效提升的問題。殘差結(jié)構(gòu)如圖1所示。
圖1 殘差結(jié)構(gòu)
圖1 中,X為輸入,F(xiàn)(x)表示特征提取塊的輸出,H(x)為整個殘差結(jié)構(gòu)的輸出,包含了特征提取塊的輸出F(x)和原輸入X。H(x)表達(dá)式如下:
如式(1)所示,殘差結(jié)構(gòu)的最后輸出H(x)是F(x)與X的和。加入了原輸入x,在前向傳播時,H(x)包含了輸入信息特征,有效解決網(wǎng)絡(luò)模型退化問題;在反向傳播時,能有效解決梯度消失問題。
1.1.1 DS卷積
深度可分離卷DS由深度卷積(Depthwise Convolution,DW)和 點(diǎn) 積(Pointwise Convolution,PW)組成[13]。
(1)DW卷積。DW卷積如圖2所示,輸入特征圖維度為(W,H,C),通過C個3×3×1卷積核對輸入特征圖逐通道進(jìn)行卷積,得到的C個(W,H,1)特征圖按通道維度拼接,最終輸出的特征圖維度為(W,H,C)。
圖3 PW卷積示意圖
圖23 ×3D×W1卷積示意圖
(3)DS卷 積。DS卷 積 如 圖4所 示。DS卷積所需的參數(shù)包括:DW卷積所需的參數(shù)C×3×3×1,PW所需的參數(shù)N×1×1×C,總的DS卷積參數(shù)為C×3×3×1+N×1×1×C,普通卷積所需的參數(shù)為N×3×3×C。顯然,DS模塊使用的參數(shù)量遠(yuǎn)遠(yuǎn)小于普通卷積,有效地節(jié)省了計(jì)算機(jī)資源,提高了運(yùn)算速度。
圖4 PW卷積示意圖
1.1.2 Inception結(jié)構(gòu)
InceptionV1結(jié)構(gòu)由Google團(tuán)隊(duì)于2017年提出[14],如圖5所示。先前的特征圖并列輸入到4個分支,提取不同感受野的特征信息,增加了網(wǎng)絡(luò)寬度。通過1×1卷積有效地減小了網(wǎng)絡(luò)參數(shù),降低隨著網(wǎng)絡(luò)深度的增加模型過擬合的風(fēng)險(xiǎn)。
圖5 Inception結(jié)構(gòu)示意圖
1.1.3 DSception結(jié)構(gòu)
DSception結(jié)構(gòu)如圖6所示。本文創(chuàng)造性地將DS卷積和Inception模塊結(jié)合起來,提出了DSception模塊。輸入特征圖維度(W,H,C),Conv1×1分支的通道數(shù)為C/4,DS Conv3×3分支的通道數(shù)為C/2,DS Conv5×5分支的通道數(shù)為C/8,Maxpool分支的通道數(shù)為C/8。DSception模塊與Inception模塊相比,可觀地減少了參數(shù)量,降低了時間復(fù)雜度。
圖6 DSception結(jié)構(gòu)示意圖
SE模塊由DANIEL Z等[15]于2017年提出,其設(shè)計(jì)理念為學(xué)習(xí)通道之間的相關(guān)性,篩選出針對通道的注意力。SE模塊分為壓縮(Squeeze)、激勵(Excitation)、重標(biāo)定(Scale)3部分,如圖7所示。
圖7 SE模塊結(jié)構(gòu)圖
(1)壓縮部分Fsq。輸入特征圖UW×H×C,U=[u1,u2,…,uC],先 通 過 全 局 平 均 池 化(Global Average Pooling,GAP)順著空間維度W×H來進(jìn)行特征壓縮,得到具有全局的感受野的特征圖ZC,Z=[z1,z2,…,zC]。
(2)激勵部分Fex。如式(3)所示,特征圖Z通過個神經(jīng)元的全連接層FC1,其權(quán)重、非線性激活函數(shù)δ(Relu);接著通過C個神經(jīng)元的全連接層FC2,其權(quán)重、非線性激活函數(shù)σ(Sigmoid)輸出特征圖SC,S=[s1,s2,…,sC]。參考原文參數(shù)r的設(shè)置,rstage1,rstage2設(shè)為16,rstage3設(shè)32,rstage4設(shè)為64。
(3)重標(biāo)定部分Fscale。原特征圖輸入U(xiǎn)與激勵部分輸出S結(jié)果相乘,完成對通道的重新標(biāo)定:
SE模塊不僅在通道維度上對有著重要皮膚病特征的通道進(jìn)行加權(quán)處理,對無用皮膚病特征通道進(jìn)行抑制,其參數(shù)對于深度網(wǎng)絡(luò)而言可以忽略 不計(jì)。
改進(jìn)的卷積塊保留卷積分支和殘差連接分支兩個分支,如圖8所示。
圖8 卷積塊結(jié)構(gòu)圖
(1)卷積分支。特征圖輸入先通過卷積核為1×1、步長為2的卷積層來減小特征圖尺寸,恢復(fù)通道數(shù);之后連接BN層和Relu層,BN層加快模型收斂速度,防止網(wǎng)絡(luò)模型過擬合,Relu增加非線性因素。DSception層多尺度提取特征,擴(kuò)大感受野,增加網(wǎng)絡(luò)寬度。SE層通道注意力層實(shí)現(xiàn)對通道的重新標(biāo)定。
(2)殘差連接分支。殘差連接分支預(yù)防隨著網(wǎng)絡(luò)的加深梯度消失的風(fēng)險(xiǎn)。輸出為卷積分支輸出與殘差連接分支輸出相加,Relu輸出結(jié)果。
改進(jìn)的恒等映射塊網(wǎng)絡(luò)主路上,用SE模塊代替原來的瓶頸結(jié)構(gòu),輸出結(jié)果與輸入特征圖的恒等映射相加得到最終結(jié)果,大量減少了模型訓(xùn)練參數(shù),避免網(wǎng)絡(luò)過擬合。恒等映射塊結(jié)構(gòu)如圖9所示。
圖9 恒等映射塊結(jié)構(gòu)圖
本文模型沿用了ResNet50的主體框架,分為輸入、主網(wǎng)絡(luò)、輸出3個部分,如圖10所示。
圖10 本文模型結(jié)構(gòu)圖
(1)輸入部分。將皮膚病圖像裁剪成(224,224,3)維度作為模型輸入,經(jīng)過Conv7×7(stride= 2)+BN+Relu+Maxpool3×3(stride=2)輸出特征圖維度為(56,56,64)。
(2)主網(wǎng)絡(luò)部分。主網(wǎng)絡(luò)分為4個Stage。Stage1 由1個卷積塊和2個恒等映射塊組成,輸出特征圖維度為(28,28,256)。Stage2由1個卷積塊和3個恒等映射塊組成,輸出特征圖維度為(14,14,512)。Stage3由1個卷積塊和5個恒等映射塊組成,輸出特征圖維度為(7,7,1 024)。Stage4由1個卷積塊和2個恒等映射塊組成,輸出特征圖維度為(4,4,2 048)。
(3)輸出部分。主網(wǎng)絡(luò)輸出特征圖(4,4, 2 048)經(jīng)過全局平均池化層(GAP)輸出特征圖維度(1,1,2 048),再連接3個神經(jīng)元的全連接層(FC),最終通過Softmax激活函數(shù)輸出皮膚病分類的結(jié)果。
2.1.1 數(shù)據(jù)來源
由于ISIC-2017挑戰(zhàn)[16]提供的數(shù)據(jù)集存在較為嚴(yán)重的數(shù)據(jù)不平衡問題,本文基于公開的皮膚鏡圖像數(shù)據(jù)國際皮膚成像協(xié)作(ISIC)構(gòu)建了一個皮膚病圖像數(shù)據(jù)集。該數(shù)據(jù)集包含基底細(xì)胞癌(Basal Cell Carcinoma,BCC)、黑色素瘤(Melanoma,MEL)、痣(Nevus,NV)3大類,共計(jì)8 992張圖像。按照4∶1的比例劃分訓(xùn)練集和測試集,其中訓(xùn)練集為7 194張樣本,測試集為1 798張樣本。每類數(shù)據(jù)分布如表1所示。
表1 各類皮膚病分布
2.1.2 數(shù)據(jù)預(yù)處理
數(shù)據(jù)裁剪為(224,224,3)的尺寸,并將皮膚病圖像數(shù)據(jù)除以255作歸一化處理。
2.1.3 實(shí)驗(yàn)環(huán)境
本文使用PyCharm作為編譯器,編程語言為Python,實(shí)驗(yàn)框架為Keras和Tensorflow。硬件環(huán)境為Intel(R) Core(TM) i7-9700K CPU,主頻 3.60 GHz,顯卡為NVIDIA GeForce GTX1070 Ti,64位 Windows 11操作系統(tǒng)。
2.1.4 評價指標(biāo)
本文選用準(zhǔn)確率(Accuracy)、精確率(Precision)、召回率(Recall)、F1分?jǐn)?shù)作為模型評價指標(biāo),計(jì)算公式分別如下:
式中:TP(True Positive)為真陽性,表示算法將當(dāng)前皮膚病樣本正確分為該類;FN(False Nega-tive)為假陰性,表示算法將其他兩類皮膚病樣本錯誤分為該類;TN(True Negative)為真陰性,表示算法將當(dāng)前皮膚病樣本錯誤分為其他兩類;FP(False Positive)為假陽性,表示算法將其他兩類皮膚病樣本正確分為其他兩類。
本文選用交叉熵?fù)p失函數(shù),Adam為優(yōu)化器更新參數(shù),批次大小batch-size設(shè)置為64,迭代 100次,初始學(xué)習(xí)率lr設(shè)0.01,每10個epochs內(nèi)準(zhǔn)確率不提升,調(diào)整lr=lr×0.1,調(diào)整至10-7停止更新學(xué)習(xí)率。
在保證數(shù)據(jù)集、實(shí)驗(yàn)環(huán)境一致的情況下,本文 模 型 與ResNet50、VGG16[17]、Xception[18]模 型在皮膚病數(shù)據(jù)上驗(yàn)證,準(zhǔn)確率如圖11所示。本文模型準(zhǔn)確率比對比模型效果出色,且曲線較快達(dá) 到收斂。
圖11 不同模型的準(zhǔn)確率曲線
不同模型性能指標(biāo)如表2所示。本文模型的準(zhǔn)確率為93.38 %,精確率為93.42%,召回率為3.44%,F(xiàn)1分?jǐn)?shù)為93.4%,均明顯超過VGG16、esNet50、Xception,且本文模型遠(yuǎn)小于其他模型。實(shí)驗(yàn)表明,本文模型對皮膚病的診斷有明顯效果,且參數(shù)較少,不需要較高的計(jì)算機(jī)配置,適合應(yīng)用于臨床輔助診斷。
表2 不同模型性能指標(biāo)
通過消融實(shí)驗(yàn)來驗(yàn)證本文模型的性能。實(shí)驗(yàn)A設(shè)置為含有DS-ception結(jié)構(gòu)和SE模塊的模型,實(shí)驗(yàn)B設(shè)置為只含有DSception結(jié)構(gòu)的模型,實(shí)驗(yàn)C設(shè)置為只含有SE模塊的模型,實(shí)驗(yàn)D設(shè)置為不含有DScep-tion結(jié)構(gòu)和SE模塊的模型。超參數(shù)設(shè)置與2.2節(jié)一致。
實(shí)驗(yàn)結(jié)果如圖12所示。通過觀察圖12的混淆矩陣可以看出,4個實(shí)驗(yàn)中NV類的召回率結(jié)果相近,實(shí)驗(yàn)D為99.66%,比實(shí)驗(yàn)A的99.49%略高。對比BCC和MEL的召回率,實(shí)驗(yàn)A比其他3個實(shí)驗(yàn)效果好,其中實(shí)驗(yàn)A的MEL召回率為88.20%,實(shí)驗(yàn)B、C、D分別為83.93%、81.48%、79.18%,實(shí)驗(yàn)A對黑色素瘤圖像特征提取效果明顯。表3為消融實(shí)驗(yàn)各項(xiàng)評價指標(biāo)的宏平均,可以看出實(shí)驗(yàn)A表現(xiàn)最好,對皮膚病診斷分類有明顯作用。
圖12 消融實(shí)驗(yàn)混淆矩陣
表3 消融實(shí)驗(yàn)評價指標(biāo)
本文提出了基于DSception和SE模塊的皮膚病多分類模型,其中DS-ception模塊加深了網(wǎng)絡(luò)深度和寬度,增加了多尺度的感受野,提升了模型提取特征的能力,同時也明顯地減少網(wǎng)絡(luò)參數(shù),加快了網(wǎng)絡(luò)的收斂速度。SE模塊實(shí)現(xiàn)了對通道的重新標(biāo)定,即對有著圖像重要特征的通道進(jìn)行加權(quán),對有著無用特征的通道進(jìn)行抑制,且模塊參數(shù)量較少,對于整個網(wǎng)絡(luò)模型可以忽略不計(jì)。實(shí)驗(yàn)表明,本文模型在對皮膚病的種類分類識別領(lǐng)域有明顯的 效果。