張明瑞,羅 靖,陳云帆,萬相奎,肖碧波
(1 湖北工業大學電氣與電子工程學院,湖北 武漢 430068;2 佛山市第三人民醫院,廣東 佛山 528041)
心血管疾病(CVD)是世界范圍內的主要死亡原因[1]。心電圖作為一種診斷和檢測心血管疾病的工具是不可或缺的。在某些特殊情況下,需要對患者的心電圖進行持續性監測,以發現心律失常的情況。心房顫動(AF)是一種最為常見的心功能紊亂心臟病,其特征有三:沒有P波,R-R間隔高度不規則變化,以及存在起伏的心房活動,也稱為顫動波或f波[2-4],能夠快速識別和檢測心房顫動尤為重要。本文方法的優勢在于不依賴于傳統的人工特征提取方法進行R波檢測,檢測精度受到不同數據庫的影響,能夠自主學習特征來識別R波。在識別R波的基礎上通過本文的卷積神經網絡模型檢測心房顫動,房顫檢測速度較快、準確率高。
本文提出了一種基于卷積神經網絡的房顫檢測模型。心房顫動檢測方法可分為兩類:人工特征提取方法和特征自學習方法。人工特征提取方法需要提取人工設計的特征,不具有魯棒性[5]。本文提出了一種自主學習方法,利用CNN模型自主學習用于檢測房顫的鑒別特征,通過調節神經網絡的參數使網絡學習到有利于分類任務的特征[6],從而進行房顫的識別。本文提出的基于卷積神經網絡進行房顫識別的流程見圖1。

圖1 基于卷積神經網絡的房顫識別流程圖
本文使用了MIT-BIH心律失常數據庫(下文簡稱心律失常數據庫)和CPSC 2017數據庫的訓練集(下文簡稱CPSC 2017數據庫)。目前國際上最具權威性的數據庫有美國麻省理工學院與Beth Israel醫院聯合建立的MIT-BIH心電數據庫、美國心臟學會的AHA心律失常心電數據庫、歐盟的CSE和ST-T數據庫。其中AHA心律失常心電數據庫和CES數據庫用于評價儀器性能且需要購買,而ST-T數據庫主要用于研究心電信號的ST段和T波。因此本文采用的數據庫為MIT-BIH心律失常數據庫,另外CPSC 2017數據庫也是在國際上被廣泛認可的檢測房顫的心電數據庫。MIT-BIH心律失常數據庫包含48個半小時的雙通道動態心電圖記錄摘錄,這些記錄來自 BIH 心律失常實驗室在 1975 年至1979年間研究的47個受試者,采樣頻率為360 Hz,在10 mV范圍內具有11位分辨率。該數據庫由兩名或兩名以上心臟病專家獨立注釋每條記錄,數據庫中包含計算機可讀的約110 000個注釋。CPSC 2017數據庫包含8,528個持續時間從9 s到剛超過60 s,采樣頻率300 H的單導聯ECG記錄,每個數據包括一個包含ECG的.mat文件和一個包含波形信息的.hea文件。
心電信號采集一般是通過單導聯或多導聯電極與皮膚直接接觸所得,采集到的心電信號是一種低頻率、低幅度的隨機非平穩信號。因此,需要對采集到的心電信號進行預處理以減少或消除因各種情況產生的誤差,從而提高檢測到的心電信號準確性[7]。本文采用兩個中值濾波器對噪聲信號進行預處理,使用心律失常數據庫進行實驗,預處理流程見圖2。

圖2 心電信號預處理流程圖
首先將信號重采樣到300 Hz,這里采用下采樣的方式使得心律失常數據庫的采樣頻率與CPSC 2017數據庫的采樣頻率保持一致。
其次去除噪聲干擾,將信號先后通過兩窗口大小分別為200 ms和600 ms的中值濾波器。其中使用200 ms中值濾波器目的是去除QRS波群和P波,使用600 ms的中值濾波器主要是去除T波獲得基線漂移噪音信號。然后利用原信號減去基線漂移噪聲信號后得到校正后的信號[8]。
最后通過一個3 s的非重疊窗口,從窗口中獲取最大值對預處理后的心電信號進行歸一化處理,將其幅值映射到[-1,1]之間,便于之后進行R波檢測以及心電信號分類。
歸一化公式如下:
圖3和圖4分別為心律失常數據庫第109號記錄預處理前和預處理后的對比圖。該條信號記錄的是一位64歲的男性,包含了非常典型的基線漂移噪聲和因肌電干擾與工頻干擾導致的信號毛刺,這些毛刺對心電信號的基準點標定與波形識別都有較大影響??梢园l現通過預處理后,波形的幅值發生了偏移,這是因為經過中值濾波器后減去基線漂移信號的過程實際上是每一個點都加了一個正數,相當于把每個波都往上墊,使得高度一致,雖然這樣會導致幅值發生變化,但是R波的位置卻沒有變,并且信號中毛刺變少,變得更加平滑,基線漂移得到了一定的糾正[9],因此不做進一步處理。

