針對當前人體呼吸頻率非接觸式測量存在的設備復雜、算法成本高的問題,本文提出一種基于RGB視頻信息的人體非接觸式呼吸頻率測量方法。方法共分四步:首先,對輸入視頻的各幀圖像進行空間濾波降噪;然后使用灰度補償算法對降噪后的圖像進行灰度補償;第三,使用低通濾波器對各像素點灰度值隨時間的變化進行濾波;最后根據濾波結果確定感興趣區域,并對人的呼吸頻率進行測量。設計實驗與生物雷達進行性能對比,不同探測方向上的誤差保持在 ? 5.5%~3%之間。實驗結果表明,本文提出的基于視頻信息的非接觸式呼吸頻率測量方法可有效地對人的呼吸頻率進行測量。
引用本文: 李世其, 王海鵬, 劉裔斌. 基于視頻信息的非接觸式呼吸頻率測量方法研究. 生物醫學工程學雜志, 2021, 38(6): 1173-1180. doi: 10.7507/1001-5515.202011029 復制
引言
在搜救、監控、養老等多種場景中,均對人體生命體征的非接觸測量有著相當的需求。典型人體生命體征信息包含體溫、呼吸頻率等。其中,體溫信息可以通過紅外相機獲得[1-2],測量較為簡單。但是對于呼吸頻率的非接觸式測量目前存在比較大的技術問題,仍是一個研究熱點[3-4]。
呼吸頻率為每分鐘呼吸的次數。胸部的一次起伏就是一次呼吸,即一次吸氣一次呼氣。人體呼吸會引起一定量的身體微運動,通過對身體微運動的測量與分析可以間接獲得人的呼吸頻率。以往研究中,通過無線電[5]、生物雷達[6-7],甚至常見商用WiFi[8]設備均可實現呼吸頻率的非接觸式測量。但此類方法在使用中往往存在許多限制。例如,無線電設備信號易受環境中電磁信號干擾;生物雷達目前仍不易獲取;商用WiFi設備對人機距離和相對姿態的要求非常嚴格[9],需要人在非常近距離的情況下面向設備。因此,考慮到設備的通用性以及易獲取性,本文只對基于視覺(RGB或RGB-D信息)的測量算法進行討論。
文獻[10-11]使用深度相機探測人體呼吸時胸腔的周期性擴張和收縮來計算呼吸頻率。但是由于人體呼吸引起的胸腔表面位移比較小[12],此類方法對深度相機的測量精度要求很高[13]。同時,對三維點云的處理需要消耗比較多的計算資源;成像光容積描記技術(image photoplethysmography,iPPG)[14]可通過測量人體皮膚淺表血管的顏色變化[15]來測量呼吸頻率,但該方法對環境光變化[16]和人與攝像頭的相對姿態關系比較敏感,且測量區域僅局限在人體額頭部分區域。
通過光流法[17-18]對兩幀或三幀圖像進行對比分析,可以進行運動物體探測,廣泛應用于人體識別領域。但對于呼吸頻率測量,往往需要對多幀圖像進行分析計算,文獻[19]對此進行嘗試,計算量比較大,應用較為困難。文獻[20]將Adaboost和Lucas-Kanade算法與光流法融合,首先對人體的胸膛區域進行定位,然后對定位區域內的光照強度進行一系列分析處理,最終計算得到人的呼吸頻率。但該方法對人-攝像頭的相對位姿關系要求比較嚴格。
通過神經網絡[21-22]也可以對周期性的人體運動進行探測,但是目前僅能探測到一些變化幅度比較大的動作(比如揮手),而對于由呼吸引起的較小的運動變化尚不能做出有效探測。同時,將神經網絡方法用于視頻數據處理同樣需要消耗比較多的計算資源。
文獻[23-24]利用紅外熱成像技術分別檢測人體頸部、口鼻腔附近的溫度變化信號(該變化信號由呼吸引起),并對信號進行濾波從而提取呼吸信號,但信號過于微弱,且容易被環境干擾,測量誤差較大。文獻[25]將攝像機和光柵發射器固定起來,從胸部圖像中提取了呼吸信號。但人體體表和衣服會導致光點不在一個平面上,光點的運動軌跡較難處理。
當視頻中存在周期性運動的對象時,對象所在區域的灰度值同樣隨時間呈周期性變化。因此,理論上可以通過分析視頻中周期性變化的像素區域以確定周期性運動的對象,而灰度變化的周期可用來反映對象的運動周期。針對此現象,本文提出一種基于視頻信息的非接觸式呼吸頻率測量方法。方法以RGB視頻信息作為輸入,通過對視頻信息進行一系列空域、時域處理,根據處理結果確定感興趣區域(region of interest,ROI),并對人的呼吸頻率進行計算。文章最后設計實驗對提出的方法進行驗證,在不同探測角度下將實驗結果與生物雷達探測結果進行對比,以期實現準確的非接觸式呼吸頻率測量。
1 算法流程
圖1所示為整體算法流程,共分為四個階段:空域處理階段,在輸入視頻中提取固定數量幀,并對各個幀進行灰度化和高斯模糊處理,以降低圖像噪音;灰度補償階段,通過設計的灰度補償算法對各幀各像素的灰度值進行補償,以消除由于環境光變化而對探測結果造成的干擾;時域處理階段,使用低通濾波器對各個像素灰度值隨時間的變化進行濾波,然后對濾波后的數據進行歸一化處理;呼吸頻率測量階段,根據上階段的處理結果,確定ROI并進行呼吸頻率測量。

