包善書,車 波,鄧林紅
(1.常州大學 計算機與人工智能學院,江蘇 常州 213164;2.常州大學 生物醫學工程與健康科學研究院 常州市呼吸醫學工程重點實驗室,江蘇 常州 213164)
肺音是臨床聽診的一種重要生理信號,其信號特征與肺部疾病有著緊密關聯,如從哮喘和慢性阻塞性肺疾病患者的肺音中可聽到一種連續型的異常肺音,通常稱為哮鳴音(Wheezes)[1],而從慢性支氣管炎、肺炎、肺纖維化等患者的肺音中則可聽到一種間斷型的異常肺音,即所謂的爆裂音(Crackles)[2]。
目前臨床聽診中,醫生主要依靠經驗判斷患者的肺音類型以輔助其對患者肺部疾病的診斷。但由于肺音信號混雜著人體復雜生理環境下的背景噪音(如心音、腸道音等),其信噪比往往較低,僅僅依賴醫生的主觀經驗判斷容易發生對肺部疾病的漏診甚至誤診。隨著計算機技術的不斷發展,運用機器學習等數據驅動的方法實現對肺音信號的智能識別和分類,進而輔助醫生診斷患者肺部疾病狀況已成為重要的發展趨勢[3-5]。
然而,目前肺音識別研究所面臨的主要問題在于:傳統機器學習方法難以從肺音特征中獲取關鍵信息,導致識別效果不理想;深度學習方法對數據的依賴性較高,而肺音數據稀少且難以獲取,致使識別網絡容易過擬合,難以完成精準高效的分類識別。近年來使用最廣泛的肺音數據集是生物醫學健康信息學國際會議(ICBHI)[6]公開的ICBHI-2017,該數據集包含來自126 名受試者的6 898 個帶注釋的4 類肺音數據,但數據量仍然不夠充裕。基于該數據集的肺音識別研究有:文獻[7]提出一種特征融合的方法,在融合肺音的短時傅里葉譜特征與小波特征后,采用支持向量機(Support Vector Machine,SVM)識別ICBHI 數據集中的4 類肺音,識別準確率為67.29%;文獻[8]采用肺音的梅爾頻率倒譜系數(Mel Frequency Cepstral Coefficient,MFCC)特征,通過長短期記憶(Long Short-Term Memory,LSTM)網絡分類識別4 類肺音,識別準確率為74%;文獻[9]提取肺音的短時傅里葉譜特征,利用一種名為Parallelpooling CNN 的卷積神經網絡分類識別4 類肺音,識別準確率為70.45%。由此可見,無論是傳統的機器學習算法還是深度學習算法,都難以在肺音識別中取得較好的效果,當前亟需開發一種基于數據自驅動、識別高精度和綜合性能優異的肺音識別方法。
2017 年,Google 推出在Audio Set[10]音頻 數據集上訓練的VGGish 神經網絡,該方法隨即在音頻分類與識別的研究中得到了較好的應用,顯示出在有限數據集基礎上獲得高精度分類識別的巨大潛力[11-12]。此外,現代有關音頻信號的研究往往從時域和頻率域2 個方面入手,運用時頻分析的方法將信號的時序波形圖轉化為蘊含頻域特征和時域特征的譜圖,依據譜圖的特征識別信號本身[13]。針對小型音頻數據集,借助遷移學習與圖像識別的思路,使用大型數據集ImageNet 上的預訓練卷積神經網絡識別信號也是一種有效的方式。
綜上,考慮到遷移學習方法能克服數據集規模較小所致模型識別精度低的問題[14-15],本文借助VGGish 網絡在Audio Set 上的預訓練參數以及VGG19 在ImageNet 上的預訓練參數,提出一種雙源域遷移學習方法識別肺音。首先,構建一種VGGish優化模型,針對VGGish 網絡的結構特性,在網絡全連接層之前融合高效通道注意力(Efficient Channel Attention,ECA-Net)[16]模塊;其次,采用多尺度擴張卷積對VGGish 網絡的輸出特征圖進行卷積運算,從而捕獲高維向量的內在聯系,得到語義信息更豐富的特征;然后,利用雙向門控循環單元(Bidirectional Gated Recurrent Unit,BiGRU)從增強后的特征中獲取肺音的時序特性;最后,提出一種融合VGGish 優化模型與VGG19 的肺音識別模型(LSR-Net),用訓練數據分別訓練VGGish 優化模型與VGG19 作為特征提取器,將具有高層語義的特征向量融合后輸入CatBoost 算法[17]實現分類。
1.1.1 VGGish 網絡
Audio Set包含200多萬個音頻數據,共600多類,預訓練模型VGGish 中的參數蘊含了大量音頻數據的通用特性,利用在該數據集上訓練好的VGGish網絡,能在一定程度上克服過擬合問題,從而對肺音實現較好的分類效果。值得一提的是,Audio Set上用來訓練VGGish 的數據不是音頻文件的波形信號,而是波形數據轉換后具有特定形狀的對數梅爾頻率譜(Logarithmic Mel spectrum,Log-Mel),具體步驟如下:1)用16 000 Hz 重新采樣音頻數據;2)對重采樣后的音頻數據進行短時傅里葉變換,得到頻譜圖;3)將步驟2)中的頻譜圖映射到64 階梅爾濾波器組中計算梅爾頻率譜,然后再取對數,得到對數梅爾頻率譜;4)以0.96 s 的時長重新組幀,共96 幀,每一幀包含64 個梅爾頻帶,即對于時長為Ns 的音頻文件,所對應的對數梅爾譜圖維度為,其中,表示N除以0.96后向上取整數。圖1 展示了實驗所用肺音數據的時域波形圖(上圖)與按這種方式轉換后的對數梅爾頻率譜(下圖)。由圖1 可見,相對于肺音的波形數據,對數梅爾頻率譜蘊含著更多的時頻信息。

