作者 | Barack
編輯 | 陳彩嫻
在新冠疫情在全球持續蔓延的背景下,來自義大利摩德納大學的研究者們結合計算機視覺技術以及傳染病預測模型設計了一種可以實時運行的多場景人員感染風險估計系統。
該系統可以實時地對攝像頭中出現的人員進行檢測,界面中還有一系列指標來反映當前場景的傳染風險。可以看出,當別人離你太近時,系統就會出現紅色警告!
憑藉出色的系統演示以及系統背後理論基礎紮實的計算機視覺模塊和傳染風險評估模塊,這篇論文獲得了 ECCV 2020的 Demo獎。
該系統對計算量的需求非常小,可以直接部署在公共場所中的攝像頭上,只需配備一個嵌入式邊緣AI計算設備即可滿足運算需求,該系統中集成了一個人員檢測器和姿態估計模塊,用來將視頻流中出現的人員位置轉換為真實三維場景中的坐標,此外模型中的風險估計模型(模型參數經過流行病學專家驗證)可以根據場景中人員的距離實時的計算出場景的傳染風險等級,從而對場景的傳染防範措施作出指導和監測。
現AI科技評論對這篇論文進行了詳細解讀。
論文連結:http://arxiv.org/abs/2007.10243
1 實時風險評估
再次來看一下該系統的用戶界面,下圖進行了詳細的展示。
匿名幀:為了遵守歐盟《通用數據保護條例》(GDPR),本系統只對場景中人員的坐標信息進行記錄和計算,並且對人臉進行遮擋來保護隱私。人員之間的彩色連接線段表示兩人的距離是否低於了安全閾值(通常為3米),線段的顏色表示違規的程度,紅色表示嚴重違規,黃色表示輕微違規。
人員計數器:匿名幀右上角的數字實時顯示當前視頻幀檢測到的人員數量。
動態風險圖和場景圖:在屏幕右側有兩個實時更新的鳥瞰圖,動態風險圖表示當前攝像頭所拍區域的情況,而場景圖表示整體的綜合風險,它是由全天的動態風險圖綜合計算得到,用來描述當前場景的周期性狀態。
風險等級狀態條:屏幕下方有一個動態的風險狀態條,通過風險評估模型計算出當前的風險等級,當超過一定閾值時,系統會發出警告。
2 內部機理
該系統可以分為兩個模塊,即計算機視覺模塊和傳染風險評估模塊,下面首先介紹傳染風險評估模塊。
本文的風險評估模型是由經典的SIR(Susceptible-Infected-Removed)模型引申而來,SIR模型是一種傳染病模型,其中Susceptible表示易感人群,Infected表示已感染人群,Removed表示恢復人群(即產生抗體),在SIR模型中,這三類人群之間存在一定的轉換關係,例如易感人群S與感染人群I接觸後可能會被傳染,而感染人群I會以一個固定平均速率恢復或者死亡。可以通過這三類人群數量隨時間的變化關係來反映傳染病的可控程度,但是SIR模型有很多限制條件,此外它通常被用來考慮傳染病在一個種群內部的傳播情況,本文系統的部署環境是小範圍的公共場所,所以SIR模型並不適用,本文作者在SIR的基礎上提出了一種新的風險估計模型,首先計算某一時刻場景中兩個人和
之間的接觸風險,有下式:
其中
是一個緩解係數,當人們戴上口罩或採取其他防護措施時,相應會變小,定義了場景中每兩個人之間的最小安全距離,在不同的場景中,可以動態調整,例如在醫院、藥店等傳染風險較高的場所,的值可以儘可能的小,
參數表示當兩個人之間的距離大於安全距離,傳染風險減小的程度,可以用來模擬場景特徵,例如場景中的溫度和空氣流通情況,假設場景中時刻有
個人,那時刻的個人傳染風險為整個場景中傳染風險的最大值,
時刻整個場景的全局風險計算如下式:
其中
為當前場景的最大容量,由場景管理人員給出,然後我們給定一個時間窗參數
即可計算出動態的全局風險,如下式:
計算得到的
取值範圍在0到1之間,表示場景實時的傳染風險,其後我們可以求助傳染病學專家設定一個警報閾值,當超出閾值時,系統會向工作人員發出警告。
1)人員檢測
考慮到系統需要在計算資源有限的條件下實時運行,本文選擇了CenterNet[1]作為人員檢測網絡,CenterNet首先會預測得到一系列關鍵點,進而估算得到bounding boxes的坐標信息,所以這裡無需使用NMS之類的後處理方法,這使得CenterNet有更快的運算速度,非常適合部署在有實時計算需求的應用中,但是CenterNet也有一個嚴重的缺陷,就是沒有考慮到真實場景中人員的互相遮擋情況,當面對人員較為擁擠的輸入圖像時,CenterNet傾向於生成一個較窄的bounding box,甚至將被遮擋部分直接忽略掉,如下圖粉色框所示:
在本系統中,進行人員檢測的根本目的是得到場景中人員在三維場景中的具體坐標信息,我們需要清楚的知道人員的落腳點,所以單獨使用CenterNet並不能解決問題。
2)頭部和落腳點檢測
為了解決CenterNet無法預測遮擋部位的問題,作者加入了一個小網絡來預測人腳的位置,網絡的輸入是CenterNet得到的bounding box圖像(圖像中人的下半身可能被遮擋),網絡會回歸得到以兩腳連接線段的中點作為新bounding box的下界,使用類似的方法也可以得到標註圖像中人頭的位置
。
這裡使用的數據集是JTA[2],JTA是一個帶有遮擋現象且對人體姿勢進行標註的監控視角數據集,為了模擬真實場景中的遮擋現象,作者在JTA中重點選取了那些行人下半身被遮擋的樣本,同時為了模擬CenterNet的檢測結果,作者也將JTA中的標註bounding box的長度隨機變短,網絡經過訓練,可以同時預測得到bounding box中人頭的位置,以及落腳位置,進而對原bounding box進行補全,如上一節圖中綠色標註框所示。
3)從圖像平面到真實場景平面
上兩步綜合起來可以得到場景中人員的落腳點的坐標,但是這個坐標還無法直接帶入風險估計模型中進行計算,還需要進行一步圖像空間到三維場景空間的坐標轉換。
設是3D空間中的一點,
是對應相機投影在2D平面中的一點,兩點的坐標都用齊次坐標表示,然後根據相機的投影矩陣
就可以對二者進行轉換,即
,將投影矩陣展開:
其中和
為相機的內在參數,
和
為相機的外在參數,分別表示相機的焦距、像素大小、位置和旋轉方向,左側
和
是投影點的坐標,以像素為單位,右側
和
是3D點在世界坐標空間中的坐標,為了簡化計算,這裡考慮了更為簡單的平面點投影的情況,假設每個3D點都位於同一平面上,可以令為零,將3D到2D的投影變換簡化到2D到2D空間的轉換:
進一步可以得到兩個平面的轉換矩陣:
的逆矩陣就是所需要的目標變換矩陣:
得到上述關係後,還需要針對特定場景和特定攝像頭計算對應的矩陣,為此作者對系統做了一次「標定」,首先設計了一個特殊的地毯,上面按照網格形式擺放了九個標記,同時確保這九個標記在監控畫面中是完全可見的,然後在用戶界面中用滑鼠依次點擊這九個標記,來獲得它們在圖像平面中的像素坐標,如下圖所示:
由於事先知道地毯上九個標記的位置,這樣就得到了九個3D-2D的坐標樣本對,然後進行擬合就可以近似得到目標轉換矩陣。由於之前假設空間所有點都處於同一平面中,這就限制得到的轉換矩陣只能作用在較為平坦的場景中,為了避免一些不必要的檢測,系統還提供了一個額外的用戶接口來人為的選擇檢測的區域,排除一些樓梯、鏡子和窗戶區域,因為它們可能存在平面的不一致,還可能帶來人員的鏡面反射,導致不必要的檢測,手動選擇檢測區域效果如下:
系統整體的pipeline如下圖所示:
3 系統評估
為了驗證本系統的有效性,作者在JTA數據集上進行了行人檢測實驗,實驗數據選取了JTA測試集的一部分子集,同時刪除了一些攝像機運動和人物平面不一致(樓梯)的樣本。
分別考慮了不同的攝像機距離對檢測精度的影響,隨著距離的增加,檢測性能會下降,作者提到這可能是由於距離太遠,攝像機捕捉到的行人面積太小導致的,同時作者也對系統標定做了消融實驗,實驗數據表明,進行系統標定在多種情況中會對檢測性能帶來一致的提升,尤其是在攝像機距離較近的時候。
4 總結
本文提出了一個簡單有效的系統,為很多公共場所的疫情防控工作提出了一個新的解決方案,同時也是計算機視覺技術在公共服務領域的又一個全新嘗試。文中進行的實驗也極具有挑戰性,足以證明該系統的可行性。
參考文獻:
[1] X. Zhou, D. Wang, and P. Kra ̈henbu ̈hl, 「Objects as points,」 arXiv:1904.07850, 2019.
[2] M. Fabbri, F. Lanzi, S. Calderara, A. Palazzi, R. Vezzani, and R. Cuc- chiara, 「Learning to detect and track visible and occluded body joints in a virtual world,」 in Proceedings of the European Conference on Computer Vision (ECCV), 2018.