2013-10-05 32 views
1

曲目編號標記我如我以前在這個問題上的圖像具有幀的視頻。在視頻

How do we detect points from a picture with a particular color on those points

我檢測這些標記和編號它們如圖所示下面給出的圖像中:

Marker Data

我的問題如下。當我在一幀中檢測到標記後,我需要在另一幀中檢測它們,並找出標記已從其之前的位置移動了多少。然而,在第二幀上再次使用我的代碼時,有時候我在某些幀中會在標記中得到不同的編號,因此我無法從一個圖像跟蹤標記到另一個圖像。同時檢測每個圖像中的標記也是一項麻煩的任務,並且花費大量時間來處理大約200幀的視頻。

如何在圖像上追蹤這些標記以便知道特定標記在幀之間移動了多少或簡單地如何編號這些標記以使編號永遠不會改變即編號爲60的標記仍然是來自標記編號60的標記1幀到200幀

作爲一個方面的問題是有辦法實際上降低了處理時間,使得我沒有檢測各面部和眼睛,每一幀(請參見給出的圖像在我之前的問題中的鏈接使事情變得更加清晰)。

回答

1

我的問題如下。我已經檢測到一個幀標記之後,我 需要檢測它們在另一個框架並找出多少標記 已經從先前的位置移動。但是在第二幀上再次使用我的代碼 我有時在某些幀得到標記之間的不同 編號,因此我無法從 一個圖像跟蹤標記到另一個。此外,檢測每個圖像中的標記變成繁瑣的任務,並且花費大量時間來處理具有大約012幀的視頻。

如何跟蹤這些標記過的圖像,以便知道多少 特定標記已幀之間移動或只是我怎麼能說出數字 這些標記使得編號不會改變即,標記 編號60保持標記編號60從第1幀到第200幀。

也許考慮使用光流技術 - http://robotics.stanford.edu/~dstavens/cs223b/

或者嘗試將你的點雲成更小的部分,比檢測輪廓。您可以將使用線或通過使用這個簡單的想法(沒有測試或分析)它:

  1. 查找您的點雲的所有點(http://en.wikipedia.org/wiki/Convex_hull_algorithms)的凸包。
  2. 邊界上的點是在一個組中。
  3. 在處理來自點2的組中的點之後,刪除它們。
  4. 轉到第1點。

作爲一個方面的問題是有實際減少處理時間,這樣我就不必檢測每幀

很少有 的臉和眼睛的方式簡單的事情,你可以做,以減少處理時間:

  • 在處理每個幀期間不加載haar級聯 - 在從相機/視頻文件開始獲取幀之前只加載一次。
  • 如果需要在每個幀中只找到一個面,請使用CV_HAAR_FIND_BIGGEST_OBJECT標誌 - 搜索將僅返回一個(最大)對象。它應該更快,因爲搜索將從最大的窗口開始,另外當哈爾檢測器找到一個對象時,它將中止搜索並返回該對象。
  • 發揮與參數和檢查不同級聯
  • ,一旦你發現臉上幀數n比幀數n+1不執行全幀搜索 - 擴大矩形:其中你發現臉上n幀,只在這個搜索展開的矩形。你應該擴展多少?這取決於用戶能夠以多快的速度移動頭部;)50%是寬容,但也很慢。最好的選擇是自己找到這個值。
  • 如果你的圖像變化不大,你可以在大多數幀中跳過檢測臉部,並假設它與前一幀的位置相同 - 只要檢查幀是否有很大變化。最簡單的方法是Motion detection using OpenCV(正如作者所提到的 - 對減法結果使用二進制閾值來忽略由於噪聲而發生的變化是個好主意)。我在我的BSc論文(Eyetracking系統)中使用了這種方法,它運行得非常好,並且提高了整個系統的速度。注意 - 最好強制使用正常(使用哈爾級聯)搜索(我已經決定每3幀做一次,但你可以嘗試減少搜索次數) - 它可以讓你避免出現使用的照相機已移到照相機區域外,系統沒有注意到它。
+0

感謝您關於加快cyriel流程的建議。事實上,其中一些我已經申請:P 關於跟蹤標記請看看這個問題,並告訴我是我的方法錯誤? http://stackoverflow.com/questions/19254127/check-if-a-point-lies-inside-a-rectangle/19254680?noredirect=1#comment28589688_19254680 – Sohaib