劉鴻程, 王笑梅, 陳桂安
(上海師范大學(xué) 信息與機(jī)電工程學(xué)院,上海 201400)
胎心檢測(cè)是圍產(chǎn)期的常規(guī)檢測(cè)之一[1,2]. 胎兒心率異常通常是由于缺氧或者缺血導(dǎo)致的,缺氧或者缺血會(huì)導(dǎo)致胎兒先天生理缺陷. 對(duì)胎兒進(jìn)行胎心監(jiān)護(hù)可以有效的檢測(cè)胎兒健康狀況,確保胎兒和孕婦安全. 圍產(chǎn)期的胎兒心率檢測(cè)對(duì)提高胎兒生育質(zhì)量,降低孕期風(fēng)險(xiǎn)就顯得尤其重要.
對(duì)于高危妊娠孕婦為了避免可能的意外發(fā)生,每天都需要進(jìn)行多次的胎心率檢測(cè),及時(shí)獲得胎兒的健康狀況. 傳統(tǒng)的胎心檢測(cè)主要依靠孕婦到醫(yī)院做產(chǎn)前檢測(cè),增加了孕婦體力和經(jīng)濟(jì)上的負(fù)擔(dān). 便攜式的胎心率檢測(cè)儀方便了孕婦可以家中定期自檢,自我健康評(píng)價(jià).
目前主流的胎心檢測(cè)儀按照原理主要分為三種.第一種是通過(guò)聲音傳感器采集胎心的搏動(dòng)[3],由于是被動(dòng)接受聲波,檢測(cè)對(duì)孕婦體內(nèi)的胎兒損害很小,但是信號(hào)處理電路復(fù)雜,靈敏度差. 第二種是基于胎兒心電[4],孕婦腹壁采集到的胎兒心電信號(hào)較微弱,檢測(cè)難度大,需要復(fù)雜的硬件電路和降噪算法. 第三種是基于超聲多普勒原理[5],這種胎心率檢測(cè)儀的優(yōu)點(diǎn)是電路較簡(jiǎn)單、靈敏度高,但是檢測(cè)信號(hào)成分復(fù)雜,干擾多,給胎心率檢測(cè)的準(zhǔn)確性和穩(wěn)定性帶來(lái)一定挑戰(zhàn). 傳統(tǒng)的系統(tǒng)需要和別的檢測(cè)儀或傳感器相連,受試者需要佩戴相應(yīng)的檢測(cè)儀器,且接觸式檢測(cè)方法成本較高也造成了一些使用的不便.
最近幾年已有部分學(xué)者對(duì)基于視頻的非接觸式心率檢測(cè)進(jìn)行了研究,如文獻(xiàn)[6]和文獻(xiàn)[7]并且已經(jīng)取得了良好的效果,然而目前為止還沒(méi)有任何學(xué)者進(jìn)行相應(yīng)的非接觸式胎兒心率檢測(cè)的研究.
本文提出的胎心檢測(cè)算法利用普通攝像頭在日光作為光源的條件下實(shí)現(xiàn)非接觸式的胎心檢測(cè). 通過(guò)歐拉顏色放大算法,實(shí)現(xiàn)胎兒心率的檢測(cè),對(duì)測(cè)量環(huán)境要求不高. 無(wú)需佩戴任何額外的監(jiān)測(cè)儀器,也不需要醫(yī)生的參與,使用簡(jiǎn)單,方便實(shí)現(xiàn)低成本、便攜式胎心監(jiān)護(hù).
最近幾年,基于普通攝像頭錄制視頻提取的信息正被用于生理檢測(cè). 比如能運(yùn)用于非接觸式心率檢測(cè)中[8-11]. 2012年Wu HY,Rubinstein M等提出的歐拉放大算法[12,13],放大心臟跳動(dòng)引起的皮膚顏色變化,以實(shí)現(xiàn)非接觸式胎心檢測(cè). 除此之外攝像頭還可用于血氧飽和度的檢測(cè)[14,15]. 在自然光下的非接觸式生命體征檢測(cè)[16]. 通過(guò)數(shù)碼相機(jī)的測(cè)量改善遠(yuǎn)端心肺功能[17]在移動(dòng)端應(yīng)用的,非接觸式睡眠呼吸檢測(cè)系統(tǒng)[18].
光學(xué)體積描記術(shù)(Photo Plethysmo Graphy,PPG)[19]是一種利用光電設(shè)備照射人體表面肌膚,通過(guò)反射光強(qiáng)度檢測(cè)人體微動(dòng)脈,毛細(xì)血管中血液容積變化的光電檢測(cè)算法. 1981年,Nijboer等提出影響PPG信號(hào)強(qiáng)度的因素包括血液容量、紅血球的位置和血管運(yùn)動(dòng)等.隨著對(duì)PPG信號(hào)的研究深入,發(fā)現(xiàn)PPG信號(hào)中包含著:心跳、呼吸、由中樞神經(jīng)系統(tǒng)引起的壓力反射和體溫調(diào)節(jié)等人體生理信息. 研究表明,從普通攝像頭拍攝的人體視頻中能夠檢測(cè)到血液容積脈沖信號(hào)(Blood Volume Pulse,BVP),分析該信號(hào)的頻率,可實(shí)現(xiàn)非接觸式的心率檢測(cè). 胎兒心臟的收縮與舒張使孕婦臍帶處的血液容量發(fā)生周期性的變化,血液吸收和反射光強(qiáng)度也會(huì)隨之改變,從而導(dǎo)致孕婦臍帶位置的皮膚顏色發(fā)生周期性的變化,這種變化對(duì)應(yīng)著B(niǎo)VP,但是這種變化是極其微小的,很難被人眼感知. 近年的視頻放大技術(shù),可以有效的放大視頻中的顏色變化,提取所需的BVP.
人體的血管分布于皮膚表層,從而血液周期性循環(huán)時(shí)皮膚會(huì)因光的反射及透射產(chǎn)生周期性的顏色改變,這種周期性的顏色改變即能代表人體的心率. 母體內(nèi)是個(gè)復(fù)雜的環(huán)境,有胎兒心臟跳動(dòng),母體心臟跳動(dòng),母體血液流動(dòng),子宮肌肉收縮等噪聲干擾,因此胎心信號(hào)信噪比較低,噪聲干擾較大,BVP本身信號(hào)較弱,很難直接從原始信號(hào)中提取出所需的BVP信號(hào)[20]. 本文利用歐拉顏色放大算法將所需的信號(hào)頻段放大. 并所提取的胎心信號(hào)進(jìn)行適當(dāng)?shù)臍w一化處理以便調(diào)整波形,濾除噪聲干擾,提取相應(yīng)的BVP信號(hào),用于胎心檢測(cè),胎心檢測(cè)的算法如下:
1) 使用普通攝像頭獲取母體腹部視頻;
2) 利用歐拉視頻放大算法將獲取的視頻進(jìn)行顏色放大處理;
3) 將顏色放大后的視頻分解為到三個(gè)顏色通道,分別獲取三個(gè)顏色通道的血液容積脈沖信號(hào),并對(duì)血液容積脈沖信號(hào)進(jìn)行規(guī)范化處理;
4) 利用獨(dú)立成分分析算法(Independent Component Analysis,ICA)以三顏色通道的血液容積脈沖信號(hào)作為輸入,分解為三個(gè)信號(hào);
5) 計(jì)算信號(hào)功率譜密度,提取胎心率.
本實(shí)驗(yàn)視頻是通過(guò)手持式移動(dòng)設(shè)備拍攝,不可避免的產(chǎn)生輕微抖動(dòng),為了減小誤差需要對(duì)視頻進(jìn)行去抖動(dòng)的預(yù)處理[21].
視頻實(shí)際上是幀序列. 視頻的抖動(dòng)用運(yùn)動(dòng)矢量表示,通過(guò)在前后幀中根據(jù)搜索算法尋找匹配塊,得到宏塊的運(yùn)動(dòng)位移即運(yùn)動(dòng)矢量. 視頻穩(wěn)定時(shí)視頻內(nèi)的運(yùn)動(dòng)矢量是平穩(wěn)變化的,當(dāng)視頻出現(xiàn)抖動(dòng)時(shí),由于整體場(chǎng)景的位移,所有的運(yùn)動(dòng)矢量都會(huì)在短時(shí)間內(nèi)發(fā)生變化,在運(yùn)動(dòng)矢量時(shí)間曲線上表現(xiàn)為高頻部分. 去除高頻部分的運(yùn)動(dòng)矢量,實(shí)現(xiàn)去抖動(dòng).
根據(jù)歐拉視頻放大算法,使用高斯金字塔和理想帶通濾波器對(duì)視頻從空間和時(shí)間兩個(gè)角度進(jìn)行處理,以抑制噪聲的干擾,放大所需的BVP信號(hào)頻,并在得到的頻段上進(jìn)行視頻的放大和合成.
高斯金字塔通過(guò)高斯平滑和下采樣,獲得一系列的下采樣圖像. 高斯金字塔的處理公式如下:
其中,0<l≤N (N表示金字塔的最大層數(shù)),0≤i<Cl(Cl表示金子塔第l層凸顯的列數(shù)),0≤j<Rl(Rl表示金字塔第l層圖像的行數(shù)),w(m,n)表示5×5的高斯核. 高斯金字塔底層包含圖像的更多細(xì)節(jié),頂層包含圖像的更多輪廓信息. 包含BVP信號(hào)的序列位于中間層基帶.
胎兒心率信號(hào)一般處于90~162 bit/min范圍內(nèi),為了抑制噪聲的干擾,本論文采用通頻帶為1.5 HZ~2.7 HZ的理想帶通濾波器.
對(duì)濾波后的視頻進(jìn)行顏色放大,每一個(gè)像素通道乘以一個(gè)放大倍數(shù),本論文所采用的放大系數(shù)為50. 再將放大后的視頻疊加到原視頻上,即可得到所需的顏色放大的視頻.
對(duì)孕婦腹部視頻進(jìn)行歐拉視頻放大處理后,使得放大后的微弱的胎兒心率能夠被后續(xù)的算法分離出來(lái).
Lab是一種與設(shè)備無(wú)關(guān)的基于生理特征的顏色系統(tǒng),將圖像的亮度特征和散色特征分離. L通道存儲(chǔ)的是圖像的亮度信息,a,b通道存儲(chǔ)的是圖像的色度信息. a表示從洋紅色至綠色的范圍,b表示從黃色至藍(lán)色的范圍.
在已經(jīng)轉(zhuǎn)換為L(zhǎng)ab的顏色空間上分別計(jì)算每一幀三通道的空間像素平均值,以提取三個(gè)通道的血液容積脈搏波信號(hào),用于后續(xù)心率計(jì)算. 即:
式中,bs是第s幀的圖像其中一個(gè)顏色通道的像素平均值,xs(z)表示放大后的視頻顏色變化序列中第s幀的第z個(gè)像素值,M是每一幀的像素點(diǎn)數(shù)目. 圖1所示是從實(shí)驗(yàn)視頻中提取出的血液容積脈沖波形,波形的震蕩反映出胎兒的心跳變化.
圖1 血液容積脈沖波形
由于母體內(nèi)并不是一個(gè)完全純凈的環(huán)境. 母體心率為主的噪聲會(huì)對(duì)需提取的胎兒血液容積脈搏波信號(hào)產(chǎn)生一定的干擾,但母體信號(hào)和胎心信號(hào)相對(duì)獨(dú)立,使用忙分離將信號(hào)分解,以獲取較干凈的胎心率血液容積脈沖信號(hào). 本文基于負(fù)熵判據(jù)的FastICA算法來(lái)解決相互獨(dú)立的信號(hào)分離問(wèn)題.
首先對(duì)信號(hào)x(t)進(jìn)行去均值和白化處理. 將信號(hào)減去它的均值,變成零均值矢量,并將信號(hào)線性變換為各分量互不相關(guān),去均值和白化處理可簡(jiǎn)化ICA. 依據(jù)負(fù)熵判據(jù)來(lái)尋找解混矩陣W,由信號(hào)的解混算法,通過(guò)Y=WX實(shí)現(xiàn)獨(dú)立分量的分離. 牛頓迭代定理得定點(diǎn)ICA算法為:
式中,w*是某一次牛頓迭代得結(jié)果,w是w*歸一化后的更新值. 式(4)只分離了一個(gè)獨(dú)立分量,要分離多個(gè)獨(dú)立分量,在每次分離一個(gè)分量之后,從觀測(cè)信號(hào)中減去該獨(dú)立分量,如此重復(fù),直到所有分量都被分離出來(lái)為止.
ICA需要不同的信號(hào)源信號(hào)作為輸入信號(hào)并且和輸出信號(hào)數(shù)量相同. 采用Lab顏色空間的三個(gè)顏色通道作為ICA的三個(gè)輸入信號(hào),通過(guò)ICA將信號(hào)分解為三個(gè)輸出信號(hào). 由于ICA具有不確定性,既輸出信號(hào)順序并不確定. 將這三個(gè)信號(hào)進(jìn)行規(guī)范化處理,以抑制基線漂移濾除50 HZ的工頻干擾. 本文選用Z-score標(biāo)準(zhǔn)化方法.
Score標(biāo)準(zhǔn)化方法的公式為:
其中,μ為數(shù)據(jù)的均值,而σ為標(biāo)準(zhǔn)差.
將得到的血液容積脈沖波形用快速傅里葉變換變換到頻域內(nèi). 計(jì)算功率譜密度,最大功率譜所對(duì)應(yīng)的頻率即為估算的胎心值. 本文采用周期圖法計(jì)算功率譜.是把隨機(jī)序列x(n)的N個(gè)觀測(cè)數(shù)據(jù)視為一能量有限的序列,直接計(jì)算x(n)的離散傅里葉變換,得到x(k),然后再取其幅值的平方,并除以N,作為序列x(n)的真實(shí)功率譜的估計(jì),圖2所示為功率譜密度圖.
功率譜密度的計(jì)算公式如下:
其中,F(xiàn)T(ω)為信號(hào)fT(t)的傅里葉變換.
圖2 標(biāo)準(zhǔn)化后的功率譜密度曲線
分別計(jì)算3個(gè)信號(hào)的最大功率譜密度,選擇中間值作為提取的胎心率.
因?yàn)镮CA算法中觸式混合矩陣A是隨機(jī)產(chǎn)生的[22],它可能收斂于不同局部極值. 為了提高分離精度,需要對(duì)同一信號(hào)做多次FastICA計(jì)算,從多次結(jié)果中選出誤差最小者作為最終的分離結(jié)果. 因此需要由每次得到的分離結(jié)果計(jì)算出一個(gè)評(píng)價(jià)量,這個(gè)評(píng)價(jià)量能夠反映分離結(jié)果的誤差最小.
ICA可用最大似然估計(jì)作為評(píng)價(jià)指標(biāo),理論上最大似然指標(biāo)的最大值對(duì)應(yīng)于誤差最小的分離結(jié)果. 基于概率密度的線性變換,在原分量互相統(tǒng)計(jì)獨(dú)的情況下,混合矩陣A的對(duì)數(shù)似然函數(shù)可表示為:
式中獨(dú)立分量的密度函數(shù)可用特定的函數(shù)模型來(lái)逼近,對(duì)于非獨(dú)立的分量,例如正弦和余弦分量,采用獨(dú)立子空間分析法,適用于本應(yīng)用的似然指標(biāo)RL可表示為:
用最大似然指標(biāo)確定誤差最小分離算法步驟如下:
1) 輸入觀測(cè)信號(hào),置初始值i=1,j=1,初始最大似然指標(biāo)數(shù)組RL(j)=0;
2) 運(yùn)行基于負(fù)熵判據(jù)的FastICA算法,得到一次分離結(jié)果;
3) 計(jì)算第i次分離結(jié)果的最大似然指標(biāo)存入數(shù)組RL(i);
4) 比較RL(i)和RL(j)值的大小,把值大者存入數(shù)組RL(j),把該次數(shù)存入變量j,轉(zhuǎn)到第2步,重復(fù)運(yùn)行2)~4)步N次;
5) 輸出第j次分離結(jié)果. 第j次分離結(jié)果為N次分離結(jié)果中誤差最小的分離結(jié)果.
基于Qt的跨平臺(tái)特性和c++對(duì)于圖像和信號(hào)處理方便的考慮,移動(dòng)端的開(kāi)發(fā)選用Qt for android來(lái)實(shí)現(xiàn)算法.
這款程序只包含測(cè)量部分,通過(guò)調(diào)用手機(jī)攝像頭實(shí)現(xiàn)視頻的錄制然后轉(zhuǎn)為立即對(duì)該視頻進(jìn)行分析提取所需的胎心信號(hào). 如圖3所示.
本實(shí)驗(yàn)所有視頻均利用普通手機(jī)攝像頭,在室內(nèi)拍攝,窗戶(hù)照射進(jìn)來(lái)的自然光為唯一光源. 在拍攝時(shí)應(yīng)盡量保持?jǐn)z像鏡頭的穩(wěn)定,并且使被試者自然的呼吸,且保持靜止. 拍攝時(shí)的視頻圖像如圖4所示.
視頻長(zhǎng)度約為30 s,分辨率為640×480. 視頻的幀率為25 幀/s. 拍攝完成后立即對(duì)受試者利用醫(yī)院專(zhuān)用的胎心儀檢測(cè)胎心數(shù)據(jù). 本次實(shí)驗(yàn)選取七個(gè)不用的測(cè)試者在相同的環(huán)境下完成.
1) 顏色空間的影響
不同的顏色空間代表著不同的顏色表示方法. 本文選取常見(jiàn)的RGB,YIQ,Lab三個(gè)顏色空間來(lái)研究顏色空間域的不同對(duì)于實(shí)驗(yàn)準(zhǔn)確度的影響. 專(zhuān)用的醫(yī)療檢測(cè)設(shè)備獲取的胎心心率作為實(shí)驗(yàn)的參考數(shù)據(jù),圖5所示不同顏色空間域的實(shí)驗(yàn)數(shù)據(jù)與實(shí)際值所做的對(duì)比.
圖5 不同顏色空間胎兒心率提取實(shí)驗(yàn)結(jié)果
由本實(shí)驗(yàn)結(jié)果看,Lab顏色空間下的實(shí)驗(yàn)數(shù)據(jù)最為準(zhǔn)確. 7次實(shí)驗(yàn)中最大誤差僅為4%,而RGB和YIQ顏色空間域都具有較大的實(shí)驗(yàn)誤差,其中RGB顏色空間的最大實(shí)驗(yàn)誤差更是達(dá)到了12.2%. 所以本文算法采用實(shí)驗(yàn)誤差最小的Lab顏色空間.
2) 視頻長(zhǎng)度的影響
除了顏色空間域的不同,視頻的長(zhǎng)短也對(duì)實(shí)驗(yàn)結(jié)果產(chǎn)生一定的影響.
本文用以上7次實(shí)驗(yàn)視頻分別截取5 s,10 s,15 s,20 s,25 s,30 s,在Lab顏色空間上進(jìn)行實(shí)驗(yàn),選取每一時(shí)刻實(shí)驗(yàn)誤差絕對(duì)值均值作為每一時(shí)刻的準(zhǔn)確度標(biāo)注,繪制的結(jié)果曲線如圖6所示.
圖6 不同視頻時(shí)長(zhǎng)下的準(zhǔn)確率曲線
由對(duì)比實(shí)驗(yàn)可以看出,視頻長(zhǎng)度在25 s~30 s的時(shí)候具有最高的準(zhǔn)確度,且較為穩(wěn)定,5 s的視頻長(zhǎng)度準(zhǔn)確度最低,從5 s到25 s中間準(zhǔn)確度逐漸增高. 當(dāng)視頻長(zhǎng)度大于30 s時(shí)又會(huì)使運(yùn)算時(shí)間變長(zhǎng),且準(zhǔn)確度提高并不明顯. 所以本實(shí)驗(yàn)最佳視頻時(shí)長(zhǎng)為25 s~30 s之間.
文獻(xiàn)[3-5]雖然也可以對(duì)胎兒心率進(jìn)行正確的提取,但是所需成本較高.
例如文獻(xiàn)[4]在胎心音的檢測(cè)上不僅需要安卓端的支持,還需要胎心音檢測(cè)端的硬件支持. 現(xiàn)在市場(chǎng)上的胎心音檢測(cè)儀在200元左右,而且只有在圍產(chǎn)期才會(huì)使用,可重復(fù)利用率低,會(huì)造成一定的資源浪費(fèi). 本文所述非接觸式胎兒心率檢測(cè)算法,只需使用普通家庭常見(jiàn)的安卓端即可進(jìn)行檢測(cè),避免造成不必要的資源浪費(fèi).
本文提出了一種基于視頻的非接觸式胎心檢測(cè)算法,并再手機(jī)端開(kāi)發(fā)了App應(yīng)用. 利用視頻顏色放大算法,提取出視頻中的血液容積脈沖信號(hào),通過(guò)傅里葉變換,求出最大功率譜所對(duì)應(yīng)的頻率估計(jì)胎心信號(hào). 利用ICA算法分離母體心率信號(hào),以得到較準(zhǔn)確的胎心信號(hào). 在日常非特殊的場(chǎng)景,且視頻長(zhǎng)度一定的時(shí)候獲取的胎心準(zhǔn)備率較高,可以滿(mǎn)足測(cè)試者的日常測(cè)試所需,操作簡(jiǎn)單,便捷,成本低廉. 但是本文實(shí)驗(yàn)的樣本數(shù)據(jù)量偏少,實(shí)驗(yàn)過(guò)程中沒(méi)有遇到異常的胎心值檢測(cè),下一步研究需要增加實(shí)驗(yàn)樣本量,進(jìn)一步驗(yàn)證該算法的有效性.