Подтвердить что ты не робот

Tesseract Полученные данные

Я пытаюсь извлечь данные из reciepts и счетов, используя Tessaract, использую версию tesseract 3.02.

am использует только английские данные, но точность вывода составляет около 60%.

Есть ли какие-либо подготовленные данные, которые я просто заменю в папке tessdata​​p >

4b9b3361

Ответ 1

Это изображение nicky, представленное как "типичный примерный файл":

typical example file

Глядя на это, я бы сказал: "Забудь об этом, ник! Ты не можешь обучить Тессеракта распознать 100% текста из этого типа изображения!"

Тем не менее, вы могли бы тренировать себя, чтобы делать лучшие фотографии с помощью вашего iPhone 3GS (что устройство, которое использовалось для примерных изображений) из такого типа квитанций. Вот несколько советов:

  • Не используйте темный фон. Вместо этого используйте белый цвет.
  • Не позволяйте бумаге получения рассыпаться. Выпрямите его.
  • Не размещайте расписку на неровном подполье. Закрепите его на ровной поверхности:
    • Либо поставьте его на белый лист бумаги и нанесите на него валик для стекла.
    • Или используйте некоторый клей и приклейте его на белом листе бумаги без каких-либо изгибов или углов.
  • Не используйте низкое разрешение, например, 640x480 пикселей (как показано на примере). Используйте более высокий, например 1280x960 пикселей.
  • Не используйте стандартную экспозицию. Установите для камеры чрезвычайно высокую контрастность. Вы хотите, чтобы буквы были черными, а белый фон был действительно белым (вам не нужны серые картинки).
  • Попробуйте сделать так, чтобы любой символ шрифта 10-12 pt использовал высоту около 24-30 пикселей (т.е. чтобы изображение было около 300 dpi для 100% увеличения).

Тем не менее, что-то вроде следующей команды ImageMagick, вероятно, в некоторой степени увеличит скорость распознавания Tesseract:

convert                               \
   http://i.stack.imgur.com/q3Ad4.jpg \
  -colorspace gray                    \
  -rotate 90                          \
  -crop 260x540+110+75 +repage        \
  -scale 166%                         \
  -normalize                          \
  -colors 32                          \
   out1 .png

Он производит следующий вывод:

ImageMagick optimization for OCR

Вы можете добавить что-то вроде -threshold 30% в качестве последней опции командной строки в команду выше:

enter image description here

(Вы должны немного поиграть с некоторыми изменениями значения 30%, чтобы настроить результат... У меня нет времени для этого.)

Ответ 2

Получение точной информации из квитанции не является невозможным с помощью tesseract. Вам нужно будет добавить фильтры изображений и некоторые другие инструменты, такие как OpenCV, NumPy ImageMagick вместе с Tesseract. В PyCon 2013 состоялась презентация Franck Chastagnol, где он рассказал о том, как его компания сделала это.

Вот ссылка: http://pyvideo.org/video/1702/building-an-image-processing-pipeline-with-python

Ответ 3

Вы можете получить гораздо более чистое пост-обработанное изображение, прежде чем использовать Tesseract для вывода текста. Попытайтесь использовать метод порогового значения фоновой поверхности (BST), а не другие простые методы определения пороговых значений. Вы можете найти техническую документацию по теме здесь.

Существует реализация BST для OpenCV, которая работает довольно хорошо fooobar.com/questions/247608/...

Ответ 4

Мне нужно точно то же самое, и я попытался оптимизировать изображения для улучшения вывода

вы можете найти мой эксперимент с tessaract здесь

https://github.com/aryansbtloe/ExperimentWithTesseract