2011-02-16 74 views
1

我正在實施一個古老的硬幣識別系統。我使用輪廓檢測​​來提取硬幣的特徵。我想用SVM來訓練圖像。功能提取和分類

我的問題是如何將這些功能提供給SVM?我知道我必須將這些功能保存到一個文件中,然後該文件應該輸入到SVM中。但是,我不知道如何將功能保存到文件中。

將要素保存到文件意味着保存圖像中輪廓的數量,每個輪廓的x,y,寬度和高度是否正確? 有人可以幫我嗎?我在這裏呆了兩個月。不過,我找不到解決方案。 將功能保存到文件後,我是否也必須將硬幣名稱也提供給相同的文件或另一個文件?

感謝您的幫助了很多。

Nadeeshani

回答

0

它是您使用取決於什麼計算機視覺/圖像處理庫。例如,OpenCV的內置功能SVM:

http://opencv.willowgarage.com/documentation/cpp/support_vector_machines.html

,所以你甚至不必導出功能。但LIBSVM(http://www.csie.ntu.edu.tw/~cjlin/libsvm/)具有更多的綁定,例如,也適用於Matlab。

至於如何將特徵提供給SVM ......大多數分類器(包括SVM)的輸入是一個多維矢量,所以你可以得到一個例如連接前10個xy寬度高度的元組。然而,這種天真的解決方案不太可能奏效,因爲如果你改變元組的順序(或者你旋轉硬幣以使x-y座標改變),你將得到完全不同的向量。因此,請嘗試組成硬幣圖像 - >添加旋轉/移動/噪音時不會改變的特徵矢量映射。 (第二個想法:按大小排序的特徵,前5-10個,用一些形狀描述符而不是簡單的寬度/高度可能?)

硬幣名稱在這個階段大多不相關,使用1-N編碼進行SVM輸出。

+0

非常感謝您的信息。我正在使用matlab。我正在嘗試神經網絡而不是svm。 – 2011-03-13 08:48:35