許文鵬,譚林,周千里,徐雪婧
(1.公安部第一研究所,北京100048;2.北京市公安局,北京100740)
公安監(jiān)管部門承擔著在押人員的警戒看管和行政處罰的重要職責,同時也擔負著保證在押人員羈押期間生命安全的責任和義務。《看守所執(zhí)法細則》規(guī)定對患有嚴重疾病,可能有生命危險的認定為三級重大安全風險,在日常監(jiān)管工作中,醫(yī)生每天上、下午至少各巡診一次,及時發(fā)現(xiàn)和處置在押人員病情[1]。
但諸如心臟病、腦中風等突發(fā)性疾病往往在常規(guī)檢查中很難被發(fā)現(xiàn),一旦發(fā)病則有較大概率造成在押人員的非正常死亡??词厮鶅?nèi)羈押期間非正常死亡事件的頻發(fā),經(jīng)失實輿論炒作所造成的社會影響惡劣,嚴重影響公安機關執(zhí)法公信力,給公安監(jiān)管民警帶來了巨大的工作壓力。
隨著微機電技術、無線傳感網(wǎng)技術和物聯(lián)網(wǎng)技術的不斷進步,人體生命體征監(jiān)測技術也得到了迅速的發(fā)展。同時隨著人工智能技術近幾年來的快速發(fā)展,而機器學習作為推動人工智能技術發(fā)展的核動力,在各行各業(yè)也得到了廣泛應用[3],各類機器學習算法和模型越發(fā)成熟,研究具有智能化、網(wǎng)絡化、便攜式、可穿戴式的生命體征監(jiān)測設備逐漸成為智能監(jiān)管領域的主要研究方向。當前我國市面上出現(xiàn)了幾款消費級可穿戴產(chǎn)品,如小米手環(huán)、美心血氧儀等,以上設備雖然做到了便攜性與可穿戴,但是普遍存在數(shù)據(jù)采集方式單一、測量值誤差大等問題,因而無法精確提取被監(jiān)管人群的生命體征健康數(shù)據(jù),這些問題直接導致了其很難在監(jiān)管等領域進行拓展應用。
針對上述實戰(zhàn)需求本文提出了一種基于機器學習的在押人員可穿戴多傳感器融合的生命體征監(jiān)測系統(tǒng)設計方案。在該系統(tǒng)中具體的產(chǎn)品形式包括智能指環(huán)、智能手環(huán)和智能胸帶。其中嵌有血氧采集傳感器、體溫傳感器、血壓傳感器、心率傳感器等,可以實時監(jiān)測被監(jiān)管人員的生命體征數(shù)據(jù)。所采集的生命體征數(shù)據(jù)通過無線傳感網(wǎng)絡傳輸,可以使遠程監(jiān)控中心應用服務能夠在快速的與生命體征監(jiān)測設備進行數(shù)據(jù)交互,同時具有與PC、手機和PAD 等不同的終端進行交互數(shù)據(jù)的能力,進而能夠?qū)?shù)據(jù)通過無線的方式傳輸至網(wǎng)絡云端進行分析處理、可視化展示以及通過機器學習算法和模型對健康狀況進行研判。
機器學習的基本思想是對海量數(shù)據(jù)進行算法設計,通過對歷史數(shù)據(jù)的分析和學習,得到針對數(shù)據(jù)分類或回歸的目標函數(shù)。因此機器學習是通過對海量數(shù)據(jù)的學習,獲得經(jīng)驗,并通過經(jīng)驗來改善系統(tǒng)的性能。通常機器學習分為監(jiān)督學習、無監(jiān)督學習和半監(jiān)督學習[4]。
在機器學習過程中,學習器從訓練樣本中學習出潛在的數(shù)據(jù)間的規(guī)律,可以得到一個復雜的曲線能夠完美地擬合我們的訓練集,即經(jīng)驗誤差很小,但是這樣的學習器對于未知數(shù)據(jù)表現(xiàn)出的效果卻不理想[10],會把訓練樣本數(shù)據(jù)的其他特點當作數(shù)據(jù)的一般性質(zhì),進而導致泛化性能降低,在機器學習中我們統(tǒng)稱為過擬合[9],與之相對的就是欠擬合。在本文系統(tǒng)設計中,我們選擇k-折交叉驗證使模型的泛化誤差最小。k-折交叉驗證就是將訓練集的1/k 作為測試集,每個模型訓練k 次,測試k 次,錯誤率為k 次的平均,最終選擇平均率最小的模型。如圖1 所示。
圖1 交叉驗證過程
光電容積描記法是通過借助于光電技術在人體動脈血管中檢測血管內(nèi)液容積變化的重要手段和方法。一定波長的光束通過透射或者反射的方式照射到指端皮膚表現(xiàn),由于人體體表內(nèi)液和其他血液組織會對光束產(chǎn)生不同程度的吸收和折射,從而導致透射或反射光束能量衰減,經(jīng)測定,皮膚、肌肉組織和內(nèi)液等成分對光束的能量衰減是恒定的,而指端皮膚血液內(nèi)容積會根據(jù)心臟的周期性活動呈現(xiàn)規(guī)律性的變化;當心臟收縮時,心臟內(nèi)血液擠壓流入血管中,此時血管內(nèi)血量最多,對照射到皮膚光束的吸收量也最大,導致光接收器檢測到的光能量最??;反之,心臟舒張血液回流,導致光接收器檢測到的光能量最大[6]。光接收器將此光能量變化信號轉(zhuǎn)換成弱電信號,便可獲得容積脈搏血液的變化。光電容積描記法正是根據(jù)以上基本原理對人體的重要生理指標進行實時采集和監(jiān)測,如圖2所示。
圖2 光電容積描記法原理圖
本文設計了一個基于機器學習模型和無線傳感技術的高危人群在押人員生命體征監(jiān)測系統(tǒng),通過該監(jiān)測系統(tǒng)可以連續(xù)采集在押人員的心率、心電、血壓和血氧等多個生命體征參數(shù),醫(yī)護人員和值班民警可以通過監(jiān)控中心遠程實時監(jiān)控在押人員的重要生命體征參數(shù),當在押人員身體出現(xiàn)緊急情況或突發(fā)疾病時,系統(tǒng)能自動傳輸報警信息。同時基于機器學習算法搭建健康分析數(shù)據(jù)模型可以對在押人員的生理參數(shù)進行分析診斷,以此對在押人員進行疾病管控、健康干預和醫(yī)護指導。該系統(tǒng)的總體設計架構(gòu)如圖3 所示。
圖3 系統(tǒng)總體架構(gòu)
(1)數(shù)據(jù)采集層
采集層負責收集物理環(huán)境下人體各類活動數(shù)據(jù)。采集層包括多個傳感器節(jié)點,每個傳感器節(jié)點由傳感器、MCU、電源管理和網(wǎng)絡組成;在本系統(tǒng)中主要采用心率傳感器、心電電極貼、血氧采集傳感器、血壓傳感器和紅外體溫傳感器等,用來實時獲取在押人員心率、心電、血氧和血壓等重要生命體征參數(shù)。采集層節(jié)點通過各傳感器感應被測人體參數(shù)和指標,并將數(shù)據(jù)上傳至數(shù)據(jù)傳輸層。
(2)數(shù)據(jù)傳輸層
數(shù)據(jù)傳輸層通過與采集層和數(shù)據(jù)處理層的上下連接,通過通信網(wǎng)絡進行信息傳輸,為系統(tǒng)提供基礎設施服務。傳輸層由無線傳感網(wǎng)、有線網(wǎng)、互聯(lián)網(wǎng)及各種私有網(wǎng)絡組成,在數(shù)據(jù)采集層各傳感器和數(shù)據(jù)處理層之間起到紐帶和橋梁作用,負責將獲取的傳感器感知信息,經(jīng)過互聯(lián)網(wǎng)或私有網(wǎng)絡,安全可靠地傳輸?shù)缴蠈舆M行數(shù)據(jù)分析,然后根據(jù)不同的應用需求進行數(shù)據(jù)的交互與處理。該系統(tǒng)中主要采用藍牙、3G/4G 移動網(wǎng)絡和局域網(wǎng)絡等進行數(shù)據(jù)的傳輸與通信。
(3)數(shù)據(jù)處理層
數(shù)據(jù)處理層的主要作用是將采集的生命體征數(shù)據(jù)進行壓縮存儲,將多維生命體征數(shù)據(jù)存儲于遠程數(shù)據(jù)庫服務器中;同時通過建立索引和指針,將索引裝進內(nèi)存,可以極大地提高獲取多維數(shù)據(jù)集的效率。
此外數(shù)據(jù)處理層還可以對多維數(shù)據(jù)集進行簡單的數(shù)據(jù)處理,例如數(shù)據(jù)一致性檢查、無效值的剔除和缺失值的填充等,將噪聲數(shù)據(jù)進行簡單的篩選和清洗,從而為機器學習建模提供高質(zhì)量數(shù)據(jù)源。
(4)應用服務層
通過基于機器學習的數(shù)據(jù)處理模型,系統(tǒng)可以有效的對提取的生命體征數(shù)據(jù)進行分析和歸類,本系統(tǒng)中主要提供以下應用服務:疾病分類、指標劃分和監(jiān)測評估;值班民警、駐所醫(yī)護人員都可以通過該服務對在押人員的身體健康情況作進一步的預判和疾病分析。
(5)預測與分析層
根據(jù)應用服務層提供的應用接口,可以實現(xiàn)對在押人員身體狀況的健康管理、病情研判,并使醫(yī)護人員結(jié)合病情實施有效的疾病和治療干預方案;同時對Web 平臺用戶和移動通訊終端(Android、iOS)提供了醫(yī)療健康信息以及數(shù)據(jù)分析和信息挖掘服務的接口,幫助用戶更好的對生命體征數(shù)據(jù)進行預測和分析預判。
在本文中設計一款內(nèi)置多種生命采集傳感器和藍牙傳輸模塊的可穿戴式生命體征設備,可以隨時隨地獲取在押人員的生命體征參數(shù),并通過內(nèi)嵌的藍牙傳輸模塊將數(shù)據(jù)發(fā)送到藍牙路由器,藍牙路由器可以將藍牙信號進行擴展與延伸,進而實現(xiàn)多臺藍牙設備大范圍的連接與組網(wǎng),并將數(shù)據(jù)通過TCP 送至遠程服務器和監(jiān)控平臺。
遠程監(jiān)控平臺可以實時接收和查看采集到的在押人員生命體征數(shù)據(jù),當生命體征參數(shù)出現(xiàn)異常時,監(jiān)控平臺會發(fā)出報警提示;同時針對海量的健康數(shù)據(jù),選用合適的機器學習算法對數(shù)據(jù)反復進行訓練,進而得到一個可以適應訓練集的健康模型,將各種數(shù)據(jù)通過數(shù)據(jù)可視化技術進行繪圖顯示和診斷統(tǒng)計,交由專業(yè)醫(yī)護人員和值班民警進行健康管理和預判。同時在押人員家屬也可以通過Web 端訪問遠程服務器,實時、異地查看在押人員的健康生理信息。
本系統(tǒng)集多生命體征采集傳感技術、無線傳感技術、MCU、數(shù)字信號處理技術、遠程Web 監(jiān)護平臺開發(fā)、包括生理數(shù)據(jù)的采集與傳輸、服務器搭建、數(shù)據(jù)庫的建立以及基于機器學習的數(shù)據(jù)建模與數(shù)據(jù)分析可視化的效果展示等組成,其中系統(tǒng)組成圖如圖4 所示。
圖4 系統(tǒng)組成圖
基于機器學習的生命體征監(jiān)測系統(tǒng)可以分為四大模塊[2]:數(shù)據(jù)采集模塊、數(shù)據(jù)管理模塊、網(wǎng)絡通信模塊、預測與分析模塊。
(1)數(shù)據(jù)采集模塊設計
在生命體征監(jiān)測系統(tǒng)中,數(shù)據(jù)采集模塊采用插件式模塊單元設計,心電監(jiān)測單元、血壓監(jiān)測單元、血氧監(jiān)測單元、心率監(jiān)測單元和體表溫度監(jiān)測單元共同組成了插件式數(shù)據(jù)采集模塊。數(shù)據(jù)采集模塊單元可根據(jù)需求進行模塊的增加和刪減,同時插件式的設計可以使生命體征監(jiān)測設備集成度高、功耗降低、體積變小、進而使MCU 的電路設計更加簡單。
采用的傳感器如表1所示。
表1 采集單元傳感器
本文選用ST 公司出品的低功耗微處理器STM32F103ZET6 控制系統(tǒng)和各類生命體征傳感器。
(2)數(shù)據(jù)管理模塊設計
數(shù)據(jù)管理模塊為系統(tǒng)提供數(shù)據(jù)采集、讀取、存儲和簡單處理的功能,通過提供data_read()接口[8],可以讀取傳感器數(shù)據(jù),包括心率、心電、血壓、血氧和體溫等生理體征參數(shù);數(shù)據(jù)管理模塊通過data_collect()接口調(diào)用數(shù)據(jù)采集器,獲取生命體征數(shù)據(jù),并為系統(tǒng)指定存儲目標數(shù)據(jù)服務器,該過程對用戶是透明的。在data_read()接口函數(shù)中,需要設置以下三個參數(shù):①數(shù)據(jù)路徑:通過設置路徑,可以為系統(tǒng)快速找到數(shù)據(jù)存放服務器地址;②樣本數(shù):機器學習算法中每次訓練需要的樣本數(shù),通過接口可以返回訓練樣本集;③數(shù)據(jù)類型:讀取數(shù)據(jù)時,根據(jù)數(shù)據(jù)不同的用途,有三種數(shù)據(jù)用于訓練模型,一種數(shù)據(jù)用于預測模型,接口必須按照數(shù)據(jù)類型返回不同的標志位。
(3)通信模塊設計
在藍牙通信模塊中采用HC-05-D。將單片機的串口和藍牙模塊相連,藍牙的TXD 和RXD 引腳分別與單片機的TXD 和RXD 引腳連接,即交叉直接連接。生命體征監(jiān)測設備的藍牙通信模塊通過藍牙AP可以將帶有藍牙模塊的生命監(jiān)測設備組網(wǎng),并將數(shù)據(jù)通過TCP 協(xié)議傳輸至服務器端。在藍牙路由器中可以嵌入藍牙模塊,從而可以實現(xiàn)接收多個藍牙終端的數(shù)據(jù);此外藍牙路由器利用藍牙SPP 協(xié)議,與藍牙終端建立連接,通過SPP 通道進行數(shù)據(jù)傳送。
生命體征采集設備的藍牙模塊與藍牙AP 通信模塊的通信流程如圖5 所示。
生命體征監(jiān)測設備通過調(diào)用Bluetooth 接口,獲取自帶的藍牙適配器,并開啟藍牙功能。通過調(diào)用藍牙設備搜索接口函數(shù),對周邊的藍牙設備終端進行掃描,當搜索到匹配的藍牙適配器時,則進行設備注冊、建立連接并停止掃描,至此藍牙掃描工作完成。掃描并匹配成功的設備名稱和設備MAC 地址將分別儲存在藍牙搜索的公有成員變量中,當掃描結(jié)束后,會向生命體征監(jiān)測設備藍牙適配器發(fā)送一個類型為0x01 的句柄消息。同時handleMessage 接口函數(shù)也會收到類型為0x01 的消息,掃描程序通過設備遍歷對周邊的設備進行逐個匹配直到找到符合要求的藍牙終端設備。
當設備連接上以后,每個設備都擁有各自的BluetoothSocket,就可以實現(xiàn)設備之間數(shù)據(jù)的共享了。藍牙AP 則可通過BluetoothSocket 的getOutStream()向數(shù)據(jù)采集層各采集模塊發(fā)送傳輸控制指令,對獲取到的生命體征數(shù)據(jù)則通過TCP/IP 協(xié)議發(fā)送到數(shù)據(jù)庫服務器中,進而可以對收集到的生理參數(shù)通過機器學習預測和分析模塊進行列表顯示和圖表顯示,并綜合判斷當前數(shù)據(jù),給出疾病預警提示和初步診斷預案。
圖5 通信流程設計
(4)預測與分析模塊設計
在該模塊中,將使用TensorFlow 框架對采集到的生理體征數(shù)據(jù)進行學習和訓練,并建立機器學習模型,再使用訓練后的神經(jīng)網(wǎng)絡模型對最新采集的數(shù)據(jù)進行分析和預測,并將分析結(jié)果返回給值班民警和駐所醫(yī)護人員[7]。
根據(jù)TensorFlow 的設計模式,設計人工神經(jīng)網(wǎng)絡模型,可以得到TensorFlow 的數(shù)據(jù)流圖如圖6 所示。
將獲取到的生命體征數(shù)據(jù)按照格式要求填充至輸入張量(tensor)中,將輸入數(shù)據(jù)與權(quán)值相乘,再與偏移值相加,經(jīng)過兩個隱藏層后,再通過ReLU 變換和Softmax 層得到最終輸出變量,在進行梯度下降函數(shù)求解過程中,將會采用神經(jīng)網(wǎng)絡模型的輸出結(jié)果作為其輸入,保證梯度下降函數(shù)的最優(yōu)。
圖6 TensorFlow數(shù)據(jù)流圖
在上述公式中,a 表示為(1,10)之間任意常數(shù);n 表示為輸出;m 表示為輸入;l 表示為節(jié)點。在預測和分析模塊中,輸入層的節(jié)點包括ID、數(shù)值、類型、人員性質(zhì)、現(xiàn)狀、有無疾病史等8 個屬性。所以網(wǎng)絡的輸入層m=8;根據(jù)預測和分析要求,將分析結(jié)果作為網(wǎng)絡輸出結(jié)果,因此輸出層節(jié)點n=1;由于三層BP 神經(jīng)網(wǎng)絡可接近任意連續(xù)的函數(shù),故選擇BP 三層網(wǎng)絡。同時根據(jù)輸入層、輸出層和隱藏層的個數(shù),經(jīng)試驗,可以得到每個隱藏層節(jié)點個數(shù)為5。
BP 網(wǎng)絡學習過程設計如下:
首先確定每個單元的偏置為(-2/m,2/m)間的隨機數(shù),即為(-1/4,1/4),確定學習率為1,目標誤差率為0.001。
然后確定輸出層和隱藏層每個單元的輸入輸出,利用如下線性公式:
將Logistic 函數(shù)作用于上面公式,可以得到:
Oj=1/(1+e-Ij)
由于該模塊需要經(jīng)常對數(shù)據(jù)進行分析并且對實時性要求較高,在數(shù)據(jù)源發(fā)生改變后需要重新進行機器學習過程,因此神經(jīng)網(wǎng)絡模型不宜過于復雜。為保證數(shù)據(jù)預測和分析更加精準和實時,在本文中機器學習模型將采用BP 神經(jīng)網(wǎng)絡對生命體征數(shù)據(jù)進行分析學習和預測。
在BP 神經(jīng)網(wǎng)絡進行機器學習過程中將使用如下公式進行節(jié)點數(shù)計算:
其中,Wij是上層輸入層單元i 和j 的權(quán)值,Oi是上一層i 的輸出,Bj是j 的偏置,Oj是j 的輸出。
通過更新W 和B 可以計算向后傳播的誤差,利用如下公式:
其中,Oj(1-Oj)為對Logistic 函數(shù)進行求導計算得到。
同時將下一層j 單元的誤差進行加權(quán)求和,可計算隱藏層j 的誤差。
如此對數(shù)據(jù)進行反復訓練,直到達到最小誤差允許范圍,則BP 神經(jīng)網(wǎng)絡建立。
(5)遠程監(jiān)控平臺設計
遠程監(jiān)控平臺設計如圖7 所示。平臺設計采用B/S 架構(gòu),可以實現(xiàn)值班民警和駐所醫(yī)生遠程訪問監(jiān)控平臺的數(shù)據(jù),同時在押人員生命體征監(jiān)測設備終端采集的各類生命體征參數(shù),例如心率、心電、血氧等數(shù)據(jù),也會實時存儲到遠程數(shù)據(jù)庫服務器中。
圖7 遠程監(jiān)控平臺設計
在監(jiān)控平臺中,通過機器學習模型對在押人員生命體征數(shù)據(jù)進行數(shù)據(jù)分析與處理,可以將被測試在押人員的身體健康狀況分為Ⅰ、Ⅱ、Ⅲ和Ⅳ四個危險等級。其中Ⅰ表示健康、Ⅱ表示良好、Ⅲ表示患有慢性疾病、Ⅳ表示患有高危疾病,需要緊急救治,稍有疏忽可能會危及在押人員的生命危險。經(jīng)數(shù)據(jù)分析和機器學習模型處理后的在押人員生命體征數(shù)據(jù)將會以可視化圖表的形式進行展示,方便值班民警對數(shù)據(jù)進一步挖掘和進行動態(tài)交互。遠程醫(yī)護人員也可以對此監(jiān)控平臺進行訪問,通過采集到的在押人員生理數(shù)據(jù),醫(yī)護人員結(jié)合自己臨床經(jīng)驗,對在押人員身體狀況進一步分析,針對高危人員,并及時給出健康治療方案。
本文綜合利用單片機、各生命數(shù)據(jù)采集傳感器、無線通信和移動網(wǎng)絡等技術,并結(jié)合機器學習算法和模型,給出了監(jiān)管場所在押人員生命體征監(jiān)測系統(tǒng)的整體設計方案,實現(xiàn)了基于心率、血壓、心電等傳感器的生理數(shù)據(jù)采集、傳輸和遠程實時監(jiān)控平臺軟件的開發(fā)。本系統(tǒng)通過藍牙路由器作為生命體征數(shù)據(jù)的采集和中轉(zhuǎn)平臺,通過與生理數(shù)據(jù)采集設備的藍牙模塊進行適配,可以實現(xiàn)把在押人員的生命體征數(shù)據(jù)經(jīng)由TCP 通信協(xié)議傳輸至遠程服務器端數(shù)據(jù)庫中,同時遠程監(jiān)控平臺的指令和操作也可以經(jīng)由藍牙路由器下發(fā)給生理數(shù)據(jù)采集設備。此外通過基于機器學習的神經(jīng)網(wǎng)絡算法,可以實現(xiàn)對在押人員身體狀態(tài)給出健康評估模型,當身體出現(xiàn)異樣時,能快速發(fā)現(xiàn)并能作出反應,并能結(jié)合健康數(shù)據(jù)庫,給予健康建議,推動了移動醫(yī)療的發(fā)展,保障了在押人員的生命健康和安全,具有重要的社會意義和價值。