圖1 不同類型肺音的波形時域圖與對數梅爾頻率譜Fig.1 Waveform time domain diagrams and logarithmic Mel spectrums of different types of lung sounds
表1 列出了VGGish 網絡的結構及網絡層參數。由表1 可見,VGGish 的輸入特征圖維度為96×64×1,這意味著維度為的對數梅爾頻率譜無法直接輸入VGGish,因此,常用的方式是讓VGGish 按照時序依次學習個時間步內譜圖的信息。

表1 VGGish 網絡的結構與網絡層參數 Table 1 Structure and network layer parameters of VGGish network
1.1.2 ECA-Net
借助預訓練模型能一定程度上克服因肺音數據稀少帶來的困擾,但僅依靠預訓練參數未必能取得理想的效果。為進一步提高識別精度,本文從模型自身的角度對VGGish 進行改進。由于VGGish 本身是一種卷積神經網絡,因此本文考慮在VGGish 中融合通道注意力機制以提升性能。通道注意力包括SE-Net、CBAM[18-19]等,通過實驗可以發現,ECA-Net是通道注意力機制中提升肺音識別效果最為顯著的一種,其核心功能為:通過學習的方式,為特征向量的通道數分配權重,以利于關注重要特征和抑制次要特征,從而提升識別精度。ECA-Net 結構如圖2所示。

圖2 ECA-Net 結構Fig.2 Structure of ECA-Net
設輸入特征向量F的數據維度為W×H×C(W與H分別為寬和高,C為通道數),經過全局平均池化(Global Average Pooling,GAP)后,得到一個1×1×C的特征向量Y,這個特征向量經過一維卷積運算與Sigmoid 函數得到通道注意力圖ω,ω中的數ωi即為對應通道的權重,最后將每個通道上的數乘上該通道對應的權重,即完成對每個通道權重的分配。ωi與ω的計算公式如式(1)與式(2)所示:
其中:yi為Y的第i個分量;wi為yi對應的權重;k表示局部跨通道交互的覆蓋范圍,即一維卷積核的大小;Ωi為與yi相鄰的K個通道的集合;Convk表示一維卷積;σ為Sigmoid 函數。
1.1.3 特征增強
由表1 可知:對于每個時間步的譜圖,VGGish 輸出128 維的特征向量;對于Ns 的音頻數據,VGGish輸出維的特征圖。常規思路是直接對維的特征圖進行分類,但是這種做法忽略了128 維特征向量內部的關聯。
考慮到擴張卷積能夠增大感受野,從而捕獲高維度向量中距離較遠的元素之間的關系,同時多尺度卷積能從不同的感受野獲取信息,從而全面捕獲高維向量內部的關聯信息,本文提出一種基于多尺度擴張卷積的特征增強的方法,即針對每128 維向量,采用多個大小不同且擴張率不同的一維卷積核進行卷積運算,并將運算后的特征向量相加。上述特征增強示意圖如圖3 所示。

