[英]How to improve handwritten text recognition using pytesseract in small image?
我想使用pytesseract
庫進行手寫文本識別,以讀取平均尺寸為 43 * 45 像素的圖像中的數字字符。 以下示例圖像:
預期結果:
9
1
4
我想從圖像中獲取單個數字字符。
我在下面嘗試過這段代碼
import pytesseract
# loop through images
print(pytesseract.image_to_string("text.jpg", config='--psm 10 --oem 3 -c tessedit_char_whitelist=0123456789'))
但真正的結果,我得到的准確率不到 50% 甚至更低,有些數字讀得很好,有些數字在單個圖像中讀取了 2 個字符,有些沒有讀。
當我刪除-c tessedit_char_whitelist = 0123456789
配置時,我得到字符4
、 \
和字母g
。
如何使 Pytesseract 將圖像視為唯一的單個數字字符,而不是使用仍將文本讀取為字母數字的白名單?
PS:我知道 OCR 不能 100% 准確。 至少可以提高准確性。
根據此 GitHub 問題,tesseract 4.0 不支持 LSTM model 的白名單字符。 您可以通過將 Tesseract 升級到 4.1 版本而不是使用舊版 model(即--oem
標志)來解決此問題。
或者,您可以嘗試使用Robert Harris在此答案中提出的標志config='digits'
來強制您的 pytesseract 只返回數字。
這篇博客文章建議創建一個 python function,它使用一個簡單的正則表達式來提取所有數字,而不是使用幾個標志和版本來處理。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.