范鵬生,吳貴軍,陳浩辰
(重慶科技學院智能技術與工程學院,重慶 401331)
隨著中國逐漸步入老齡化社會,留守老人單獨居家的安全成了廣泛討論的話題。 老人若在居家過程中因不慎跌倒昏迷,而未被人及時發(fā)現(xiàn),不但錯過了搶救時間的最佳時機,也直接威脅著老人的安全問題。 因此,提出一種能夠實際落地的跌倒檢測算法具有現(xiàn)實意義。 當下檢測跌倒的算法主要分為兩種:一種為硬件類型檢測方式,主要通過外部設備,如佩戴傳感器來檢測人體數據,再通過傳統(tǒng)算法對數據進行分析檢測。另一種為運用機器視覺的方法對視頻或圖像進行特征的提取,再通過深度學習算法對特征進行分類識別。硬件方式的應用場景少,硬件帶來的成本高。 而機器視覺方法精度不高,且模型數據量大,多數無法實際落地。 因此,本研究采取了輕量化的Openpose+輕量化分類網絡MobileNet 針對跌倒進行識別,在精度不降低太多的情況下,降低模型容量,以便于后續(xù)的硬件開發(fā)移植。
輕量級 OpenPose(Lightweight OpenPose)是 Intel公司基于卡耐基梅隆大學發(fā)布的開源項目 OpenPose[1]框架進行的改進。 Openpose 主要采用 PAF (Part Affinity Fieilds)來進行自下而上的人體姿態(tài)估計。 首先檢測出人關鍵點的位置,通過預測人體關鍵點的heatmap 得到檢測結果,這樣就可以看到每個人體關鍵點上都有一個高斯的峰值,代表網絡預測出這里是一個人體的關鍵點,同樣對其他所有人的關鍵點進行預測,在得到檢測結果之后,對關鍵點加測結果進行連接,最終生成骨骼圖像。 其原理如圖1 所示。
圖1 Openpose 骨骼識別流程
輕量級Openpose 針對初始模型進行以下更改:
(1) 特征 提取方 面: Backone 由 VGG19 改 用mobilev1。 有效減少訓練過程中生成的參數量,僅為原始OpenPose 參數量的15%,減輕了程序運行時加載網絡參數的資源損耗,從而提升了檢測的速度。
(2)關節(jié)點預測方面:把生成keypoints 和PAFs 的兩個卷積網絡合并成一個。
(3)細化階段:把 7×7 的卷積換成 3×3 和 1×1 的卷積塊,并減少迭代次數。
當前,主流的模型精度逐漸提高,但是模型量也隨著提高,在實際應用場景或者嵌入式設備中難以應用。針對跌倒場景需求延遲低、響應快、需求快的特點,復雜的模型難以勝任。 因此, 選擇較為輕量化的MobileNet 網絡對提取的骨骼圖像進行分類操作。MobileNet[2]模型的構成基本單元為深度可分離卷積,主要通過針對不同輸入通道分別卷積,后者再將前面分離卷積的輸出進行再結合,以達到減少模型計算量和參數量的目標。 圖2 為MobileNet 網絡深度分離卷積流程。
圖2 分離卷積流程
本算法過程區(qū)別于傳統(tǒng)的骨骼算法識別,采用分類的依據是人體骨骼姿態(tài)的圖像,而非關節(jié)點的信息。本研究通過對視頻流的人體姿態(tài)按照每幀輸出數十張姿態(tài)骨骼圖像,并人為對數據集進行標注,劃分訓練集和測試集。 針對保存的圖像數據進行分析,為圖像分類模型[3]選擇輸入參數、網絡結構、激活函數,最終通過自定義的MobileNet 網絡進行二次分類,最終劃分為正常狀態(tài)(normal)和跌倒狀態(tài)(fall)。 具體流程如圖3 所示。
圖3 算法總體流程
本次實驗數據集采用網絡上下載的經典的室內跌倒數據集,一共48 段視頻。 本研究使用其中的32 段視頻作為測試集數據,其余作為模型后續(xù)的驗證視頻,訓練集共輸出骨骼圖像近15 000 張骨骼圖像數據。 訓練完后使用驗證視頻驗證,最終骨骼圖像分類模型測試集準確率在90%左右。 本設計能夠對該場景下的跌倒行為進行較好的檢測。 跌倒骨骼圖像如圖4 所示,左邊為正常狀態(tài),右邊為跌倒狀態(tài)。
圖4 跌倒檢測
本文通過采取兩種輕量化算法模型的結合,在準確率保持在90%的情況下,大幅降低模型的計算量和模型參數容量。 這對算法的實際落地和嵌入式開發(fā)有實際意義。 后續(xù)預計將會對輕量化的模型進行硬件移植,以達到實際落地的效果。