圖3 特征增強示意圖Fig.3 Schematic diagram of feature augment
由圖3 可見,對于任意128 維的特征向量F,將其分別經過t次一維卷積運算后相加得到增強后的向量。此過程具體由式(3)給出,其中,FAug表示增強后的向量,Convi表示第i次卷積運算。
1.1.4 VGGish 優化模型的構建
本文在VGGish 網絡中融合ECA-Net 后,使VGGish 網絡按照時序依次學習譜圖中的信息。在此基礎上,對VGGish 提取的特征圖進行特征增強,并使用BiGRU 捕獲肺音數據的時序信息,完成對肺音的識別分類。此模型命名為VGGish 優化模型,具體工作原理如圖4 所示。本文用VGGish+ECA-Net表示融合了ECA-Net 的VGGish 網絡。在圖4 中,TimeStep 為時間步,意味著本文只構建了一個VGGish 網絡,并非個,相較于使用個VGGish 網絡并行處理,可有效減少不必要的內存開銷。

圖4 基于VGGish 優化模型的肺音識別示意圖Fig.4 Schematic diagram of lung sound recognition based on VGGish optimization model
VGG19 是一種經典的卷積神經網絡,其包含16 個卷積層、5 個最大池化層、3 個全連接層。為了使用VGG19 在ImageNet 上的預訓練參數,需要將肺音的波形數據轉化至規格為224×224×3 的譜圖,具體步驟如下:1)將肺音的波形數據轉換至規格為224×224×1 的譜圖;2)將步驟1)中的譜 圖復制3 份,拼接成規格為224×224×3 的譜圖。
譜圖的形式有多種,考慮到對數梅爾頻率譜在音頻識別與分類中表現出色,本文依舊選擇將肺音信號轉換為對數梅爾頻率譜,只是譜圖的轉換方式及參數與轉換后的形狀與上文中提及的略有不同。為了提升VGG19 的識別效果,本文舍去最后的3 個全連接層,并融合通道注意力模塊ECA-Net。基于VGG19的肺音識別示意圖如圖5所示。

圖5 基于VGG19 的肺音識別示意圖Fig.5 Schematic diagram of lung sound recognition based on VGG19
本文借助VGGish 在Audio Set 上的預訓練參數以及VGG19 在ImageNet 上的預訓練參數,提出一種基于雙源域遷移學習的肺音識別方法LSR-Net。使用訓練后的VGGish 優化模型以及VGG19 作為特征提取器,將具有高級語義的特征向量輸入CatBoost算法,最終實現肺音的識別。基于LSR-Net 的肺音識別示意圖如圖6 所示,將肺音信號分別轉換為規格為與(224,224,3)的對數梅爾頻率譜輸入VGGish 優化模型與VGG19,并將輸出的256 維與128 維特征向量融合后輸入CatBoost 算法。CatBoost 是梯度提升決策樹的主流算法之一,較XGBoost[20]與LightGBM[21],其所使用的Ordered boosting 方法能在一定程度上緩解過擬合。

