2016-04-04 55 views
1

我是opencv的新手,我試圖跟蹤圖像中的一些移動對象(例如汽車)。我計算了光流,並用它來實現kmeans並嘗試類似於背景減法的東西,我的意思是從靜止的單獨的移動物體。然後我也用視頻的強度作爲信息。下面屏幕截圖來自該流的結果和第k分別指分割:改進對象檢測的建議

enter image description here

的效果不好,而且不壞。我從現在開始怎麼辦?我正在考慮嘗試SURF特徵提取和SURF探測器。任何想法都歡迎。

+0

陰影似乎會導致問題,您是否嘗試過可以檢測陰影的MOG2檢測器?你想在哪裏找到車輛?你有沒有嘗試級聯分類器? –

+0

不,我沒有使用這些建議。而且我甚至不知道該如何說實話。我想檢測一般的運動。不計算汽車或類似的東西。只需檢測運動,然後以特定顏色跟蹤汽車。 –

+0

關於背景減法,請參閱[this](http://docs.opencv.org/3.1.0/db/d5c/tutorial_py_bg_subtraction.html#gsc.tab=0)。特徵檢測的問題在於它適用於查找單個匹配。我試圖玩[這個問題](http://stackoverflow.com/questions/36363397/issue-training-sift-or-surf-for-car-detection-in-video-with-opencv- python),它證明有點棘手。 –

回答

1

看來你正在使用密集的光流。我會建議嘗試一些特徵檢測(衝浪,快速,無論),然後進行稀疏光流跟蹤(從我的經驗來看,它比這項任務的特徵匹配要好)。然後,一旦你有了一些幀的特徵對應,你可以使用基本矩陣,三焦張量,平面+視差或其他方法來檢測運動物體。稍後可以將移動對象聚類到代表不同對象的不同運動組中。

此外,它似乎是你的相機是固定的。在這種情況下,您可以放棄移動檢測步驟,並只考慮具有足夠位移的曲目,然後將其聚類到移動組中。

+0

謝謝你的回答!稍後我會嘗試移動相機。我的第一個想法是使用findHomography來補償相機的移動。它會起作用嗎? –

+0

取決於「平坦」的實際背景。平面+視差遵循此路徑,並且在單應性補償之後,它們獲得所謂的殘差視差。你可以稍後檢查一下,如果這些動作共享一個擴展焦點並按照這個標準分段 – alexisrozhkov

+0

你可以提供一些代碼或教程嗎?我會很感激 。 –