柴榮軒,趙津發,吳 航,張文昌,張 廣,陳 煒*
(1.天津理工大學機械工程學院先進機電系統設計與智能控制重點實驗室,天津 300384;2.天津理工大學機械工程學院機電工程國家級實驗教學示范中心,天津 300384;3.軍事科學院系統工程研究院衛勤保障技術研究所,天津 300161)
血氧飽和度是人體重要的生理體征參數之一,可以通過檢測其數值的大小,診斷與預防多種疾病,判斷人體的生理健康狀況[1]。測量血氧飽和度的傳統方法是先進行人體采血,再利用血氣分析儀進行電化學分析,最終得出血氧飽和度的數值[2]。傳統的測量方法雖然精確,但操作復雜,需要被測者高度配合,并且屬于有創傷測量,不便于日常使用。目前,基于光電容積描記(photoplethysmography,PPG)技術的接觸式檢測設備(如指夾式血氧儀、血氧監測手環等)獲得了廣泛應用,可在眾多場合進行血氧飽和度測量[3]。雖然接觸式檢測設備能夠連續無創傷地測量血氧飽和度,但是接觸式技術屬性限定了其應用場景。例如,其在戰場和自然災害中的人員搜救和新生兒監護等場景中的應用有很大局限性,但非接觸式檢測不受限制[4]。同時,在疫情防控中,接觸式生理體征檢測也有交叉感染的風險,給醫護人員的生理和心理帶來沉重負擔。因此,基于成像式光電容積描記(imaging photoplethysmography,IPPG)的非接觸式檢測方法得到廣泛關注,并且隨著成像設備和圖像處理算法的更新換代,該方法具有非常大的應用潛力,有無干擾、非侵入、通量大等優勢,是未來血氧飽和度檢測重要的發展方向之一。
基于IPPG的非接觸式檢測方法比其他非接觸式檢測方法(如電磁式、激光式等)的實用性更強[5]。首先,基于IPPG的非接觸式檢測設備造價低;其次,在檢測過程中不會產生高能輻射,對人體無害;最后,其操作簡單、靈活,易于使用和推廣。目前,在IPPG技術的基礎上,眾多學者已經實現對心率[6-8]、呼吸率[8-10]、血氧飽和度[11-21]等生理參數的非接觸式檢測,但對血氧飽和度的檢測相對來說不夠成熟,檢測精度不能達到預期要求。
本研究提出一種新的血氧飽和度檢測方法,采用基于Tensor RT加速的多任務卷積神經網絡(multi-task convolutional neural network,MTCNN)人臉檢測算法、歐拉運動放大和顏色放大相結合的歐拉視頻放大(Eulerian video magnification,EVM)算法、集合經驗模態分解(ensemble empirical mode decomposition,EEMD)和小波變換(wavelet transform,WT)聯合濾波算法等,提高血氧飽和度的檢測精度。
IPPG技術是在朗伯-比爾定律和散射理論的基礎上發展形成的[22]。當光照射人體皮膚后,光照強度會隨著血管中血液容積的變化而變化,反射光中就包含了生理特征的信息[23]。因此,在視頻中圖像灰度值的變化隱含了生理特征的信息。基于IPPG的血氧飽和度檢測原理是對錄制的人臉視頻進行圖像處理,提取包含生理特征信息的信號,再從信號中提取特征參數(如波峰值、波谷值、平均值、標準方差等),最終通過相關參數計算出血氧飽和度的數值[24]。
本文提出一種新的檢測方法——MTCNN-EVMEVM-EEMD-WT方法,其流程圖如圖1所示。

圖1 MTCNN-EVM-EVM-EEMD-WT方法流程圖
MTCNN算法是采用基于Tensor RT加速的人臉檢測算法[25]。Tensor RT是一個高性能的深度學習推理優化器[26],擁有多種優化方式,可以為深度學習提供低延遲、高吞吐率的部署推理,用于對NVIDIA的圖形處理器(graphic processing unit,GPU)進行高性能推理加速,加快MTCNN算法的運行速度。MTCNN算法主要采用3個級聯的網絡,采用候選框加上分類器的方法進行快速高效的人臉檢測。實現MTCNN算法需要完成以下4個步驟:
(1)生成圖像金字塔:以適應不同大小的人臉,方便對其進行檢測。
(2)P-Net:生成人臉候選框。通過非極大值抑制去除重合度高的人臉圖片,對回歸向量進行校正。
(3)R-Net:判斷人臉候選框中的人臉,并對原有的人臉候選框進行修正。
(4)O-Net:使用更復雜的網絡對模型性能進行優化,輸出人臉框和關鍵點。
由于心臟的搏動和血液循環,臉部血液容積發生變化,其吸收的光照強度也會隨之發生變化,從而導致臉部皮膚產生細微的變化,這些變化雖然不易被肉眼察覺,但是包含了豐富的生理特征信息。EVM算法分為顏色放大和運動放大,可以分別放大視頻中的顏色和運動變化,使肉眼可以觀察到微小的變化。EVM算法相比以前基于拉格朗日視角的放大技術,復雜度更低,需要的計算資源更少,放大效果更好。
EVM算法包括空間濾波、時域濾波、放大合成三部分[27]。空間濾波是通過建立圖像金字塔實現的,如圖2所示,顏色放大時建立高斯金字塔圖像序列,運動放大時建立拉普拉斯金字塔圖像序列。時域濾波通過帶通濾波器完成,如巴特沃斯濾波器、理想帶通濾波器等。放大合成部分是選擇合適的放大倍數并與原視頻合成,得到放大后的視頻。本文創新地采用了EVM算法運動放大和顏色放大相結合的方法,先進行運動放大再進行顏色放大,對微弱的生理特征信息進行充分放大,使其更加明顯。

圖2 空間濾波圖像金字塔建立過程
對放大后的視頻進行通道分離,選取紅(R)、藍(B)2個通道圖像,按時間序列對2個通道取每幀圖像灰度值均值,得到2組含有生理特征信息的信號,本文稱之為IPPG信號。
信號濾波階段采用EEMD-WT聯合濾波算法。首先,進行EEMD,采樣頻率取100 Hz,為了方便后面進行平穩WT,每組IPPG信號取1 024個數據。EEMD算法可以選出代表基線漂移偽跡的幾個本征模態分量,將其置零后疊加剩余的所有本征模態分量生成處理后的信號,利用EEMD算法消除基線漂移。然后,利用WT算法去除高頻噪聲,設置小波分解層數為4層。最后,去掉前3層小波系數,重構,得到平滑的信號。EEMD-WT聯合濾波過程如圖3所示。

圖3 EEMD-WT聯合濾波過程示意圖
進行血氧飽和度計算時,一般采用經驗公式[28-29],即

式中,SpO2為血氧飽和度;A、B、C為經驗參數,最終根據“金標準”(指夾式血氧儀檢測結果)和R值數據擬合得到。系數R值可以從信號中計算出來,計算公式為

式中,IAC為交流分量,其值為濾波后IPPG信號的標準方差;IDC為直流分量,其值為濾波后IPPG信號的平均值。下角標1和2分別表示第1組信號的變量和第2組信號的變量。
最終通過曲線擬合得到血氧飽和度計算公式(3)和(4),通過后續實驗選取最合適的計算公式。

實驗條件:招募7名志愿者,年齡20~30歲,沒有服用藥物且身體健康。在不同時間段的自然光照下,志愿者距離網絡攝像頭1 m左右,靜息狀態下錄制多組視頻,視頻時長1 min左右,分辨力為1 920×1 080。參考多篇文獻[12-14,18,21],圖像幀率選取30幀/s能夠滿足檢測要求。
實驗設置示意圖如圖4所示。實驗時,志愿者同時采用指夾式血氧儀檢測血氧飽和度,其結果作為“金標準”使用,與本算法得到的結果進行對比。為保證血氧飽和度在時間上的同步,在錄制視頻時,同時將指夾式血氧儀的顯示界面錄入其中,因此每一秒視頻都有指夾式血氧儀數值與之對應。使用NVIDIA Jetson Xavier NX開發板代替傳統便攜式計算機作為數據處理單元,其體積小、質量輕、遷移性強,計算能力不弱于普通便攜式計算機,且圖像處理能力更強,能夠提高檢測效率。

圖4 實驗設置示意圖
本次實驗設計為算法參數選取實驗和“金標準”對比實驗。算法參數選取實驗包括EVM算法和濾波算法的對比選取;“金標準”對比實驗是先完成本文方法檢測結果與指夾式血氧儀檢測結果之間的對比,然后再將本文方法與其他方法的檢測精度進行比較。
3.2.1 EVM算法選取實驗
本次實驗共選取20個視頻,標號為1~20,進行4組血氧飽和度檢測實驗。第1組采用先顏色放大、后運動放大的算法,第2組采用先運動放大、后顏色放大的算法,第3組只采用顏色放大算法,第4組只采用運動放大算法。每組結果與指夾式血氧儀檢測結果進行對比,計算出平均誤差,最終選出最合適的EVM算法。本次實驗血氧飽和度檢測結果如圖5所示。