圖6 基于LSR-Net 的肺音識別示意圖Fig.6 Schematic diagram of lung sound recognition based on LSR-Net
本文采用2017 年生物醫學健康信息學國際會議提供的公開數據集(ICBHI-2017)和文獻[22]公開的數據集(Coswara)作為實驗數據集。
ICBHI-2017 中包含來自126 名受試者的6 898 個帶注釋的4 類肺音數據,其中有3 642 個正常肺音、1 864 個爆裂音、886 個哮鳴音、506 個爆裂音與哮鳴音混合的異常肺音。將數據集按照8∶2 的比例分為訓練集與測試集,并將肺音數據的采樣時長設置為6 s。
Coswara 為一個持續擴充樣本的新冠音頻數據集,現階段包含來自1 000 多位健康受試者與600 多位新冠受試者的肺音、咳嗽、說話等音頻數據。實驗數據包含來自673 位新冠患者的1 345 個肺音數據以及等量的健康受試者的1 345 個肺音數據。本文將這2 690 個肺音數據按照8∶2 的比例分為訓練集與測試集。
本文中的ICBHI 肺音實驗數據集有專門的評估指標,即特異性、敏感性與ICBHI-score,相關計算公式如下所示:
其中:TP表示樣本的真實值為正類,模型也識別為正類的樣本數量;FN表示樣本的真實值為正類,模型識別為負類的樣本數量,正類可以為任意類型的肺音,除正類外的其余肺音即為負類;Normal 表示正常肺音;Abnormal 表示異常肺音,包含哮鳴音、爆裂音以及兩者的混合音;特異性指標Sp表示在正常肺音中,模型識別正確的占其總數的比例;敏感性指標Se表示除正常肺音以外的3 類異常肺音中,模型識別正確的數目占這3 類異常肺音的比例;IICBHI-score為ICBHI-score。
對于新冠數據集Coswara,同樣使用特異性和敏感性作為評估指標。同時考慮到數據集中2 類樣本的個數相同,因此使用準確率作為第3 個指標。
本文提出一種VGGish 優化模型,單獨運用VGGish 可以實現肺音的識別,即將VGGish 網絡按時序學習后輸出的特征向量直接輸入全連接層分類。基于VGGish 的肺音識別示意圖如圖7 所示。

圖7 基于VGGish 的肺音識別示意圖Fig.7 Schematic diagram of lung sound recognition based on VGGish
為了驗證本文對VGGish 優化的有效性,將原VGGish 網絡添加任一優化方式后的VGGish 網絡與VGGish 優化模型在ICBHI-2017 與Coswara 數據集上進行實驗,結果如表2 和表3 所示。實驗結果顯示,VGGish 優化模型的指標較原VGGish 提升顯著,且在VGGish 中任意優化方式都會提高模型的性能。這些結果說明本文采用的多種優化方式結合的方法是合理且有效的。

表2 VGGish優化的有效性驗證(ICBHI-2017數據集實驗結果)Table 2 Validation of VGGish optimization(experimental results on ICBHI-2017 dataset)%

表3 VGGish 優化的有效性驗證(Coswara 數據集實驗結果)Table 3 Validation of VGGish optimization(experimental results on Coswara dataset)%
本文借助VGG19在ImageNet上的預訓練參數實現肺音識別,ImageNet作為最具權威代表的圖像數據集,其上的預訓練模型不僅僅只有VGG19。本文使用ImageNet 不同的預訓練模型在肺音數據集上進行實驗,實驗結果如表4 和表5 所示。實驗結果顯示,較其他卷積神經網絡,VGG19對肺音的識別效果最好。雖然ResNet、DenseNet等結構更優異的卷積神經網絡在許多計算機視覺任務中取得了比VGG19更佳的效果,但在數據量較為稀少的肺音數據上表現得并不出色。這進一步說明,現有的肺音數據的確不夠充裕,致使網絡過擬合現象嚴重,泛化能力弱。

表4 ImageNet 上不同預訓練模型的識別效果比較(ICBHI-2017 數據集實驗結果)Table 4 Comparison of recognition effects of different pre-training models on ImageNet(experimental results on ICBHI-2017 dataset)%

