2017-04-17 113 views
8

我很好奇我如何能夠更可靠地識別價值和撲克牌圖像的套裝。這裏有兩個例子:tesseract可以訓練非字體符號嗎?

enter image description here enter image description here

有可能是在圖像的一些噪音,但我有一個大的數據集,我可以使用訓練圖像的(大約10K的PNG文件,包括所有值&套) 。

如果我使用哈希方法進行已知精確匹配,我可以可靠地識別手動分類的圖像。但是由於我基於內容對圖像進行散列處理,因此最輕微的噪聲會改變散列並導致圖像被視爲未知。這正是我期望通過進一步自動化可靠解決的問題。

我一直在檢討培訓正方體3.05文檔: https://github.com/tesseract-ocr/tesseract/wiki/Training-Tesseract#automated-method

可以正方體只用字體中的圖像進行培訓?還是我可以用它來識別這些卡片的套裝?

我希望我可以說這個文件夾中的所有圖像都對應於4c(例如上面的示例圖像),並且tesseract會在該圖像的任何未來實例中看到相似性(無論噪聲如何),並且還會讀取作爲4c。這可能嗎?有人在這裏有經驗嗎?

回答

0

這是我的非tesseract解決方案,直到有人證明有更好的方法。我設置:

讓這些來運轉是最難的部分。接下來,我用我的數據集來培訓一個新的咖啡網絡。我準備我的數據集到一個單一的深度文件夾結構:

./card 
./card/2c 
./card/2d 
./card/2h 
./card/2s 
./card/3c 
./card/3d 
./card/3h 
./card/3s 
./card/4c 
./card/4d 
./card/4h 
./card/4s 
./card/5c 
./card/5d 
./card/5h 
./card/5s 
./card/6c 
./card/6d 
./card/6h 
./card/6s 
./card/7c 
./card/7d 
./card/7h 
./card/7s 
./card/8c 
./card/8d 
./card/8h 
./card/8s 
./card/9c 
./card/9d 
./card/9h 
./card/9s 
./card/_noise 
./card/_table 
./card/Ac 
./card/Ad 
./card/Ah 
./card/As 
./card/Jc 
./card/Jd 
./card/Jh 
./card/Js 
./card/Kc 
./card/Kd 
./card/Kh 
./card/Ks 
./card/Qc 
./card/Qd 
./card/Qh 
./card/Qs 
./card/Tc 
./card/Td 
./card/Th 
./card/Ts 

在數字,我選擇:

  1. 數據集選項卡
  2. 新的數據集圖像
  3. 分類
  4. 我就指着我的卡文件夾,例如:/ path/to/card
  5. 根據此處的討論,我將驗證%設置爲13.0%:https://stackoverflow.com/a/13612921/880837
  6. 創建數據集後,我打開模型選項卡
  7. 選擇我的新數據集。
  8. 在標準網絡下選擇GoogLeNet,並將其留給培訓。

我這樣做了幾次,每次我在數據集中都有新圖像。每個學習會議上花了6-10小時,但在這個階段,我可以用我的caffemodel以編程方式估算一下每一個圖像預期是,使用這種邏輯: https://github.com/BVLC/caffe/blob/master/examples/cpp_classification/classification.cpp

的結果要麼是一個卡(2C,7H,等等),噪音或表格。任何精度大於90%的估計最可能是正確的。最新的運行正確識別了400張圖片中的300張,只有3個錯誤。我將新圖像添加到數據集並重新訓練現有模型,進一步調整結果精度。希望這對其他人有價值!

雖然我想要的高級步驟在這裏,這是所有大感謝大衛·漢弗萊和他的github上後做,我真的建議閱讀它,並嘗試它,如果你有興趣瞭解更多:https://github.com/humphd/have-fun-with-machine-learning

相關問題