覃凱,張緒,龔佳琪,高軍峰(中南民族大學(xué) 生物醫(yī)學(xué)工程學(xué)院&國家民委認(rèn)知科學(xué)實驗室,武漢 430074)
現(xiàn)如今,穿戴式心率測量設(shè)備作為心率檢測的主要設(shè)備,越來越受人們的歡迎.隨著夜跑、全民健身等概念的興起,如何預(yù)防運(yùn)動過程中出現(xiàn)健康問題備受人們關(guān)注,其中心率被視作最重要的運(yùn)動健康指標(biāo)之一.由于運(yùn)動狀態(tài)下,容易引起心率異常變化[1],出現(xiàn)危及生命的情況,心率對運(yùn)動狀況也具有重要的監(jiān)測作用[2].非常適合于輔助武警部隊、體育院校訓(xùn)練,對訓(xùn)練人員進(jìn)行生理指標(biāo)監(jiān)控,同時對數(shù)據(jù)進(jìn)行后期分析,建立大數(shù)據(jù)系統(tǒng),進(jìn)而將結(jié)果用于指導(dǎo)訓(xùn)練,建立科學(xué)的訓(xùn)練系統(tǒng).
當(dāng)前基于穿戴式設(shè)備心率檢測的方法[3]有心電圖法(electrocardiogram,ECG)、光電容積波描記法(photo plethysmo graphy,PPG)兩種方法.其中心電圖法是在臨床醫(yī)療中檢測心率的常用方法,心率帶便是該技術(shù)的可穿戴產(chǎn)品的應(yīng)用.其優(yōu)點(diǎn)是心率檢測準(zhǔn)確,但是其佩戴不便,故應(yīng)用范圍有限[4].
PPG測量心率的方法易受到運(yùn)動偽影等諸多因素影響,盡管針對受干擾的脈搏波提出了很多算法,例如自適應(yīng)濾波[5]、卡爾曼濾波和小波變換等算法,但是因為運(yùn)動偽影等噪聲和脈搏波信號頻段重合較多,運(yùn)動過程中光電傳感器測量離血管距離隨運(yùn)動改變明顯,難以準(zhǔn)確測量,故存在當(dāng)前便攜式心率檢測設(shè)備要想在運(yùn)動條件下實現(xiàn)心率準(zhǔn)確測量可行性低.針對這種情況,我們將光電傳感器放在耳垂處采集PPG信號.
深度學(xué)習(xí)在數(shù)字廣播[6]、語音識別[7]、圖像處理[8]等領(lǐng)域已經(jīng)取得了重大進(jìn)展.JINDAL 等[9]提出基于深度信念網(wǎng)絡(luò)和受限波爾茲曼機(jī)器進(jìn)行人體PPG信號識別,其輸入序列具有特定特征,不是一種端對端的網(wǎng)絡(luò).REISS等人[10]提出利用卷積神經(jīng)網(wǎng)絡(luò)模型,利用加速度信號跟脈搏信號作為輸入,以估計的心率作為輸出.BISWAS等人[11]使用預(yù)處理的時間序列信號作為CNN-LSTM模型的輸入,以分類的思想執(zhí)行基于PPG的心率估計和生物特征識別.榮凡穩(wěn)等提出SAE[12]基于自編碼網(wǎng)絡(luò)的PPG信號預(yù)測.
本文提出利用自己設(shè)計的便攜式設(shè)備采集 PPG信號[13],同步采集心電監(jiān)護(hù)系統(tǒng)的心電信號.采用端到端的CNN-seq2seq[14]加注意力機(jī)制[15]神經(jīng)網(wǎng)絡(luò),對PPG信號進(jìn)行訓(xùn)練,采用CNN網(wǎng)絡(luò)提取數(shù)據(jù)特征簡化網(wǎng)絡(luò)訓(xùn)練難度后,送入LSTM網(wǎng)絡(luò)編碼特征數(shù)據(jù),同時將預(yù)處理的類心電信號作為標(biāo)簽的監(jiān)督學(xué)習(xí)模式.模型測試結(jié)果證明,在經(jīng)過大規(guī)模數(shù)據(jù)訓(xùn)練后,本文提出的CNN-seq2seq模型能夠準(zhǔn)確的捕獲運(yùn)動狀態(tài)下的心率特征,從而達(dá)到在運(yùn)動條件下準(zhǔn)確測量心率的要求.
實驗選取本校30名身體健康的本科學(xué)生(無任何心臟相關(guān)疾病,男生14名女生16名)作為受試者,平均年齡20歲.實驗狀態(tài)分為靜止(0 km/h)、行走(4 km/h)、慢跑(8 km/h)和快跑(10 km/h)四個狀態(tài)(速度為跑步機(jī)配速),實驗分別采集這些狀態(tài)下的PPG信號、ECG信號,將它們作為深度學(xué)習(xí)網(wǎng)絡(luò)的訓(xùn)練和測試數(shù)據(jù).
PPG信號數(shù)據(jù)采集電路如圖1所示,主要包括:nRF52832控制器;PPG信號采集電路(由光電傳感器與信號放大芯片結(jié)合獲取人體的PPG信號);六軸加速度信號采集電路.為方便采集和后續(xù)產(chǎn)品化,數(shù)據(jù)采集采用無線藍(lán)牙傳輸?shù)男问剑x用nRF52832作為MCU,負(fù)責(zé)數(shù)據(jù)采集和簡單處理以及藍(lán)牙通訊.心率信號采集部分選用低功耗心率傳感器SON7015以及搭配信號放大器完成脈搏信號采集功能.采集加速度信號有兩個作用,一是去掉不必要的抖動對PPG信號造成干擾,根據(jù)加速度信號去掉PPG信號頻率外的干擾信號;二是區(qū)分不同運(yùn)動狀態(tài)下的網(wǎng)絡(luò)訓(xùn)練結(jié)果.nRF52832作為主機(jī)將PPG數(shù)據(jù)和加速度數(shù)據(jù)打包發(fā)送給串口透傳設(shè)備.
圖1 信號采集電路結(jié)構(gòu)圖Fig.1 Signal acquisition circuit structure diagram
串口透傳設(shè)備如圖2所示,采用nRF51822作為MCU.利用在線工具生成自定義的UUID,根據(jù)我們的需求自定義串口透傳服務(wù).將接收的數(shù)據(jù)進(jìn)行解析,并利用USB-UART電路把PPG和六軸信號輸出給電腦.電路主要包括:nRF51822MCU,USB-UART數(shù)據(jù)傳輸電路等.
圖2 串口透傳設(shè)備電路結(jié)構(gòu)圖Fig.2 Serial transmission device circuit diagram
因為心臟泵血周期性變化會引起動脈血管周期性變化,所以理論上ECG和PPG信號在周期上存在一致性[16].介于兩路信號的一致性,我們選取ECG信號作為神經(jīng)網(wǎng)絡(luò)訓(xùn)練的標(biāo)簽.
本文選用抗干擾能力強(qiáng)的無線心電設(shè)備(寧波市美靈思醫(yī)療科技有限公司)作為心電采集設(shè)備,實驗采用肢體導(dǎo)聯(lián)連接法.為達(dá)到數(shù)據(jù)同步的要求,利用空閑的Ⅵ導(dǎo)聯(lián)作為同步標(biāo)記信號.通過心電及PPG信號采集的兩路信號,調(diào)整了兩路信號的延遲時間,對齊后,隨機(jī)截取一部分,如圖3所示,很好地顯示了兩路信號的周期一致性.
圖3 ECG與PPG信號對齊圖Fig.3 The ECG is aligned with the PPG signal
心電信號包含P波、QRS波和T波等波.本文目的是通過PPG信號測量心率,為獲得受運(yùn)動偽影等影響較小的PPG預(yù)測信號,同時簡化模型訓(xùn)練難度,本研究僅關(guān)注ECG信號中的R波峰.經(jīng)研究證明PPG波峰與ECG中的R峰周期一致.
采用db4小波分析算法檢測ECG信號中R峰位置,重構(gòu)ECG信號只關(guān)注R峰位置,根據(jù)心電周期重構(gòu)成一個類正弦信號的波形,如圖4所示.從而有別于其他研究方法采用的分類的方法.本文采用回歸的思想,將重構(gòu)后的ECG信號作為神經(jīng)網(wǎng)絡(luò)的標(biāo)簽.帶通濾波后的PPG信號作為輸入信號.
圖4 原始ECG信號與整形后波形Fig.4 Raw ECG signals and reshaped waveforms
為降低訓(xùn)練難度,提高準(zhǔn)確、率.本文把數(shù)據(jù)剪切成2秒時間大小的樣本大小,每個樣本數(shù)據(jù)段長度為600個數(shù)據(jù)點(diǎn)(PPG、ECG設(shè)備采樣率均為300 Hz).樣本數(shù)據(jù)采用600的窗,步長100循環(huán)迭代產(chǎn)生,這樣更有利于網(wǎng)絡(luò)學(xué)習(xí),數(shù)據(jù)經(jīng)過歸一化處理后再送入神經(jīng)網(wǎng)絡(luò)訓(xùn)練.
CNN-seq2seq網(wǎng)絡(luò)模型由CNN+seq2seq組成,如圖5所示,其中CNN在模型中起到提取特征的作用,目的是降低seq2seq網(wǎng)絡(luò)的訓(xùn)練難度.模型使用600個循環(huán)輸入,一維的CNN設(shè)置為16卷積核,卷積核大小為40,默認(rèn)步長1.
圖5 CNN-seq2seq網(wǎng)絡(luò)模型Fig.5 CNN-seq2seq network model
本文的seq2seq網(wǎng)絡(luò)encoder、decoder和Attention機(jī)制組成[17],如圖6所示.本文的Encoder和Decoder基本單元為LSTM.LSTM是一種特殊的RNN模型[18],可以學(xué)習(xí)長期依賴信息,而不會出現(xiàn)梯度消失和梯度爆炸的問題.LSTM內(nèi)部模塊由4個不同的結(jié)構(gòu)(門控單元)以一種特殊的方式進(jìn)行交互,encoder對應(yīng)把輸入數(shù)據(jù)編碼成一個包含前后時間序列特征的信息向量,采用雙向RNN(Bi-RNN)在前向和后向讀取源序列,采用此方法可以避免信號突變對網(wǎng)絡(luò)的影響.使用LSTM單元作為基本的網(wǎng)絡(luò)單元,而decoder是解碼具有時間序列特征的信息向量.本次seq2seq網(wǎng)絡(luò)模型,利用Attention機(jī)制的decoder過程和原來最大的區(qū)別就是,輸出不僅基于本時刻編碼器的隱藏狀態(tài)h,還基于上一個解碼器的狀態(tài)dt-1的矩陣.
圖6 Seq2seq+Attention模型結(jié)構(gòu)Fig.6 Seq2seq+Attention model structure
CNN-seq2seq網(wǎng)絡(luò)由CNN+seq2seq組成,整個模型分為兩部分.經(jīng)過CNN網(wǎng)絡(luò)提取特征得到新的具有心率信息的特征矩陣X.seq2seq中的基本單元LSTM包括遺忘門ff、輸入門it、輸出門ot、細(xì)胞狀態(tài)ct.在時間步為t時,本次Bi-LSTM的encoder更新過程如下:
ht=f(ht-1,xt),
(1)
ft=σ(Wf[ht-1,xt]+bf),
(2)
it=σ(Wi[ht-1,xt]+bi),
(3)
ot=σ(Wo[ht-1,xt]+bo),
(4)
Ct=ft×Ct-1+it×tanh(WC[ht-1,xt]+bc),
(5)
ht=ot×tanh(Ct)·
(6)
其中各門控單元權(quán)重和偏差都是需要學(xué)習(xí)的參數(shù),σ為sigmoid函數(shù)·
因為隨著輸入序列長度的增加,LSTM的網(wǎng)絡(luò)性能會變差,為解決這個問題,提出加入注意力機(jī)制,本文中在解碼時,會根據(jù)前一個解碼器狀態(tài)dt-1跟前一個細(xì)胞狀態(tài)ct-1來預(yù)測:
kt=vt×tanh(We[dt-1,Ct-1]+Ue×ht),
(7)
(8)
ve、We、Ue和be為需要學(xué)習(xí)的參數(shù),注意力機(jī)制的權(quán)重lt在保留了上一個解碼器狀態(tài)跟前一個細(xì)胞狀態(tài)后,對預(yù)測起到重要作用·注意力機(jī)制將上下文的隱藏狀態(tài)加權(quán)和得到c(解碼過程,不能更新c):
(9)
yt(pre)=f(w[yt-1,ct-1]+b.
(10)
解碼器狀態(tài)更新:根據(jù)解碼器上一個狀態(tài)dt-1和上一個預(yù)測值yt-1(pre)作為LSTM輸入得到新的解碼器狀態(tài).在LSTM單元中的狀態(tài)更新,類似于編碼器更新過程,
dt=f(dt-1,yt-1(pre))·
(11)
整個訓(xùn)練目的是根據(jù)整個輸入序列編碼和上一個時刻的解碼器狀態(tài),得到當(dāng)前輸出估計值yt(pre)·
網(wǎng)絡(luò)使用600個點(diǎn)循環(huán)輸入,數(shù)據(jù)量為2416個剪切后的耳垂數(shù)據(jù)樣本,將數(shù)據(jù)按8:1:1的比例分為訓(xùn)練集、驗證集、測試集.模型的選擇采用5折交叉驗證,保存最優(yōu)模型.
為體現(xiàn)CNN-seq2seq的優(yōu)異,本文把Seq2seq網(wǎng)絡(luò)作為對比. 使用Adam優(yōu)化器,評估模型性能,選擇均方誤差(MSE)、平均絕對誤差(MAE)作為評價標(biāo)準(zhǔn).表1為模型誤差比較.
表1 模型預(yù)測結(jié)果比較Tab.1 Comparison of model prediction results
為驗證網(wǎng)絡(luò)輸出信號能否預(yù)測得到準(zhǔn)確的心率,本文采用小波算法分別提取心電設(shè)備的ECG信號和網(wǎng)絡(luò)輸出信號中的心率信息(包含靜息、行走、慢跑、快跑四個狀態(tài)的數(shù)據(jù)信息)計算每分鐘心率值.絕對誤差A(yù)E,真實心率為心電設(shè)備計算結(jié)果HR,網(wǎng)絡(luò)計算心率HT.我們認(rèn)為每分鐘心率值相差A(yù)E≤5為正確:
AE=|HR-HT|·
(12)
CNN-seq2seq模型具有CNN特征提取,seq2seq包括編碼部分和解碼部分,編碼部分的LSTM網(wǎng)絡(luò)用于關(guān)注CNN提取周期和幅值等特征后的數(shù)據(jù),利用LSTM網(wǎng)絡(luò)在時序信號的優(yōu)異表現(xiàn),將提取后的特征進(jìn)行編碼、解碼.并在解碼部分引入Attention機(jī)制進(jìn)一步提高該網(wǎng)絡(luò)對周期的敏感性,重構(gòu)出包含心率信息的網(wǎng)絡(luò)輸出信號.
設(shè)置每次輸入序列長度為600個點(diǎn),采樣率為300 Hz.這樣可以保證每個樣本中至少包含了一個完整的PPG信號.使用CNN-seq2seq網(wǎng)絡(luò)訓(xùn)練PPG信號,結(jié)果顯示,即使在跑步狀態(tài)下PPG信號受運(yùn)動偽影、穿戴不穩(wěn)、流汗等影響時,會嚴(yán)重影響其幅值和周期.CNN-seq2seq網(wǎng)絡(luò)也可以準(zhǔn)確地捕獲PPG信號的周期特征,重構(gòu)得到平滑的PPG信號.
本文使用耳垂處數(shù)據(jù)訓(xùn)練CNN-seq2seq網(wǎng)絡(luò),采集耳垂位置PPG信號作為網(wǎng)絡(luò)輸入,同步采集心電信號作為標(biāo)簽信號.二者送入到CNN-seq2seq網(wǎng)絡(luò)進(jìn)行訓(xùn)練并測試,為讓結(jié)果圖更明顯,將輸入PPG信號右移0.2 S,結(jié)果如圖7所示.
圖7 靜息、行走狀態(tài)下對比圖Fig.7 Contrast diagram of resting and walking state
由圖7中網(wǎng)絡(luò)輸出對比圖可以看出,CNN-seq2seq網(wǎng)絡(luò)在靜息、行走狀態(tài)下PPG信號干擾較小.網(wǎng)絡(luò)輸出與心率標(biāo)簽信號擬合程度很高,網(wǎng)絡(luò)輸出信號非常準(zhǔn)確的捕捉到了心率標(biāo)簽周期特征.在慢跑、快跑狀態(tài)下PPG數(shù)據(jù)受運(yùn)動偽影等影響較大,PPG信號周期檢測會在一個PPG信號周期內(nèi)檢測到多個PPG波峰個數(shù),CNN-seq2seq網(wǎng)絡(luò)輸出能夠很好捕捉到ECG周期,從而得到比較準(zhǔn)確的預(yù)測標(biāo)簽峰值,如圖8所示.從圖7、圖8可以看出CNN-seq2seq網(wǎng)絡(luò),在靜止和行走狀態(tài)下網(wǎng)絡(luò)可以精準(zhǔn)地捕獲心率周期特征,不會出現(xiàn)相位偏移;在慢跑和快跑下PPG信號受運(yùn)動偽影等影響很大,峰值和相位均出現(xiàn)較大偏移,但網(wǎng)絡(luò)依然能學(xué)習(xí)到運(yùn)動情況下脈搏的周期規(guī)律.體現(xiàn)了該網(wǎng)絡(luò)明顯的穩(wěn)定性和可靠性.
圖8 慢跑、快跑狀態(tài)下對比圖Fig.8 Contrast diagram under jogging and fast running conditions
對比慢跑、快跑運(yùn)動狀態(tài)下網(wǎng)絡(luò)輸出波形周期與標(biāo)簽在周期上有一定的差異的問題,主要原因是PPG信號在運(yùn)動條件下采集到的周期變化受運(yùn)動偽影等影響嚴(yán)重,會使網(wǎng)絡(luò)模型學(xué)習(xí)在一個ECG波峰周期內(nèi),捕捉到多個PPG信號波峰,這增加了網(wǎng)絡(luò)學(xué)習(xí)難度,對于輸出產(chǎn)生一些相位偏差,導(dǎo)致預(yù)測結(jié)果異常.
網(wǎng)絡(luò)的針對運(yùn)動心率測量的結(jié)果,我們采用小波db4小波分析算法,計算每分鐘的波峰個數(shù),從而得到每分鐘心率值.利用公式12得到如下正確率,其中靜息、行走狀態(tài)下正確率為100%、99%,慢跑、快跑狀態(tài)下正確率為92%、90%.計算CNN-seq2seq網(wǎng)絡(luò)輸出預(yù)測值與ECG標(biāo)準(zhǔn)心電設(shè)備在分別在四個狀態(tài)下計算得到每分鐘的心率值,如圖9所示,能夠從心率計算的對比圖上看出CNN-seq2seq網(wǎng)絡(luò)對于心電信號的預(yù)計很準(zhǔn)確.
圖9 CNN-seq2seq模型輸出心率與標(biāo)準(zhǔn)心電設(shè)備心率對比Fig.9 The output heart rate of CNN-seq2seq model was compared with that of standard ECG devices
其中計算每分鐘HR、HT兩者的平均誤差ū和均方誤差s.表2給出了利用CNN-seq2seq網(wǎng)絡(luò),心率估計的誤差為0.25±1.31.相較于其他動態(tài)心率測量方式[19](如多傳感融合的運(yùn)動心率估計誤差達(dá)到了-16.542±202.6914,SAE自編碼的運(yùn)動心率[20]誤差為1.62±18.13),本文提出的算法測試誤差小.
表2 運(yùn)動狀態(tài)下心率估計誤差Tab.2 Estimation error of heart rate under the movement
本文采用光電傳感器來獲取體表PPG信號,利用抗干擾的心電設(shè)備采集同步的ECG信號.二者分別作為后續(xù)CNN-seq2seq神經(jīng)網(wǎng)絡(luò)的訓(xùn)練數(shù)據(jù)和標(biāo)簽數(shù)據(jù).通過CNN-seq2seq網(wǎng)絡(luò)實現(xiàn)對PPG信號進(jìn)行心率特征的提取,實驗結(jié)果說明運(yùn)用深度學(xué)習(xí)算法實現(xiàn)對運(yùn)動心率信號的提取是可行的,并且能取得較為理想的效果,這為后續(xù)利用藍(lán)牙耳機(jī)加PPG傳感器的商業(yè)模式傳輸耳垂部分PPG信號,再通過云計算的基于深度學(xué)習(xí)穿戴式設(shè)備測量運(yùn)動心率提供了可行的方案.
本研究中,受試者數(shù)量和年齡階段有限,后期需驗證各年齡階段的適用性,為進(jìn)一步定型產(chǎn)品做基礎(chǔ).神經(jīng)網(wǎng)絡(luò)算法調(diào)試完成后,需應(yīng)用于嵌入式平臺,以實現(xiàn)具體應(yīng)用.本研究希望在后續(xù)發(fā)展中,加入運(yùn)動手環(huán)的形式的數(shù)據(jù)采集測試工作.