圖3 109號記錄原始ECG信號

圖4 109號記錄預處理后ECG信號
R波具有峰值大,信號變化幅度大的特點。本文對R波檢測進行研究,旨在提取心電信號特征,便于后續的處理。R波檢測模型的輸出本質上是一個檢測到R波時輸出1,否則為0的二進制判決[10]。為了提高二進制判決的精度,本文提出了一個具有魯棒性的基于卷積神經網絡的R波檢測器,此卷積神經網絡包含輸入層、卷積層、池化層、全連接層以及輸出層(圖5)。通過心律失常數據庫作為訓練集來訓練提出的CNN模型,數據庫包含48個半個小時的記錄,每個R波的位置和類型由兩個獨立的心臟病專家注釋[11]。由于已經將采樣信號降到300 Hz,故輸入層為300個樣本的心電信號向量,這就意味著訓練此神經網絡時,需要將訓練集分成以300個樣本為一個單位的片段。卷積層為一層,池化層包含3個長度為30的濾波器。輸入信號通過隱含層得到特征向量矩陣,若特征向量位于信號向量中間的狹窄鄰域(約150 ms)中,則該記錄的標簽則被認為識別到R波,即標記為1,否則輸出標記為0。心律失常數據庫的109號記錄去除噪音后,對R波標記的結果(紅色圓圈),見圖6。

圖5 基于卷積神經網絡R波檢測器結構示意圖

圖6 R波檢測結果
使用心律失常數據庫來評估本文所提出的R波檢測方法。R波檢測結果的真實值與預測結果對應關系見表1[12],其中真陽性(True positive, TP)代表正確檢測出R波的個數;假陽性(False positive,FP)代表錯誤識別成R波的個數;和假陰性(True Negative,FN)代表漏檢的R波的數量。R波檢測性能評價指標采用了靈敏度(Sensitivity,SE)、陽性預測率也就是精確度(Precision,P)、準確率(Accuracy,ACC),如下:

表1 實際結果與預測結果的聯系
表2列出了心律失常數據庫中每條數據的檢測結果。對心律失常數據庫的每一條記錄進行了詳細的驗證比對,發現P識別精度達到了98.83%,SE達到99.72%,ACC達到了99.54%。該結果證明所提出的R波檢測算法識別效果良好。

表2 在心律失常數據庫中的R波檢測結果
卷積神經網絡作為深度學習神經網絡中的主要網絡結構之一[13],在心電信號檢測和分類、圖像分類、圖像語意分割等領域取得了一系列突破性的研究成果,其高效的特征提取和分類能力引起了廣泛關注。本文提出了一種卷積神經網絡(CNN)的結構分為4個部分,分別是輸入層、卷積層、池化層和全連接層(圖7)。所提出的卷積神經網絡能夠從訓練數據中學習合適的特征,通過隨機梯度下降法優化神經網絡的超參數,以實現所需的分類任務[14-15]。

圖7 卷積神經網絡結構
輸入層:檢測預測了R波的位置之后,對于在每個心電圖中檢測到的R波,取其前120個采樣點和后120個采樣點,構成一個包含241個采樣點的片段,將8個連續這樣的片段疊加在一起作為本文的特征心拍。將數據庫中的心電記錄按上述方案進行切片,以8×241的切片信號作為卷積神經網絡的輸入。如圖8、圖9、圖10所示,對應正常、房顫以及其他幾類心電信號按照上文方法進行疊加后所得到的圖形。以疊加的房顫信號為例,從圖中可以發現,心電信號中除標記的R波外,前一個R波和后一個R波在多個心拍內沒有對齊,這種RR間期的不規則性也就是房顫的信號[16]。同時,對于其他類別的心電信號,進行疊加處理后的圖像是不重疊的,將這一信號作為輸入傳遞到卷積層,作為鑒別特征幫助學習所需信號的分類。

