2014-01-08 40 views
0

我一直在嘗試在一個小空間中檢測多個人,並因此跟蹤他們。如何檢測多個人並在opencv/emgucv中跟蹤他們

輸入: CCTV攝像機安裝在一個小房間裏的攝像機。

預期輸出:跟蹤並因此存儲人們從房間的一端移動到另一端時所採取的路徑。

我試圖實現一些基本的方法,如背景扣除和行人檢測。但結果並不理想。

在通過實施背景扣除獲得的結果中,由於遮擋,斑點不是一個單一的實體(一個人的斑點被分成多個小斑點),因此,將其作爲單個人檢測是非常困難的。 現在,考慮一下有很多人彼此靠近的情況。在這種情況下,使用簡單的背景減法來檢測人是完全的災難。

有沒有更好的方法來檢測多個人? 或者也許有一種方法來改善背景扣除的結果?

請提出一個跟蹤多個人的好方法嗎?

+0

這是一個非常廣泛的問題和一個棘手的基本問題。考慮如果有些人不動,他們也會成爲背景的一部分。所以每個跟蹤的人必須在不同的背景下進行跟蹤。有可能。 [這個答案](http://stackoverflow.com/a/16674197/2065121)有一些有用的鏈接。 –

+0

你是對的先生。不移動的人成爲背景的一部分。謝謝你的鏈接。我已經看到了一些討論的方法,比如形狀匹配和所有方法。但坦率地說,我明白了,但我仍然不確定如何實現這一切。你能幫我拿一些樣品嗎? – rat303

+0

這裏有一些示例代碼(https://bitbucket.org/rodrigob/doppia) - 這是尖端的研究,這不是一個小問題,你的問題對於StackOverflow來說過於廣泛。 –

回答

2

這是一個相當困難的問題,沒有開箱即用的解決方案,因此您可能需要嘗試不同的方法。

在開始時,您會希望做出一些假設,如靜態相機位置,而不是背景的所有內容都是一個人或一個人的一部分,也可能是多個人。人員不能出現在圖像中,但他們必須'輸入'它(並且在檢測後進入並跟蹤時被檢測到)。

檢測和跟蹤都可能是困難的問題,因此您可能需要先關注其中的一個。我會先跟蹤並選擇一個probabilisic tracking method,因爲像tracking by detection這樣的簡單跟蹤方法可能無法很好地處理重疊和多個目標。

Tracking: 我會嘗試一個粒子過濾器,如http://www.irisa.fr/vista/Papers/2002/perez_hue_eccv02.pdf 它能夠跟蹤多個目標。

Detection:有一頭豬人員探測器在OpenCV的其中直立人

HOGDescriptor hog; 
hog.setSVMDetector(HOGDescriptor::getDefaultPeopleDetector()); 

作品相當不錯,但它是很好的瞭解一個人的圖像中的大致尺寸,並相應地縮放圖像。您可以在背景扣除後通過縮放斑點或斑點組合來完成此操作,或者使用相機的校準並將尺寸爲1.6米至2.0米的圖像部件縮放到您的HoG檢測器尺寸。否則,你可能會有許多失誤和許多誤報。

最後,你將不得不工作,並研究了一段時間才能拿到東西跑,但不要期望早日成功或100%的命中率;)

我將創建一個樣本視頻和工作的那就是手動遮蔽進入的人作爲檢測,並用這些檢測來實現跟蹤器。