在空域處理階段,首先采用加權平均法將彩色圖像轉換為灰度圖像:
![]() |
式中, 是像素點
處的灰度值,
和
分別為該像素點RGB顏色的紅色、綠色和藍色分量。
然后采用高斯模糊對圖像進行降噪,高斯函數如下:
![]() |
式中,為標準差,在本文中將其設置為1。每個像素的灰度值更新為其自身和鄰近元素乘以一定的權重w之和。
![]() |
式中, 為像素坐標
處更新過的灰度值,權重w見式(4):
![]() |
在灰度補償階段,本文設計了灰度補償算法以降低環境光照變化對檢測的干擾。假設視頻中任何一個恒定大小區域的平均灰度是恒定的,有
![]() |
式中, 為時間t時以像素坐標(i, j)為中心、
范圍大小內的灰度的平均值,此處將其認為是常數C,T是視頻的持續時間。
![]() |
式中, 是像素坐標(i, j)在時間t經過灰度補償的灰度值。
2 時域處理
各像素的灰度值在時域上仍然存在高頻噪音,對呼吸頻率測量造成干擾。本文采用巴特沃斯低通濾波器對高頻噪聲進行濾除。濾波器的頻率響應(增益)為:
![]() |
式中n是濾波器的階數,為截止頻率。
圖2所示為巴特沃斯低通濾波器的頻率響應曲線。其中,左圖的截止頻率為1 Hz,右圖的濾波器階數為4階。正常人體呼吸頻率為16~20次/分,對應0.2~0.33 Hz(圖中紅色區域)。可以看出,隨著濾波器階數的增加,幅值下降速度逐漸加快,并且隨著截止頻率的增加,曲線逐漸向右移動。根據以上結果,本文設計了截止頻率為0.8 Hz的4階低通濾波器,以最大程度上過濾掉高頻波,并保證人體呼吸頻率范圍內的信號不產生衰減。

Algorithm 1 所示為本文提出的生命探測算法。

其中,suspicious_num為圖像中可疑點的數量,S(width, height)為可疑點的坐標矩陣,當某個坐標點(i, j) ((i, j)∈(width, height))疑似有人時,S(i, j)被標記為1。
圖3所示為視頻中三個選定點在20 s內的灰度曲線。其中,藍色線條為原始曲線,橙色線條為濾波后的曲線。可以看出,有人存在區域(B點)與無人存在區域(A、C點)的曲線存在顯著差異,有人存在區域的像素灰度變化具有明顯的周期性特征。

