2015-05-27 113 views
4

SOLUTION數字編號:上的Tesseract OCR

我已經訓練我自己的數據與OCR來試試吧。看來效果很好,但我不知道爲什麼從arturaugusto訓練有素的數據未對我的作品=(

https://github.com/adri1992/Tesseract_sevenSegmentsLetsGoDigital.git

用我訓練的數據,以獲得OCR的好成績,我已經做了這個階段(我和OpenCV的做吧):

  • 首先,將圖像轉換爲黑白色&
  • 二,適用於圖像的高斯模糊
  • 三,適用於圖像的閾值過濾器

由此,識別七段碼位。

問題:

我試圖通過正方體在Android上得到一個OCR,而我與此圖像測試應用(通過Text detection on Seven Segment Display via Tesseract OCR):

OCR test image

我使用arturaugusto(https://github.com/arturaugusto/display_ocr)培訓的數據,但OCR的錯誤結果是:

零被確認爲八,我不知道爲什麼。

我申請到圖像的高斯模糊和閾值過濾器,通過OpenCV的,並且處理的圖像是這樣的:

OCR Image processed

是否有任何其他數據訓練或者你知道任何方式解決問題?

+0

嘿嘿,你的解決方案有任何更新? :-) –

+0

嗨菲利普!我訓練了我自己的數據......試試https://github.com/adri1992/Tesseract_sevenSegmentsLetsGoDigital並檢查我是否適合你。請記住在帖子 – adri1992

+0

的「解決方案」部分中進行所有階段,我設法使用python枕頭處理您的測試圖像並獲得與您的圖像類似的bw圖像,但是當我使用訓練的數據運行tesseract時,它會返回一個空頁面(!)。我不確定我是否正確安裝了訓練數據......我將所有內容都複製到/ opt/local/share/tessdata文件夾中(我在Mac OS X上)。當我運行tesseract --list-langs時,顯示「let」語言。你有什麼建議嗎?順便說一句,你的訓練數據停止將「8」誤認爲「0」(正如你在你的問題中所述)? –

回答

0

嘗試使用侵蝕來填補細分之間的差距。 我認爲問題在於tesseract無法處理好分段字體。

用OpenCV-python,我用cv2.erode(display,kernel, iterations = erosion_iters)來解決這個問題。

+0

是的,我試圖填補各部分之間的差距,但它不適用於我:( 我已經用相同的字體訓練了我自己的數據,現在,我不確切地知道爲什麼,OCR適用於這些新的訓練數據。 在幾分鐘內,我將用解決方案和存儲庫方向更新問題。 非常感謝! – adri1992