張明瑞,羅 靖,陳云帆,萬相奎,肖碧波
(1 湖北工業(yè)大學電氣與電子工程學院,湖北 武漢 430068;2 佛山市第三人民醫(yī)院,廣東 佛山 528041)
心血管疾病(CVD)是世界范圍內(nèi)的主要死亡原因[1]。心電圖作為一種診斷和檢測心血管疾病的工具是不可或缺的。在某些特殊情況下,需要對患者的心電圖進行持續(xù)性監(jiān)測,以發(fā)現(xiàn)心律失常的情況。心房顫動(AF)是一種最為常見的心功能紊亂心臟病,其特征有三:沒有P波,R-R間隔高度不規(guī)則變化,以及存在起伏的心房活動,也稱為顫動波或f波[2-4],能夠快速識別和檢測心房顫動尤為重要。本文方法的優(yōu)勢在于不依賴于傳統(tǒng)的人工特征提取方法進行R波檢測,檢測精度受到不同數(shù)據(jù)庫的影響,能夠自主學習特征來識別R波。在識別R波的基礎(chǔ)上通過本文的卷積神經(jīng)網(wǎng)絡(luò)模型檢測心房顫動,房顫檢測速度較快、準確率高。
本文提出了一種基于卷積神經(jīng)網(wǎng)絡(luò)的房顫檢測模型。心房顫動檢測方法可分為兩類:人工特征提取方法和特征自學習方法。人工特征提取方法需要提取人工設(shè)計的特征,不具有魯棒性[5]。本文提出了一種自主學習方法,利用CNN模型自主學習用于檢測房顫的鑒別特征,通過調(diào)節(jié)神經(jīng)網(wǎng)絡(luò)的參數(shù)使網(wǎng)絡(luò)學習到有利于分類任務(wù)的特征[6],從而進行房顫的識別。本文提出的基于卷積神經(jīng)網(wǎng)絡(luò)進行房顫識別的流程見圖1。
圖1 基于卷積神經(jīng)網(wǎng)絡(luò)的房顫識別流程圖
本文使用了MIT-BIH心律失常數(shù)據(jù)庫(下文簡稱心律失常數(shù)據(jù)庫)和CPSC 2017數(shù)據(jù)庫的訓練集(下文簡稱CPSC 2017數(shù)據(jù)庫)。目前國際上最具權(quán)威性的數(shù)據(jù)庫有美國麻省理工學院與Beth Israel醫(yī)院聯(lián)合建立的MIT-BIH心電數(shù)據(jù)庫、美國心臟學會的AHA心律失常心電數(shù)據(jù)庫、歐盟的CSE和ST-T數(shù)據(jù)庫。其中AHA心律失常心電數(shù)據(jù)庫和CES數(shù)據(jù)庫用于評價儀器性能且需要購買,而ST-T數(shù)據(jù)庫主要用于研究心電信號的ST段和T波。因此本文采用的數(shù)據(jù)庫為MIT-BIH心律失常數(shù)據(jù)庫,另外CPSC 2017數(shù)據(jù)庫也是在國際上被廣泛認可的檢測房顫的心電數(shù)據(jù)庫。MIT-BIH心律失常數(shù)據(jù)庫包含48個半小時的雙通道動態(tài)心電圖記錄摘錄,這些記錄來自 BIH 心律失常實驗室在 1975 年至1979年間研究的47個受試者,采樣頻率為360 Hz,在10 mV范圍內(nèi)具有11位分辨率。該數(shù)據(jù)庫由兩名或兩名以上心臟病專家獨立注釋每條記錄,數(shù)據(jù)庫中包含計算機可讀的約110 000個注釋。CPSC 2017數(shù)據(jù)庫包含8,528個持續(xù)時間從9 s到剛超過60 s,采樣頻率300 H的單導聯(lián)ECG記錄,每個數(shù)據(jù)包括一個包含ECG的.mat文件和一個包含波形信息的.hea文件。
心電信號采集一般是通過單導聯(lián)或多導聯(lián)電極與皮膚直接接觸所得,采集到的心電信號是一種低頻率、低幅度的隨機非平穩(wěn)信號。因此,需要對采集到的心電信號進行預(yù)處理以減少或消除因各種情況產(chǎn)生的誤差,從而提高檢測到的心電信號準確性[7]。本文采用兩個中值濾波器對噪聲信號進行預(yù)處理,使用心律失常數(shù)據(jù)庫進行實驗,預(yù)處理流程見圖2。
圖2 心電信號預(yù)處理流程圖
首先將信號重采樣到300 Hz,這里采用下采樣的方式使得心律失常數(shù)據(jù)庫的采樣頻率與CPSC 2017數(shù)據(jù)庫的采樣頻率保持一致。
其次去除噪聲干擾,將信號先后通過兩窗口大小分別為200 ms和600 ms的中值濾波器。其中使用200 ms中值濾波器目的是去除QRS波群和P波,使用600 ms的中值濾波器主要是去除T波獲得基線漂移噪音信號。然后利用原信號減去基線漂移噪聲信號后得到校正后的信號[8]。
最后通過一個3 s的非重疊窗口,從窗口中獲取最大值對預(yù)處理后的心電信號進行歸一化處理,將其幅值映射到[-1,1]之間,便于之后進行R波檢測以及心電信號分類。
歸一化公式如下:
圖3和圖4分別為心律失常數(shù)據(jù)庫第109號記錄預(yù)處理前和預(yù)處理后的對比圖。該條信號記錄的是一位64歲的男性,包含了非常典型的基線漂移噪聲和因肌電干擾與工頻干擾導致的信號毛刺,這些毛刺對心電信號的基準點標定與波形識別都有較大影響。可以發(fā)現(xiàn)通過預(yù)處理后,波形的幅值發(fā)生了偏移,這是因為經(jīng)過中值濾波器后減去基線漂移信號的過程實際上是每一個點都加了一個正數(shù),相當于把每個波都往上墊,使得高度一致,雖然這樣會導致幅值發(fā)生變化,但是R波的位置卻沒有變,并且信號中毛刺變少,變得更加平滑,基線漂移得到了一定的糾正[9],因此不做進一步處理。
圖3 109號記錄原始ECG信號
圖4 109號記錄預(yù)處理后ECG信號
R波具有峰值大,信號變化幅度大的特點。本文對R波檢測進行研究,旨在提取心電信號特征,便于后續(xù)的處理。R波檢測模型的輸出本質(zhì)上是一個檢測到R波時輸出1,否則為0的二進制判決[10]。為了提高二進制判決的精度,本文提出了一個具有魯棒性的基于卷積神經(jīng)網(wǎng)絡(luò)的R波檢測器,此卷積神經(jīng)網(wǎng)絡(luò)包含輸入層、卷積層、池化層、全連接層以及輸出層(圖5)。通過心律失常數(shù)據(jù)庫作為訓練集來訓練提出的CNN模型,數(shù)據(jù)庫包含48個半個小時的記錄,每個R波的位置和類型由兩個獨立的心臟病專家注釋[11]。由于已經(jīng)將采樣信號降到300 Hz,故輸入層為300個樣本的心電信號向量,這就意味著訓練此神經(jīng)網(wǎng)絡(luò)時,需要將訓練集分成以300個樣本為一個單位的片段。卷積層為一層,池化層包含3個長度為30的濾波器。輸入信號通過隱含層得到特征向量矩陣,若特征向量位于信號向量中間的狹窄鄰域(約150 ms)中,則該記錄的標簽則被認為識別到R波,即標記為1,否則輸出標記為0。心律失常數(shù)據(jù)庫的109號記錄去除噪音后,對R波標記的結(jié)果(紅色圓圈),見圖6。
圖5 基于卷積神經(jīng)網(wǎng)絡(luò)R波檢測器結(jié)構(gòu)示意圖
圖6 R波檢測結(jié)果
使用心律失常數(shù)據(jù)庫來評估本文所提出的R波檢測方法。R波檢測結(jié)果的真實值與預(yù)測結(jié)果對應(yīng)關(guān)系見表1[12],其中真陽性(True positive, TP)代表正確檢測出R波的個數(shù);假陽性(False positive,F(xiàn)P)代表錯誤識別成R波的個數(shù);和假陰性(True Negative,F(xiàn)N)代表漏檢的R波的數(shù)量。R波檢測性能評價指標采用了靈敏度(Sensitivity,SE)、陽性預(yù)測率也就是精確度(Precision,P)、準確率(Accuracy,ACC),如下:
表1 實際結(jié)果與預(yù)測結(jié)果的聯(lián)系
表2列出了心律失常數(shù)據(jù)庫中每條數(shù)據(jù)的檢測結(jié)果。對心律失常數(shù)據(jù)庫的每一條記錄進行了詳細的驗證比對,發(fā)現(xiàn)P識別精度達到了98.83%,SE達到99.72%,ACC達到了99.54%。該結(jié)果證明所提出的R波檢測算法識別效果良好。
表2 在心律失常數(shù)據(jù)庫中的R波檢測結(jié)果
卷積神經(jīng)網(wǎng)絡(luò)作為深度學習神經(jīng)網(wǎng)絡(luò)中的主要網(wǎng)絡(luò)結(jié)構(gòu)之一[13],在心電信號檢測和分類、圖像分類、圖像語意分割等領(lǐng)域取得了一系列突破性的研究成果,其高效的特征提取和分類能力引起了廣泛關(guān)注。本文提出了一種卷積神經(jīng)網(wǎng)絡(luò)(CNN)的結(jié)構(gòu)分為4個部分,分別是輸入層、卷積層、池化層和全連接層(圖7)。所提出的卷積神經(jīng)網(wǎng)絡(luò)能夠從訓練數(shù)據(jù)中學習合適的特征,通過隨機梯度下降法優(yōu)化神經(jīng)網(wǎng)絡(luò)的超參數(shù),以實現(xiàn)所需的分類任務(wù)[14-15]。
圖7 卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
輸入層:檢測預(yù)測了R波的位置之后,對于在每個心電圖中檢測到的R波,取其前120個采樣點和后120個采樣點,構(gòu)成一個包含241個采樣點的片段,將8個連續(xù)這樣的片段疊加在一起作為本文的特征心拍。將數(shù)據(jù)庫中的心電記錄按上述方案進行切片,以8×241的切片信號作為卷積神經(jīng)網(wǎng)絡(luò)的輸入。如圖8、圖9、圖10所示,對應(yīng)正常、房顫以及其他幾類心電信號按照上文方法進行疊加后所得到的圖形。以疊加的房顫信號為例,從圖中可以發(fā)現(xiàn),心電信號中除標記的R波外,前一個R波和后一個R波在多個心拍內(nèi)沒有對齊,這種RR間期的不規(guī)則性也就是房顫的信號[16]。同時,對于其他類別的心電信號,進行疊加處理后的圖像是不重疊的,將這一信號作為輸入傳遞到卷積層,作為鑒別特征幫助學習所需信號的分類。
圖8 正常信號疊加
圖9 房顫信號疊加
圖10 其他信號疊加
卷積層與池化層:卷積層和池化層是實現(xiàn)特征提取的關(guān)鍵部分,其作用是將輸入層的底層特征值交替操作得到一個實際的輸出值[5]。由于本文的計算量不大,因此只用了單一的卷積層與池化層的組合。卷積層使用8個大小為100的濾波器,最后將多個濾波器的輸出疊加在一起形成一個特征信號。池化層的主要作用是通過下采樣減少特征向量個數(shù),減輕計算量縮短訓練時間。將上文方法疊加處理后的心電信號經(jīng)過其中一個濾波器后產(chǎn)生的特征見圖11、圖12、圖13,各種信號的R波偏移都被識別,這是RR間期規(guī)律性的特征[17]。最后,將多個濾波器的輸出疊加在一起形成一個特征信號。
圖11 正常信號疊加處理后
圖12 房顫信號疊加處理后
圖13 其他信號疊加處理后
輸出部分:這里采用傳統(tǒng)的全連接層和softmax激活函數(shù)作為輸出的形式,本文基于投票機制,將數(shù)據(jù)庫中的心電信號按正常(N)、房顫(A)、其他心律失常(O)、噪聲(~)四類標簽進行分類,將上文疊加處理后的信號映射到信號標簽上,再通過softmax將結(jié)果映射到(0,1)區(qū)間上,所對應(yīng)每類發(fā)生的概率Pi分別為正常概率PN、房顫概率PA、其他概率PO、噪音概率P~,滿足PN+PA+PO+P~=1。將經(jīng)過8個濾波器處理后的結(jié)果進行概率計算,選出概率最高的為預(yù)測結(jié)果。
將CPSC 2017數(shù)據(jù)庫進行4∶1分割為訓練集和測試集對提出的CNN房顫檢測模型進行訓練和測試。本文提出的基于卷積神經(jīng)網(wǎng)絡(luò)的房顫識別方法的性能通過特異性(Specificity,SP)和陰性預(yù)測率(Negative predictive value,NPV)這兩項指標進行評估。表3中的4個檢查指標用于計算SP和NPV。SP也稱為真陰性率,表示正確預(yù)測沒有發(fā)生房顫的概率,即SP越高誤診率越低;NPV反應(yīng)的是預(yù)測為沒有房顫的樣本中,真實沒有房顫的樣本占陰性樣本總數(shù)的百分比,NPV數(shù)值越高效果越好。這兩個評判指標的表達式如下:
表3 卷積神經(jīng)網(wǎng)絡(luò)房顫檢測結(jié)果
表4顯示了不同卷積神經(jīng)網(wǎng)絡(luò)的房顫檢測結(jié)果對比,可以看到本文所提出的CNN方法優(yōu)于前饋網(wǎng)絡(luò)[18],本文方法檢測結(jié)果為SP 96.82%,NPV 97.18%,計算時間159.94 s。該結(jié)果表明所提出的模型具有良好的檢測性能、魯棒性和泛化性,在檢測性能和計算時間之間取得了平衡。從表4中結(jié)果可以看出,改變隱含層結(jié)構(gòu)會對模型檢測結(jié)果產(chǎn)生一定的影響,減少濾波器的長度增加濾波器個數(shù)會略微提高檢測結(jié)果,但同時會引入更多的計算量,大大延長檢測時間。通過增加濾波器長度,減少濾波器個數(shù)會使檢測結(jié)果略微變差,且過長卷積核容易出現(xiàn)過擬合的問題[19]。雖然前饋神經(jīng)網(wǎng)絡(luò)具有結(jié)構(gòu)與原理簡單、計算量小的特點,但是檢測結(jié)果的靈敏度相對較低。
表4 不同卷積神經(jīng)網(wǎng)絡(luò)結(jié)果對比
本文基于CNN方法對R波檢測,在心律失常數(shù)據(jù)庫數(shù)據(jù)的實驗結(jié)果表明,該方法R波的P為98.83%,SE為99.72%,ACC為99.54%。其優(yōu)勢在于不依賴于傳統(tǒng)的人工特征提取方法進行R波檢測時精度會受到不同數(shù)據(jù)庫的影響,可以自動學習特征來識別R波。在此基礎(chǔ)上,本文提出了一種新的CNN模型檢測房顫,在CPSC 2017數(shù)據(jù)庫上的實驗結(jié)果表明,該方法具有良好的房顫檢測性能,實現(xiàn)了96.82%的SE和97.18%的NPV。本文提出的CNN模型通過特征自學習檢測房顫,避免了傳統(tǒng)方法閾值的設(shè)置,通過改變隱藏層的結(jié)構(gòu),進一步提高模型的檢測性能。本文基于臨床數(shù)據(jù)開展的研究,對實際臨床應(yīng)用有較好的參考價值。未來將通過臨床大樣本試驗和應(yīng)用,來優(yōu)化算法,進一步提升模型的性能。