圖5 EVM算法選取實驗血氧飽和度檢測結果
根據指夾式血氧儀檢測結果,對每組檢測結果求平均誤差,得出先顏色放大、后運動放大的平均誤差為1.0%,先運動放大、后顏色放大的平均誤差為0.9%,只進行顏色放大的平均誤差為1.0%,只進行運動放大的平均誤差為1.0%。由此可知,EVM的各種算法對本次實驗血氧飽和度檢測精度的影響較小,其中,先運動放大后顏色放大的算法平均誤差最小。因此,本文選用先進行運動放大再進行顏色放大的EVM算法。
3.2.2 濾波算法選取實驗
本實驗進行3次2種不同的濾波算法對比實驗,一種為EEMD-WT聯合濾波算法,另一種為較為常用的巴特沃斯濾波算法。每次實驗選用21個視頻進行血氧飽和度檢測,依次標號1~21,將實驗結果與指夾式血氧儀檢測結果進行對比,并求出平均誤差。濾波算法選取實驗的3次血氧飽和度檢測結果如圖6所示。對各檢測結果與指夾式血氧儀檢測結果進行對比,求平均誤差,詳見表1。
由圖6和表1可知,EEMD-WT聯合濾波算法濾波效果要比巴特沃斯濾波算法效果好,EEMD-WT聯合濾波算法的平均誤差為0.952%、1.333%、1.000%,小于巴特沃斯濾波算法的平均誤差(1.524%、1.952%、1.667%)。因此,綜合3次實驗的平均誤差,選用EEMD-WT聯合濾波算法。

表1 血氧飽和度檢測結果的平均誤差單位:%

圖6 濾波算法選取實驗的血氧飽和度檢測結果
為了驗證本文檢測方法的準確性,擴大血氧飽和度的檢測范圍,設計了憋氣實驗。實驗過程如下:為志愿者錄制一段2 min左右的視頻,期間志愿者進行2次憋氣,使血氧飽和度降低;對整段視頻的每256幀(約8.5 s)檢測一次,與指夾式血氧儀檢測結果對比,驗證血氧飽和度的檢測精度和變化趨勢。并且分別對2個待選的血氧飽和度計算公式(3)和公式(4)進行對比實驗。“金標準”對比實驗的血氧飽和度檢測結果如圖7所示。

圖7 “金標準”對比實驗的血氧飽和度檢測結果
圖7中綠色曲線為指夾式血氧儀的檢測結果,實驗期間該曲線有2次較大的波動,是2次憋氣造成的血氧飽和度數值變化。本文方法的檢測結果曲線與其有相似的變化趨勢,且經過計算,公式(3)的平均誤差為1.568 2%,公式(4)的平均誤差為1.659 1%,因此,選擇公式(3)作為血氧飽和度的計算公式。再對公式(3)檢測結果進行Bland-Altman一致性分析[30],結果如圖8所示。

圖8 血氧飽和度的Bland-Altman一致性分析
在Bland-Altman一致性分析中,沒有點落在95%的置信區間之外,只有一個點落在區間邊界上,其余點全部在區間之內,表明本文方法的檢測結果與指夾式血氧儀的檢測結果具有較好的一致性。
經過上述試驗,算出最終的平均誤差,并與其他文獻的檢測結果誤差進行對比。文獻[31]的血氧飽和度檢測誤差為0.25%~1.5%,文獻[32]和文獻[33]的檢測誤差均不超過±3%,文獻[34]的檢測誤差不超過±2%,而本文方法的平均誤差為1.1506%,與其他文獻的檢測誤差相比,本文檢測誤差較小,檢測精度雖然不能完全超過,但也超過了絕大多數的方法,達到了預期要求。其中,文獻[31]有特定檢測對象——老年人,且血氧飽和度樣本范圍集中在97%~99%,范圍較小,所以精度有時可能較高。而本文血氧飽和度樣本范圍為92%~99%,且無特定對象,普適性更強。
非接觸式血氧飽和度檢測方法具有很大的應用潛力,是血氧飽和度檢測的重要發展方向之一。本文綜合人臉檢測算法、EVM算法和濾波算法,創新地提出了MTCNN-EVM-EVM-EEMD-WT方法。該方法可以很好地完成血氧飽和度的非接觸式檢測,且誤差較小,平均誤差不到2%,能夠達到預期要求。通過“金標準”對比實驗,得出該方法檢測結果與接觸式血氧儀檢測結果具有較好的一致性。未來的工作重點是進一步擴大低血氧飽和度的樣本,完善檢測方法和優化算法,擴大非接觸式血氧飽和度檢測方法的應用領域。