2011-11-01 53 views
2

我正在嘗試創建一個按運動排序的運動組件的有序列表。例如,在街景相機中,我首先需要車輛,然後是自行車,其次是行人。這可能在Emgu中使用MotionDetector示例嗎?按速度排序運動組件(使用Emgu進行運動檢測)

if (motionPixelCount < comp.area * 0.05) continue; 

這似乎是某種閾值,但motionPixelCount究竟意味着什麼?這是否可以代表運動部件的速度/速度?還是其他什麼東西? 它正在與組件區進行比較。

tl; dr:如何確定運動分量相對於其他物體的速度/速度?

回答

2

井的功能產生motionPixelCount是如下總結:

public void MotionInfo(Rectangle motionRectangle, out double angle, out double motionPixelCount); 
    // 
    // Summary: 
    //  Given a rectagle area of the motion, output the angle of the motion and the 
    //  number of pixels that are considered to be motion pixel 
    // 
    // Parameters: 
    // motionRectangle: 
    //  The rectangle area of the motion 
    // 
    // angle: 
    //  The orientation of the motion 
    // 
    // motionPixelCount: 
    //  Number of motion pixels within silhoute ROI 

它是由該組motionRectangle的ROI的已移動內檢查的像素的量的閾值。這可以防止數十億個結果在1或2個像素似乎已經移動。但是,通過設置更準確的ROI到車輛的位置,您可以刪除此閾值,因爲您知道不太可能存在您不在意的隨機小動作。

我們可以使用這些數據來計算檢查組件的速度和速度,但我們需要一些特定的數據。我們需要知道在特定距離處物體的像素對真實世界的測量。我在answer to this question中詳細討論了這個特殊問題。如果我們知道被跟蹤物體的大小並且距離攝像機很近,這很容易,但通常情況並非如此。

如果我們有一個固定距離的物體,那麼我們可以用真實世界的術語粗略地取對象的面積,並將其除以物體所佔的像素面積。這比執行FOV計算更容易,因爲它不需要精確的距離測量,但是可以計算出物體的面積越精確,跟蹤結果就越精確。如果我們得到那麼這pixel_per_mm測量:

該功能爲您提供了整體的運動距離:

double overallAngle, overallMotionPixelCount; 
_motionHistory.MotionInfo(motionMask.ROI, out overallAngle, out overallMotionPixelCount); 

因此:

速度=(overallMotionPixelCount * mm_per_pixel_mesurment)/ Time_Between_Frames

如果我的物理學速度仍然很快,速度與速度不一樣,並且需要你隨着時間的推移跟蹤物體,我認爲你剛好在速度之後,但大概是:

速度=(overall_distance_moved mm_per_pixel_mesurment)/(Sum_of_frames_Tracked幀頻)

或:

速度=(overall_distance_moved * mm_per_pixel_mesurment)/(Time_object_was_tracked_for)

總之這可以儘管如此,這很困難,也是爲什麼不同的技術如Sonar或Infra-red被用來精確跟蹤速度的原因。

一個有趣的例子至少在英國是使用彩繪線條和速度相機。這些線之間的距離必須在特定測量值的5mm以內,然後根據這些參考值計算車輛的速度(通過同一輛車的兩張圖片)。這是提供圖像深度數據的作弊方式。這些正在被聲納類型取代,就好像這些線不在規定的5mm距離內一樣,速度無法準確測量,也無法在法庭上站起來。

好吧我想知道那裏有一點,但除非你在一個已知的距離和已知的大小跟蹤對象,你不能得到沒有一些深度數據的速度或速度,從一個特定的相機,如動力學或從兩臺相機中分離出一個已知的距離。 (請注意,如果您知道相機行進的距離並且沒有旋轉,則可以使用一個相機和兩個相框來完成此操作)。

我希望這可以幫助你,

乾杯,

克里斯