斯坦福 AI 實驗室:如何打造基于計算機視覺的智能醫(yī)院
每年死于院內感染的人數(shù)比車禍死亡人數(shù)還多,這意味著你被送進醫(yī)院的時候,有三十分之一的概率健康狀況會變得更加糟糕,這很值得警惕。
好在醫(yī)院可以通過改善衛(wèi)生條件來扭轉這一局面。無論在醫(yī)院、機場還是餐館之類的公共場合,手部衛(wèi)生都是預防傳染病傳播的第一道防線,這是一個簡單的常識。問題的關鍵不在于人們無知,而在于缺乏警惕心,他們需要自動檢測技術來檢查手部清潔情況。實際上,很多技術都可以解決這個問題,最簡單也最常用的就是用計算機視覺技術來檢測人們有沒有洗手。
斯坦福PAC(The Stanford Partnership in AI-Assisted Care)中心和眾多來自世界各地的合作伙伴多年來一直在開發(fā)這項技術,雖然還有很多工作要做,但是我們希望這項技術能幫助醫(yī)院降低感染率并改善病人的健康。
為什么選擇計算機視覺技術?
醫(yī)院們會通過醫(yī)學院課程、布告欄海報和員工周會等方式來加強手部衛(wèi)生教育。世界衛(wèi)生組織甚至提出“手部衛(wèi)生五大時刻”,明確規(guī)定了醫(yī)療衛(wèi)生工作者的洗手時間。為了核查手部衛(wèi)生落實情況,醫(yī)院使用RFID卡或員工徽章來跟蹤手部衛(wèi)生工作。在某種程度上,這些工具真的有用,但是也會碰到工作流程中斷的情況,比如當員工進入新房間時,肥皂盒會刷到RFID卡。這其實是技術問題:一般的RFID技術覆蓋距離短,而較長距離的“主動型”RFID也受到定向天線的限制,而且需要電池。很明顯,需要一種沒有RFID技術缺陷的新解決方案。
計算機視覺和醫(yī)院
我們在斯坦福大學與Lucile Packard兒童醫(yī)院合作,開發(fā)了一種全新的先進方案來追蹤手部衛(wèi)生工作:它使用前沿的計算機視覺技術,不需要臨床醫(yī)生來干預日常工作。雖然計算機視覺已被用到醫(yī)學成像領域,但在醫(yī)院的物理空間中還沒有太多用武之地。幸運的是,計算機視覺已經用到了物理空間的另一個問題里:自動駕駛汽車,自動駕駛汽車使用大量傳感器來了解環(huán)境,以此類推,我們能在醫(yī)院內使用這些傳感器來更好地了解醫(yī)療環(huán)境嗎?
深度傳感器
深度傳感器(比如Xbox Kinect)類似常見的相機,不過它不記錄顏色,而是記錄距離。在正常的彩色圖像中,每一個像素表示一個顏色;在深度圖像中,每一個像素表示真實世界中該像素到傳感器之間的“距離”,它通常是一個浮點數(shù),比如1.337米。
(左)醫(yī)院的彩色照片,用手機拍攝。(右)天花板上傳感器拍攝的深度圖像。顏色越暗,物體越接近深度傳感器。
在上面的深度圖像中,你雖然看不到人們的臉,仍然可以知道他們在做什么。這保護了我們用戶的隱私,這在醫(yī)院里很重要。為了證明和發(fā)展我們的計算機視覺技術,我們在兩家醫(yī)院的天花板上安裝了深度傳感器,一個是兒童心血管病房,另一個是成人重癥監(jiān)護室(ICU)。
我們的深度傳感器安裝在一家兒童醫(yī)院的天花板上。
通過兩個不同的醫(yī)院里安裝的深度傳感器,我們可以使用3D計算機視覺工具自動監(jiān)測手部衛(wèi)生工作。這涉及三個步驟:
1.監(jiān)測醫(yī)護人員。
2.追蹤在病房周圍走動的員工。
3.分類員工的手部衛(wèi)生行為。
行人監(jiān)測
繼續(xù)自動駕駛汽車的類比:為了了解環(huán)境,首先要做的就是檢測人?,F(xiàn)在有很多物體檢測方法,但是大多數(shù)都是面向彩色RGB圖像開發(fā)的。相反,我們選擇使用一個更古老的方法,該方法可以通過解決兩個方面的問題而在任何類型的圖像上運行:通常,人們在給定的一個房間的圖像中只占據(jù)少量的空間;而且,在深度圖像中,人們通??雌饋硐?ldquo;水滴”,和地板背景差別明顯。
詞典的條目。每個詞典條目都包含一個合成圖像,反應一個人站在某個位置時的樣子。
檢測人的一種方法是確定一個地面上的占用網格圖,該占用網格圖是二進制矩陣,用來表示一個人是否占用地面上的某個特定位置。通過將地面(比如,房間的地板)轉換為離散網格,我們就可以通過網格內的每一個與人大致等高的水滴“想象”出處于該位置的人。我們可以在地面上的每個點上都創(chuàng)建一個包含水滴的詞典(記?。阂驗槲覀內斯ず铣闪诉@些水滴,我們知道它們準確的2D和3D位置)。對于多人情景,我們可以在場景中渲染出多個水滴。在測試期間,我們需要的是一個“水滴”圖像,這可以用任何前景/背景減法或物體分割算法來完成?,F(xiàn)在,給出測試時的水滴圖像,我們就可以在這個詞典中執(zhí)行K-nearest搜索來查找每個水滴的位置。
跨病房追蹤
為了建立一個真正的智能醫(yī)院,我們需要使用遍布整個醫(yī)院病房的傳感器。因為不是所有的事情都發(fā)生在一個傳感器前面,所以我們也需要算法來追蹤不同傳感器前面的人。這不僅可以提供手部衛(wèi)生落實情況的細節(jié),它也可以被用來改善工作流程和空間分析。一般的,我們希望找到一系列軌跡集合X,其中x∈X中的每條軌跡x都代表一個檢測序列集合,L_x=(l_x^{(1)},...,l_x^{(n)}),代表檢測到的行人坐標。該問題可以歸為最大后驗(MAP)估計問題。
接下來,我們假設一個馬爾可夫鏈模型,它將軌跡X中的每個中間檢測l_x^{(i)}與后續(xù)檢測l_x^{(i+1)}以給出的概率P(l_x^{(i+1)}|l_x^{i})連接?,F(xiàn)在我們可以通過尋找能最小化成本C的流量f來將MAP任務作為一個線性整數(shù)規(guī)劃來解決:
其中,f_i是表明相應檢測是否為真的流量變量,f_ij表示相應檢測是否鏈接到了一起。變量β_ij表示logP(l_i|l_j)為檢測l_i,l_j∈L而給出的轉移成本。局部成本α_i是一個中間檢測為真的對數(shù)概率。為了簡單起見,我們假設所有的檢測都具有相同的概率。這相當于流程優(yōu)化問題,可以用k-shortest路徑實時求解。
手部衛(wèi)行為分類
到現(xiàn)在為止,我們已經確定了病房里所有行人的軌跡(比如,在全球醫(yī)院病房地面上的位置)。最后一步是檢測手部衛(wèi)生行為并將其鏈接到一個特定的軌道上。當一個人使用洗手液時,手衛(wèi)生行為被定義為正,然后我們再將每個行人的軌跡標記為干凈或不干凈。
在實際環(huán)境中,部署傳感器往往容易受到安裝約束。無論是有意還是無意,施工和維護的技術人員安裝的傳感器角度和位置都各不相同,這意味著我們的模型必須對這些變化具有魯棒性,以便它可以與任何傳感器視角一起工作。由于傳統(tǒng)的卷積神經網絡(CNN)一般都不是視角不變的,所以我們使用空間變換網絡(STN)代替。
(左)一個人體分割的數(shù)據(jù)增強階段.(右)手部衛(wèi)生行為分類:一個空間變換再加上一個密集的卷積神經網絡。
STN的輸入是一個隨機圖像,輸出是一個扭曲的圖像。為了幫助我們的模型更快地學習,我們還提供了一個人體分割(即身體掩模)到STN。這個身體掩??梢允褂媒浀涞那熬?背景技術或深度學習方法來提取。STN將圖像扭曲成學習的“視角不變”形式。從這個扭曲的圖像看,我們使用一個標準的CNN(比如,DenseNet)來執(zhí)行是否有人使用洗手液的二進制分類。
在這一點上,我們仍然需要將我們的軌跡集合和單獨的手部衛(wèi)生檢測集合結合起來,這就引入了兩個新變量:空間和時間。對于每一個手部衛(wèi)生分類器檢測(比如,分配器正在被使用),我們就必須匹配它到一個單一的軌道上。當軌道 mathcal{T}T滿足兩個條件時,分類器和追蹤器之間就會發(fā)生匹配:
1.在一定的容忍水平里,軌跡T包含了(x,y),點P和手部衛(wèi)生檢測事件E同時發(fā)生。
2.至少有一個點p∈P物理上接近負責檢測事件E的傳感器,這個閾值定義在病房門口附近。
如果存在多條軌跡滿足這些要求,則通過選擇與門最近的(x,y)位置來中斷聯(lián)系。我們模型的最終輸出是一個軌跡的列表T,其中每一條軌跡由(t,x,y,a)元數(shù)組的一個有序列表組成,其中t表示時間標記,x,y表示2D地面平面坐標,a表示最新的動作或事件標簽。通過T,我們可以計算達標率或用金標準的評價指標來進行比較。
該技術與人類審計師和RFID的比較
現(xiàn)在,許多醫(yī)院通過“神秘訪客”來衡量手部衛(wèi)生的落實情況,訓練有素的個人在醫(yī)院病房四處走動,觀察工作人員私下是否在洗手。這種“神秘訪客”可以是護士,醫(yī)生,甚至是一個參觀者。我們稱之為秘密觀察,不同于為審計而進行的公開觀察。隱性觀察的目的是最小化Hawthorne效應(比如,因為有人在看你,你改變了你的行為)。就像上文所討論的一樣,我們將計算機視覺,駐留在病房固定位置的多個審計員,在病房周圍走動的單個審計員和RFID標簽的使用進行了比較。
對比結果
對比結果顯示,RFID產生了大量的誤報,它只在18%的時間里正確預測了干凈或骯臟軌跡。
人類審計師的效果要好得多,準確率為63%,三個人的效果則更好,準確率可以達到72%。然而,我們的算法甚至超過了人類審計員,具有75%的準確度。這并不讓人吃驚,因為審計師正在與具有“全球視野”的計算機視覺系統(tǒng)競爭。既然真實標簽是人類標注的,為何人類觀察員比算法表現(xiàn)更差呢?原因是我們的真實標簽只是被遠程標記,而不是實時標記。遠程標注者可以訪問所有的傳感器,并且可以及時向前向后地播放視頻以確保它們的注釋是正確的。現(xiàn)場的審計員則無法“訪問”所有傳感器,他們不能及時地回放事件。
不同時段的手部衛(wèi)生檢測圖像。藍色方塊表示有人在使用手部衛(wèi)生分配器。深藍色表示有更多同時發(fā)生的事件。底部顯示了真實標簽。一般來說,空白越多,結果越差。
除了數(shù)字之外,一個更有趣的結果是視覺效果。上面的圖片顯示了現(xiàn)場審計員很少檢測手部衛(wèi)生行為。注意到所有的空白部分了嗎?如果你查看真實標簽那一行,通常是沒有空白的。這意味著觀察員錯過了大量的手部衛(wèi)生事件。這通常是因為觀察員分心了:他們可能在打瞌睡,在病房的其他地方看無關的活動,或者只是沒有看到手部衛(wèi)生事件的發(fā)生。
ICU內人員走動的時空熱圖,黃色/紅色意味著更多的人在那里站/走。
最后,我們用一個動畫來做結論。上面的動畫展示了醫(yī)院病房的俯視視角。因為我們可以追蹤在整個醫(yī)院的人,所以我們一直了解他們的特定的(x,y,z)位置。我們繪制了每個點并創(chuàng)造了隨時間變化的熱圖。這種類型的空間分析對識別交通模式和跟蹤潛在的疾病傳播都很有效。這些總是黃色/紅色的區(qū)域表示擁擠的空間。這些空間通常在走廊的交叉口或者就在病人的病房外。如果你仔細看,你會發(fā)現(xiàn)靜止的審計師被標紅了。
未來方向
我們展示了如何使用計算機視覺和深度學習來自動監(jiān)控醫(yī)院的手部衛(wèi)生工作。在斯坦福PAC,手部衛(wèi)生僅僅是一個計算機視覺在醫(yī)療行業(yè)中的應用案例。我們還在開發(fā)計算機視覺系統(tǒng)來監(jiān)測患者的移動情況,分析外科手術的質量,以及檢查老年人的異常情況等內容。
我們希望這項工作能夠激發(fā)醫(yī)療人工智能的潛力并擴大它的影響。