我試圖用OpenCV和SURF方法實現交通標誌識別器。我的問題是,我得到隨機結果(有時真的很準確,有時顯然是錯誤的),我不知道爲什麼。這裏是我是如何實現的比較:與SURF比較奇怪的結果
- 首先我檢測輪廓我的形象上
- 然後在每一個輪廓,我使用SURF找出如果交通標誌是內部和交通標誌
輪廓檢測工作得很好:使用gaussain模糊和Canny邊緣我設法找到類似這樣的輪廓:
然後我提取對應於該輪廓圖像與我此圖片交通標誌模板圖像進行比較,如這些:
的cvExtractSURF返回189個描述符的輪廓圖像。然後我使用naiveNearestNeighbor方法找出我的輪廓圖像和每個模板圖像之間的相似性。
這裏是我的結果:
189分之6第一個模板(這是一個我期待找到)
189分之92第二模板(這是顯然在各方面的輪廓圖像)
我真的不理解這些結果非常不同......
下面是步驟我每列表形式:
- 打開灰度
- 輪廓圖像轉灰度
- 模板圖像均衡輪廓圖像的直方圖(cvEqualizeHist)
- 調整模板圖像,使其輪廓圖像匹配
- 模糊模板圖像(cvSmooth)
- 模糊的輪廓圖像(cvSmooth)
- 請在模板伊馬一個cvExtractSURF GE
- 輪廓圖像
- 上做一個cvExtractSURF對於每一個描述符Ø輪廓像我做了naiveNearestNeighbor
- 我店的「好」的點數
爲了評估2之間的相似性圖像I使用比率:描述符
數目的goog點/總數
PS:對於信息I,接着這個教程:http://www.emgu.com/wiki/index.php/Traffic_Sign_Detection_in_CSharp
而且使用的OpenCV的find_obj樣品,以使其適應在C.
我知道這是一個古老的答案,但它幫助我避免使用SURF進行圖像匹配應用程序,其中我有類似質感差的圖像。對於這些圖像上的特徵提取和比較的良好通用算法有何建議? – rkagerer 2012-02-05 22:05:43
很好的問題,我也會對這樣的算法感興趣:)(我認爲這會產生一個很好的頂級問題) – Latanius 2012-02-25 14:41:07