Git Product home page Git Product logo

scrabble_assistant's Introduction

Scrabble assistant

Распознавание доски и получение подсказок по фотографии в настольной игре Эрудит (Scrabble)

Фото

Подготовлен детальный разбор принципа работы программы:

Пример и принцип работы приложения

Необходимые пакеты:

Весь список в requirements.txt. Установить одной командой:

pip install -r requirements.txt

Что сделано/не сделано

  • Есть:
    • Обрезка доски по внешнему и затем внутреннему контуру
    • Подготовка ячеек доски к дальнейшему использованию
    • Тренировка и распознавание
    • Алгоритм поиска подсказок
    • Приложение для десктопа
  • Нет:
    • Алгоритмы для звёздочки
    • Вывод значений найденных слов

Как с этим работать

Подготовка датасета (preprocessing/dataset.py)

Для начала необходимо собрать фотографии доски с фишками, расставленными по алфавиту следующим образом:
Доска для датасета

От количества сделанных фотографий будет зависит качество предсказаний модели.

Далее помещаем эти фотографии в одну папку, указываем путь до неё в IMAGES_TO_CUT_PATH и запускаем скрипт. Результат окажется в папке, указанной DATASET_PATH. В CV/scan.py IMG_SIZE настраиват размер фишек для датасета.

Тренировка (preprocessing/model.py)

Разархивировать датасет в проект. Сейчас используется путь ../ML/dataset. Путь указывается в DATASET_PATH, запускаем и ждём результат(до 3 минут).

Загрузка нового словаря

Выбор словаря происходит в scrabble_assistant.py DICTIONARY_FILE_PATH Для нарезки словаря на подсловари разных размеров используется функция нарезки prepare_frequency_dictionaries() в preprocessing/dictionary.py В массиве sizes указываются размеры желаемых словарей. Изначальный словарь со всеми существительными лежит в resources/dictionaries/nouns.txt (13877 слов)

Настройка

В приложении имеются параметры для настройки:

  1. _hint_amount - кол-во выводимых подсказок (может быть меньше, но не больше указанного значения)
  2. _asterisk_active - включение/выключение возможности выбрать фишку * (звездочка)
  3. _console_output - включение/выключение вывода информации в консоль

Тестирование

Для тестирования подготовлен архив. Он расположен в archives/test_images.rar.

Приложение (app.py)

Запускаем приложение, загружаем фотографию доски. Выбираем фишки и жмём "Найти". Подсказки будут выведены на изображении игрового поля, рядом с ними указана ценность.

scrabble_assistant's People

Contributors

ex10se avatar mtovts avatar riordanfols avatar sergeyberhov avatar

Stargazers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.