該項目基於人員檢測和跟踪,我主要關注人員跟踪。如 README.md 或 output.mp4 中的輸出 gif 所示,每個人一進入幀就會獲得一個id
,並且無論並發幀中是否發生檢測,該id
都會被保留。只要他留在畫面中,演算法就會進行人員偵測並追蹤他。
Person_det_track.py 使用 SSD 和卡爾曼濾波器偵測和追蹤人員
請嘗試盡可能堅持使用提供的版本,否則您將面臨相容性問題。我在編碼期間使用了可能的最佳組合。
opencv [v3.1]
張量流 [v1.5.0]
這裡提出的方法分為兩個主要部分
人員偵測 - 即時人員偵測是在 Single Shot MultiBox Detector 的幫助下完成的。 SSD 實現了 75.1% mAP,優於同類最先進的 Faster R-CNN 模型。 SSD模型在Tensorflow檢測動物園可用。 SSD與TensorFlow的無縫整合有助於演算法的進一步最佳化和實現。 SSD 物件偵測由 2 部分組成:
人員追蹤 - 透過在每一幀中運行物件偵測模型,可以在物件/人員周圍實現邊界框,但這在計算上是昂貴的。這裡使用的追蹤演算法是卡爾曼濾波。卡爾曼濾波器長期以來被認為是許多追蹤和資料預測任務的最佳解決方案。它在視覺運動分析中的應用。過濾的目的是從訊號中提取所需的信息,忽略其他所有資訊。在這個專案中,卡爾曼濾波器接收到人的速度、位置和方向,這有助於它根據人先前的資料預測人的未來位置。
追蹤部分在遮擋時仍面臨一些問題。 (正在努力中)
該系統由兩部分組成,第一部分是人體檢測,第二部分是追蹤。早期的研究偏向人類辨識而不是跟蹤。監視人類的活動提出了追蹤的需求。監測運動對於確定一個人的活動和一個人的注意力非常重要。
降低運算能力需求 - 普通的對象偵測演算法會偵測對象,但不會跨幀追蹤(分配 Id)對象;因此必須在每一幀中運行才能獲得邊界框。追蹤將有助於減少必須運行檢測演算法的次數,即,該實現每 5 幀運行一次檢測,而不是每幀運行一次檢測演算法。
物件偵測模型失敗補償 - 在某些姿勢中 SSD 可能無法偵測到人類。即使遮擋也會顯著影響偵測器;這就是追蹤演算法可以為我們提供很大幫助的地方。
身分檢索 - 人類追蹤可以用作生物辨識人臉辨識的先前步驟。持續追蹤一個人可以隨時識別一個人的身份。即使在特定的一組畫面中無法進行臉部識別,也可以透過追蹤發現他的身份。作者:尼拉吉‧梅農