3 呼吸頻率測量
3.1 ROI區域確定
選擇可疑點密度比較大的區域作為ROI。首先,將圖像分為若干區域(M×N),然后對每個區域的可疑點與閾值進行對比:
![]() |
式中,(i, j)∈(M, N)。p(i, j)為區域(i, j)內可疑點的數量,當超過閾值(Threshold)時,將此區域視為可疑區域。最后,將囊括所有可疑區域的最小矩形視為ROI。
3.2 呼吸頻率測量
本文將ROI內所有可疑點曲線的平均變化周期作為人的呼吸周期。假設像素坐標(i, j)位于ROI,首先計算該點灰度變化的平均周期cycle(i, j):
![]() |
式中,n為采樣時間內采集到的完整的呼吸周期次數,將灰度曲線中任意兩個相鄰峰值之間的時間間隔視為一個呼吸周期。
圖4所示為圖3中B點的灰度曲線變化。從圖中可以看到,曲線上存在5個完整呼吸周期,總時間為17.2 s。因此,該點表示的人的平均呼吸周期為3.44 s。將ROI內所有點的平均周期視為人的呼吸周期。

![]() |
式中,cycle為人的呼吸周期,(P, Q)為ROI內所有可疑點的坐標集合,S是所有可疑點的數量。
4 實驗
為驗證方法的測量精度,將非接觸式呼吸頻率測量的結果與生物雷達進行對比。實驗場景設計如圖5所示。志愿者坐于中央,生物雷達始終置于志愿者正前方1 m處(位置1)。攝像頭分別置于位置1到位置8(人與RGB攝像頭的距離始終為1 m)。分別使用攝像頭采集視頻信息,每段視頻持續20 s以上,視頻分辨率為1 920 × 880,幀率為30 fps。同時,生物雷達同步對人的呼吸頻率進行探測。取每段視頻的前600幀用于呼吸頻率測量。

圖6所示為點1到點8的探測結果,其中,紅色點為可疑點,綠色框為ROI。從圖中可以看出,ROI主要分布在人體的胸口、腹部等區域。具體地,攝像頭在點1、點2、點3、點7和點8時,ROI區域相對其他區域較大,同時,在這些區域可疑點數量也明顯較多。

圖7所示為不同探測位置本文方法的測試結果與生物雷達探測結果的對比。可以看出,在各種角度下,本研究所用方法與生物雷達測量結果基本接近,誤差在 ? 5.5%~3%之間。同時可以看出,在點1、點2、點3、點7和點8位置處誤差相對其他角度更小。與圖6結果相對應,在這5個位置下,分析得到更多的可疑點。5個位置下,攝像頭均在人的前方區域。

采用同樣方法,選取4名受試者分別進行探測實驗,實驗結果如圖8所示,其中左圖為四名受試者在不同探測位置下的測試結果。右圖為不同受試者在不同探測位置下的誤差均值與方差。從圖中可以看出,在點1、點2、點3、點7和點8位置處其誤差均值與方差相對較小,在其余位置處,其誤差均值較大,方差也呈不穩定狀態。實驗結果表明,本文所提算法在不同受試者間均呈現較高可靠性。

