基于物联网和人工智能的核磁共振机房监测系统设计

2019-11-22 02:11汤福南许翔张可汪缨
中国医疗设备 2019年11期
关键词:树莓摄像头联网

汤福南,许翔,张可,汪缨

江苏省人民医院 南京医科大学第一附属医院 临床医学工程处,江苏 南京 210029

引言

随着医疗技术的快速发展,磁共振系统已经广泛应用于临床。目前在磁共振设备的冷却系统当中,维持超导磁体超导状态所用的制冷剂多为价格昂贵的液氦,然而,液氦是一种不可再生资源。2007 年,美国将氦核定为战略资源而限制氦产量,导致了全球液氦价格持续飙升[1],因此应当重视液氦的合理使用。在核磁共振设备中,液氦量会随着病人量的增加而减少。另外,当发生失超或容器受到猛烈撞击造成液氦压力不稳定时,可能导致液氦泄露,引发患者及医护人员冻伤或窒息等不良事件[2]。因此,为合理使用液氦和防止此类医疗器械不良事件的发生,进行液氦量和液氦压力等参数的监测具有重大意义。

现阶段大多数医院工程师对核磁共振设备的巡检方式主要是定期到设备机房查看磁体监视器,将液氦量和液氦压力进行记录在纸质的巡检表格中,然后对比以往的纸质记录,判断液氦的消耗情况、液氦压力波动是否在正常范围等。然而,这种巡检方式的缺点显而易见:纸质记录较为原始、无法做到长期的连续监测、对短时间内出现较大的液氦压力波动无法追溯等。

另外,在液氦数据获取方面,不仅可以人工查看监视器面板,还能通过读取串口的方式获得数据。需要注意的是直接与核磁共振这类大型设备进行线的连接,容易对设备本身造成干扰甚至意外停机产生巨额损失,而且,读取串口的方式需要兼顾不同品牌和型号以及设备内部不同的数据格式问题,难以实现具有一定通用性的核磁共振机房监测系统。

基于上述情况,本文利用物联网技术结合人工智能识别算法专门用于磁共振系统液氦数据的监测,实现对磁共振设备运行情况的远程实时监控,极大地方便工程师对设备的日常巡检与故障排查。

1 系统总体设计

本文设计的核磁共振机房监测系统主要由主控制器、摄像头模块和物联网云平台组成(图1)。系统使用树莓派作为主控制器[3],对摄像头采集的图像进行处理,得到图像目标区域智能识别和信息提取,同时将液氦量和液氦压力等数据利用Wi-Fi 一起传送到OneNet 云平台[4]。接着,物联网云平台接收树莓派发送的数据,进行图形化显示并记录历史波形。

图1 系统总体框图

系统使用树莓派控制摄像头模块并结合百度OCR 人工智能识别接口来获取液氦数据的方式,其关键意义在于数据获取方式为非接触式,即不需要与核磁共振设备直接进行线的连接,不会对该设备的运行造成风险。此外,系统通过获取磁体监视器的液氦数据最为真实准确,无需再外接相关传感器以及兼顾内部数据格式问题,从而实现对该类型的设备具有一定的通用性。在巡检记录方面,医院工程师可以通过物联网远程查看液氦状态,将历史数据波形进行对比,从而分析该设备是否需要进行维护。

2 系统硬件设计

2.1 中心控制器模块

树莓派是一种高性能、低成本的卡片式微型电脑[5]。本系统使用树莓派3 代B 型作为中心控制器,尺寸为86 mm×56 mm×17 mm,电源输入为5 V,可通过MicroUSB供电,其操作系统为Raspbian系统。4核12G CPU 和1G内存,可以高效运行程序和处理数据;具有多个扩展GPIO口,可以连接多个传感器获得多组数据。而且树莓派板载Wi-Fi模块,可直接通过无线网连接互联网,减少了搭建无线传感器网络的工作量。

在本系统中,树莓派作为主控制器主要完成以下三个方面的功能:通过控制摄像头传感器采集图像数据,进行图像的预处理和保存;调用人工智能服务识别接口,处理得到文字参数结果;通过自带的Wi-Fi 功能联网,将液氦数据无线传输至远程服务器。

2.2 摄像头模块

本系统使用的摄像头为Raspberry Pi Camera,500 万像素,可直接使用视频CSI 接口连接树莓派,图像分辨率达2592×1944,满足系统的实际设计需要。在本院GE 3.0T核磁共振机房中,磁体监视器面板自动切换显示液氦量和液氦压力以及系统时间,因此需要对获取的图像内容进行智能解读并判断,然后再根据识别结果对液氦参数变量进行分类存储。图2 为树莓派控制摄像头[6]采集到磁体监视器面板的图像。

图2 摄像头采集到的磁体监视器面板图像

3 系统软件设计

系统软件设计由树莓派软件设计以及物联网云平台端软件设计两部分组成。其中树莓派使用Python 语言开发[7],可以控制摄像头获取磁体监视器面板图像,使用人工智能识别算法对图像内容转换成文本,将液氦压力、液氦量等数据上传至云平台。使用Python 语言开发不仅意味着可以使用众多功能强大的开源函数库,更为重要的是其程序可直接在树莓派的操作系统上执行。软件流程图如图3 所示。

图3 软件流程图

OneNet 云平台端接收树莓派发送的数据,对数据进行分组显示,判断相关数值是否在正常范围,当达到触发条件时,OneNet 云平台将自动发送报警提示信息到预先设置的电子邮箱中,实现报警功能。

3.1 树莓派软件设计

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 云平台。

3.2 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 次,为核磁共振设备的稳定运行提供了保障。

4 总结

本文设计的系统是基于开放的物联网平台和人工智能算法实现了磁共振磁体数据的远程监测。采用树莓派本身的Wi-Fi 模块实现联网,通过摄像头传感器捕获图像,调用人工智能识别算法返回文字识别结果,利用OneNet 平台灵活的数据服务来实现对磁体情况的远程监测。其具体意义在于:工程师可以通过电脑或手机浏览器登录OneNet 平台来远程查看液氦数据,减轻维护人员的对磁共振设备的巡检压力;OneNet 平台可以自动记录数据并发送报警提示信息到预设的电子邮箱中,达到预警和可追溯性维护巡检的目的;工程师可以通过远程控制软件连接树莓派,修改Python 程序参数,灵活性与便捷性明显增加,方便后期程序功能的扩展和升级。

猜你喜欢
树莓摄像头联网
浙江首试公路非现场执法新型摄像头
山间“小精灵”
——树莓
“身联网”等五则
《物联网技术》简介
《物联网技术》简介
摄像头连接器可提供360°视角图像
物联网下的智控萌宠屋
基于树莓派的骑行智能头盔设计
基于树莓派的远程家居控制系统的设计
黄金水果红树莓