湯福南,許翔,張可,汪纓
江蘇省人民醫(yī)院 南京醫(yī)科大學(xué)第一附屬醫(yī)院 臨床醫(yī)學(xué)工程處,江蘇 南京 210029
隨著醫(yī)療技術(shù)的快速發(fā)展,磁共振系統(tǒng)已經(jīng)廣泛應(yīng)用于臨床。目前在磁共振設(shè)備的冷卻系統(tǒng)當(dāng)中,維持超導(dǎo)磁體超導(dǎo)狀態(tài)所用的制冷劑多為價格昂貴的液氦,然而,液氦是一種不可再生資源。2007 年,美國將氦核定為戰(zhàn)略資源而限制氦產(chǎn)量,導(dǎo)致了全球液氦價格持續(xù)飆升[1],因此應(yīng)當(dāng)重視液氦的合理使用。在核磁共振設(shè)備中,液氦量會隨著病人量的增加而減少。另外,當(dāng)發(fā)生失超或容器受到猛烈撞擊造成液氦壓力不穩(wěn)定時,可能導(dǎo)致液氦泄露,引發(fā)患者及醫(yī)護(hù)人員凍傷或窒息等不良事件[2]。因此,為合理使用液氦和防止此類醫(yī)療器械不良事件的發(fā)生,進(jìn)行液氦量和液氦壓力等參數(shù)的監(jiān)測具有重大意義。
現(xiàn)階段大多數(shù)醫(yī)院工程師對核磁共振設(shè)備的巡檢方式主要是定期到設(shè)備機(jī)房查看磁體監(jiān)視器,將液氦量和液氦壓力進(jìn)行記錄在紙質(zhì)的巡檢表格中,然后對比以往的紙質(zhì)記錄,判斷液氦的消耗情況、液氦壓力波動是否在正常范圍等。然而,這種巡檢方式的缺點(diǎn)顯而易見:紙質(zhì)記錄較為原始、無法做到長期的連續(xù)監(jiān)測、對短時間內(nèi)出現(xiàn)較大的液氦壓力波動無法追溯等。
另外,在液氦數(shù)據(jù)獲取方面,不僅可以人工查看監(jiān)視器面板,還能通過讀取串口的方式獲得數(shù)據(jù)。需要注意的是直接與核磁共振這類大型設(shè)備進(jìn)行線的連接,容易對設(shè)備本身造成干擾甚至意外停機(jī)產(chǎn)生巨額損失,而且,讀取串口的方式需要兼顧不同品牌和型號以及設(shè)備內(nèi)部不同的數(shù)據(jù)格式問題,難以實現(xiàn)具有一定通用性的核磁共振機(jī)房監(jiān)測系統(tǒng)。
基于上述情況,本文利用物聯(lián)網(wǎng)技術(shù)結(jié)合人工智能識別算法專門用于磁共振系統(tǒng)液氦數(shù)據(jù)的監(jiān)測,實現(xiàn)對磁共振設(shè)備運(yùn)行情況的遠(yuǎn)程實時監(jiān)控,極大地方便工程師對設(shè)備的日常巡檢與故障排查。
本文設(shè)計的核磁共振機(jī)房監(jiān)測系統(tǒng)主要由主控制器、攝像頭模塊和物聯(lián)網(wǎng)云平臺組成(圖1)。系統(tǒng)使用樹莓派作為主控制器[3],對攝像頭采集的圖像進(jìn)行處理,得到圖像目標(biāo)區(qū)域智能識別和信息提取,同時將液氦量和液氦壓力等數(shù)據(jù)利用Wi-Fi 一起傳送到OneNet 云平臺[4]。接著,物聯(lián)網(wǎng)云平臺接收樹莓派發(fā)送的數(shù)據(jù),進(jìn)行圖形化顯示并記錄歷史波形。
圖1 系統(tǒng)總體框圖
系統(tǒng)使用樹莓派控制攝像頭模塊并結(jié)合百度OCR 人工智能識別接口來獲取液氦數(shù)據(jù)的方式,其關(guān)鍵意義在于數(shù)據(jù)獲取方式為非接觸式,即不需要與核磁共振設(shè)備直接進(jìn)行線的連接,不會對該設(shè)備的運(yùn)行造成風(fēng)險。此外,系統(tǒng)通過獲取磁體監(jiān)視器的液氦數(shù)據(jù)最為真實準(zhǔn)確,無需再外接相關(guān)傳感器以及兼顧內(nèi)部數(shù)據(jù)格式問題,從而實現(xiàn)對該類型的設(shè)備具有一定的通用性。在巡檢記錄方面,醫(yī)院工程師可以通過物聯(lián)網(wǎng)遠(yuǎn)程查看液氦狀態(tài),將歷史數(shù)據(jù)波形進(jìn)行對比,從而分析該設(shè)備是否需要進(jìn)行維護(hù)。
樹莓派是一種高性能、低成本的卡片式微型電腦[5]。本系統(tǒng)使用樹莓派3 代B 型作為中心控制器,尺寸為86 mm×56 mm×17 mm,電源輸入為5 V,可通過MicroUSB供電,其操作系統(tǒng)為Raspbian系統(tǒng)。4核12G CPU 和1G內(nèi)存,可以高效運(yùn)行程序和處理數(shù)據(jù);具有多個擴(kuò)展GPIO口,可以連接多個傳感器獲得多組數(shù)據(jù)。而且樹莓派板載Wi-Fi模塊,可直接通過無線網(wǎng)連接互聯(lián)網(wǎng),減少了搭建無線傳感器網(wǎng)絡(luò)的工作量。
在本系統(tǒng)中,樹莓派作為主控制器主要完成以下三個方面的功能:通過控制攝像頭傳感器采集圖像數(shù)據(jù),進(jìn)行圖像的預(yù)處理和保存;調(diào)用人工智能服務(wù)識別接口,處理得到文字參數(shù)結(jié)果;通過自帶的Wi-Fi 功能聯(lián)網(wǎng),將液氦數(shù)據(jù)無線傳輸至遠(yuǎn)程服務(wù)器。
本系統(tǒng)使用的攝像頭為Raspberry Pi Camera,500 萬像素,可直接使用視頻CSI 接口連接樹莓派,圖像分辨率達(dá)2592×1944,滿足系統(tǒng)的實際設(shè)計需要。在本院GE 3.0T核磁共振機(jī)房中,磁體監(jiān)視器面板自動切換顯示液氦量和液氦壓力以及系統(tǒng)時間,因此需要對獲取的圖像內(nèi)容進(jìn)行智能解讀并判斷,然后再根據(jù)識別結(jié)果對液氦參數(shù)變量進(jìn)行分類存儲。圖2 為樹莓派控制攝像頭[6]采集到磁體監(jiān)視器面板的圖像。
圖2 攝像頭采集到的磁體監(jiān)視器面板圖像
系統(tǒng)軟件設(shè)計由樹莓派軟件設(shè)計以及物聯(lián)網(wǎng)云平臺端軟件設(shè)計兩部分組成。其中樹莓派使用Python 語言開發(fā)[7],可以控制攝像頭獲取磁體監(jiān)視器面板圖像,使用人工智能識別算法對圖像內(nèi)容轉(zhuǎn)換成文本,將液氦壓力、液氦量等數(shù)據(jù)上傳至云平臺。使用Python 語言開發(fā)不僅意味著可以使用眾多功能強(qiáng)大的開源函數(shù)庫,更為重要的是其程序可直接在樹莓派的操作系統(tǒng)上執(zhí)行。軟件流程圖如圖3 所示。
圖3 軟件流程圖
OneNet 云平臺端接收樹莓派發(fā)送的數(shù)據(jù),對數(shù)據(jù)進(jìn)行分組顯示,判斷相關(guān)數(shù)值是否在正常范圍,當(dāng)達(dá)到觸發(fā)條件時,OneNet 云平臺將自動發(fā)送報警提示信息到預(yù)先設(shè)置的電子郵箱中,實現(xiàn)報警功能。
3.1.1 攝像頭拍照程序
(1)首先通過以下指令安裝樹莓派官方配置工具raspiconfig:
sudo apt-get install raspi-config
(2)通過以下指令,修改樹莓派配置,開啟攝像頭模塊
sudo raspi-config
(3)通過以下指令檢測樹莓派攝像頭是否工作正常:
vcgencmd get_camera
運(yùn)行結(jié)果顯示“supported = 1, detected =1”即可正常進(jìn)行樹莓派攝像頭的控制。
(4)在運(yùn)行程序之前,為了讓攝像頭拍攝的圖像得以保存和修改,需要保證該程序所在文件夾的操作權(quán)限已被當(dāng)前用戶獲得,通過運(yùn)行以下指令并輸入Pi 的密碼實現(xiàn):
sudo chmod -R 777 /home/pi
(5)pyhon 程序中需要先導(dǎo)入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 人工智能圖像識別程序
獲取磁共振液晶顯示面板圖像之后,需要對原始圖像進(jìn)行預(yù)處理,劃分出待識別圖像區(qū)域然后再上傳到百度OCR[8]。預(yù)處理包括旋轉(zhuǎn)、裁剪和放縮等操作,該操作分別由Python 中的rotate()、crop()和resize()函數(shù)完成。圖像預(yù)處理的輸出圖像如圖4 所示,該圖像可作為人工智能識別程序的輸入圖像。
圖4 上傳到OCR的圖像
人工智能圖像識別程序的核心是AipOcr 模塊,該模塊是由百度人工智能開放服務(wù)平臺提供的文字識別服務(wù),基于百度深度學(xué)習(xí)研究院強(qiáng)大的深度學(xué)習(xí)算法和中文檢測識別技術(shù),對于整張圖片的識別,其中文識別率達(dá)85%以上,英文識別率達(dá)91%以上,可支持PNG、JPG、JPEG、BMP等多種格式的圖片識別,使用前提是需保證待識別的圖片區(qū)域為圖片主體部分。
調(diào)用百度OCR 之前,需要在Python 中安裝baidu-aip庫文件,可以通過執(zhí)行以下指令實現(xiàn):
pip3 install baidu-aip
通過下列語句導(dǎo)入baidu-aip 庫中的函數(shù)并初始化:
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 在三個參數(shù)需要在百度云注冊,然后創(chuàng)建一個應(yīng)用獲得;basicAccurate()為高精度版的通用文字識別函數(shù),該服務(wù)每天可以免費(fèi)使用500 次[9],滿足系統(tǒng)設(shè)計需要;result 為函數(shù)返回值,包括識別結(jié)果數(shù)組的行數(shù)words_result_num 和識別結(jié)果數(shù)組words_result。本系統(tǒng)調(diào)用百度OCR 的識別結(jié)果為液氦量和液氦壓力等液氦數(shù)據(jù),然后將液氦數(shù)據(jù)發(fā)送到OneNet 云平臺。
OneNet 作為中國移動通信集團(tuán)推出的一個專業(yè)物聯(lián)網(wǎng)開放云平臺,提供了豐富的智能硬件開發(fā)工具和可靠的服務(wù),支持各類終端設(shè)備快速接入網(wǎng)絡(luò),實現(xiàn)數(shù)據(jù)傳輸、數(shù)據(jù)存儲、數(shù)據(jù)管理等完整的交互流程。云平臺支持多種公開協(xié)議,包括HTTP、EDP、MODBUS 和MQTT 等。提供端對端的數(shù)據(jù)傳輸并且基于私有云的架構(gòu)保證了數(shù)據(jù)的安全性,提供豐富的應(yīng)用模板,方便物聯(lián)網(wǎng)開發(fā)者進(jìn)行數(shù)據(jù)傳輸和管理[10]。
3.2.1 設(shè)備接入
在接入OneNet 之前,必須先在OneNet 平臺注冊用戶賬戶,注冊登錄成功之后,按照以下順序進(jìn)行設(shè)備接入:在用戶賬戶下創(chuàng)建產(chǎn)品,在產(chǎn)品中創(chuàng)建設(shè)備,新增數(shù)據(jù)流,終端設(shè)備上傳數(shù)據(jù),平臺生成相應(yīng)的數(shù)據(jù)流,然后創(chuàng)建應(yīng)用。在每個用戶賬號下,終端上傳的數(shù)據(jù)以產(chǎn)品的形式進(jìn)行管理封裝,每個用戶可以創(chuàng)建多個產(chǎn)品,一個產(chǎn)品中可以創(chuàng)建多個設(shè)備、APIKey、應(yīng)用、觸發(fā)器,用戶可以對這些資源進(jìn)行增、刪、改、查等操作,在單個設(shè)備下,用戶可以創(chuàng)建多個數(shù)據(jù)流,終端的數(shù)據(jù)則上傳至相應(yīng)的數(shù)據(jù)流[11]。
3.2.2 觸發(fā)器設(shè)置
觸發(fā)器是OneNet 平臺為用戶提供的一種監(jiān)控設(shè)備數(shù)據(jù)流的功能,可以實現(xiàn)特定條件的事件報警。新建一個觸發(fā)器之后,輸入觸發(fā)器的名稱、控制范圍、數(shù)據(jù)流名稱、觸發(fā)條件、接受信息方式等,即可完成觸發(fā)器添加。目前觸發(fā)器支持以短信、郵件以及用戶提供的URL 地址三種途徑推送事件報警信息[12],本系統(tǒng)選用郵件方式發(fā)送報警提示信息。
核磁共振設(shè)備對液氦量和液氦壓力的監(jiān)控有著嚴(yán)格的要求。日常使用中,液氦壓力設(shè)定為0~5 psi,若壓力大于5.0 psi 則表明故障;液氦量應(yīng)大于60%,低于極限值50%則應(yīng)及時加液氦,否則存在失超的可能。本系統(tǒng)設(shè)置了3 個觸發(fā)器,分別為液氦量低于60%及低于50%時觸發(fā)液氦量異常報警以及液氦壓力高于 5.0 psi 觸發(fā)液氦壓力異常報警。OneNet 平臺自動記錄接收到的液氦量和液氦壓力數(shù)據(jù),當(dāng)達(dá)到觸發(fā)條件時,平臺將發(fā)送報警提示信息到預(yù)設(shè)的電子郵箱中,達(dá)到預(yù)警和可追溯性維護(hù)巡檢的目的。
3.2.3 傳輸協(xié)議
OneNet 平臺支持包括HTTP、EDP、MQTT[13]等在內(nèi)的多種標(biāo)準(zhǔn)網(wǎng)絡(luò)協(xié)議,本系統(tǒng)采用HTTP 作為數(shù)據(jù)傳輸協(xié)議。HTTP 協(xié)議是因特網(wǎng)上應(yīng)用最為廣泛的一種網(wǎng)絡(luò)傳輸協(xié)議,所有的WWW 文件都必須遵守這個標(biāo)準(zhǔn)。該協(xié)議工作于客戶端-服務(wù)端架構(gòu)上,瀏覽器作為HTTP 客戶端通過URL 向HTTP 服務(wù)端即WEB 服務(wù)器發(fā)送所有請求。HTTP 是無連接的,即限制每次連接只處理一個請求[14]。服務(wù)器處理完客戶端的請求,并收到客戶端的應(yīng)答后,即斷開連接,采用這種方式可以節(jié)省傳輸時間。
本系統(tǒng)首先在平臺端創(chuàng)建接入?yún)f(xié)議為HTTP 的產(chǎn)品,記錄下平臺分配的設(shè)備ID、產(chǎn)品ID 與自定義的鑒權(quán)信息(即設(shè)備編號)。然后在樹莓派端使用Python 軟件結(jié)合設(shè)備對應(yīng)的登陸參數(shù)建立HTTP 連接[15],連接成功建立后即可通過該協(xié)議向OneNet 平臺發(fā)送液氦數(shù)據(jù)。物聯(lián)網(wǎng)云平臺監(jiān)測到的液氦實時數(shù)據(jù)如圖5 所示。
圖5 物聯(lián)網(wǎng)云平臺數(shù)據(jù)顯示
本文設(shè)計的系統(tǒng)自從2018 年9 月7 日至今用于本院放射科GE 750W 3.0T 磁共振機(jī)房進(jìn)行測試,在實際使用過程中上傳數(shù)據(jù)準(zhǔn)確且歷史記錄在OneNet 平臺上可追溯[16],已達(dá)到預(yù)期設(shè)計效果。該磁共振設(shè)備的液氦歷史數(shù)據(jù)如表1 所示。
表1 液氦壓力及液氦量歷史數(shù)據(jù)
在本系統(tǒng)實際使用初期,經(jīng)過本院工程師多次將現(xiàn)場巡檢紙質(zhì)結(jié)果和遠(yuǎn)程數(shù)據(jù)對比確認(rèn),數(shù)字識別結(jié)果準(zhǔn)確無偏差。僅有極少數(shù)情況下在識別“He Level”和“He Pressure”等英文時會出現(xiàn)首字母H 丟失的情況,如出現(xiàn)“e Level”等。后期為解決此類問題,在Python 程序中使用difflib.SequenceMatche()函數(shù)計算識別結(jié)果與目標(biāo)字符串的相似度,當(dāng)相似度超過75%時,即認(rèn)為該內(nèi)容是液氦參數(shù)顯示頁面,并進(jìn)行數(shù)值存儲,從而提高了識別準(zhǔn)確性。
本系統(tǒng)在巡檢方面的有益效果表現(xiàn)在增加每月巡檢次數(shù)的同時節(jié)約巡檢所需時間成本。醫(yī)院工程師無需頻繁到達(dá)現(xiàn)場查看磁體監(jiān)視器,登錄物聯(lián)網(wǎng)云平臺即可進(jìn)行巡檢,平均每月巡檢次數(shù)從1~2 次增加到15~20 次,為核磁共振設(shè)備的穩(wěn)定運(yùn)行提供了保障。
本文設(shè)計的系統(tǒng)是基于開放的物聯(lián)網(wǎng)平臺和人工智能算法實現(xiàn)了磁共振磁體數(shù)據(jù)的遠(yuǎn)程監(jiān)測。采用樹莓派本身的Wi-Fi 模塊實現(xiàn)聯(lián)網(wǎng),通過攝像頭傳感器捕獲圖像,調(diào)用人工智能識別算法返回文字識別結(jié)果,利用OneNet 平臺靈活的數(shù)據(jù)服務(wù)來實現(xiàn)對磁體情況的遠(yuǎn)程監(jiān)測。其具體意義在于:工程師可以通過電腦或手機(jī)瀏覽器登錄OneNet 平臺來遠(yuǎn)程查看液氦數(shù)據(jù),減輕維護(hù)人員的對磁共振設(shè)備的巡檢壓力;OneNet 平臺可以自動記錄數(shù)據(jù)并發(fā)送報警提示信息到預(yù)設(shè)的電子郵箱中,達(dá)到預(yù)警和可追溯性維護(hù)巡檢的目的;工程師可以通過遠(yuǎn)程控制軟件連接樹莓派,修改Python 程序參數(shù),靈活性與便捷性明顯增加,方便后期程序功能的擴(kuò)展和升級。