yuanlunxi 2018-11-21
每年,死于医院内感染的人数比车祸还要多。这意味着去医院就医比不去医院病情加重的概率要高 1/30。
这当然是极端情况,但医院可以通过创造更好的卫生条件轻松改善这种状况。众所周知,无论是在医院还是机场、饭店等公共场所,手部卫生是阻止传染病传播的第一道防线,因此,这点不容忽视。检查手是否洗干净需要自动检验技术的帮助。解决这一问题最简单的方法可能是利用最普通的人类策略——利用计算机视觉来确认大家有没有洗手。
开发这样一种技术解决方案是斯坦福 Partnership in AI-Assisted Care(PAC)项目及其世界各地的合作者多年以来的努力方向。尽管还有很多的工作要做,但我们希望该技术可以帮助医院降低感染率,改善患者的健康状况。
为什么要借助视觉?
目前,医院通过医学院课程、公告牌上的宣传材料、员工周会等教育手段来强化手部卫生意识。世界卫生组织(WHO)甚至提出了手部卫生的「五大时刻」(Five Moments),详细规定了医务工作者应该洗手的时间点。为了检查医务人员是否遵守规定,医院让员工佩戴 RFID 卡或标识来追踪他们的手部卫生状况。这种方法有一定效果,但对工作流程造成的干扰也时有发生,如人冲进一间新的房间时皂液器会刷到 RFID 卡产生响应。这主要是由技术原因造成的:一般 RFID 卡通讯距离较短,而长距离的「活跃」RFID 卡受自身定向天线的控制,且需要电池。显然,我们需要一种可以克服 RFID 技术局限的新型解决方案。
计算机视觉与医院
斯坦福 AI 实验室与斯坦福大学露西尔帕卡德儿童医院(Lucile Packard Children』s Hospital)合作,共同开发了一种新的手部卫生追踪高级方法。该方法采用最前沿的计算机视觉技术,不需要临床医生改变他们的日常习惯。计算机视觉已经应用于医学成像,但在物理医院空间中还没有得到充分利用。所幸计算机视觉在另一个问题中已经用在物理空间中:自动驾驶汽车。自动驾驶汽车利用大量传感器来了解周围环境。那么,我们能将其中一些传感器用在医院里以更好地了解医院的卫生状况吗?
深度传感器
深度传感器(如 Xbox Kinects)看起来很像相机,但它记录的是距离而非颜色。在一幅正常的彩色图像中,每个像素代表一种颜色。而在深度图像中,每个像素代表到现实世界空间中像素的「距离」,通常是一个浮点数,如 1.337 米。
(左)用手机相机拍摄的医院彩色照片。(右)天花板上的传感器拍摄的对应深度图像。颜色越深表示物体距离深度传感器越近。
观察以上深度图像可以发现,虽然看不清人脸,但你还是能分辨出他们在做什么。这么做可以保护用户隐私,而隐私在医院中非常重要。为了改进和验证该技术,我们在两家医院(一家儿童医院的心血管科室,一家成人医院的 ICU 病房)的天花板上安装了深度传感器。
装在儿童医院天花板上的深度传感器。
把深度传感器装在两家不同的医院之后,我们可以利用 3D 计算机视觉工具来自动测量手部卫生活动。这需要三个步骤:
1. 检测医护人员。
2. 对在医院内走动的医护人员进行追踪。
3. 对他们的手部卫生行为进行分类。
行人检测
继续用自动驾驶汽车打比方:为了理解环境,我们首先需要检测环境中的人。尽管有很多种目标检测方法,但它们大多数都是为彩色 RGB 图像开发的。因此,我们选择一种可在任何类型的图像上运行的方法,该方法利用了该问题的两个层面:在给定房间图像中,人只占据很小的空间,而深度图像中的人看起来则像地板背景上醒目的「一坨」。
字典条目(dictionary entry):每个字典条目包含一张合成图像,对应某个人所处的位置。
检测人的一种方法是确定地面的占据网格,这是一个二值矩阵,表示一个人是否占据地面的某个特定位置。我们可以创建一个字典,其在地面的每个点包含一「坨」。对于多个人,我们可以渲染场景中的多「坨」。在测试期间,我们只需要每一「坨」的图像,这可以利用前景/背景分离或目标分割算法来实现。现在,给定一张测试图像,我们可以对该字典执行 K 近邻搜索来寻找每一「坨」的位置。
手部卫生活动分类
目前,我们已经识别了单位中所有行人的轨迹(即全局医院单位地面上的位置)。最后一步是检测手部卫生活动,并将其和特定轨迹关联起来。当一个人使用了洗手液时,手部卫生活动被定义为正。然后我们将每个行人的轨迹标记为「干净」或「不干净」。
在现实世界中部署传感器通常受限于安装过程。无论是否有意,建筑和维护技术人员都安装了角度和位置各不相同的传感器,这意味着我们的模型必须对这些差异具有鲁棒性,从而它可以适用于任何传感器视点。由于传统的卷积神经网络(CNN)通常不是视点不变的,我们可以使用空间变换网络(STN)代替。
(左)带有人物分割的数据增强阶段。(右)手部卫生活动分类器:空间变换网络加上密集连接卷积网络。
STN 的输入是任意图像,输出是变形图像。为了帮助模型更快地学习,我们还向 STN 提供人物分割(即身体掩模)。可以使用经典的前景/背景分离技术或深度学习方法来提取该身体掩模。STN 将图像变形成学习到的「视点不变」形式。从这个变形的图像中,我们使用标准 CNN(即,DenseNet)来执行是否有人使用洗手液的二进制分类。
该技术与人类观察员和 RFID 的对比结果
如今,很多医院使用 secret shopper 来衡量手部卫生是否合格,训练有素的人会在医院各处巡视,观察医护人员私下是否洗手。这种 secret shopper 可能是护士、医生,甚至是访客。我们将这种行为称之为秘密观察,与为审核而进行的公开观察相反。这种秘密观察可以最小化霍桑效应(即当你发现有人在观察自己时,会刻意改变行为)。如上所述,我们把计算机视觉和多个站在固定位置的观察员、在医院内走动的单个观察员以及 RFID 标签的使用进行了比较。
对比结果
RFID 产生了大量的假阳性,并且判断是否合格的准确率比较低。它正确预测干净或肮脏的概率只有 18%。
观察员效果比这好得多,准确率为 63%,而三个人做得更好,72%。但是,我们的算法甚至超过了人类观察员,达到了 75% 的准确率。这个结果在意料之中,毕竟观察员的对手是具有「全局视野」的计算机视觉系统。不过,既然真实标签是由人类标注的,人类观察员怎么会比算法做得还差呢?这是因为真实标签是被远程标注而非实时标注的。远程标注者可以访问所有的传感器,并及时向前或向后播放视频以确保其标注是准确的。而在现场的观察员不能「访问」所有传感器,也无法及时回放事件来确定自己的观察是否准确。
不同时段的手部卫生检测。蓝色方块表示有人使用了手部卫生分配器。深蓝色表示更多同时发生的事件。底部显示了真实标签。一般来说,空白越多表示结果越差。
抛开数字不说,一个更有趣的结果是视觉效果。上图显示了现场观察员检测手部卫生活动的频率之低。注意到所有的空白部分了吗?如果你仔细观察真实标签那一行,你会发现几乎没有空白。这意味着人类观察员错过了很多手部卫生活动。这通常是由观察员的注意力分散造成的:他们可能打瞌睡了,也可能在看区域内的无关活动,或者就只是没有看到手部卫生活动的进行。
走在重症监护病房的人的时空热图。黄色/红色表示该区域内有更多人站立/行走。
我们得出一个最终的可视化图。上面的动画显示了医院内的俯视图。因为我们可以追踪整个医院里的人,所以我们几乎一直都知道他们的特定(x,y,z)位置。我们绘制了每个点,并随着时间的推移创建了热图。这种类型的空间分析可用于识别交通模式并可能追踪疾病的传播。始终为黄色/红色的区域表示拥挤的空间。这些空间通常位于走廊交叉点或紧邻病房外。如果你仔细观察,就会发现我们的固定观察员是红色的。
未来方向
我们已经展示了如何使用计算机视觉和深度学习来自动监控医院的手部卫生活动。在 AI-Assisted Care 的斯坦福合作项目中,手部卫生只是医疗保健中应用计算机视觉的一个案例。我们还在开发计算机视觉系统,以监测患者的活动水平,分析外科手术的质量,并检查老年人生活中的异常情况。我们希望这项工作能够向世人展示人工智能辅助医疗的潜力和影响。