0

所以我使用matlab,我已經設法修改他們的一個例子,以便我現在可以繪製流線,因爲人們走在下面(相機在門上方)。 我使用Lucas-Kanade光流和計算機視覺工具箱。識別使用光流和羣集的人員?

這些行是這樣定義的,我也定義了跟蹤點。這些跟蹤點包括原始點沒有改變的情況,所以在這種情況下真實點(tmp(:))將爲零,並且這些點將與最初識別的特徵點相同。

vel_Lines = [Y(:) X(:) Y(:)+real(tmp(:)) X(:)+imag(tmp(:))]; 
allTrackedPoints = [Y(:)+real(tmp(:)) X(:)+imag(tmp(:))]; 

我的問題是如何才能讓這些已經成功地跟蹤有一定的距離點?我想以某種方式只保留變化足夠大的值。

我對Matlab的語法不太好,所以希望對某人來說這很容易。

我想獲得與運動有關的成功跟蹤的點,然後將這些點聚類以確定有多少人,然後使用多個對象跟蹤器跟蹤這些點集。

+1

一些更多的代碼來說明你的觀點會很好。這將幫助我通過修改代碼而不是從頭開始編寫任何東西來創建解決方案。然而,最簡單的方法是保存前一幀的光流矢量並進行差分計算,看看距離是否超過了一定的數值​​。聚類應該很容易。你會把所有的點放在一個列表中,遍歷每一個點,並收集那些距離點一定距離的點,然後將它們從列表中移除。當你有人在附近時,這會有問題。 – rayryeng

+0

謝謝! 當然,希望能夠在物體彼此靠近之前將物體識別爲門下的行人。 –

+0

謝謝! 我可以通過電子郵件向您發送代碼嗎?我無法適應這裏。跟蹤不會是一個問題,即使有多個對象,它只是首先識別人(我發現背景扣除和blobbing不太好,所以採取這種方法)。我也可以通過谷歌驅動器分享視頻和東西? –

回答

0

如果您的相機沒有移動,那麼背景扣除對您而言可能比光流更適合您。請參閱this example.

您還可以使用vision.PeopleDetector對象來檢測人員。請參閱this example

如果您堅持使用光流,請嘗試從R2015b版本開始提供的Fareneback optical flow algorithm

+0

謝謝,我實際上已經能夠通過平均流向量來獲得二值圖像,然後通過中值濾波器來減少噪音。 WOuld仍然想知道如何將點集羣到最佳數量的簇中。例如,我可以得到一個點([x y])的矩陣,它是好的點 - 即。代表人民,但我不知道如何根據他們的位置將他們分組,以便將他們分成不同的人。 K均值聚類需要k值作爲輸入 - 但那就是我試圖找出什麼? silleoutes? –