這個問題困擾了我很長一段時間。基本車輛計數程序包括:1.識別車輛。 2.通過功能跟蹤車輛。然而,如果在時間t發現車輛#1,則在t + 1時程序開始追蹤車輛,但是#1也可以通過識別過程找到,然後t + 2程序將兩個車輛跟蹤,但實際上只是框架中的一個#1。公認的車輛如何避免重複檢測?使用opencv跟蹤車輛軌跡
在此先感謝!
這個問題困擾了我很長一段時間。基本車輛計數程序包括:1.識別車輛。 2.通過功能跟蹤車輛。然而,如果在時間t發現車輛#1,則在t + 1時程序開始追蹤車輛,但是#1也可以通過識別過程找到,然後t + 2程序將兩個車輛跟蹤,但實際上只是框架中的一個#1。公認的車輛如何避免重複檢測?使用opencv跟蹤車輛軌跡
在此先感謝!
如果我理解正確,則擔心檢測到您已跟蹤的對象(缺少檢測器/跟蹤器通信)。在這種情況下,您可以:
有幾種可能的實現方式。
面膜。創建一個二進制掩碼,其中靠近被跟蹤對象的區域被「標記」(例如,在跟蹤對象附近的區域和其他地方的零區域)。給定這樣一個掩碼,在檢測到特定位置之前,您可以快速檢查是否有某個事件正在被跟蹤,並放棄檢測(預檢方法)或刪除檢測到的對象,如果堅持使用後檢查的方法。
蠻力。計算特定位置與每個跟蹤位置之間的距離(您也可以檢查重疊區域和其他特徵)。然後,您可以丟棄與已經跟蹤的對象太接近和/或類似的檢測。
讓我們考慮哪種方式更好(以及何時)。
面膜需要O(ñ)操作所有跟蹤的對象添加到面具和O(中號)操作來檢查所有感興趣的位置。這是O(Ñ + 中號)= O(MAX(Ñ,中號)),其中Ñ是跟蹤對象的數量,M是檢查位置(檢測到的物體,例如數)。哪個號碼(N或M)將取決於您的應用程序。額外的內存也需要保存二進制掩碼(通常它不是很重要,但它又取決於應用程序)。
蠻力需要O(Ñ * 中號)操作(每種中號位置抵靠Ñ候選選中)。它不需要額外的內存,並允許在檢查過程中執行更復雜的邏輯。例如,如果對象在一幀內突然改變大小/顏色/任何內容 - 我們可能不應該跟蹤它(因爲它可能是一個完全不同的遮擋原始對象的對象),而是執行其他操作。
綜上所述:
如果您正好需要的東西其間的 - 你必須在面膜更有創意,要麼編碼對象屬性不知何故(達到恆定的查找時間),或使用更復雜的數據結構(加快「蠻力「搜索)。