人群密度估計-Crowd Density
一. 應用背景
在安防大背景下,對敏感區域人流量的管控是一個重要的課題,防止人群騷亂、踩踏現象的發生,對非預期的人員匯聚進行預警等等,最常用的方法是檢測到每個目標,然後藉助 Perspective 矩陣完成到實際位置的對映,當然,在目標很難檢測的情況下(密度極大、遮擋嚴重),基於迴歸的方法就派上了用場。
本節主要講基於深度學習的迴歸方法來實現人群密度檢測。
二. 人群密度之 Crowd Net
不想繞過這篇有代表性的論文:
論文:CrowdNet: A Deep Convolutional Network for Dense Crowd Counting 【
Caffe程式碼:【Github】
先來看架構圖:
論文采用了兩個網路的融合,可以理解為不同的網路提取的特徵不同,上面 Max Pool 對邊緣特徵(細節)提取較好,下面的 Shallow Net 採用 Avrg Pool 對於整體特徵描述較好,兩個網路通過一個 concat 進行連線,然後1*1的conv進行降維,非常簡單。
這裡面有兩個細節要注意:
1)文中採用了膨脹卷積,提取整體特徵,這個現在用的也比較多了,估計都很熟;
2)資料增廣,採用了不同尺度的樣本取樣,Hard mining 策略,也都是老套路了;
實驗效果自己看論文吧,只能說,這篇文章比較典型,作為普及性的輸入材料是很不錯的,這裡有其巨大的貢獻。
三. 基於視訊的密度估計
論文:Spatiotemporal Modeling for crowd counting in videos 【點選下載】
Caffe程式碼:【Github】
在講這篇文章之前,先來熟悉一下 RNN,LSTM,在影象領域應用不多,但在NLP、文字處理中發揮著巨大的價值。
在含有時間資訊的視訊中,RNN(LSTM)成為該問題的有效手段之一(當然還有 Two Stream,Conv3D等)。
1)RNN 迴圈神經網路
這個比較好理解,在計算當前幀的時候,加入了上一幀的資訊。
2)LSTM
由於之前資訊在多次迭代後的 vanish 問題,採用 gate 的方式實現資訊的儲存。
關於 LSTM 可以參考這篇Blog,講的還是比較透徹的:【簡書】
言歸正傳,如何通過時序資訊來進行密度估計的呢?我們來看:
> ConvLSTM
ConvLSTM 是將 LSTM 中的全連線替換為卷積,將 LSTM的時序與 CNN的空間域特徵結合起來,右邊是公式。
> Bidirectional
雙向 RNN,即用到前面序列,又用到後面序列,對實時性要求高的系統是不合適的,會有延遲。
> 實驗效果
看一下實驗效果還是很不錯的: