阮群生,陳福林,張 鵬,胡文俊,陳俊企
(贛州師范高等專科學校自然科學與計算機系,江西 贛州 341000)
心率和血氧飽和度是人體生命體征的2 項重要指標,心率是指心臟每分鐘跳動的次數,是反映心臟自律性和心血管系統功能的重要指標之一。血氧飽和度是指血液中氧氣的飽和度,是反映呼吸功能和氧合狀態的指標之一。心率和血氧飽和度是人體內緊密聯系的生理指標,二者相互影響,存在著密切的關系。因此,實施科學有效的心率與血氧飽和度數據監測與分析,對于人的身體異常預警和提前干預具有重要意義[1-2]。
據相關文獻記載,關于國內心率和血氧飽和度監測類儀器設備的市場消費情況,主要呈現出2 種態勢[3-4]:一是市場需求持續增大。隨著人們對健康意識的提高,心率和血氧飽和度監測類設備在國內市場中的需求不斷增大。在中老年人群體中,心臟疾病的發病率較高,尤其是隨著老齡化進程的加速,未來老年人市場的需求將會更加強勁。二是便攜式、小型化監測設備廣受歡迎。隨著科技的發展,各類健康醫護監測類設備的外形越來越小型化,使用也越來越便捷化,用戶使用體驗舒適度持續提升。同時,設備造價逐步下降,持續降低用戶使用成本。
關于心率、血氧飽和度等監測與分析設備,從應用性質來分,可劃分醫用類和民用類。目前,市場上較為流行的產品主要有康泰醫用與家用血氧儀指夾式脈搏血氧飽和度自測儀、力康牙血氧儀指夾式血氧飽和度監測儀、超思血氧儀兒童手指夾式檢測儀等。綜合來看,現有的此類市場產品普遍具有設備精小、操作簡單、測量數據較為準確等特點,市場售價位于100~1 000 元不等[5]。產品研制過程中,主要采用了光學、肌電、熱像儀和稱重傳感器4 種技術原理,運用不同的方式從人體無創傷地采集心率和血氧飽和度等數據,采集的數據較為準確,用戶操作簡便。
然而,通過市場調研和相關文獻資料的查詢可知,現有的市場產品仍存在下述不足[6]。
存在信息安全風險:部分產品是基于藍牙通信,數據通信中加密措施不足,易存在用戶個人信息被泄露的風險。
功能單一:部分心率檢測儀只能測量心率,缺乏其他功能,無法滿足用戶多元化的需求,限制了其市場潛力的挖掘。
數據挖掘服務不夠豐富:一些心率檢測儀雖然能夠準確測量心率,但是在數據處理方面存在不足,不能為用戶提供更加豐富的數據分析和反饋。
部分產品價格昂貴:一些高端心率檢測儀價格昂貴,超出了普通用戶的購買承受范圍,其市場應用拓展受限。
在健康大中國背景下,針對當前產品的不足,本文運用新一代信息技術,甄別選材、優化組織,設計了一款適用于人體的重要生命體征數據監測設備及與之相配套的智能分析系統,可民醫雙用。
在設計本文闡述的下位機部分時,主要采用Arduino IDE 平臺及相關技術,Arduino 是一款便捷靈活、方便上手的開源電子原型平臺,其包含硬件(各種型號的Arduino 板)和軟件(ArduinoIDE)[7]。以Arduino Uno開發板為硬件基礎,選配心率感應器、血氧飽和度感應器、蜂鳴器、OLED 屏幕和通信模塊等部件,通過杜邦線連通各器件與開發板,依托5rduino IDE 開發平臺,使用C++編程技術完成各模塊的驅動與通信任務。
本項目的上位機部分采用Visual Studio 2013 開發平臺,項目開發語言為C#,采用C#語言設計技術完成數據監測結果可視化、用戶操作界面、參數配置等重要模塊的設計,項目研發環境可選用Windows 系列操作系統,使用C++程序設計工具編寫心率和血氧飽和度數據的預測與智能分析深度學習等核心算法,算法被打包為組件供系統調用。
本文系統包括硬件(下位機)和軟件(上位機)2 大部分,其中硬件的目標功能是采用指壓式方式,從人體表皮中準確獲取心率和血氧飽和度數據,并傳輸至軟件服務端,軟件服務端的目標功能是對從下位機采集的數據進行處理、智能分析及分析結果的可視化顯示等。為此,本文在設計下位機時,采用的設計思路為選用Arduino Uno 型號的開發板作為主控制器,在Arduino Uno 上對采集的數據進行底層計算并輸出,選用MAX30102 型號的感應器作為人體心率數據采集模塊,此模塊采用串口通信方式同主控板進行數據交互。同理,在主控板上,分別嵌入血氧飽和度感應器、OLED 屏幕和蜂鳴器以實現相關數據的采集、顯示、異常提示等功能。所有的外接模塊均由電源總線進行工作供電。上位機的設計思路是根據下位機與上位機的通信協議,先解析采集的數據包,執行解密操作,數據包經正確解密后,執行心率和血氧飽和度數據的處理與可視化操作。經上述所有處理后,系統能夠根據用戶操作需求,可供用戶選擇提供數據預測、生命基本狀況評估等高端智能服務功能。系統總體邏輯結構設計如圖1 所示。

