1

我正在開發一個名爲ATCS(自動交通控制系統)的項目,它將根據交通信號燈前的車輛數量修改交通燈持續時間。基於BackgroundSubtractor的車輛計數MOG

我使用openCV和backgroundsubtractorMOG來檢測車輛,它在車輛移動時成功運行,但是當紅色信號打開時,所有車輛都是不可數的。當然,這會使我的軟件無法工作。

到目前爲止,我知道BACKGROUNDubtractorMOG是最好的解決方案,因爲這個系統在很多天氣,光照強度等方面的工作。它會比較當前幀和前一幀,因此移動對象被檢測爲前景(CMIIW)。所以那輛已經移動並停下的車輛怎麼樣 - 因爲交通信號燈的紅燈亮着,並且迫使司機停下車子?它仍會被檢測爲前景物體嗎?

所以我想問一個最合適的算法。如何計算車輛在移動時的車輛數量,以及車輛由於紅色信號而停止移動時 - 它仍然被檢測爲車輛。

謝謝:)

回答

1

如何更新背景?由於照明條件(雲層,白天,夜晚,黃昏,天氣)的變化,您無法保持統計數據,但是如果您仍然知道背景的外觀,那麼仍然可以檢測到停止的汽車的存在,那就是如果汽車不在那裏的話。 如果在圖像中汽車沒有通過的區域,可以使用它來了解照明條件是否正在改變。

哪個是您的車輛視角?有可能將Viola Jones探測器與KLT跟蹤器相結合,您可以獲得更好,更通用的結果。

+0

當然是的,背景總是變化取決於天氣,所以我用統計的方法,我將不檢測罷車輛(停放),但是車輛已經移動並停下來,就像當你開車時一樣,如果紅燈亮着,那麼你會停下你的車。 –

+0

我把相機放在交通燈上,所以它抓住車輛的前部。 –

1

如果減去背景對你的作品(如你所說),我會嘗試添加另一個背景模型。然後,您可以執行背景減法兩次,一次用於前一張圖像(適用於所有移動物體),一次用於檢測所有停止的車輛(以及移動的車輛),但對於不同的照明條件可能有一些缺點。

你可以看看ViBeGaussian-Mixture-Models創建這些背景模型。

另一種方法是引入一些跟蹤機制,正如Antonio已經提到的那樣。一旦通過背景減法檢測到車輛(只有移動的物體會出現在圖像中),您將開始追蹤,並且即使它們沒有再次被檢測到(因爲它們不移動),您也會知道它們在那裏。 因此,您需要一種不是「通過檢測進行跟蹤」的跟蹤方法,而是一些其他方法。我會推薦卡爾曼濾波器或粒子濾波,或者可能是平均值偏移跟蹤。

編輯:通常用於車輛檢測的一種方法,它類似於背景減除技術Local Binary Patterns (LBP)