湯福南,許翔,張可,汪纓
江蘇省人民醫院 南京醫科大學第一附屬醫院 臨床醫學工程處,江蘇 南京 210029
隨著醫療技術的快速發展,磁共振系統已經廣泛應用于臨床。目前在磁共振設備的冷卻系統當中,維持超導磁體超導狀態所用的制冷劑多為價格昂貴的液氦,然而,液氦是一種不可再生資源。2007 年,美國將氦核定為戰略資源而限制氦產量,導致了全球液氦價格持續飆升[1],因此應當重視液氦的合理使用。在核磁共振設備中,液氦量會隨著病人量的增加而減少。另外,當發生失超或容器受到猛烈撞擊造成液氦壓力不穩定時,可能導致液氦泄露,引發患者及醫護人員凍傷或窒息等不良事件[2]。因此,為合理使用液氦和防止此類醫療器械不良事件的發生,進行液氦量和液氦壓力等參數的監測具有重大意義。
現階段大多數醫院工程師對核磁共振設備的巡檢方式主要是定期到設備機房查看磁體監視器,將液氦量和液氦壓力進行記錄在紙質的巡檢表格中,然后對比以往的紙質記錄,判斷液氦的消耗情況、液氦壓力波動是否在正常范圍等。然而,這種巡檢方式的缺點顯而易見:紙質記錄較為原始、無法做到長期的連續監測、對短時間內出現較大的液氦壓力波動無法追溯等。
另外,在液氦數據獲取方面,不僅可以人工查看監視器面板,還能通過讀取串口的方式獲得數據。需要注意的是直接與核磁共振這類大型設備進行線的連接,容易對設備本身造成干擾甚至意外停機產生巨額損失,而且,讀取串口的方式需要兼顧不同品牌和型號以及設備內部不同的數據格式問題,難以實現具有一定通用性的核磁共振機房監測系統。
基于上述情況,本文利用物聯網技術結合人工智能識別算法專門用于磁共振系統液氦數據的監測,實現對磁共振設備運行情況的遠程實時監控,極大地方便工程師對設備的日常巡檢與故障排查。
本文設計的核磁共振機房監測系統主要由主控制器、攝像頭模塊和物聯網云平臺組成(圖1)。系統使用樹莓派作為主控制器[3],對攝像頭采集的圖像進行處理,得到圖像目標區域智能識別和信息提取,同時將液氦量和液氦壓力等數據利用Wi-Fi 一起傳送到OneNet 云平臺[4]。接著,物聯網云平臺接收樹莓派發送的數據,進行圖形化顯示并記錄歷史波形。

圖1 系統總體框圖
系統使用樹莓派控制攝像頭模塊并結合百度OCR 人工智能識別接口來獲取液氦數據的方式,其關鍵意義在于數據獲取方式為非接觸式,即不需要與核磁共振設備直接進行線的連接,不會對該設備的運行造成風險。此外,系統通過獲取磁體監視器的液氦數據最為真實準確,無需再外接相關傳感器以及兼顧內部數據格式問題,從而實現對該類型的設備具有一定的通用性。在巡檢記錄方面,醫院工程師可以通過物聯網遠程查看液氦狀態,將歷史數據波形進行對比,從而分析該設備是否需要進行維護。
樹莓派是一種高性能、低成本的卡片式微型電腦[5]。本系統使用樹莓派3 代B 型作為中心控制器,尺寸為86 mm×56 mm×17 mm,電源輸入為5 V,可通過MicroUSB供電,其操作系統為Raspbian系統。4核12G CPU 和1G內存,可以高效運行程序和處理數據;具有多個擴展GPIO口,可以連接多個傳感器獲得多組數據。而且樹莓派板載Wi-Fi模塊,可直接通過無線網連接互聯網,減少了搭建無線傳感器網絡的工作量。
在本系統中,樹莓派作為主控制器主要完成以下三個方面的功能:通過控制攝像頭傳感器采集圖像數據,進行圖像的預處理和保存;調用人工智能服務識別接口,處理得到文字參數結果;通過自帶的Wi-Fi 功能聯網,將液氦數據無線傳輸至遠程服務器。
本系統使用的攝像頭為Raspberry Pi Camera,500 萬像素,可直接使用視頻CSI 接口連接樹莓派,圖像分辨率達2592×1944,滿足系統的實際設計需要。在本院GE 3.0T核磁共振機房中,磁體監視器面板自動切換顯示液氦量和液氦壓力以及系統時間,因此需要對獲取的圖像內容進行智能解讀并判斷,然后再根據識別結果對液氦參數變量進行分類存儲。圖2 為樹莓派控制攝像頭[6]采集到磁體監視器面板的圖像。

