2012-07-11 55 views
7

我正在用神經網絡對字母和數字進行簡單識別。到目前爲止,我使用字母圖像的每個像素作爲網絡的輸入。毋庸置疑,這種方法會產生非常大的網絡。所以我想從我的圖像中提取特徵並將它們用作神經網絡的輸入。我的第一個問題是這些字母的屬性對於識別它們是有好處的。第二個問題是如何將這些特徵表示爲神經網絡的輸入。例如,我可能已經檢測到字母中的所有角並將它們作爲(x,y)點的矢量。如何將這個向量轉換成適合於NN的東西(因爲不同的字母的向量大小可能不同)。神經網絡特徵提取

回答

3

很多人已經採取了多種OCR功能。最簡單的是,直接傳遞像素值。

從UCI數據集中提取的OpenCV樣本中有一個字母識別數據。它採用了大約16種不同的功能。檢查這個SOF:How to create data fom image like "Letter Image Recognition Dataset" from UCI

你也可以在其中的一個答案中看到這篇文章解釋這個。你可以通過谷歌搜索。您可能還會喜歡this PPT。它給出了對現在使用的不同特徵提取技術的簡要解釋。

4

這篇文章Introduction to Artificial Intelligence. OCR using Artificial Neural Networks by Kluever (2008)給出了一個關於使用神經網絡的OCR的4種特徵提取技術的調查。他描述了以下方法:

  • 運行長度編碼(RLE):您需要一個二進制圖像(即只有白色或黑色)。二進制字符串可以被編碼成更小的表示。
  • 邊緣檢測:找到邊緣。由於這個原因,你可能會非常粗糙,所以不用返回精確的(x,y)座標,只需在減少的位置出現這樣的邊緣就可以減少矩陣(即,在20%,40%,60%,80%,80% %的圖像)。
  • Count'True Pixels':這將圖像矩陣的width * height的維度降低到width + height。您使用width矢量和height矢量作爲單獨的輸入。
  • 基本矩陣輸入:您已經嘗試過;輸入整個矩陣會給出好的結果,但正如您注意到的那樣可能會導致高維度和訓練時間。您可以嘗試縮小圖像的大小(例如,從200x200到50x50)。
1

如果您有一個非常高維的輸入向量,那麼我建議您應用主成分分析(PCA)去除冗餘特徵並減少特徵向量的維數。