文獻標(biāo)識碼: A
DOI:10.16157/j.issn.0258-7998.175084
中文引用格式: 劉艷萍,,李杰,金菲. 基于RNN的脈搏波血壓計的研究與實現(xiàn)[J].電子技術(shù)應(yīng)用,,2018,,44(6):76-79,84.
英文引用格式: Liu Yanping,,Li Jie,,Jin Fei. Research and design of pulse wave sphygmomanometer based on RNN[J]. Application of Electronic Technique,,2018,44(6):76-79,,84.
0 引言
便攜式可穿戴醫(yī)療電子產(chǎn)品可以隨時隨地監(jiān)控人們自身的健康狀況,。但是目前常用的充氣式血壓計不方便攜帶,同時其袖帶測量會讓人產(chǎn)生束縛感,,所以設(shè)計一款便攜式無束縛的血壓計是目前急需解決的問題,。
本文采用光電容積描記法采集人體的脈搏波信號。利用光電技術(shù)檢測血液容積的變化,,通過分析容積變化的脈動性,,進行血壓的計算。光電法采集到的脈搏波數(shù)據(jù)具有較強的隨機性和復(fù)雜性,,是一種非線性、非穩(wěn)定的時間序列,,對其很難用一種簡單的非線性模型來完整描述并準(zhǔn)確預(yù)測血壓,。文獻[1]采用LSTM神經(jīng)網(wǎng)絡(luò)模型,通過脈搏波傳導(dǎo)時間來預(yù)測血壓,,需要采用心電和脈搏波兩路信號共同計算出脈搏波傳導(dǎo)時間,,對心電和脈搏波數(shù)據(jù)進行特征點的提取,同時訓(xùn)練的年齡段比較集中,。文獻[2]采用410個人的脈搏波(PPG)信號進行機器學(xué)習(xí)模型的訓(xùn)練,,得到預(yù)測血壓的預(yù)測模型,輸入的訓(xùn)練參數(shù)較少,,容易降低訓(xùn)練模型的普遍適應(yīng)性,。
本文基于循環(huán)神經(jīng)網(wǎng)絡(luò),設(shè)計了一個3層的循環(huán)神經(jīng)網(wǎng)絡(luò)血壓預(yù)測模型,,根據(jù)容積脈搏血流量信息與人體血壓的關(guān)系預(yù)測人體的收縮壓和舒張壓,。循環(huán)神經(jīng)網(wǎng)絡(luò)能夠在當(dāng)前時刻訓(xùn)練時添加上一時刻的特征參數(shù),體現(xiàn)出脈搏波信號時序的連續(xù)性,; RNN(Recurrent Neuron Network)單元層會自動提取需要的特征信息,。所以建立的脈搏波血壓預(yù)測模型的預(yù)測效果會大大提高,。
1 基本原理
血壓是血管內(nèi)血液對血管壁的壓力。人們通常說的血壓指的是動脈血壓,,是推動血液在血管內(nèi)流動的動力,,心臟在周期收縮和舒張的同時,血管里的血液體積會發(fā)生脈動性變化[3],。
1.1 血壓跟脈搏波關(guān)系
根據(jù)Lambert-Beer定律和光的散射理論,,由于指端組織對光源的吸收程度不一樣,心臟收縮射血前后光學(xué)傳感器接收到的透射光的光強存在一定的變化量ΔI,,其中忽略了毛細血管的形狀對光強吸收的影響,。心臟收縮向血管內(nèi)射血,動脈血管內(nèi)半徑為d,,血管內(nèi)血液量增加后血管的內(nèi)半徑增加Δd,,血管內(nèi)的血量發(fā)生變化會導(dǎo)致動脈血壓也隨之發(fā)生變化[4]。血管內(nèi)血液容積的變化量和壓力的變化量之間的關(guān)系如下:
由式(4)可見,,血壓變化量ΔP和透射光的光強變化量ΔI之間存在一定的關(guān)系,。因此可以采用透射光照射手指指端血管,由光接收器接收到透過血管的光強度,,將此光強度變化信號轉(zhuǎn)換成電信號,,便可獲得容積脈搏波的變化,脈動的脈搏波電信號能夠表征血壓的變化,,能夠通過脈搏波波形變化來預(yù)測血壓,。
1.2 循環(huán)神經(jīng)網(wǎng)絡(luò)的基本原理
RNN是一種對序列數(shù)據(jù)建模的神經(jīng)網(wǎng)絡(luò),即一個序列當(dāng)前的輸出與前面的輸出也有關(guān)[5],。具體的表現(xiàn)形式為,,網(wǎng)絡(luò)會對前面的信息進行記憶并應(yīng)用于當(dāng)前輸出的計算中,即隱藏層之間的節(jié)點不再是無連接而是有連接,,并且隱藏層的輸入不僅包含輸入層的輸出還包括上一時刻隱藏層的輸出,,圖1為RNN模型的示例圖。
圖1中xt是t時刻的輸入,,St是t時刻的隱狀態(tài)(memory),,基于上一時刻的隱狀態(tài)和當(dāng)前輸入得到:St=f(Uxt+WSt-1),其中f一般是非線性的激活函數(shù),,在計算S0時,,即第一個血壓值的隱藏層狀態(tài),需要用到St-1,,但是并不存在,,在現(xiàn)實中一般置為0。Ot表示t時刻的輸出,,表達式為Ot=softmax(VSt),。在傳統(tǒng)神經(jīng)網(wǎng)絡(luò)中,,每個網(wǎng)絡(luò)層的參數(shù)是不能共享的;而在RNN模型中,,所有層次均共享同樣的參數(shù),。說明RNN中的每一步都在做相同的事,只是輸入不同,,大大降低了網(wǎng)絡(luò)的參數(shù),。
2 循環(huán)神經(jīng)網(wǎng)絡(luò)預(yù)測算法的實現(xiàn)
2.1 循環(huán)神經(jīng)網(wǎng)絡(luò)模型的建立
2.1.1 數(shù)據(jù)的準(zhǔn)備
通過本文設(shè)計的血壓計采集模塊,在醫(yī)院,、學(xué)校等場所對采集對象進行脈搏波數(shù)據(jù)的采集,,同時用歐姆龍血壓儀對血壓測量標(biāo)定。采集過程中要求被采集者靜坐,,保證采集到的脈搏波數(shù)據(jù)和血壓值的準(zhǔn)確性,。
每個采集對象的采集時間是30 s,因為采集模塊的采樣頻率是100 Hz,,每10 ms采集一個脈搏波數(shù)據(jù),,所以每個對象采集的數(shù)據(jù)是3 000個點,也就是每組數(shù)據(jù)包含3 000個點,。在采集數(shù)據(jù)的同時用歐姆龍血壓儀測量人體的收縮壓和舒張壓,。
2.1.2 數(shù)據(jù)的預(yù)處理
脈搏波信號頻率比較低,采集到的原始的脈搏波會存在很多噪聲,,所以在計算血壓之前要先進行脈搏波數(shù)據(jù)的預(yù)處理,。脈搏波原始數(shù)據(jù)中存在的主要噪聲有工頻噪聲、呼吸產(chǎn)生的噪聲,、采集過程中抖動產(chǎn)生的噪聲以及外界光干擾產(chǎn)生的噪聲等,。針對外界光干擾和采集過程中抖動產(chǎn)生的噪聲,硬件系統(tǒng)設(shè)計添加了濾波器,,同時外殼也做了遮光,減少外界光的干擾,。
脈搏波信號是人體的生理信號,,頻率較低,主要集中在0.1~10 Hz,,針對脈搏波信號10 Hz以上的都是要濾除的高頻噪聲,,本文采用橢圓低通濾波器[6]對脈搏波信號進行高頻噪聲的去除。原始脈搏波數(shù)據(jù)經(jīng)過橢圓低通濾波前后對比圖如圖2所示,,可以看出高頻毛刺已經(jīng)被濾除,,波形比較光滑,同時保留了原始脈搏波的波形特征,。
2.1.3 模型的建立
由于人體心率的正常范圍為60~100次/min,,128個點就基本包含了一個心率周期,,本文從一組脈搏波數(shù)據(jù)中挑選完整脈搏波數(shù)據(jù)的128個點用作預(yù)測模型的輸入。每一組輸入的數(shù)據(jù)包含紅光的128個預(yù)處理后的脈搏波數(shù)據(jù),,輸出數(shù)據(jù)包含二維特征(收縮壓和舒張壓),,如表1所示。
本文設(shè)計了一個含有3個網(wǎng)絡(luò)層的循環(huán)神經(jīng)網(wǎng)絡(luò)模型,,輸入特征點的個數(shù)選擇128個點,。為了防止因為樣本數(shù)據(jù)有限出現(xiàn)嚴(yán)重的過擬合的現(xiàn)象,在訓(xùn)練模型隱藏層沒有選擇更深的網(wǎng)絡(luò),。本文循環(huán)神經(jīng)網(wǎng)絡(luò)模型包含1個輸入層,、3個RNN單元層和1個輸出層。輸入層用于輸入與血壓有相關(guān)性的脈搏波數(shù)據(jù),;3個RNN單元層用于信息特征的提?。?個輸出層采用均方差損失函數(shù)作為輸出,,均方差的表達式如(5)所示,,輸出層用于最后對收縮壓和舒張壓數(shù)值的預(yù)測。
式中,,n表示測試樣本的數(shù)目,,pred(i)表示當(dāng)前第i測試樣本輸出的概率,y(i)表示真實樣本的概率分布值,。
2.2 循環(huán)神經(jīng)網(wǎng)絡(luò)的訓(xùn)練及測試結(jié)果分析
網(wǎng)絡(luò)訓(xùn)練時,,設(shè)初始學(xué)習(xí)率lr為0.01,動量項系數(shù)為0.9,,即每訓(xùn)練2 000次學(xué)習(xí)率降低10倍,;由于數(shù)據(jù)量并不大而3層網(wǎng)絡(luò)較深,故加入Dropout來防止訓(xùn)練時出現(xiàn)過擬合的現(xiàn)象[7],,值設(shè)為0.7,;訓(xùn)練的迭代次數(shù)選擇10 000次。對于每一組數(shù)據(jù)訓(xùn)練損失曲線在訓(xùn)練次數(shù)達到2 000次時,,損失曲線就基本不變,,損失也不會下降,預(yù)測模型基本穩(wěn)定,。
對采集模塊采集到的脈搏波數(shù)據(jù),,分別用6 000組、7 000組和8 000組進行訓(xùn)練,,2 000組進行預(yù)測驗證,。不同訓(xùn)練集預(yù)測誤差均值和RMSE如表2所示。經(jīng)實驗證明采用8 000組數(shù)據(jù)時,,網(wǎng)絡(luò)能夠得到充分訓(xùn)練,。
其中用8 000組數(shù)據(jù)進行訓(xùn)練得到的預(yù)測誤差分布柱狀圖如圖3所示,。SBP的預(yù)測誤差均值為3.45 mmHg,RMSE為2.51 mmHg,;DBP的預(yù)測誤差均值為2.73 mmHg,,RMSE為3.68 mmHg。文獻[8]采用循環(huán)神經(jīng)網(wǎng)絡(luò)預(yù)測血壓值,,通過脈搏波傳導(dǎo)時間和一些脈搏波特征參數(shù)預(yù)測血壓,,SBP的預(yù)測誤差均值為4.13 mmHg,DBP的預(yù)測誤差均值為2.8 mmHg,。通過對比分析發(fā)現(xiàn),,本研究采用脈搏波數(shù)據(jù)進行血壓的預(yù)測,預(yù)測效果有明顯的提升,。
3 系統(tǒng)設(shè)計
3.1 硬件系統(tǒng)設(shè)計
硬件系統(tǒng)主要包括光電采集模塊,、主控模塊、顯示模塊3部分,。其中光電采集模塊完成信號的采集及前端信號預(yù)處理,;主控模塊完成信號濾波及算法的實現(xiàn),并將結(jié)果送顯示模塊的OLED進行實時顯示,。
3.1.1 光電采集模塊
信號采集模塊框圖如圖4所示,,本系統(tǒng)采集部位在手指指端,采用透射式測量法,。信號采集模塊由光電采集和模擬前端處理兩部分組成,。光電采集包含LED光源及光電傳感器,模擬前端處理由TI公司的AFE4400芯片實現(xiàn),。
模擬前端AFE4400集成了LED驅(qū)動電路,、放大電路、數(shù)字轉(zhuǎn)換器和數(shù)字濾波器,。AFE4400的LED驅(qū)動電路驅(qū)動LED紅光光源閃爍,,并且控制LED的閃爍周期[9-10]。光電傳感器將光信號轉(zhuǎn)換成電信號,,經(jīng)AFE4400的放大轉(zhuǎn)換及濾波處理后,,得到有效穩(wěn)定的脈搏波信號。
3.1.2 主控模塊
本血壓檢測系統(tǒng)芯片選擇超小型,、超低功耗MSP430[11]單片機。本文通過SPI總線將光電采集模塊輸出的數(shù)字脈搏波信號傳遞給微處理器MSP430進行血壓的計算,。
3.1.3 顯示模塊
本系統(tǒng)使用中景園0.96英寸的OLED顯示屏,,OLED顯示屏的接口電路如圖5所示,單片機通過I2C接口將血壓值傳給OLED顯示屏,,SCLK為I2C通信時鐘管腳,,SDIC為I2C通信數(shù)據(jù)接口,。
3.2 系統(tǒng)軟件設(shè)計
本系統(tǒng)的軟件部分完成系統(tǒng)信號的采集、處理和顯示,。
數(shù)據(jù)采集流程圖如圖6所示,。先對AFE4400進行初始化,然后驅(qū)動LED紅外光閃爍,,當(dāng)采集到的數(shù)據(jù)個數(shù)到達128時,,停止循環(huán)完成一個數(shù)據(jù)包的采集。將一個包的脈搏波數(shù)據(jù)經(jīng)SPI傳給主控制模塊,,進行數(shù)據(jù)的預(yù)處理以及血壓的計算,,最后傳給OLED顯示屏。
數(shù)據(jù)處理和顯示模塊對主控制模塊接收的一個包的脈搏波數(shù)據(jù)采用橢圓低通濾波器進行預(yù)處理,,然后將預(yù)處理后的脈搏波數(shù)據(jù)輸入到循環(huán)神經(jīng)網(wǎng)絡(luò)模型中進行血壓的計算,,并將計算出來的收縮壓和舒張壓發(fā)送給OLED顯示屏進行顯示。
4 測試結(jié)果
為驗證設(shè)計的合理性,,挑選年齡不同的50人作為測試樣本,,并將其與符合國家標(biāo)準(zhǔn)的歐姆龍血壓計進行對比。
本研究采用Bland-Altman法對基于RNN的脈搏波血壓計測得的血壓值和歐姆龍電子血壓儀測得的血壓值進行一致性分析,。在所有測試樣本的對比中挑選其中代表樣本15組,,兩種測量方法所測血壓的一致性分析圖如圖7所示。
采用歐姆龍電子血壓儀的測試結(jié)果與本系統(tǒng)測量結(jié)果進行分析,,本系統(tǒng)測量血壓的SBP誤差均值為2.73 mmHg,,RMSE為3.39 mmHg,DBP誤差均值為3 mmHg,,RMSE為3.46 mmHg,。測試的血壓值均在一致性界限以內(nèi),可知本文設(shè)計的便攜式脈搏波血壓計和歐姆龍電子血壓儀所測得的血壓值有較高的一致性,,能保證血壓監(jiān)測的精準(zhǔn)度,。
5 結(jié)論
基于RNN的脈搏波血壓計采用光電描記法采集人體的脈搏波信號,根據(jù)脈搏波信號與血壓的關(guān)系,,建立循環(huán)神經(jīng)網(wǎng)絡(luò)的預(yù)測模型,,將脈搏波數(shù)據(jù)輸入預(yù)測模型計算出血壓值,OLED顯示屏上進行實時的顯示,。本文研究設(shè)計的血壓計體積小巧,、方便攜帶、操作簡單,、功耗和成本比較低,、預(yù)測血壓的精準(zhǔn)度高、穩(wěn)定性好,能夠?qū)崿F(xiàn)血壓的實時監(jiān)測,,減少因為病情發(fā)現(xiàn)不及時而延誤病情的現(xiàn)象,。
參考文獻
[1] LO P W,LI X T,,WANG J,,et al.Continuous systolic and diastolic blood pressure estimation utilizing long short-term memory network[C].International Conference of the IEEE Engineering in Medicine and Biology Society.IEEE,2017:1853-1856.
[2] MONTE-MORENO E.Non-invasive estimate of blood glucose and blood pressure from a photoplethysmograph by means of machine learning techniques[J].Artificial Intelligence In Medicine,,2011,,53(2):127-128.
[3] RUIZ-RODR?魱GUEZ J C,RUIZ-SANMART?魱N A,,RIBAS V,,et al.Innovativecontinuous non-invasive cufflessblood pressure monitoring based on photoplethysmography technology[J].Intensive Care Medicine,2013,,39(9):1618-1625.
[4] 殷廣亮.用紅外脈搏傳感器實現(xiàn)連續(xù)血壓測量的研究[D].上海:東華大學(xué),,2016.
[5] 范竣翔,李琦,,朱亞杰,,等.基于RNN的空氣污染時空預(yù)報模型研究[J].測繪科學(xué),2017,,42(7):76-83,,120.
[6] 劉文遠,張靜遠,,蔣賢芬.一種新型橢圓低通濾波器的設(shè)計與實現(xiàn)[J].電子器件,,2008(4):1265-1267,1272.
[7] ZOLNA K,,ARPIT D,,SUHUBDY D,et al.Fraternal dropout[J].arXiv Preprint arXiv:1711.00066,,2017.
[8] SU P,,DING X,ZHANG Y,,et al.Learning to predict blood pressure with deep bidirectional LSTM Network[J].arXiv Preprint arXiv:1705.04524,,2017.
[9] 石龍飛,趙珂,,李燁,,等.基于AFE4400的無創(chuàng)血氧飽和度測量系統(tǒng)設(shè)計[J].集成技術(shù),2015,,4(2):75-85.
[10] 黎圣峰,,龐宇,,高小鵬,等.便攜式血氧信號檢測裝置設(shè)計[J].傳感器與微系統(tǒng),,2017,36(3):110-112.
[11] 閆慶廣,,尹軍,,何慶華,等.基于MSP430單片機的無線光電容積脈搏波檢測模塊[J].半導(dǎo)體光電,,2012,,33(2):299-302.
作者信息:
劉艷萍,李 杰,,金 菲
(河北工業(yè)大學(xué) 電子信息工程學(xué)院,,天津300401)