2013-10-20 129 views
5

您好我是OpenCV的新手,我試圖使用放置在固定位置的相機來實現人體跟蹤。我做了一些研究,並且遇到了面向方向梯度直方圖方法,但基於我的理解,它所做的是檢測而不是跟蹤。因此,我想知道在OpenCV上實現人體檢測和跟蹤的最簡單方法是什麼?OpenCV人體跟蹤

P/S:我發現這個video,這正是我想要實現的。

+0

可以接受的答案這是不夠好。 (點擊左邊的複選標記回答) – samkhan13

回答

4

您還可以嘗試使用HAAR級聯進行人體檢測。只需使用CascadeClassifier::CascadeClassifier()加載級聯,然後使用CascadeClassifier::detectMultiScale()獲取給定圖像中檢測到對象(主體)的區域。調整給定爲detectMultiScale()的參數以加快並提高檢測的準確性。

你可以找到一串瀑布here包括一個用於身體檢測。

看看這些所謂的帖子:

+0

感謝您的詳細建議,但如果它不太麻煩,我有一個後續問題。您是否建議通過快速重新檢測來「模擬」跟蹤的方法,因爲我希望爲每個正在跟蹤的人員(如上面的視頻中所示)提供實時視頻饋送中的唯一標識符。有可能使用你的方法嗎?再次感謝。 – user2900552

+0

@ user2900552使用HAAR或LBP級聯,您將只能檢測每個攝像機幀內與所需對象相似的區域。所以是的,你在每一幀中「重新檢測」,從而可以進行跟蹤。爲所需對象的實例分配唯一ID需要使用主成分分析或線性判別分析或「特徵檢測和特徵匹配」。尋找一本名爲「用實際的計算機視覺項目掌握opencv」的書。它有你所需要的C++收益。 – samkhan13

+0

感謝您的回覆。我肯定會嘗試你的建議,但現在我真的需要首先加強OpenCV。再次感謝。 – user2900552

1

您可以使用HOG探測器或潛在svm探測器與「人」模型來獲取人的邊界框,然後跟蹤該人。

跟蹤人的質心可以通過以下方法完成: 測量新的質心位置。測量它的速度。使用當前幀的位置和速度來預測下一幀質心的位置。然後檢查質心的新測量是否接近預測。如果是,則它與前一幀中的人一樣,如果不是,那麼它是一個進入框架的新人。

也許你應該跟蹤邊界框而不是質心。你的幀率足夠高,也許你可以繪製邊界框並忘記跟蹤。