任國軍, 楊學志, 臧宗迪, 吳克偉, 王金誠
1(合肥工業(yè)大學 計算機與信息學院, 合肥 230009)
2(工業(yè)安全與應急技術安徽省重點實驗室, 合肥 230009)
3(合肥工業(yè)大學 軟件學院, 合肥 230009)
隨著生活節(jié)奏的加快, 呼吸系統(tǒng)疾病已經成為了嚴重危害人們身體健康的頻發(fā)病, 呼吸頻率與人體健康狀況息息相關, 定期監(jiān)測呼吸率能夠有效預防呼吸系統(tǒng)疾病. 最初, 接觸式檢測是呼吸率檢測的主要方法,包括阻抗式、心電圖、溫度傳感器[1]、壓電傳感器[2]等. 現如今, 隨著計算機視頻圖像處理技術的不斷迭代和家用攝像機的逐漸普及, 非接觸式呼吸率檢測成為了未來呼吸率檢測領域的發(fā)展方向.
基于視頻的非接觸式呼吸率檢測的原理是先選定呼吸運動檢測區(qū)域, 通過提取檢測區(qū)域像素點的亮度或者相位變化波形間接得到了呼吸率. 相較于傳統(tǒng)的接觸式呼吸率檢測, 非接觸式呼吸率檢測成本低廉、不會對檢測者造成不適. 不僅適合在普通醫(yī)院里進行呼吸監(jiān)測, 未來還可以廣泛應用于家庭日常健康監(jiān)測之中. 基于視頻的呼吸率檢測方法存在兩個關鍵性問題: 如何準確的選定呼吸運動區(qū)域、如何提取出魯棒性強的呼吸信號.
Alinovi等[3]提出使用亮度值提取呼吸信號, 該方法首先使用歐拉視頻放大方法[4,5]放大呼吸運動, 然后使用幀間差法確定呼吸運動區(qū)域, 最終求該區(qū)域的平均亮度值檢測呼吸率, 但是該方法基于幀差法的呼吸運動區(qū)域檢測對衣服紋理要求高、抗光照干擾能力差.霍亮等[6]方法使用相位的方法提取呼吸信號, 該方法使用人臉檢測結合人體結構確定人體胸腹位置, 然后求得該區(qū)域的相位信號檢測呼吸率, 上述研究都聚焦于人體坐在椅子上正對攝像機進行呼吸率檢測, 限制了呼吸率的檢測場景, 不適用于日常的家用健康監(jiān)測. Siam等[7]提出利用運動特征點[8]亮度值總和提取呼吸信號, 但是僅適用于人體平躺時的呼吸率檢測. 劉今越等[9]近期提出一種基于歐拉視頻放大方法、光流法和像素亮度序列的提取呼吸信號方法, 該方法可以在不同睡姿下檢測呼吸率, 適用范圍廣. 但是歐拉視頻放大不僅會放大呼吸運動, 也會放大圖像噪聲, 同時基于亮度序列的呼吸信號提取極易受到環(huán)境亮度變化的干擾, 都會造成檢測精度的降低.
針對上述文獻提出的方法中存在的檢測場景受限、檢測精度低的問題, 本文提出一種利用圖像金字塔光流法和多尺度多方向相位信息的視頻呼吸率檢測方法. 通過圖像金字塔光流法獲得人體胸腹呼吸運動區(qū)域, 有效避免人臉檢測對檢測呼吸率時人體姿態(tài)的限制; 利用復可控金字塔提取多尺度多方向相位信息和幅度信息, 通過幅度信息對相位信息的加權增強了呼吸信號, 并對提取到的信號進行判斷, 得到魯棒性強的呼吸信號; 最終通過峰值檢測得到呼吸率.
本文提出了一種基于視頻分析的人體呼吸率檢測方法.該方法主要實現步驟如下: 1)采集人體呼吸視頻,利用基于圖像金字塔LK光流法處理視頻連續(xù)圖像得到運動前景區(qū)域[10], 選取其中最大連通區(qū)域作為初始呼吸運動區(qū)域; 2)利用復可控金字塔將視頻的每一幀圖像進行多尺度分解, 得到多尺度多方向相位譜和幅度譜[11,12], 利用幅度譜對相位譜進行加權得到相位-時間信號; 3)對提取到的呼吸信號進行判斷: 若信號主峰頻率在呼吸信號合理范圍內(0.1–0.8 Hz)[6]并且主頻能量占比高則使用峰值檢測得到呼吸率, 否則回到步驟1重新選取視頻連續(xù)圖像進行后續(xù)檢測. 整體方法流程框圖如圖1所示.
圖1 本文方法框架圖
胸腹部的一次起伏記為一次呼吸運動, 光流法是常用的運動檢測算法, 劉今越等[9]通過光流法得到呼吸運動區(qū)域. 一般光流法需要滿足泰勒展開故只能檢測小運動[13], 基于圖像金字塔LK光流法有效解決了這一問題, 首先對兩幀圖像使用降采樣和低通濾波進行分層處理, 下一層圖像是上一層圖像的1/4大小,因為圖像分辨率的降低, 原本不滿足泰勒展開的大運動在圖片分辨率降到一定程度的時候已經成為了小運動,然后先計算最底層分辨率最低圖像的光流作為上一層光流的初始值, 通過遞歸得到原始圖片的光流. 使用圖像金字塔光流法提取的呼吸運動光流場如圖2所示.
圖2 呼吸運動光流場
一般情況下, 室內呼吸檢測時人體胸腹區(qū)域是視頻中運動最大的區(qū)域, 首先將光流場運動矢量轉化為二值化圖像; 然后對二值化圖像中的各連通域進行標記并且記錄大小; 因為人體呼吸時胸腹部起伏具有運動范圍大、整體性的特點, 所以最后選取其中最大連通域的最小外接矩形為最終的呼吸運動區(qū)域. 在提取呼吸區(qū)域時會因人體頭部的大幅晃動或者視頻采集區(qū)域有其他人走過等原因造成呼吸區(qū)域提取錯誤, 故在后續(xù)步驟會根據提取的呼吸區(qū)域信號對呼吸區(qū)域進行判斷,判斷結果不合理則選擇3 s后的連續(xù)圖像提取呼吸區(qū)域.
相位信息和亮度信息都是蘊含在圖像中的重要信息. Ghiglia等[14]通過交換兩幅圖像的相位譜證明相位信息更加符合人類視覺感知特性, 具有高穩(wěn)定性優(yōu)勢.同時相位信息的變化代表著運動信息, Wadhwa等[12]提出通過放大某一頻段相位信號實現視頻微小振動放大, 取得了良好效果.
本文使用一維圖像的像素分布f(x)表征圖像相位與運動信息之間的關聯(lián), 考慮f(x)的Fourier級數展開公式為:
其中,Aw為幅度譜系數, e 是自然常數,w為頻率, 將式(1)分解, 則每個頻率w對應的Fourier級數展開Sw(x)記為:
f(x+δ(t)) 表示圖像在δ (t)時間內發(fā)生運動后的像素分布,f(x+δ(t))的Fourier級數展開公式為:
同樣將式(3)分解, 則每個頻率w在時間點t對應的Fourier級數展開Sw(x,t)記為:
容易觀察得到:
由式(5)可得圖像在δ (t)時間內發(fā)生的運動變化量,記相位變化量為Bw(x,t)=wδ(t), 它代表著圖像的運動變化量, 連續(xù)圖像的運動信息可以使用Bw(x,t)信號表示.
復可控金字塔是對圖像在頻域的多分辨率處理,其實質是通過構建一組不同尺度、不同方向的頻域濾波器對原圖像進行頻域濾波[15]. 將視頻每一幀圖像進行復可控金字塔分解, 得到一組不同尺度、不同方向的頻帶, 然后對各頻帶進行傅里葉逆變換, 返回空間域,此時得到的像素點值會變成復數, 可以提取出空域幅度和相位. 通過復可控金字塔得到輸入圖像在多尺度多方向相位譜和幅度譜基帶步驟如下所示:
1) 設輸入圖像的寬度為w, 高度為h,floor為向下取整, 設置方向數M為4, 則復可控金字塔尺度分解的總層數N為:
2) 復可控金字塔的帶通模板和多方向模板相乘得到一層多方向濾波器[16], 將帶通模板縮小為原來大小的1/4, 再與多方向模板相乘就得到了下一層多方向濾波器組, 最終得到N層多方向濾波器組.
3) 利用N層多方向濾波器組對輸入圖像進行濾波得到N層多方向的圖像的復數譜, 繼而獲得N×M個包含相位信息的相位譜序列Si和包含幅度信息的幅度譜序列Ai, 其中i=1,2,···,N×M.
輸入復可控濾波器的呼吸區(qū)域包含著呼吸運動信號和其他干擾信號, 常見的干擾信號包括其他振動源以及人體輕微晃動帶來的相位噪聲等, 輸入圖像經復可控濾波器濾波后得到的幅度譜突出了振動區(qū)域的邊緣, 利用幅度譜對相位譜進行加權, 可以增強呼吸信號,提高信號信噪比. 對于第i層第t幀圖像, 其對應的幅度譜為Ai(x,y,t) 相 位譜為Si(x,y,t),G表示高斯濾波, 相位譜加權公式為:
相位差信號可以有效表征運動變化[17]. 對于一個幀數F、寬度w、高度h的輸入視頻, 通過復可控金字塔空間分解和相位譜加權得到了N×M層F幀的相位譜子帶序列, 然后將從第2幀開始每1幀相位譜子帶序列與第1幀作差就得到了相位差信號.
對于第i層第t幀圖像, 其對應的相位譜寬度為wi、高度為hi、 子帶序列為Si(x,y,t), 則其第i層第2幀到第F幀的平均相位差信號為:
最后對N×M層的平均相位信號取均值得到初步的呼吸信號P[t], 提取的呼吸信號波形如圖3所示. 其中t=1,2,···,F-1:
圖3 本文方法提取的呼吸波形
本文在呼吸運動區(qū)域提取中將二值化光流矢量圖的最大連通區(qū)域作為呼吸區(qū)域, 在實際場景中, 卻可能因為身體其他部位的大幅度晃動、其他人走過攝像機等原因導致呼吸區(qū)域提取錯誤, 故需要對提取信號的合理性進行判斷.
記提取的呼吸信號為P[t] , 其中t=1,2,···,F-1,F為輸入視頻總幀數, 則P[t] 的最大峰值頻率fmax和最大峰值能量占比α 分別為:
呼吸率的頻帶范圍在0.1–0.8 Hz, 若提取出的呼吸信號的最大峰值頻率fmax不在這一區(qū)間或者最大峰值能量占比 α <0.5則判定提取的呼吸信號不合理, 重新選取3 s后的連續(xù)兩幅圖像獲取呼吸區(qū)域并得到呼吸信號.
本文使用峰值檢測得到呼吸率, Ganfure[18]實驗證明使用峰值檢測提取呼吸率相較于傳統(tǒng)的快速傅里葉變換方法總體上提升了11.61%的準確率. 如果實驗視頻時長N秒, 檢測通過本文方法提取的呼吸波形有K個峰值, 則最終的呼吸率RR為:
常見的人體呼吸率檢測姿態(tài)包括正坐、平躺、側躺、平趴4種, 本節(jié)將設計3組對比實驗來驗證本文在上述4種姿態(tài)下的呼吸率檢測的準確性和魯棒性.實驗過程中使用型號為YX-1207的壓電傳感器記錄呼吸波形作為實驗真值, 如圖4所示. 再與劉今越等[9]方法進行對比, 同時利用手動框選呼吸區(qū)域與霍亮等[6]信號處理方式得到呼吸率作為對比. 3組對比實驗實驗設置分別為: 不同姿態(tài)下檢測準確率測試、不同衣服厚度測試、不同時長實驗視頻測試.
圖4 YX-1207壓電傳感器記錄的呼吸波形
實驗采用普通攝像機拍攝人體在不同姿態(tài)下的呼吸視頻, 分辨率為1280×720, 幀率為50 fps. 實驗環(huán)境為室內, 實驗者躺在泡沫墊上, 實驗人體姿態(tài)包括正坐、平躺、平趴、側躺4種, 攝像機距離人體約1.2 m,同時使用筆記本電腦和型號為YX-1207的壓電傳感器記錄呼吸波形以及波形峰值數作為實驗真值. 實驗場景如圖5所示.
圖5 實驗場景示意圖
實驗使用呼吸信號波形的波峰數RPcal與記錄的真實呼吸次數RPreal做對比得到評價指標. 第1個評價指標為真實值與測量值的平均誤差Me:
其中,N為測試用例數, 第2個評價指標是平均準確率RPac:
第3個評價指標是均方根誤差RMSE:
均方根誤差RMSE指標代表著方法的魯棒性,RMSE越低則方法魯棒性越高.
實驗以YX-1207壓電傳感器記錄的呼吸波形峰值數作為真值并且復現文獻[6]方法以及文獻[9]方法進行對比驗證. 實驗選取實驗者在正坐、平躺、側躺、平趴4種姿態(tài)實驗視頻各11組作為實驗數據集,同時實驗數據集中已經剔除在以上方法中出現|RPcal-RPreal|>3的視頻.
本文對人體正坐、平躺、側躺、平趴4種姿態(tài)使用圖像金字塔光流法提取出的呼吸運動區(qū)域如圖6所示.
圖6 多種姿態(tài)呼吸區(qū)域提取結果圖
表1是本文方法、YX-1207壓電傳感器以及對比方法在實驗數據集下的呼吸率檢測實驗結果. 表2所示是利用上文中3個評價指標對表1中實驗數據的分析結果. 表2單元格中的數據單位為:Me(bpm)、RPac(%)、RMSE(bpm), 其中bpm (breaths per minute)表示為每分鐘的呼吸次數.
表1 YX-1207壓電傳感器及多種方法呼吸率檢測結果(bpm)
由表1和表2數據可知本文方法在人體正坐、平躺、側躺和平趴4種姿態(tài)下具有良好的呼吸率檢測性能, 相較于文獻[6]方法以及文獻[9]方法在人體正坐和平躺兩種姿態(tài)下的呼吸檢測平均誤差略有提升, 在人體側躺和平趴兩種姿態(tài)下的呼吸檢測準確率有顯著提升. 文獻[9]方法通過視頻放大、普通光流法和亮度方法提取出呼吸信號, 視頻放大會放大噪聲, 普通光流法難以提取準確的呼吸區(qū)域并且基于亮度信號的呼吸信號提取容易受到光照變化的干擾以及噪聲的影響.文獻[6]方法在側躺和平趴兩種姿態(tài)下呼吸率檢測效果差, 因胸腹部區(qū)域運動起伏小, 呼吸信號微弱, 難以被提取. 本文采用圖像金字塔光流法的呼吸區(qū)域提取能夠減弱呼吸運動幅度大小以及噪聲對于呼吸區(qū)域提取的影響, 基于相位信號的呼吸信號經過空間分解以及相位譜加權后有效去除了呼吸區(qū)域的噪聲并且增強了呼吸信號. 另外, 本文方法在人體4種姿態(tài)下呼吸率檢測均方根誤差均顯著低于其他兩種方法.
表2 YX-1207壓電傳感器及多種方法實驗數據分析結果
實驗數據集在本文方法檢測出的呼吸波峰數和YX-1207壓電傳感器記錄值之間數據關系如圖7散點圖所示.
圖7 本文方法與記錄值對比
4散點圖中人體4種姿態(tài)下的實驗數據集中于45度線周圍, 最差的數據誤差為2次/min, 表明本文方法在這人體4種姿態(tài)下的呼吸率檢測與YX-1207壓電傳感器的記錄值誤差很小.
本文方法目的在于實現準確性高、魯棒性強, 能適用于家庭健康監(jiān)測的呼吸率檢測方法, 為了驗證本文方法穩(wěn)定性, 本節(jié)將進行本文方法在不同衣服厚度和不同實驗時長下的方法穩(wěn)定性測試, 并與YX-1207壓電傳感器記錄值對比.
使用視覺方法檢測呼吸率, 衣服厚度會影響呼吸運動的起伏大小從而影響最終的檢測效果. 實驗環(huán)境如圖5所示, 實驗者穿上兩種不同厚度的衣服(T恤和毛衣)在人體正坐、平躺、側躺和平趴4種姿態(tài)進行測試, 實驗以平均準確率RPac評價指標為衡量標準, 實驗結果如表3所示, 其中表格單元格中的數據單位為:RPac(%).
表3中的實驗結果可以看出當實驗者穿著毛衣時對比穿著T恤檢測平均準確率僅有略微降低, 整體保持著高平均檢測準確率. 原因在于本文方法使用多尺度多方向空間分解獲取了更多的圖像信息包括輪廓和細節(jié)部分, 基于相位的方法具有抗光照干擾和良好的抗噪性能[11], 同時利用空間分解得到的幅度譜對相位譜進行加權增強了呼吸信號, 提升了提取的信號魯棒性.
表3 不同衣服厚度本文方法檢測平均準確率 (%)
使用視覺方法檢測呼吸率, 拍攝視頻的時長也會影響呼吸率檢測最終的結果[6]. 實驗環(huán)境如圖5所示,實驗者在人體正坐、平躺、側躺和平趴4種姿態(tài)進行測試實驗, 拍攝時長分別為60 s、30 s、10 s. 實驗以平均準確率RPac評價指標為衡量標準, 實驗結果如表4所示, 其中表格單元格中的數據單位為:RPac(%).
表4中的實驗結果表明本文方法檢測平均準確率隨著實驗視頻時長的減少而遞減, 而總體上的檢測平均準確率較好. 原因在于本文方法使用圖像金字塔光流法提取呼吸運動區(qū)域定位準確并且通過相位信號處理實現了突出呼吸運動信號、增強呼吸信號使得即使較少的數據量也能得到良好的檢測結果.
表4 不同時長實驗視頻本文方法檢測平均準確率 (%)
本文方法目的在于檢測人體在短時間(2 min)內的呼吸率, 當檢測時間過長時因人體呼吸率的不斷變化所以使用峰值檢測提取的呼吸率并不能真實反映人體在這一段時間內的呼吸情況. 針對長時間的呼吸率檢測每30 s使用本文方法得到一個呼吸率, 最終得到動態(tài)的呼吸率. 這種方法可以有效反映出一段時間內受測者的呼吸率變化情況, 可以有助于呼吸暫停綜合癥[19]等呼吸系統(tǒng)疾病的及時診斷. 實驗環(huán)境如圖5所示, 在人體平躺姿態(tài)下進行6 min的實驗, 并與YX-1207壓電傳感器記錄值做對比, 實驗證明本文方法取得了良好的檢測效果, 實驗結果如圖8所示.
圖8 動態(tài)呼吸率檢測對比
本文提出一種多種姿態(tài)下的人體呼吸率視覺檢測方法. 首先, 利用圖像金字塔光流法得到人體呼吸運動胸腹部區(qū)域. 然后, 將視頻的每一幀圖像中呼吸區(qū)域輸入復可控金字塔進行多尺度多方向空間分解, 得到每一幀圖像的多個尺度多個方向的幅度譜和相位譜, 使用幅度譜對相位譜進行加權增強呼吸運動信號, 接下來將每一幀的多個尺度多個方向相位譜進行平均得到初步的呼吸信號. 在此基礎上, 如果提取的呼吸信號主頻在呼吸信號頻段內并且主頻能量占比高則使用峰值檢測得到最終的呼吸率. 本文以YX-1207壓電傳感器記錄值為參考值, 與兩種前沿的呼吸率檢測方法進行了對比. 實驗結果表明本文方法在人體正坐、平躺、側躺、平趴4種姿態(tài)下均具有良好的準確性和魯棒性,拓寬了呼吸率檢測的應用場景. 然而, 本文方法仍有改進的空間. 如何減小相機晃動、人體挪動帶來的誤差,以及在有其他干擾振動源的情況下準確提取出人體呼吸區(qū)域, 將會是未來研究的重點.