2012-03-11 151 views
12

我打算編寫一個程序來檢測和區分幾乎固體背景中的某些對象。前景和背景具有高對比度差異,我將進一步增加以輔助對象識別過程。我打算使用Hough變換技術和OpenCV。如何識別圖像中的不同物體?

Sample image

作爲上述圖像中所看到的,我希望單獨識別所述圓形物體和方形對象(或任何其它形狀出一組有限的形狀中的)。由於我對圖像處理相當陌生,因此我不知道這種情況是否需要實施一個神經網絡並預先學習每種形狀。像模板匹配這樣的技術會讓我在沒有神經網絡的情況下做到這一點嗎?

回答

9

如果您打算檢測除圓以外的其他形狀(並根據圖像我假設您是這樣做的),我會建議倒角匹配以便快速啓動,特別是因爲您具有良好的對比度。

的基本前提,簡單來說解釋的,以下:

  1. 您做的邊緣檢測(例如,cvCanny在OpenCV中)
  2. 創建的距離圖像中,每個像素的其中值意味着距離最近邊緣的距離。
  3. 您採用想要檢測的形狀,沿着形狀的邊緣定義採樣點,並嘗試在距離圖像上匹配這些點。基本上,只要將距離圖像上的值添加到採樣點座標「下方」,並給定了對象的特定位置即可。
  4. 找到一個好的最小化算法,這個的有效性取決於你的應用。

這個基本的方法是一個通用的解決方案,通常效果很好,但沒有進一步的進步,它是非常緩慢的。

通常首先分離感興趣的對象是一個好主意,因此您不必總是對整個圖像進行全面搜索。找到一個好的threshold,所以你可以分開對象。你仍然不知道它是哪個對象,但你只需要在這個對象附近進行匹配。

另一個好主意是,不是在高分辨率圖像上進行全面搜索,而是先以非常低的分辨率進行搜索。結果不會很準確,但是您可以瞭解在更高分辨率下搜索的一般區域,因此您不會在沒有任何興趣的地方浪費時間。

有許多更先進的技術,但仍然值得看看基本的倒角匹配,因爲它是大量技術的基礎。