业界 | 李飞飞团队最新研究成果:视觉AI让医院细菌无处可逃!

2018-12-17 15:48:48 浏览数 (1)

大数据文摘出品

编译:朱帅、DonFJ、蒋宝尚

据说每年都会有很多人在医院感染病菌然后不幸患病,甚至因此导致的死亡人数比车祸还多。

具体来说,当你迈进医院大门的时候,你就有1/30的几率会被感染,那样其实还不如在家躺着的好。

虽然这个情况听起来很恐怖,但仔细细一想医院好像很轻松就能解决。

所以,对医院来说搞好卫生是关键。特别是手部的卫生,因为这是防止感染传播的第一道防线。

当然不止在医院,在其他公共场合,比如机场、餐厅之类的都要注意“勤洗手”。

这是个比较常识性的知识了,幼儿园老师都会教小盆友们勤洗手,所以应该注意的也许不是“洗了没”,而是“洗的怎么样”。因此医院里首先需要一个能监测洗手效果的黑科技产品。很多技术都能实现检测,但其中的佼佼者就是视觉识别技术啦~对对,就是那个天天说的CV(Computer Vision)。

为了实现这个洗手检测的功能,斯坦福和医学院的AI辅助团队(Stanford Partnership in AI-Assisted Care(PAC))已经在此深耕多年。虽然目前来看还不是特别成熟,但是相信在不久的将来,他们一定能帮助减少医院中的病菌传染!

PAC团队的负责人是李飞飞和医学教授Arnold Milstein,其整合了斯坦福以及其他医学院的一系列跨学科资源,主要是想用AI、计算机视觉等技术解决一些医疗健康中的难题(就是要人家数据发论文嘛,哼……文摘菌也想要)。

他们的主页是:

https://aicare.stanford.edu/

为什么用计算机视觉?

在崇尚卫生的今天,通常能看到医院布告栏上面的洗手宣传,甚至看到了世界卫生组织提出的“洗手五步走”卫生指南。其实不止这些,医院还总在医学院的课程中强调洗手的重要性和洗手的正确步骤,在每周的员工会议里不厌其烦的加强教育。

这样做的目标其实就是想让医院的员工勤洗手、正确洗手。为了能监测员工们到底有没有贯彻落实伟大的“洗手思想”,医院还给每人佩戴了一个RFID卡。文摘菌估计就是一个手环,洗手池旁边有一个RFID的读卡器(可以想象成地铁读卡器),然后洗手的时候需要故意的让手环凑近读卡器,这样就能读到手环里面的卡片信息,从而知道你到底洗手了没~

这样的做法在一定程度上确实管用,但是好像也挺麻烦的,因为还得故意的刷一下。这个问题从根上说是因为RFID技术的局限,如果是一个无缘的RFID(就是前面说的这种,它没有电池),距离读卡器远了就读不到了。但是有缘的RFID有需要电池,电池就需要定期更换,进水还会更麻烦,天线的朝向也是个事儿……所以呢,这都是现在用的RFID的洗手打卡器的缺点。

计算机视觉在医院

基于上面的原因,PAC团队就在斯坦福的Luile Packard儿童医院里进行了实验,开发了一套自动洗手监测的基于计算机视觉的系统。由于计算机视觉不会影响用户的生活习惯,所以他们也没有学习成本,不需要适应之类的。

计算机视觉在医学图像中的应用已经很成功了,但是它们就处理什么CT图之类的好用,在实际的医院中它们还是不能实际跟患者打交道,总不能背着几台GPU服务器在医院里晃悠吧哈哈。

所以为了真的能让系统用起来,用导了另外一个黑科技,就是自动驾驶。自动驾驶的车里面有成千上万的传感器,而且直接是在物理环境中奔跑的,所以就按照这个思路,用一些传感器部署在医院里,然后看看能不能帮助更好的检测洗手~

深度传感器

深度传感器,比如微软的Xbox里面用的体感摄像头Kinect,它和普通摄像头很类似,但是它采集的不是色彩信号,而是距离信号,就是咱们说的深度。在普通的图片里面,每个像素的值代表的是色彩。但是在深度图像中,每个像素点代表的是物体距离摄像头的距离信息。能探测的距离范围大概是1.337米。

左图是手机拍的彩色图片。右边的是同样场景的深度摄像头采集的深度图像,颜色越深表示物体距离摄像头越近。

观察到在上面的深度图像中是看不清每个人的脸的,但是能看清他们在做什么。这就能天然的保护用户的隐私啦,隐私信息的保护在医院里面是很重要的!为了验证计算机视觉技术,在两家医院里面安装了深度传感器。其中一个就是上面说的那个儿童医院,另外的是一个成人的ICU。

深度学传感器安装在儿童医院的天花板上,厚厚厚~