圖1 系統總體邏輯結構設計圖
圍繞生命體征監測的功能要求,系統主要模塊設計為下位機和位機2 部分,其中下位機部分是硬件結構,主要包括數據監測與傳輸器、體征測量值顯示器、心率波形圖顯示器和數據存儲器等功能;上位機是由多個功能的軟件模塊組成,具體的功能模塊主要有數據可視化動態顯示、數據預測、異常情況報警和健康智能分析等。系統功能模塊的組成結構如圖2 所示。

圖2 系統功能模塊組成結構圖
圖2 中的系統功能模塊的具體內容描述如下。
數據監測與傳輸器:該模塊設計的功能主要實現人體心率和血氧飽和度的數據采集及數據上傳至服務端的功能。
體征測量數值顯示器:該模塊設計的功能是在硬件終端上實時顯示感應器測量到的心率和血氧飽和度數據。
心率波形圖顯示器:該模塊設計的目標功能是對心率測試值以連續的波形圖形式予以顯示。
數據存儲器:該存儲器的功能是暫時存儲感應器短時內采集的數據,供傳輸模塊上傳至系統服務端。
數據可視化動態顯示:在上位機端,對從下位機端收集來的數據進行動態的直觀化顯示,方便用戶實時查看。
數據預測:該模塊的功能設計目標是對用戶未來一段時間內的心率和血氧飽和值變化趨勢進行預測。
異常情況報警:當檢測到用戶的心率過高或過低時,發出警報提醒用戶。
健康智能分析:根據用戶的年齡、性別等參數,將檢測到的心率和血氧飽和度數據按照不同的心率區間進行統計和分析,以便用戶了解自己的身體狀況。
除此之外,系統還設計有數據通信模塊、預警蜂鳴等若干輔助模塊。
硬件主體是以Arduino Uno 開發板為基礎,在其接口上連接其他電子元件來實現心率、血氧的數據監測、上傳和展示等功能。通過MAX30102 型號的心率監測模塊對人體進行心率、血氧的監測。通過OLED 屏幕將獲取到的信息實時展示在用戶面前。當用戶目前的心率超過正常范圍,蜂鳴器將持續蜂鳴以提醒用戶。
當MAX30102 型心率監測模塊監測到用戶的心率時,接著在Arduino Uno 中對監測到的數據進行運算,并將數據傳送至OLED 屏幕和服務端,供服務端做進一步的數據處理與分析。
接著給出心率和血氧飽和度值的計算方法,設S是經過濾皮去噪后的光電容積脈搏波信號,S1是對S的一次微分值,其計算公式如下
式中:S2為一次閾值處理信號;k為經驗值,實驗中經過多次取值,最終確定k=2。
在經過多次運算處理后,記錄下同一時間段內的光電容積脈搏值及2 次閾值,然后在Arduino Uno 的程序中進行再次運算,最后可計算得到心率及血氧飽和度數值。
接下來,對下位機重要部件的設計詳細情況進行闡述,具體如下。
2.3.1 開發板選型
Arduino 開發板的設計非常簡潔:一塊AVR 單片機、一個晶振或振蕩器和一個5 V 的直流電源。常見的開發板通過1 條USB 數據線連接計算機。Arduino有各式各樣的開發板,其中最通用的是Arduino Uno。Arduino Uno 是ArduinoUSB 接口系列的最新版本,其處理核心是ATMEGA328P。其可設計為14 個數字輸入/輸出引腳(其中6 個可用作PWM 輸出)、6 個模擬輸入、16 MHz 晶振時鐘、USB 連接和電源插孔等。只需要通過USB 數據線連接電腦就能供電、程序下載、數據通信。如圖3 所示。

圖3 Arduino Uno 開發板設計示意圖
2.3.2 心率和血氧飽和度傳感模塊設計
MAX30102是一個集成的脈搏血氧儀和心率監測儀生物傳感器的模塊,集成了一個紅光LED 和一個紅外光LED、光電檢測器、光器件,以及帶環境光抑制的低噪聲電子電路。MAX30102 采用一個1.8 V 電源和一個獨立的5.0 V 用于內部LED 的電源,應用于可穿戴設備進行心率和血氧采集檢測,佩戴于手指、耳垂和手腕處。標準的I2C 兼容的通信接口可以將采集到的數值傳輸給Arduino、KL25Z、STM32 和STC51 等單片機進行心率和血氧計算。此外,該芯片還可以通過軟件關斷模塊,待機電流接近為零,實現電源始終維持供電狀態。
2.3.3 模塊間的通信設計
杜邦線是一種常用于電路實驗的連接線,由一根或多根導線組成,每根導線兩端與接頭連接。杜邦線可以非常牢靠地和插針連接,無須焊接,可以快速進行電路實驗,在電子產品的應用中非常廣泛。因此,在本系統中使用杜邦線連接UNO 開發板、OLED 屏幕等。
2.4.1 上位機設計
最關鍵的是系統數據流和核心算法的設計,本系統的數據流是從觸發采集下位機的數據開始,接著經過初始化處理、數據存儲、數據分析與動態顯示、數據預測和生命體征智能分析等數據流向的操作,最終形成多個數據表和結果分析報告,數據流設計直觀表達如圖4 所示。