圖2 攝像頭采集到的磁體監視器面板圖像
系統軟件設計由樹莓派軟件設計以及物聯網云平臺端軟件設計兩部分組成。其中樹莓派使用Python 語言開發[7],可以控制攝像頭獲取磁體監視器面板圖像,使用人工智能識別算法對圖像內容轉換成文本,將液氦壓力、液氦量等數據上傳至云平臺。使用Python 語言開發不僅意味著可以使用眾多功能強大的開源函數庫,更為重要的是其程序可直接在樹莓派的操作系統上執行。軟件流程圖如圖3 所示。

圖3 軟件流程圖
OneNet 云平臺端接收樹莓派發送的數據,對數據進行分組顯示,判斷相關數值是否在正常范圍,當達到觸發條件時,OneNet 云平臺將自動發送報警提示信息到預先設置的電子郵箱中,實現報警功能。
3.1.1 攝像頭拍照程序
(1)首先通過以下指令安裝樹莓派官方配置工具raspiconfig:
sudo apt-get install raspi-config
(2)通過以下指令,修改樹莓派配置,開啟攝像頭模塊
sudo raspi-config
(3)通過以下指令檢測樹莓派攝像頭是否工作正常:
vcgencmd get_camera
運行結果顯示“supported = 1, detected =1”即可正常進行樹莓派攝像頭的控制。
(4)在運行程序之前,為了讓攝像頭拍攝的圖像得以保存和修改,需要保證該程序所在文件夾的操作權限已被當前用戶獲得,通過運行以下指令并輸入Pi 的密碼實現:
sudo chmod -R 777 /home/pi
(5)pyhon 程序中需要先導入PiCamera 模塊:
from picamera import PiCamera
攝像頭初始化語句:
camera = PiCamera()
camera.resolution = (1920,1080)
camera.framerate = 60
攝像頭拍照并存儲圖像:
camera.start_preview()
camera.capture('/home/pi/picture.jpg')
camera.stop_preview()
3.1.2 人工智能圖像識別程序
獲取磁共振液晶顯示面板圖像之后,需要對原始圖像進行預處理,劃分出待識別圖像區域然后再上傳到百度OCR[8]。預處理包括旋轉、裁剪和放縮等操作,該操作分別由Python 中的rotate()、crop()和resize()函數完成。圖像預處理的輸出圖像如圖4 所示,該圖像可作為人工智能識別程序的輸入圖像。