5 結論與展望
本文提出了一種基于RGB視頻信息的非接觸式呼吸頻率測量方法。通過多層次的空、時濾波手段,對視頻中人體的存在位置進行標注并對呼吸頻率進行計算。同時,考慮到環境光線變化對結果造成干擾的問題,本研究設計了灰度補償算法對環境光進行補償。最后設計實驗,將各個角度上的探測結果與生物雷達探測結果進行對比。主要實驗結果如下:(1)視頻中均勻呼吸的人體特定區域像素的灰度值同樣呈周期性變化,且灰度變化周期與人的呼吸周期相同;(2)ROI主要分布在人的胸、腹等呼吸起伏較大的區域,攝像頭在被測對象正前方水平角度±90°范圍內探測,ROI區域較大,結果也較為準確。(3)在不同探測角度下,與生物雷達測量結果相比,本方提出的方法誤差在 ? 5.5%~3%之間。
本文提出的方法能夠以最為常見的RGB視頻信息為輸入,對設備依賴性非常小,可廣泛應用在搜救、監控、養老等場景中。需要指出的是,在實際使用中,現場環境往往復雜多變,對算法的魯棒性提出了挑戰。因此,后續的工作將在本方法基礎上,探索在不同條件下(光照、距離、環境條件等)的人體非接觸式呼吸頻率測量精度,對方法的魯棒性進行驗證。
利益沖突聲明:本文全體作者均聲明不存在利益沖突。
引言
在搜救、監控、養老等多種場景中,均對人體生命體征的非接觸測量有著相當的需求。典型人體生命體征信息包含體溫、呼吸頻率等。其中,體溫信息可以通過紅外相機獲得[1-2],測量較為簡單。但是對于呼吸頻率的非接觸式測量目前存在比較大的技術問題,仍是一個研究熱點[3-4]。
呼吸頻率為每分鐘呼吸的次數。胸部的一次起伏就是一次呼吸,即一次吸氣一次呼氣。人體呼吸會引起一定量的身體微運動,通過對身體微運動的測量與分析可以間接獲得人的呼吸頻率。以往研究中,通過無線電[5]、生物雷達[6-7],甚至常見商用WiFi[8]設備均可實現呼吸頻率的非接觸式測量。但此類方法在使用中往往存在許多限制。例如,無線電設備信號易受環境中電磁信號干擾;生物雷達目前仍不易獲取;商用WiFi設備對人機距離和相對姿態的要求非常嚴格[9],需要人在非常近距離的情況下面向設備。因此,考慮到設備的通用性以及易獲取性,本文只對基于視覺(RGB或RGB-D信息)的測量算法進行討論。
文獻[10-11]使用深度相機探測人體呼吸時胸腔的周期性擴張和收縮來計算呼吸頻率。但是由于人體呼吸引起的胸腔表面位移比較小[12],此類方法對深度相機的測量精度要求很高[13]。同時,對三維點云的處理需要消耗比較多的計算資源;成像光容積描記技術(image photoplethysmography,iPPG)[14]可通過測量人體皮膚淺表血管的顏色變化[15]來測量呼吸頻率,但該方法對環境光變化[16]和人與攝像頭的相對姿態關系比較敏感,且測量區域僅局限在人體額頭部分區域。
通過光流法[17-18]對兩幀或三幀圖像進行對比分析,可以進行運動物體探測,廣泛應用于人體識別領域。但對于呼吸頻率測量,往往需要對多幀圖像進行分析計算,文獻[19]對此進行嘗試,計算量比較大,應用較為困難。文獻[20]將Adaboost和Lucas-Kanade算法與光流法融合,首先對人體的胸膛區域進行定位,然后對定位區域內的光照強度進行一系列分析處理,最終計算得到人的呼吸頻率。但該方法對人-攝像頭的相對位姿關系要求比較嚴格。
通過神經網絡[21-22]也可以對周期性的人體運動進行探測,但是目前僅能探測到一些變化幅度比較大的動作(比如揮手),而對于由呼吸引起的較小的運動變化尚不能做出有效探測。同時,將神經網絡方法用于視頻數據處理同樣需要消耗比較多的計算資源。
文獻[23-24]利用紅外熱成像技術分別檢測人體頸部、口鼻腔附近的溫度變化信號(該變化信號由呼吸引起),并對信號進行濾波從而提取呼吸信號,但信號過于微弱,且容易被環境干擾,測量誤差較大。文獻[25]將攝像機和光柵發射器固定起來,從胸部圖像中提取了呼吸信號。但人體體表和衣服會導致光點不在一個平面上,光點的運動軌跡較難處理。
當視頻中存在周期性運動的對象時,對象所在區域的灰度值同樣隨時間呈周期性變化。因此,理論上可以通過分析視頻中周期性變化的像素區域以確定周期性運動的對象,而灰度變化的周期可用來反映對象的運動周期。針對此現象,本文提出一種基于視頻信息的非接觸式呼吸頻率測量方法。方法以RGB視頻信息作為輸入,通過對視頻信息進行一系列空域、時域處理,根據處理結果確定感興趣區域(region of interest,ROI),并對人的呼吸頻率進行計算。文章最后設計實驗對提出的方法進行驗證,在不同探測角度下將實驗結果與生物雷達探測結果進行對比,以期實現準確的非接觸式呼吸頻率測量。
1 算法流程
圖1所示為整體算法流程,共分為四個階段:空域處理階段,在輸入視頻中提取固定數量幀,并對各個幀進行灰度化和高斯模糊處理,以降低圖像噪音;灰度補償階段,通過設計的灰度補償算法對各幀各像素的灰度值進行補償,以消除由于環境光變化而對探測結果造成的干擾;時域處理階段,使用低通濾波器對各個像素灰度值隨時間的變化進行濾波,然后對濾波后的數據進行歸一化處理;呼吸頻率測量階段,根據上階段的處理結果,確定ROI并進行呼吸頻率測量。