圖8 正常信號疊加

圖9 房顫信號疊加

圖10 其他信號疊加
卷積層與池化層:卷積層和池化層是實現特征提取的關鍵部分,其作用是將輸入層的底層特征值交替操作得到一個實際的輸出值[5]。由于本文的計算量不大,因此只用了單一的卷積層與池化層的組合。卷積層使用8個大小為100的濾波器,最后將多個濾波器的輸出疊加在一起形成一個特征信號。池化層的主要作用是通過下采樣減少特征向量個數,減輕計算量縮短訓練時間。將上文方法疊加處理后的心電信號經過其中一個濾波器后產生的特征見圖11、圖12、圖13,各種信號的R波偏移都被識別,這是RR間期規律性的特征[17]。最后,將多個濾波器的輸出疊加在一起形成一個特征信號。

圖11 正常信號疊加處理后

圖12 房顫信號疊加處理后

圖13 其他信號疊加處理后
輸出部分:這里采用傳統的全連接層和softmax激活函數作為輸出的形式,本文基于投票機制,將數據庫中的心電信號按正常(N)、房顫(A)、其他心律失常(O)、噪聲(~)四類標簽進行分類,將上文疊加處理后的信號映射到信號標簽上,再通過softmax將結果映射到(0,1)區間上,所對應每類發生的概率Pi分別為正常概率PN、房顫概率PA、其他概率PO、噪音概率P~,滿足PN+PA+PO+P~=1。將經過8個濾波器處理后的結果進行概率計算,選出概率最高的為預測結果。
將CPSC 2017數據庫進行4∶1分割為訓練集和測試集對提出的CNN房顫檢測模型進行訓練和測試。本文提出的基于卷積神經網絡的房顫識別方法的性能通過特異性(Specificity,SP)和陰性預測率(Negative predictive value,NPV)這兩項指標進行評估。表3中的4個檢查指標用于計算SP和NPV。SP也稱為真陰性率,表示正確預測沒有發生房顫的概率,即SP越高誤診率越低;NPV反應的是預測為沒有房顫的樣本中,真實沒有房顫的樣本占陰性樣本總數的百分比,NPV數值越高效果越好。這兩個評判指標的表達式如下:

表3 卷積神經網絡房顫檢測結果
表4顯示了不同卷積神經網絡的房顫檢測結果對比,可以看到本文所提出的CNN方法優于前饋網絡[18],本文方法檢測結果為SP 96.82%,NPV 97.18%,計算時間159.94 s。該結果表明所提出的模型具有良好的檢測性能、魯棒性和泛化性,在檢測性能和計算時間之間取得了平衡。從表4中結果可以看出,改變隱含層結構會對模型檢測結果產生一定的影響,減少濾波器的長度增加濾波器個數會略微提高檢測結果,但同時會引入更多的計算量,大大延長檢測時間。通過增加濾波器長度,減少濾波器個數會使檢測結果略微變差,且過長卷積核容易出現過擬合的問題[19]。雖然前饋神經網絡具有結構與原理簡單、計算量小的特點,但是檢測結果的靈敏度相對較低。

表4 不同卷積神經網絡結果對比
本文基于CNN方法對R波檢測,在心律失常數據庫數據的實驗結果表明,該方法R波的P為98.83%,SE為99.72%,ACC為99.54%。其優勢在于不依賴于傳統的人工特征提取方法進行R波檢測時精度會受到不同數據庫的影響,可以自動學習特征來識別R波。在此基礎上,本文提出了一種新的CNN模型檢測房顫,在CPSC 2017數據庫上的實驗結果表明,該方法具有良好的房顫檢測性能,實現了96.82%的SE和97.18%的NPV。本文提出的CNN模型通過特征自學習檢測房顫,避免了傳統方法閾值的設置,通過改變隱藏層的結構,進一步提高模型的檢測性能。本文基于臨床數據開展的研究,對實際臨床應用有較好的參考價值。未來將通過臨床大樣本試驗和應用,來優化算法,進一步提升模型的性能。