圖4 上傳到OCR的圖像
人工智能圖像識別程序的核心是AipOcr 模塊,該模塊是由百度人工智能開放服務平臺提供的文字識別服務,基于百度深度學習研究院強大的深度學習算法和中文檢測識別技術,對于整張圖片的識別,其中文識別率達85%以上,英文識別率達91%以上,可支持PNG、JPG、JPEG、BMP等多種格式的圖片識別,使用前提是需保證待識別的圖片區域為圖片主體部分。
調用百度OCR 之前,需要在Python 中安裝baidu-aip庫文件,可以通過執行以下指令實現:
pip3 install baidu-aip
通過下列語句導入baidu-aip 庫中的函數并初始化:
from aip import AipOcr
aipOcr = AipOcr(APP_ID, API_KEY, SECRET_KEY)
# 讀取圖片
filePath = "文件名.png"
def get_file_content(filePath):
with open(filePath, 'rb') as fp:
return fp.read()
options = {
'detect_direction': 'true',
'language_type': 'CHN_ENG',
}
result = aipOcr.basicAccurate(get_file_content(filePath), options)
其中APP_ID, API_KEY, SECRET_KEY 在三個參數需要在百度云注冊,然后創建一個應用獲得;basicAccurate()為高精度版的通用文字識別函數,該服務每天可以免費使用500 次[9],滿足系統設計需要;result 為函數返回值,包括識別結果數組的行數words_result_num 和識別結果數組words_result。本系統調用百度OCR 的識別結果為液氦量和液氦壓力等液氦數據,然后將液氦數據發送到OneNet 云平臺。
OneNet 作為中國移動通信集團推出的一個專業物聯網開放云平臺,提供了豐富的智能硬件開發工具和可靠的服務,支持各類終端設備快速接入網絡,實現數據傳輸、數據存儲、數據管理等完整的交互流程。云平臺支持多種公開協議,包括HTTP、EDP、MODBUS 和MQTT 等。提供端對端的數據傳輸并且基于私有云的架構保證了數據的安全性,提供豐富的應用模板,方便物聯網開發者進行數據傳輸和管理[10]。
3.2.1 設備接入
在接入OneNet 之前,必須先在OneNet 平臺注冊用戶賬戶,注冊登錄成功之后,按照以下順序進行設備接入:在用戶賬戶下創建產品,在產品中創建設備,新增數據流,終端設備上傳數據,平臺生成相應的數據流,然后創建應用。在每個用戶賬號下,終端上傳的數據以產品的形式進行管理封裝,每個用戶可以創建多個產品,一個產品中可以創建多個設備、APIKey、應用、觸發器,用戶可以對這些資源進行增、刪、改、查等操作,在單個設備下,用戶可以創建多個數據流,終端的數據則上傳至相應的數據流[11]。
3.2.2 觸發器設置
觸發器是OneNet 平臺為用戶提供的一種監控設備數據流的功能,可以實現特定條件的事件報警。新建一個觸發器之后,輸入觸發器的名稱、控制范圍、數據流名稱、觸發條件、接受信息方式等,即可完成觸發器添加。目前觸發器支持以短信、郵件以及用戶提供的URL 地址三種途徑推送事件報警信息[12],本系統選用郵件方式發送報警提示信息。
核磁共振設備對液氦量和液氦壓力的監控有著嚴格的要求。日常使用中,液氦壓力設定為0~5 psi,若壓力大于5.0 psi 則表明故障;液氦量應大于60%,低于極限值50%則應及時加液氦,否則存在失超的可能。本系統設置了3 個觸發器,分別為液氦量低于60%及低于50%時觸發液氦量異常報警以及液氦壓力高于 5.0 psi 觸發液氦壓力異常報警。OneNet 平臺自動記錄接收到的液氦量和液氦壓力數據,當達到觸發條件時,平臺將發送報警提示信息到預設的電子郵箱中,達到預警和可追溯性維護巡檢的目的。
3.2.3 傳輸協議
OneNet 平臺支持包括HTTP、EDP、MQTT[13]等在內的多種標準網絡協議,本系統采用HTTP 作為數據傳輸協議。HTTP 協議是因特網上應用最為廣泛的一種網絡傳輸協議,所有的WWW 文件都必須遵守這個標準。該協議工作于客戶端-服務端架構上,瀏覽器作為HTTP 客戶端通過URL 向HTTP 服務端即WEB 服務器發送所有請求。HTTP 是無連接的,即限制每次連接只處理一個請求[14]。服務器處理完客戶端的請求,并收到客戶端的應答后,即斷開連接,采用這種方式可以節省傳輸時間。
本系統首先在平臺端創建接入協議為HTTP 的產品,記錄下平臺分配的設備ID、產品ID 與自定義的鑒權信息(即設備編號)。然后在樹莓派端使用Python 軟件結合設備對應的登陸參數建立HTTP 連接[15],連接成功建立后即可通過該協議向OneNet 平臺發送液氦數據。物聯網云平臺監測到的液氦實時數據如圖5 所示。

圖5 物聯網云平臺數據顯示
本文設計的系統自從2018 年9 月7 日至今用于本院放射科GE 750W 3.0T 磁共振機房進行測試,在實際使用過程中上傳數據準確且歷史記錄在OneNet 平臺上可追溯[16],已達到預期設計效果。該磁共振設備的液氦歷史數據如表1 所示。

表1 液氦壓力及液氦量歷史數據
在本系統實際使用初期,經過本院工程師多次將現場巡檢紙質結果和遠程數據對比確認,數字識別結果準確無偏差。僅有極少數情況下在識別“He Level”和“He Pressure”等英文時會出現首字母H 丟失的情況,如出現“e Level”等。后期為解決此類問題,在Python 程序中使用difflib.SequenceMatche()函數計算識別結果與目標字符串的相似度,當相似度超過75%時,即認為該內容是液氦參數顯示頁面,并進行數值存儲,從而提高了識別準確性。
本系統在巡檢方面的有益效果表現在增加每月巡檢次數的同時節約巡檢所需時間成本。醫院工程師無需頻繁到達現場查看磁體監視器,登錄物聯網云平臺即可進行巡檢,平均每月巡檢次數從1~2 次增加到15~20 次,為核磁共振設備的穩定運行提供了保障。
本文設計的系統是基于開放的物聯網平臺和人工智能算法實現了磁共振磁體數據的遠程監測。采用樹莓派本身的Wi-Fi 模塊實現聯網,通過攝像頭傳感器捕獲圖像,調用人工智能識別算法返回文字識別結果,利用OneNet 平臺靈活的數據服務來實現對磁體情況的遠程監測。其具體意義在于:工程師可以通過電腦或手機瀏覽器登錄OneNet 平臺來遠程查看液氦數據,減輕維護人員的對磁共振設備的巡檢壓力;OneNet 平臺可以自動記錄數據并發送報警提示信息到預設的電子郵箱中,達到預警和可追溯性維護巡檢的目的;工程師可以通過遠程控制軟件連接樹莓派,修改Python 程序參數,靈活性與便捷性明顯增加,方便后期程序功能的擴展和升級。