使用姿勢估計進行跌倒檢測

點擊下面卡片關注AI算法與圖像處理”,選擇加"星標"或“置頂”

重磅乾貨,第一時間送達



所有目標檢測已成爲動作識別研究的重要墊腳石,即訓練AI對行走和坐下等一般動作進行分類。爲了使AI能夠理解接收到的輸入,我們需要教它檢測特定的圖案和形狀,並制定自己的規則。


爲了構建能夠檢測跌倒的AI ,我們決定不收集大型數據集和爲此目的專門訓練模型。相反,我們使用姿勢估計作爲構建基塊。


姿勢估計


姿勢估計是人體關節(通常稱爲關鍵點)在圖像和視頻幀中的定位。通常,每個人都將由多個關鍵點組成。將在關鍵點對之間繪製線條,有效地繪製人的粗略形狀。基於輸入和檢測方法的姿勢估計方法有很多種。


爲了使每個人都可以輕鬆訪問此模型,我將輸入選擇爲RGB圖像並由OpenCV處理。這意味着它與典型的網絡攝像頭,視頻文件甚至HTTP / RTSP流兼容。



預訓練模型


我們使用的姿勢估計模型是EPFL的VITA實驗室的OpenPifPaf。檢測方法是自下而上的,這意味着AI首先分析整個圖像並找出它看到的所有關鍵點。然後,它將關鍵點組合在一起以確定圖像中的人物。這與自頂向下方法不同,在自頂向下方法中,AI使用基本人員檢測器來識別感興趣的區域,然後再放大以識別各個關鍵點。要了解有關OpenPifPaf如何開發的更多信息,請查看其CVPR 2019論文或閱讀其源代碼。


多流輸入


大多數開源模型只能在任何時候處理單個輸入。爲了將來使它更具通用性和可擴展性,我們使用了Python中的多處理庫來使用子進程同時處理多個流。這使我們能夠在具有此功能的計算機上充分利用多個處理器。


人員追蹤


在有多個人的視頻幀中,可能很難找出一個跌倒的人。這是因爲算法需要在連續的幀之間關聯同一個人。但是,如果他/她不斷移動,它如何知道是否在看同一個人呢?


解決方案是實施多人跟蹤器。不一定要花哨;只需一個簡單的通用對象跟蹤器就足夠了。如何完成跟蹤非常簡單明瞭,可以在以下步驟中進行概述:


1. 計算質心(以脖子爲準)。

2. 爲每個質心分配唯一的ID。

3. 在下一幀中計算新質心。

4. 計算當前幀和上一幀的質心之間的歐幾里得距離,並根據最小距離對其進行關聯。

5. 如果找到相關性,請使用舊質心的ID更新新質心。

6. 如果未找到相關性,則給新質心一個唯一的ID(新人進入框架)。

7. 如果此人離開框架達一定數量的框架,請移除質心和ID。


跌倒檢測算法


概念化的初始跌倒檢測算法相對簡單。我首先選擇脖子作爲穩定的參考點(與擺動的胳膊和腿比較)。接下來,我根據定義整個人的邊界框計算了人的感知高度。然後,我以幀間隔計算了脖子點之間的垂直距離。如果垂直距離超過人的感知身高的一半,則該算法將發出跌倒信號。


但是,在觀看多部關於摔倒的YouTube視頻之後,我意識到摔倒的方式和方向不同。當視場傾斜時,未檢測到一些跌倒,因爲受害者似乎並沒有劇烈運動變化。我的模型也不夠精確,當人們彎腰綁鞋帶或直接沿着視頻幀奔跑時,我的模型總是會產生誤報。


我們決定實施更多功能來完善算法:

我們沒有分析一維運動(y軸),而是分析了二維運動(x軸和y軸)以包含不同的相機角度。


添加了邊界框檢查,以查看人的寬度是否大於其身高。這假定該人在地面上而不是直立的。通過使用這種方法,快速移動的人或騎自行車的人可以消除誤報。


添加了兩點檢查功能,僅當可以同時檢測到該人的脖子和腳踝點時才注意跌倒。如果由於遮擋而無法完全識別人的身高,這可以防止對人的身高進行不正確的計算


