Как ускорить простую задачу OCR? - PullRequest
0 голосов
/ 27 марта 2019

Я получил скрипт, который играет в простую математическую игру: учитывая математическое уравнение (например, 1 + 1 = 3), нажимайте кнопку «Истина» или «Ложь» в течение все более ограниченного промежутка времени.

Я использую:

  • PIL для захвата и предварительной обработки экрана (инвертирование)
  • (Py) Тессеракт для OCR

Псевдокод:

while True:
  capture_and_invert_image_with_PIL() # ~0.065+ sec
  read_image_with_pytesseract()       # ~0.100+ sec
  check_math_expression()             # ~0      sec
  click_button()                      # ~0.035+ sec
  wait_for_next_equation()
                                # total ~0.200+ sec

Я обучил пользовательскому языку шрифтов уменьшать процесс распознавания до 0,1 с ~ 0,45 с по умолчанию eng.traineddata и ~ 0,25 с в быстрой версии.

Решения, которые, как мне кажется, могли бы работать, но не принеслинашел любой способ сделать это:

  • Запустить Python на 100% ЦП (в большинстве результатов Google говорится, что многопоточность невозможна для этой задачи)
  • Запустить Tesseract на 100% ЦП
  • Поддерживайте работу Tesseract (так что я не думаю, что каждый раз загружается в память)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...