圖4 系統數據流設計
2.4.2 數據預測算法設計
接下來,給出本系統中數據預測核心算法的設計,本文直接地采用經典的LSTM (Long Short-Term Memory,LSTM)深度網絡的預測模型。LSTM 預測模型的設計內容主要包括3 個門控單元和神經元更新,其中輸入門的輸入是前一個時間步長的隱藏狀態ht-1和當前時間步長的輸入xt,輸出是一個介于0 和1 的值,具體計算方法如式(4)所示。
式中:Wi是輸入門的權重矩陣;bi是偏置項,是sigmoid函數。
遺忘門是決定哪些信息應該被遺忘,同輸入門類似,其輸入也是前一個時間步長的隱藏狀態ht-1和當前時間步長的輸入xt,輸出是一個介于0 和1 之間的值,其表示應該保留多少信息,具體的計算如式(5)所示。
式中:Wf是輸入門的權重矩陣;bf是偏置項,是sigmoid函數。
神經元狀態更新是通過前一個時間步長的神經元狀態Ct-1乘以遺忘門的輸出,再加上輸入門的輸出乘以一個tanh函數的輸出來實現,其計算公式如式(6)所示。
式中:Wc是更新神經元狀態的權重矩陣;bc是偏置項。
輸出門的功能是輸出變換后的信息,其輸入也是前一個時間步長的隱藏狀態ht-1和當前時間步長的輸入xt及時間步長的細胞狀態Ct,輸出也是一個介于0和1 之間的值。具體公式如(7)所示。
式中:Wo是更新神經元狀態的權重矩陣;bo是偏置項。
上述公式中的隱藏狀態ht的計算方法如式(8)所示。
2.4.3 生命體征智能分析算法設計
本算法的設計中,需要綜合考慮多種影響因素,為此,本文選取年齡、運動、階段時間內的心率和血氧飽和度等多種因素,通過標準方差計算心率和血氧飽和度的分布情況,最后再使用貝葉斯概率公式判斷生命體征的健康情況。其中,標準方差計算方法如式(9)所示。
式中:(x1,x2,…,xn)為數據系列為數據系列的均值。
下位機是由Arduino Uno 型號開發板為主控板,通過杜邦線連接心率與血氧飽和度傳感器、OLED 屏幕、蜂鳴器等重要部件,并使用鐵盒和面包板焊接打包封裝。下位機的最終實現效果如圖5 所示。

圖5 下位機實現效果圖
系統主控模塊的主要功能是接受下位機的數據上傳,并對上傳的數據進行可視化及智能分析,界面分隔為參數設置區和數據監測顯示及數據分析區,在參數設置區,用戶設置串口號、波特率等參數,并可操控下位機,數據監測顯示區動態顯示心率和血氧飽和度數據,當超過閾值時,給出報警提示。數據分析功能包括數據預測和健康分析2 個模塊。上位機的主界面運行效果如圖6 所示。

圖6 上位機主界面運行效果圖
心率數據和血氧飽和度數據預測采用了長短期記憶神經網絡模型,該模塊根據歷史記錄數據,能夠較為精確地預測心率和血氧飽和度數值,為心率和血氧飽和度健康預測提供決策參考。對于大量的心率和血氧飽和度歷史數據,本項目采用貝葉斯分類和文本處理等算法,對數據的相互關系和分布情況進行健康知識挖掘。挖掘結果以彈出新窗口方式予以顯示,這2 個模塊的實現效果如圖7 和圖8 所示。

圖7 心率數據預測模塊的實現界面

圖8 基于人體重要生命體征的健康智能分析模塊的實現界面
總體上,本文系統實現了生命體征數據采集、數據預處理與顯示、數據智能分析和數據可視化處理等功能,已實現的系統功能較為完善,結果運行正確,達到系統預期設計目標,系統具有上下位機融合集成、設計精簡、成本低廉及智能化程度高等特色。
本文圍繞人體心率和血氧飽和度2 項重要生命體征數據動態監測及評估需求,研究了1 套集數據采集功能的硬件和數據智能分析功能的軟件為一體化的系統,系統功能較為完善,結果運行正確,基本達到應用級產品的水平。系統可對原始生命體征數據進行深度智能數據分析及數據預測預警等處理,智能化程度較高,可滿足系統用戶的部分高端需求。數據采集設備設計精簡,優化模塊組合,簡化硬件布局,進一步降低了產品設計成本。
未來將圍繞市場用戶的需求,進一步增加基于深度學習的智能中醫分析功能模塊,在下位機中,增加中醫診斷過程中“望、聞、問、切”的數據采集感應模塊,并在上位機中添加與之相匹配的智能分析模型,拓展本系統的應用領域。