当完成了深度传感器的部署之后,就能用3D计算机视觉技术来自动的检测洗手啦!这里有三个步骤:

1.检测医护人员

2.在视野之内的时候盯住他们

3.识别出他们的洗手行为

路人检测

接茬儿说自动驾驶的那个比喻。想要知道周围发生了什么,首先要能识别出人来。这有很多物体识别方法,其中很多都是用普通的RGB图像做的,而不是深度图像。但是没关系,有一些经验咱们可以借鉴嘛。比如说在图像里人都是站着的,一般在图片中的比例很小,而且在大片地板空白的陪衬下,人在深度图像里就像个孤立的斑点。

图中是人的位置的模型化显示,所有的位置的集合就像个词典一样,每个位置的人就像是词典的一个条目。

想要检测人的话,其中一种方法就是确定网格中被遮挡的位置。这种方法就是一个二值的矩阵,矩阵每个元素的值表示人有没有出现在相应的位置。将摄像头视角中的地板想象成网格,那么图像中的那些“点(bolb)”就是人类的位置了。技术上来说,我们创建了一个词典,词典中包含了每个单点上有人的情况(要记住哦,因为综合创建了这些点,我们知道每个点的2D和3D位置)。

对于多个人,可以在场景中标出来多个“bolb”来代表每个人。在真正的识别的时候,需要的就是这个包含了若干个“bolb”的图像。这可以通过很多现成的前景/背景去除算法来对图像进行分割。那么好,现在当给定这个bolb图像的时候,就可以使用k近邻(k-nearest neighbor)方法在词典中查找,从而找到每个blob的位置了。

跟踪医院中的每个人

为了造出来一个名副其实的智慧医院,我们要把整个医院都布满传感器。摄像头总有自己的视角范围,有的事情就会出现在视角范围之外。那为了跟踪每个人,就要用算法来在多个摄像头之间无缝的识别出他们。这种方法其实不止能检测洗没洗手,更能检测每个人的工作流程,看看这位医护人员是不是开小差啦~

公式化来说,我们想要找到一组轨迹X,其中每个子轨迹x∈X使用有序的检测来表示Lx=(lx(1),...,lx(n))。有的童鞋可能发现了,这个问题可以写成最大后验估计的问题(MAP)。

接下来,假设马尔可夫链将每个中间的检测lx(i)连接到随后的lx(i 1)中,连接的概率是P(lx(i 1)∣lxi)。现在就能通过最小化成本C的方式来将这个问题转化成一个线性问题啦:

其中fi是指示相应的检测是否为正阳性(True Positive)的流变量,并且fij表示相应的检测是否连接在一起。变量βij表示由logP(li∣lj)给出的检测li,lj∈L的转移成本。αi是中间检测为正阳性的对数似然。为简单起见,假设所有检测都具有相同的概率。这相当于流优化的问题,可以用k-最短路径(k-shortest paths)来实时得到结果。

手部卫生活动分类

现在,已经确定了医疗机构中所有行人的踪迹(即全球医疗单位地面物体的位置)。最后一步就是要检测他们手部卫生活动,并将其和具体的踪迹相关联。如果一个人使用了洗手液,就将“手部卫生活动”这个特征定义为positive。然后根据每个行人的踪迹将其标记为“clean”或者“not clean”。

实际场景中传感器的部署常常受限于安装位置。不知道是有意还是无意的,安装维护的技术工人在部署传感器时,角度和位置总是千奇百怪,这就要求模型必须足够健壮来应对这些偏差,以便能够适应各种传感器视角。由于传统的CNNs一般无法适应视角的变化,所以这里使用空间变换网络(STN)。

(左图)人体分割的数据增强阶段 (右图)手部卫生活动分类器:一个STN后接一个CNN

STN的输入是任意图像,输出是变形之后的图像。为了让模型学习得更快,我们在STN中加入了人体分割模板(即人体掩膜,body mask)。人体掩膜可以通过经典的前后景技术或者深度学习方法提取。STN将图像转换为“固定视角”的效果,经过这种转换,我们就可以使用标准的CNN(即DenseNet)来实现二分类,即判断目标是否使用了洗手液。

时空匹配

这里我们仍然需要结合之前的踪迹信息以及手部卫生检测,同时引入两个新的变量:空间和时间。对于每一次手部卫生分类检测(即是否使用洗手液),我们必须将其对应到唯一的踪迹。当踪迹T满足以下两种情况时,可以认为分类器和追踪器匹配:

1.在一定时间误差范围内,踪迹T包含点P(x,y),该点同时发生了手部卫生检测事件E。

2. 至少有一点p∈P,在物理上接近负责检测事件E的传感器,这根据病房门附近大致的阈值范围定义。