在空域處理階段,首先采用加權平均法將彩色圖像轉換為灰度圖像:
![]() |
式中, 是像素點
處的灰度值,
和
分別為該像素點RGB顏色的紅色、綠色和藍色分量。
然后采用高斯模糊對圖像進行降噪,高斯函數如下:
![]() |
式中,為標準差,在本文中將其設置為1。每個像素的灰度值更新為其自身和鄰近元素乘以一定的權重w之和。
![]() |
式中, 為像素坐標
處更新過的灰度值,權重w見式(4):
![]() |
在灰度補償階段,本文設計了灰度補償算法以降低環境光照變化對檢測的干擾。假設視頻中任何一個恒定大小區域的平均灰度是恒定的,有
![]() |
式中, 為時間t時以像素坐標(i, j)為中心、
范圍大小內的灰度的平均值,此處將其認為是常數C,T是視頻的持續時間。
![]() |
式中, 是像素坐標(i, j)在時間t經過灰度補償的灰度值。
2 時域處理
各像素的灰度值在時域上仍然存在高頻噪音,對呼吸頻率測量造成干擾。本文采用巴特沃斯低通濾波器對高頻噪聲進行濾除。濾波器的頻率響應(增益)為:
![]() |
式中n是濾波器的階數,為截止頻率。
圖2所示為巴特沃斯低通濾波器的頻率響應曲線。其中,左圖的截止頻率為1 Hz,右圖的濾波器階數為4階。正常人體呼吸頻率為16~20次/分,對應0.2~0.33 Hz(圖中紅色區域)。可以看出,隨著濾波器階數的增加,幅值下降速度逐漸加快,并且隨著截止頻率的增加,曲線逐漸向右移動。根據以上結果,本文設計了截止頻率為0.8 Hz的4階低通濾波器,以最大程度上過濾掉高頻波,并保證人體呼吸頻率范圍內的信號不產生衰減。

Algorithm 1 所示為本文提出的生命探測算法。

其中,suspicious_num為圖像中可疑點的數量,S(width, height)為可疑點的坐標矩陣,當某個坐標點(i, j) ((i, j)∈(width, height))疑似有人時,S(i, j)被標記為1。
圖3所示為視頻中三個選定點在20 s內的灰度曲線。其中,藍色線條為原始曲線,橙色線條為濾波后的曲線。可以看出,有人存在區域(B點)與無人存在區域(A、C點)的曲線存在顯著差異,有人存在區域的像素灰度變化具有明顯的周期性特征。