表5 ImageNet 上不同預訓練模型的識別效果比較(Coswara 數據集實驗結果)Table 5 Comparison of recognition effects of different pre-training models on ImageNet(experimental results on Coswara dataset)%
本文使用訓練后的VGGish 優化模型與VGG19作為特征提取器,將具有語義的高層特征向量融合后輸入CatBoost 算法以構建LSR-Net。圖8 與圖9 所示的混淆矩陣分別展示了LSR-Net 在ICBHI-2017 與Coswara 上對每種肺音分類的具體情況。由圖8 的混淆矩陣可知,該模型在ICBHI-2017 分類結果的各項指標中,特異性指標為88.75%,敏感性指標為72.04%,ICHBI-score 為80.39%;由圖9 的混淆矩陣可知,該模型在Coswara 上分類結果的各項指標中,特異性指標為80.66%,敏感性指標為77.69%,準確率為79.18%。由此可以看出,LSR-Net 對肺音的識別效果較VGGish 優化模型與VGG19 有較大提升。

圖8 LSR-Net 在ICBHI-2017 上對肺音識別的混淆矩陣Fig.8 The confusion matrix of LSR-Net for lung sound recognition on ICBHI-2017

圖9 LSR-Net 在Coswara 上對肺音識別的混淆矩陣Fig.9 The confusion matrix of LSR-Net for lung sound recognition on Coswara
為探究識別效果的提升是否僅與CatBoost 算法有關,而與雙源域的預訓練模型結合無關,本文分別將VGG19 單獨結合CatBoost、將VGGish 優化模型單獨結合CatBoost 在肺音數據集上進行實驗,結果如表6 和表7 所示。實驗結果顯示,無論是VGG19結合CatBoost,亦或是VGGish 優化模型結合CatBoost,對肺音的識別效果均沒有LSR-Net 好,從而驗證了本文提出的雙源域遷移學習方法的性能優越性。

表7 CatBoost 算法對模型性能的影響(Coswara 數據集實驗結果)Table 7 Impact of CatBoost algorithm on model performance(experimental results on Coswara dataset)%
對數梅爾頻率譜與梅爾頻率倒譜系數是音頻領域常用的特征,神經網絡、支持向量機與極端梯度提升決策樹則是音頻識別中常用的分類器。表8 顯示了常用識別方法與LSR-Net 在Coswara 上的實驗結果。實驗結果顯示,本文中的LSR-Net無論是特異性或是敏感性指標都明顯高于對比的常用識別方法,這主要得益于LSR-Net 中的預訓練參數一定程度上解決了音頻信號共性特征學習的問題,從而表現出色。

表8 不同方法的性能比較(Coswara 數據集實驗結果)Table 8 Comparison of performance of different methods(experimental results on Coswara dataset)%
目前有關肺音識別的研究大多集中在ICBHI-2017 數據集上,將不同識別方法與LSR-Net 進行比較,實驗結果如表9 所示。實驗結果顯示,本文提出的LSR-Net 的特異性、敏感性指標與ICBHIscore 均高于其他對比方法。此外還可以發現,當未使用數據增強或者遷移學習方法時,識別效果欠佳,這再次驗證了本文從遷移學習方法著手的正確性。

表9 不同方法的性能比較(ICBHI-2017 數據集實驗結果)Table 9 Comparison of performance of different methods(experimental results on ICBHI-2017 dataset)%
本文針對肺音識別中因數據集規模較小所致識別精度不高的問題,提出一種基于雙源域遷移學習的肺音識別方法。借助VGGish 網絡在Audio Set 上的預訓練參數以及VGG19 在ImageNet 上的預訓練參數,緩解網絡的過擬合問題。在此基礎上,提出一種VGGish 優化模 型、VGG19 與CatBoost 算法結 合的肺音識別模型LSR-Net。在ICBHI-2017 與Coswara 數據集上的實驗結果表明,LSR-Net 性能優于現有的肺音識別方法。下一步將嘗試把特征融合、幀加權等技術運用到LSR-Net中,并綜合考慮多個不同源域上的預訓練模型,探究更適合肺音聲學特征的識別模型,為臨床肺音聽診提供更高精度的輔助識別技術。