2012-10-10 57 views
3

我想提取視頻幀中的幾個移動對象,並將它們提取爲前景。數據來自video frames在變化的光照條件下進行多種移動物體檢測。

目前的問題是:燈光在變化,所以有些陰影或比實際背景更亮的部分。這導致通過背景分割方法的假背景/前景提取OpenCV MoG。爲此,我還沒有得到任何直接的方法,但有一個這樣的想法:如果我可以提取前一幀中那些移動對象的邊緣,那麼也許我可以使用算法在SIFT中跟蹤它們下一幀,看看它們在哪裏,並將它們視爲前景。

我覺得在這種情況下,光線的變化不會影響結果。如果我對這一點,那麼我的問題是:

我怎樣纔能有效利用OpenCV邊緣檢測這些移動物體?如果我需要在OpenCV中使用SIFT算法,它是免費的嗎?從網絡上,我看到它不是自由的,對嗎?

我的第二個問題是:沒有人有更好的想法嗎?

謝謝。

+0

你可以考慮一個更簡單的邊緣檢測器(索貝爾,拉普拉斯等)。 – CookieOfFortune

+0

@CookieOfFortune:謝謝你的回答。問題是,如何從背景中確定其他邊緣中的運動物體邊緣,然後在SIFT等中對其進行跟蹤,尤其是在光線條件發生變化的情況下。你有什麼主意嗎? –

+2

你知道關於你嘗試識別的對象(顏色,形狀等)嗎? – ArtemStorozhuk

回答

3

如果你想做人體檢測/跟蹤,你應該尋找研究論文或項目正是這一點。有很多的話,你甚至會發現這裏有關的SOF該主題的一些問題:

How can I detect and track people using OpenCV?(也許過時)

single person tracking from video sequence

How to do motion tracking of an object using video?

此外,有幾個如SIFT及其更新的替代品(SURF,ORB,FREAK - 僅舉一些在OpenCV中實現的名稱)的特徵檢測器/描述符的問題:

Are there any fast alternatives to SURF and SIFT for scale-invariant feature extraction?

OpenCV for ANDROID image compare

說得簡單,過篩不是一個算法來跟蹤移動物體,它是能夠檢測到在某種程度上獨特和強大的幾個失真(平移,旋轉,縮放圖像區域.. )。意思是,相同的功能可以在以後在不同的圖像條件下檢測到。您確實可以使用類似SIFT的算法來識別對象,但也許對於人員跟蹤有更好的選擇。 對於那些圖像區域,您可以應用一些跟蹤算法,例如光流,但對於人體跟蹤更具體。

SIFT和SURF是「自由」可用OpenCV的,但其中的部分專利技術使人們避免讓他們感受到,因爲這些專利的未來沒有問題,使用它們 - 這是他們在那裏移動到的原因「非自由「的OpenCV模塊。

除了您提到的燈光問題,您還會遇到的其他問題有:物體遮擋以及進入 - 退出場景的人員。

+0

謝謝你的回答。我會仔細閱讀你給出的這些鏈接和光線變化條件下的物體遮擋。 –

2

我知道你已經接受了瑞的回答,但經過一些谷歌搜索之後,我找到了另一個解決方案來解決你的問題 - 它是HOG Descriptor

不幸的是,我對這個描述符並不熟悉,所以我不能幫你實現,但是,再次,谷歌搜索後,我發現這個描述符是used for pedestrian detection

查看this人體檢測代碼。

+0

尊敬的阿斯特,非常感謝您的回答。我會看看他們。帶着敬意。 –

+1

我剛剛提到HOG,但不確定:)這裏是一個鏈接,談論HOG:http://answers.opencv.org/question/711/human-detector-using-haar-cascades-has-too-many/ –