Оптимизация самообучающегося игрового бота: поиск альтернативы Tesseract

В рамках учебного проекта для развития навыков программирования я разрабатываю на Python самообучающегося бота с компьютерным зрением. Его задача - автоматически проходить простой двухмерный шутер. Для реализации нейросети используется модель Sequential из библиотеки TensorFlow/Keras. Визуальный модуль работает, однако процесс обучения проходит крайне медленно.

Основная логика обучения построена на системе вознаграждений. Бот получает очки за уничтожение врагов и сбор бонусов, которые отображаются на экране в виде числа. Для считывания этого значения я применял библиотеку Tesseract OCR, преобразуя изображение счёта в числовые данные для дальнейшего расчёта награды.

Ключевая проблема

Использование Tesseract привело к серьёзным утечкам памяти, что негативно сказывается на стабильности и продолжительности работы программы.

Цель и запрос

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

  • Основной вопрос: Какие существуют эффективные методы для прямой регистрации игровых событий, минуя распознавание текста с экрана?
  • Дополнительно: Я осознаю, что описание проблемы может быть недостаточно подробным без фрагментов кода. Готов дополнить вопрос конкретными участками программы, если вы подскажете, какие именно части стоит привести для более точного анализа ситуации.