斯坦福 AI 实验室:如何打造基于计算机视觉的智能医院
每年死于院内感染的人数比车祸死亡人数还多,这意味着你被送进医院的时候,有三十分之一的概率健康状况会变得更加糟糕,这很值得警惕。
好在医院可以通过改善卫生条件来扭转这一局面。无论在医院、机场还是餐馆之类的公共场合,手部卫生都是预防传染病传播的第一道防线,这是一个简单的常识。问题的关键不在于人们无知,而在于缺乏警惕心,他们需要自动检测技术来检查手部清洁情况。实际上,很多技术都可以解决这个问题,最简单也最常用的就是用计算机视觉技术来检测人们有没有洗手。
斯坦福PAC(The Stanford Partnership in AI-Assisted Care)中心和众多来自世界各地的合作伙伴多年来一直在开发这项技术,虽然还有很多工作要做,但是我们希望这项技术能帮助医院降低感染率并改善病人的健康。
为什么选择计算机视觉技术?
医院们会通过医学院课程、布告栏海报和员工周会等方式来加强手部卫生教育。世界卫生组织甚至提出“手部卫生五大时刻”,明确规定了医疗卫生工作者的洗手时间。为了核查手部卫生落实情况,医院使用RFID卡或员工徽章来跟踪手部卫生工作。在某种程度上,这些工具真的有用,但是也会碰到工作流程中断的情况,比如当员工进入新房间时,肥皂盒会刷到RFID卡。这其实是技术问题:一般的RFID技术覆盖距离短,而较长距离的“主动型”RFID也受到定向天线的限制,而且需要电池。很明显,需要一种没有RFID技术缺陷的新解决方案。
计算机视觉和医院
我们在斯坦福大学与Lucile Packard儿童医院合作,开发了一种全新的先进方案来追踪手部卫生工作:它使用前沿的计算机视觉技术,不需要临床医生来干预日常工作。虽然计算机视觉已被用到医学成像领域,但在医院的物理空间中还没有太多用武之地。幸运的是,计算机视觉已经用到了物理空间的另一个问题里:自动驾驶汽车,自动驾驶汽车使用大量传感器来了解环境,以此类推,我们能在医院内使用这些传感器来更好地了解医疗环境吗?
深度传感器
深度传感器(比如Xbox Kinect)类似常见的相机,不过它不记录颜色,而是记录距离。在正常的彩色图像中,每一个像素表示一个颜色;在深度图像中,每一个像素表示真实世界中该像素到传感器之间的“距离”,它通常是一个浮点数,比如1.337米。
(左)医院的彩色照片,用手机拍摄。(右)天花板上传感器拍摄的深度图像。颜色越暗,物体越接近深度传感器。
在上面的深度图像中,你虽然看不到人们的脸,仍然可以知道他们在做什么。这保护了我们用户的隐私,这在医院里很重要。为了证明和发展我们的计算机视觉技术,我们在两家医院的天花板上安装了深度传感器,一个是儿童心血管病房,另一个是成人重症监护室(ICU)。
我们的深度传感器安装在一家儿童医院的天花板上。
通过两个不同的医院里安装的深度传感器,我们可以使用3D计算机视觉工具自动监测手部卫生工作。这涉及三个步骤:
1.监测医护人员。
2.追踪在病房周围走动的员工。
3.分类员工的手部卫生行为。
行人监测
继续自动驾驶汽车的类比:为了了解环境,首先要做的就是检测人。现在有很多物体检测方法,但是大多数都是面向彩色RGB图像开发的。相反,我们选择使用一个更古老的方法,该方法可以通过解决两个方面的问题而在任何类型的图像上运行:通常,人们在给定的一个房间的图像中只占据少量的空间;而且,在深度图像中,人们通常看起来像“水滴”,和地板背景差别明显。
词典的条目。每个词典条目都包含一个合成图像,反应一个人站在某个位置时的样子。
检测人的一种方法是确定一个地面上的占用网格图,该占用网格图是二进制矩阵,用来表示一个人是否占用地面上的某个特定位置。通过将地面(比如,房间的地板)转换为离散网格,我们就可以通过网格内的每一个与人大致等高的水滴“想象”出处于该位置的人。我们可以在地面上的每个点上都创建一个包含水滴的词典(记住:因为我们人工合成了这些水滴,我们知道它们准确的2D和3D位置)。对于多人情景,我们可以在场景中渲染出多个水滴。在测试期间,我们需要的是一个“水滴”图像,这可以用任何前景/背景减法或物体分割算法来完成。现在,给出测试时的水滴图像,我们就可以在这个词典中执行K-nearest搜索来查找每个水滴的位置。
跨病房追踪
为了建立一个真正的智能医院,我们需要使用遍布整个医院病房的传感器。因为不是所有的事情都发生在一个传感器前面,所以我们也需要算法来追踪不同传感器前面的人。这不仅可以提供手部卫生落实情况的细节,它也可以被用来改善工作流程和空间分析。一般的,我们希望找到一系列轨迹集合X,其中x∈X中的每条轨迹x都代表一个检测序列集合,L_x=(l_x^{(1)},...,l_x^{(n)}),代表检测到的行人坐标。该问题可以归为最大后验(MAP)估计问题。
接下来,我们假设一个马尔可夫链模型,它将轨迹X中的每个中间检测l_x^{(i)}与后续检测l_x^{(i+1)}以给出的概率P(l_x^{(i+1)}|l_x^{i})连接。现在我们可以通过寻找能最小化成本C的流量f来将MAP任务作为一个线性整数规划来解决:
其中,f_i是表明相应检测是否为真的流量变量,f_ij表示相应检测是否链接到了一起。变量β_ij表示logP(l_i|l_j)为检测l_i,l_j∈L而给出的转移成本。局部成本α_i是一个中间检测为真的对数概率。为了简单起见,我们假设所有的检测都具有相同的概率。这相当于流程优化问题,可以用k-shortest路径实时求解。
手部卫行为分类
到现在为止,我们已经确定了病房里所有行人的轨迹(比如,在全球医院病房地面上的位置)。最后一步是检测手部卫生行为并将其链接到一个特定的轨道上。当一个人使用洗手液时,手卫生行为被定义为正,然后我们再将每个行人的轨迹标记为干净或不干净。
在实际环境中,部署传感器往往容易受到安装约束。无论是有意还是无意,施工和维护的技术人员安装的传感器角度和位置都各不相同,这意味着我们的模型必须对这些变化具有鲁棒性,以便它可以与任何传感器视角一起工作。由于传统的卷积神经网络(CNN)一般都不是视角不变的,所以我们使用空间变换网络(STN)代替。
(左)一个人体分割的数据增强阶段.(右)手部卫生行为分类:一个空间变换再加上一个密集的卷积神经网络。
STN的输入是一个随机图像,输出是一个扭曲的图像。为了帮助我们的模型更快地学习,我们还提供了一个人体分割(即身体掩模)到STN。这个身体掩模可以使用经典的前景-背景技术或深度学习方法来提取。STN将图像扭曲成学习的“视角不变”形式。从这个扭曲的图像看,我们使用一个标准的CNN(比如,DenseNet)来执行是否有人使用洗手液的二进制分类。
在这一点上,我们仍然需要将我们的轨迹集合和单独的手部卫生检测集合结合起来,这就引入了两个新变量:空间和时间。对于每一个手部卫生分类器检测(比如,分配器正在被使用),我们就必须匹配它到一个单一的轨道上。当轨道 mathcal{T}T满足两个条件时,分类器和追踪器之间就会发生匹配:
1.在一定的容忍水平里,轨迹T包含了(x,y),点P和手部卫生检测事件E同时发生。
2.至少有一个点p∈P物理上接近负责检测事件E的传感器,这个阈值定义在病房门口附近。
如果存在多条轨迹满足这些要求,则通过选择与门最近的(x,y)位置来中断联系。我们模型的最终输出是一个轨迹的列表T,其中每一条轨迹由(t,x,y,a)元数组的一个有序列表组成,其中t表示时间标记,x,y表示2D地面平面坐标,a表示最新的动作或事件标签。通过T,我们可以计算达标率或用金标准的评价指标来进行比较。
该技术与人类审计师和RFID的比较
现在,许多医院通过“神秘访客”来衡量手部卫生的落实情况,训练有素的个人在医院病房四处走动,观察工作人员私下是否在洗手。这种“神秘访客”可以是护士,医生,甚至是一个参观者。我们称之为秘密观察,不同于为审计而进行的公开观察。隐性观察的目的是最小化Hawthorne效应(比如,因为有人在看你,你改变了你的行为)。就像上文所讨论的一样,我们将计算机视觉,驻留在病房固定位置的多个审计员,在病房周围走动的单个审计员和RFID标签的使用进行了比较。
对比结果
对比结果显示,RFID产生了大量的误报,它只在18%的时间里正确预测了干净或肮脏轨迹。
人类审计师的效果要好得多,准确率为63%,三个人的效果则更好,准确率可以达到72%。然而,我们的算法甚至超过了人类审计员,具有75%的准确度。这并不让人吃惊,因为审计师正在与具有“全球视野”的计算机视觉系统竞争。既然真实标签是人类标注的,为何人类观察员比算法表现更差呢?原因是我们的真实标签只是被远程标记,而不是实时标记。远程标注者可以访问所有的传感器,并且可以及时向前向后地播放视频以确保它们的注释是正确的。现场的审计员则无法“访问”所有传感器,他们不能及时地回放事件。
不同时段的手部卫生检测图像。蓝色方块表示有人在使用手部卫生分配器。深蓝色表示有更多同时发生的事件。底部显示了真实标签。一般来说,空白越多,结果越差。
除了数字之外,一个更有趣的结果是视觉效果。上面的图片显示了现场审计员很少检测手部卫生行为。注意到所有的空白部分了吗?如果你查看真实标签那一行,通常是没有空白的。这意味着观察员错过了大量的手部卫生事件。这通常是因为观察员分心了:他们可能在打瞌睡,在病房的其他地方看无关的活动,或者只是没有看到手部卫生事件的发生。
ICU内人员走动的时空热图,黄色/红色意味着更多的人在那里站/走。
最后,我们用一个动画来做结论。上面的动画展示了医院病房的俯视视角。因为我们可以追踪在整个医院的人,所以我们一直了解他们的特定的(x,y,z)位置。我们绘制了每个点并创造了随时间变化的热图。这种类型的空间分析对识别交通模式和跟踪潜在的疾病传播都很有效。这些总是黄色/红色的区域表示拥挤的空间。这些空间通常在走廊的交叉口或者就在病人的病房外。如果你仔细看,你会发现静止的审计师被标红了。
未来方向
我们展示了如何使用计算机视觉和深度学习来自动监控医院的手部卫生工作。在斯坦福PAC,手部卫生仅仅是一个计算机视觉在医疗行业中的应用案例。我们还在开发计算机视觉系统来监测患者的移动情况,分析外科手术的质量,以及检查老年人的异常情况等内容。
我们希望这项工作能够激发医疗人工智能的潜力并扩大它的影响。