如果有大量的点满足这些要求,我们可以通过选择离门最近的位置(x,y)来排除其他点。模型最终的输出是踪迹点的列表T,其中每一个元素由一个有序的元组(t,x,y,a)组成,这里的t表示时间戳,(x,y)表示2D平面的坐标,a表示最近的行为或者事件标签。根据T,我们可以计算达标率或者和实际值对比得到一些评价指标。

与调查员和RFID对比

如今,很多医院雇佣秘密调查员来评价手部卫生的达标率,这些经过训练的调查员暗地里走访各个医疗单位并且观察员工是否洗手。秘密调查员可能是护士、医生甚至是普通人。我们称这种方式为秘密巡视(covert),与之相对的是公开巡视(overt),这种方式通常会公开调查结果。秘密巡视的目的是最小化霍桑效应的影响。所谓霍桑效应就是,受试者可能因为知道处于观察之下而改变自己的行为。我们将通过计算机视觉技术得到的结果和大量待在某个医院固定位置的调查员的观察结果,一个在医院到处走动的调查员的观察结果,以及之前提到的RFID标记结果进行了对比。

实验结果

RFID生成了大量的假阳性结果,所以预测的达标率的准确度很低。仅有18%时间能够给正确地给踪迹打上“clean”或者“not clean”的标签。

一个调查员能达到63%的准确率,三个调查员则效果更好,能达到72%的准确率。然而,算法表现超越了调查员的结果,能够达到75%的准确率。这个结果其实并不太意外,因为调查员是在和“全视野”的计算机视觉系统竞争。既然实际情况的标签也是由人类标注的,那人类调查员得到的结果不如算法的原因是什么?主要是因为,实际情况的标签是远程标注的,并且不是实时的。远程标记人员可以使用所有的传感器,而且可以适时地播放和回放视频观察前后景,来确保自己标注的准确性。而调查员则没有机会使用所有的传感器,并且他们也无法及时回放事件的过程。

不同时间段的手部卫生检测情况。蓝色方块表示有人使用了洗手液,深蓝色表示很多人同时在用。实际情况如图最下方所示。一般来说,颜色越浅表示效果越差。

和数字相比,更有趣是从中能得到的信息。上图显示了现场调查员检测手部卫生活动的频率。注意到那些空白处了没?再看看最下面一行的实际情况,是不是几乎没什么空白。这说明调查员遗漏了很多手部卫生事件。这通常是因为调查员渐渐地心不在焉了,他们可能打瞌睡了,或者视线转移到了医院里其他不相关的活动,或者仅仅是没有看到手部卫生事件的发生。

人们在重症监护室踪迹的时空热点图。黄色/红色表明较多人站在/行走在该区域。

咳咳,来总结一下上面这幅可视化图像。上图展示了上帝视角下的医院,因为可以追踪整个医院所有人的位置,所以总是能知道他们的具体位置(x,y,z)。标记出每个点并基于时间信息绘制了这幅热点图。

这种空间分析法非常适用于人流量的监测,未来还可以用于追踪疾病的传播路径。图中黄色/红色区域表明人流量比较大,空间拥挤。这些区域通常是走廊十字路口或者病房出入口。如果你仔细观察的话,你应该可以在红色区域发现位于某个固定位置的调查员。

未来方向

本文展示了计算机视觉和深度学习技术在医院手部卫生活动自动监测方面的应用。在斯坦福大学AI辅助治疗合作项目中,手部卫生监测只是计算机视觉技术在医疗保健方面的一个案例。PAC团队还准备将计算机视觉应用到患者活动度的监测,手术过程质量的分析,以及老年人日常生活异常的检查中。

参考文献

Viewpoint Invariant Convolutional Networks for Identifying Risky Hand Hygiene Scenarios. M. Guo, A. Haque, S. Yeung, J. Jopling, L. Downing, A. Alahi, B. Campbell, K. Deru, W. Beninati, A. Milstein, L. Fei-Fei. Workshop on Machine Learning for Health (ML4H), Neural Information Processing Systems (NIPS), Long Beach, CA, December 2017.

Towards Vision-Based Smart Hospitals: A System for Tracking and Monitoring Hand Hygiene Compliance. A. Haque, M. Guo, A. Alahi, S. Yeung, Z. Luo, A. Rege, A. Singh, J. Jopling, L. Downing, W. Beninati, T. Platchek, A. Milstein, L. Fei-Fei. Machine Learning in Healthcare Conference (MLHC), Boston, MA, USA, August 2017.

Vision-Based Hand Hygiene Monitoring in Hospitals. S. Yeung, A. Alahi, Z. Luo, B. Peng, A. Haque, A. Singh, T. Platchek, A. Milstein, L. Fei-Fei. American Medical Informatics Association (AMIA) Annual Symposium, Washington, DC, USA, November 2016.

相关报道:

https://ai.stanford.edu/blog/measuring-hand-hygiene-in-hospitals/

【今日机器学习概念】

Have a Great Definition

0 人点赞