文/吳涵 陳龍 陳子為 吳正正
人體健康體征監測是當前智能硬件的研發趨勢之一。傳統的心率檢測需要直接與被測者皮膚進行接觸,對被測者束縛性較大,長時間測試易引起被測者的不舒適感,在這種情況下,研究非接觸式的體征監測方法極具吸引力。人的心臟每跳動一次,會有很多的血液經過你的面部。由于心跳引起的血液體積的變化使得人體皮膚對反射光顏色發生變化,并且反射光顏色變化的幅度與光源的強度成正比。血液在量上的增加會導致有更多的光被吸收,因而面部反射的光線也隨之減少。通過攝像頭捕捉到這些變化,并進行一定的處理后,就能夠計算出心率值。
本心率測量系統由心率測量硬件裝置與手機APP組成。其中心率測量硬件裝置由OV7725攝像頭模塊、EGO1-FPGA開發板、藍牙模塊、OLED顯示模塊共同組成。其系統構成框圖如圖1所示。在攝像頭采集模式下,由攝像頭模塊進行實時的圖像信息采集,并將信息傳輸到FPGA進行數據處理,其后將采集到的圖像數據以一幀為單位存放在FPGA片內存儲器中,同時在FPGA中處理數據,經過心率檢測算法處理后提取有效心率信息,并通過手機APP及OLED模塊顯示當前心率值。VGA顯示模塊僅用于系統調試使用,調試時可以將攝像頭捕捉到的實時圖像通過VGA接口傳輸給顯示器。
在基于視頻的心率(HR)測量方法中,具有紅色(R)、綠色(G)和藍色(B)成分的RGB顏色模型都在實驗中嘗試。結果表明,與R和B信號相比,G信號對HR測量最有效。
因此我們采用G通道數據作為心率計算的數據來源,攝像頭采集32秒的數據,做FFT變換,找到有效頻譜內的幅值最高頻點,隨后通過一個5秒的時域濾波(取5秒內的中值),輸出結果。其中心率計算模塊又分為以下幾個子模塊:G值數據緩存模塊、FFT計算模塊、Z值計算模塊、Z值時域濾波模塊。算法流程如圖2所示。
根據G通道信號計算平均值,并將其保存在最近數據量中。由于G值數據采樣頻率較低,只有4Hz,而FFT工作時鐘需要盡可能高,所以為了數據的跨時鐘域處理,采用數據緩存模塊,一秒更新一次緩存里的數據,并采用FIFO的思想,實現了數據窗口的滾動。
在觀察時間中,我們對G信號數據應用快速傅立葉變換(FFT)。FFT變換采用VIVADO自帶的IP核,計算點數為128點,工作時鐘100MHz。
然后將FFT的結果按照(1)式計算Z值:

其中X為頻譜幅值,m為X均值,σ為X的標準方差。
考慮到人的心率一般在40-120 BPM范圍內,我們將(1)式中X的頻帶范圍作了窗口截取,使得截取的頻率范圍在0.67Hz和2.0Hz之間。只將該頻率區間內的傅立葉譜用于Z值計算。
找出每次計算得到的Z值數組中Z最高值的兩個譜峰所對應的頻點,然后按照如下規則確定最終的心率值:
(1)具有最大z值的頻譜(最高峰)和具有第二大z值的頻譜(次高峰)如相鄰,則我們使用這兩個峰值對應的心率的中間值來計算心率。例如最高峰對應60BPM,次高峰對應63BPM,則取其間的中間值61BPM、62BPM。
(2)從中間值中再選擇靠近z值較大(最高峰)的一個,例如對于中間值61 BPM和62 BPM,如果61BPM對應的Z值更靠近最高峰,我們選擇61 BPM作為最終結果。

圖1:系統構成框圖

圖2:算法流程圖

圖3:APP界面設計

圖4:“搜索藍牙”模塊設計

圖5:“連接藍牙”模塊設計
(3)如果兩個最突出的頻譜(最高峰與次高峰)不是彼此相鄰的,我們只使用具有最大Z值(最高峰)的單譜對應的心率。

圖6:“開始測量”模塊設計

圖7:系統測試圖

圖8:系統測試結果圖
采用AppInventor開發平臺設計手機APP。界面部分通過一定的素材進行搭建。APP中設計藍牙搜索、連接、測量等按鍵,APP界面如圖3所示。AppInventor采用圖形化編程,拼接所需模塊,即可完成APP程序設計。
設計一列表框ListPicker1,用于記錄手機匹配過的藍牙設備,如圖4所示。本設計采用的藍牙模塊為HC-06。
點擊“連接藍牙”鍵后,手機將與列表選擇的設備連接,若設備未打開,則顯示告警信息。如果在之前手機已經與設備連接,則點擊按鍵后斷開該連接。確定連接后,界面更新當前時間信息,等待測量的開始。
點擊“開始測量”后,手機APP通過連接在FPGA上的藍牙模塊HC-06向FPGA發送啟動測量的指令,等待一個測量周期后,手機APP再接收FPGA返送回來的心率測量結果值,并顯示于手機屏幕上。
將心率測量硬件裝置安裝在原子鏡(單向透光鏡)的背后,并通過FPGA上的VGA接口與電腦顯示器相連。攝像頭透過鏡子采集信息,將圖像顯示在顯示器上。心率測量結果通過OLED模塊顯示在原子鏡上,并同步顯示在手機APP上。系統上電測試后結果如圖7所示。
我們找來10位志愿者(5男5女)參與到我們的測試中,將本設計測得的心率和小米手環測得的數據進行對比。測試結果如圖8所示。
通過測試發現本系統能清晰的獲取圖像,成像穩定,質量高。在光線充足時,測量誤差在±5%以內,準確率可達90%以上;在弱光條件下準確率也達75%以上。而且經觀察對于皮膚較白的參與者測試的結果更加符合手環給出的真實值。
本系統以FPGA為平臺,采用OV7725攝像頭采集人臉圖像,采用HC-06藍牙模塊進行無線收發,采用OLED模塊及手機APP進行控制與結果顯示,并創新性的首次將心率測量與原子鏡相結合,實現了人體心率的非接觸式實時連續監測。該系統工作穩定可靠,具備很強的實用性與工程應用價值。
本設計在智能家居領域具有很強的應用價值。用戶在照鏡子時,系統同時開始測試工作,測試的結果能直接顯示在鏡子上,同時也能被配套的APP接收,用戶可在手機上看到自己的心率測試結果,并能查閱歷史數據。因此,本系統可搭載在更多的智能家居產品中。