Я получил скрипт, который играет в простую математическую игру: учитывая математическое уравнение (например, 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 (так что я не думаю, что каждый раз загружается в память)