«Board Game Assistant» представляет собой реализацию проекта в рамках зимней школы CompTech School 2022.
- checkers — модуль обработки игры «Шашки» (распознавание игрового поля, предложение наилучшего хода)
- docs — комплект документации по проекту
- gameClassifier — модуль классификации игры на картинке
- tgbot — модуль для взаимодействия с телеграм-ботом
- .gitignore — предотвращение загрузки ненужных файлов в репозиторий
- BoardGameAssistant.py — главный скрипт, соединяющий в себе все модули проекта
- Dockerfile — файл для сборки docker-образа с проектом
- config.json — файл конфигурации (в него вписывается acces token для телеграм-бота)
- tictactoe — модуль обработки игры «Крестики-нолики» (распознавание игрового поля, предложение наилучшего хода)
- carcassone — модуль обработки игры «Каркассон» (распознавание игрового поля, предложение наилучшего хода)
- env.yml — список зависимостей проекта (используется при создании docker-образа)
Маловероятно, что настольные игры потеряют свою актуальность. Ведь настольная игра – это, прежде всего, целый мир, который вмещает в себя особую атмосферу внутри игрового взаимодействия.
Часто новичку сложно понять правила игры, возникают трудности с определением верного хода, а опытному игроку может понадобиться взгляд на игровую ситуацию «со стороны». В таких случаях будет полезен помощник в настольных играх.
Board game assistant — твой персональный помощник в настольных играх, реализованный в формате телеграм-бота, который способен принимать фотографии разложенной настольной игры и давать cоветы по выбору следующего хода.
По фотографии разложенной настольной игры бот:
- определит тип игры и подскажет ее наименование,
- пранализирует игровую ситуацию,
- предложит лучший ход,
- если это конец игры — сообщит победителя и финальные очки.
На данный момент бот обучен следующим играм:
- крестики-нолики;
- шашки;
- каркассон.
Принцип работы Продукта показан на блок-схеме:
Пользователи — люди любого возраста, способные использователь настольные игры и мессенджеры.
- Открыть приложение Telegram;
- Ввести наименование телеграм-бота в строку поиска или воспользоваться ссылкой (наименование телеграм-бота: BoardGameAssistant, ссылка: https://t.me/BoardGameAssistantBot);
- Нажать кнопку «START»;
- Загрузить и отправить фотографию.
Используемые библиотеки:
- fastai==2.5.3
- pygame==2.1.2
- imutils==0.5.4
- opencv-python==4.5.5.62
- seaborn==0.11.2
- python-telegram-bot==13.10
Подробное описание в Руководстве пользователя
Загружаемая фотография должна быть хорошего качества:
- высокое разрешение,
- правильная перспектива (строго вид сверху),
- отсутствие лишних объектов,
- настольная игра полностью в кадре.
Собранный и размеченный датасет с фото настольных игр доступен по ссылке:
- 43 размеченных фото шашек:
- yolo bounding box format
- 4 класса - белые/чёрные, пешка/дамка
- 10 685 размеченных фото настольных игр:
- 24 класса - различные настольные игры
- 217 размеченных фото каркассона:
- yolo bounding box format
- 2 класса - тайл и мип
- 448 размеченных тайлов каркассона:
- 24 класса - различные тайлы
Георгий Шушуев — куратор, Product Owner
Роман Титков — капитан, ML Engineer, DevOps
Владимир Парначев — зам. капитана, ML Engineer
Ирина Мальцева — ML Engineer
Ринат Шаймухаметов — ML Engineer
Софья Щипцова — Data Engineer
Георгий Корченко — Data Engineer
Ольга Бучкина — технический писатель