試驗結果


在撰寫本文時,缺乏大量的跌倒檢測數據集。我們選擇UR跌倒檢測數據集來測試我的模型,因爲它包含不同的跌倒場景。在總共30個視頻中,該模型正確地識別了25個跌倒,並在主體掉出畫面時錯過了另外5個跌倒。這給了我們83.33%的精確度和90.91%的F1分數。

這些結果可以被認爲是一個良好的開端,但由於樣本量較小,因此尚無定論。由於沒有其他類似跌倒的動作(例如繫鞋帶),這也意味着我無法對模型進行壓力測試。

該測試是在兩臺NVIDIA Quadro GV100上執行的,平均速度爲6 FPS,僅夠進行實時處理。由於衆多層的結果,計算量非常大。聲稱以高於15 FPS的速度運行的模型通常是不準確的,或者由可怕的GPU支持。



應用領域


跌倒檢測可用於許多情況下以提供幫助。一個非詳盡的清單包括:

1. 喝醉的人

2. 老人

3. 孩子們在操場上

4. 患有心臟病或中風等疾病的人

5. 粗心的人跌倒

對於更嚴重的情況,對跌倒的迅速反應可能意味着生與死之間的差異。


未來發展


跌倒檢測的準確性在很大程度上取決於姿勢估計的準確性。典型的姿勢估計模型是在具有對象正面視圖的清晰圖像上訓練的。但是,跌倒會導致對象被扭曲爲怪異的姿勢,並且大多數姿勢估計模型都無法在這種情況下準確定義骨骼。此外,這些模型的魯棒性不足以克服遮擋或圖像噪聲。


爲了達到人類水平的檢測精度,當前的姿勢估計模型將需要在更多種姿勢上進行訓練,幷包括具有遮擋的低分辨率圖像。


當前的硬件限制也阻礙了姿勢估計模型在具有高幀頻的視頻上平穩運行的能力。這些模型將需要一段時間才能在具有基本GPU甚至僅具有CPU的任何筆記本電腦上輕鬆運行。


除了姿勢估計之外,專門針對跌倒進行訓練的深度學習模型可能會表現得甚至更好。必須仔細訓練模型,以將跌倒與其他類似跌倒的動作區分開。當然,這必須與廣泛的數據集相結合,以訓練模型。當然,這種模型的範圍是有限的,因爲它只能標識一個特定的動作,而不能標識各種動作。


另一種可能的方法也將是基於知識的系統,該系統正在開發一種模型,以使其能夠學習人類的行爲。這可以通過基於規則的系統在其中基於某些規則進行決策來實現,也可以通過基於案例的系統在過去的案例中應用相似性來實現,而過去的案例表明該案例可以對新案例做出明智的判斷。


結論


爲了解決包括多個動作在內的一般動作識別這一更困難的問題,我們必須首先理解並掌握檢測單個動作的複雜性。如果我們能夠開發出一個可以輕鬆識別跌倒的模型,那麼我們將能夠提取某些模式,從而使該模型能夠輕鬆地檢測其他類型的動作。


推薦一波我好朋友的公衆號:


  
     
     
     
個人微信(如果沒有備註不拉羣!
請註明: 地區+學校/企業+研究方向+暱稱



下載1:何愷明頂會分享


AI算法與圖像處理」公衆號後臺回覆:何愷明,即可下載。總共有6份PDF,涉及 ResNet、Mask RCNN等經典工作的總結分析


下載2:終身受益的編程指南:Google編程風格指南


AI算法與圖像處理」公衆號後臺回覆:c++,即可下載。歷經十年考驗,最權威的編程規範!




   
   
   
下載3 CVPR2021

AI算法與圖像處公衆號後臺回覆: CVPR 即可下載1467篇CVPR 2020論文 和 CVPR 2021 最新論文

點亮 ,告訴大家你也在看



本文分享自微信公衆號 - AI算法與圖像處理(AI_study)。
如有侵權,請聯繫 [email protected] 刪除。
本文參與“OSC源創計劃”,歡迎正在閱讀的你也加入,一起分享。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章