3 呼吸頻率測量
3.1 ROI區域確定
選擇可疑點密度比較大的區域作為ROI。首先,將圖像分為若干區域(M×N),然后對每個區域的可疑點與閾值進行對比:
![]() |
式中,(i, j)∈(M, N)。p(i, j)為區域(i, j)內可疑點的數量,當超過閾值(Threshold)時,將此區域視為可疑區域。最后,將囊括所有可疑區域的最小矩形視為ROI。
3.2 呼吸頻率測量
本文將ROI內所有可疑點曲線的平均變化周期作為人的呼吸周期。假設像素坐標(i, j)位于ROI,首先計算該點灰度變化的平均周期cycle(i, j):
![]() |
式中,n為采樣時間內采集到的完整的呼吸周期次數,將灰度曲線中任意兩個相鄰峰值之間的時間間隔視為一個呼吸周期。
圖4所示為圖3中B點的灰度曲線變化。從圖中可以看到,曲線上存在5個完整呼吸周期,總時間為17.2 s。因此,該點表示的人的平均呼吸周期為3.44 s。將ROI內所有點的平均周期視為人的呼吸周期。

![]() |
式中,cycle為人的呼吸周期,(P, Q)為ROI內所有可疑點的坐標集合,S是所有可疑點的數量。
4 實驗
為驗證方法的測量精度,將非接觸式呼吸頻率測量的結果與生物雷達進行對比。實驗場景設計如圖5所示。志愿者坐于中央,生物雷達始終置于志愿者正前方1 m處(位置1)。攝像頭分別置于位置1到位置8(人與RGB攝像頭的距離始終為1 m)。分別使用攝像頭采集視頻信息,每段視頻持續20 s以上,視頻分辨率為1 920 × 880,幀率為30 fps。同時,生物雷達同步對人的呼吸頻率進行探測。取每段視頻的前600幀用于呼吸頻率測量。

圖6所示為點1到點8的探測結果,其中,紅色點為可疑點,綠色框為ROI。從圖中可以看出,ROI主要分布在人體的胸口、腹部等區域。具體地,攝像頭在點1、點2、點3、點7和點8時,ROI區域相對其他區域較大,同時,在這些區域可疑點數量也明顯較多。

圖7所示為不同探測位置本文方法的測試結果與生物雷達探測結果的對比。可以看出,在各種角度下,本研究所用方法與生物雷達測量結果基本接近,誤差在 ? 5.5%~3%之間。同時可以看出,在點1、點2、點3、點7和點8位置處誤差相對其他角度更小。與圖6結果相對應,在這5個位置下,分析得到更多的可疑點。5個位置下,攝像頭均在人的前方區域。

采用同樣方法,選取4名受試者分別進行探測實驗,實驗結果如圖8所示,其中左圖為四名受試者在不同探測位置下的測試結果。右圖為不同受試者在不同探測位置下的誤差均值與方差。從圖中可以看出,在點1、點2、點3、點7和點8位置處其誤差均值與方差相對較小,在其余位置處,其誤差均值較大,方差也呈不穩定狀態。實驗結果表明,本文所提算法在不同受試者間均呈現較高可靠性。

5 結論與展望
本文提出了一種基于RGB視頻信息的非接觸式呼吸頻率測量方法。通過多層次的空、時濾波手段,對視頻中人體的存在位置進行標注并對呼吸頻率進行計算。同時,考慮到環境光線變化對結果造成干擾的問題,本研究設計了灰度補償算法對環境光進行補償。最后設計實驗,將各個角度上的探測結果與生物雷達探測結果進行對比。主要實驗結果如下:(1)視頻中均勻呼吸的人體特定區域像素的灰度值同樣呈周期性變化,且灰度變化周期與人的呼吸周期相同;(2)ROI主要分布在人的胸、腹等呼吸起伏較大的區域,攝像頭在被測對象正前方水平角度±90°范圍內探測,ROI區域較大,結果也較為準確。(3)在不同探測角度下,與生物雷達測量結果相比,本方提出的方法誤差在 ? 5.5%~3%之間。
本文提出的方法能夠以最為常見的RGB視頻信息為輸入,對設備依賴性非常小,可廣泛應用在搜救、監控、養老等場景中。需要指出的是,在實際使用中,現場環境往往復雜多變,對算法的魯棒性提出了挑戰。因此,后續的工作將在本方法基礎上,探索在不同條件下(光照、距離、環境條件等)的人體非接觸式呼吸頻率測量精度,對方法的魯棒性進行驗證。
利益沖突聲明:本文全體作者均聲明不存在利益沖突。