Skip to content

Borishkof/TenukiGo

Repository files navigation

GOGAME DETECTION

Developed with the software and tools below

TensorFlow Flask numpy opencv-contrib-python opencv-python opencv-python-headless scikit-learn sente sgf ultralytics


Table of Contents


📍 Overview Year 1

This project is a part of the engineering curriculum in the french engineering school IMT Atlantique (Brest), specifically "UE Projet Commande Entreprise". It is dedicated to the development of a program capable of recognizing a game board, its stones and their respective positions within a go game context from a video stream. The primary problem that our project tackles is the detection of the game setup at different angles without the need to set the camera at a fixed configuration. This capability allows for flexibility in changing the camera's angle or position, as well as adjusting the game board's placement during the course of the game. This stands as a distinctive feature compared to many existing solutions.

Key Highlights:

  • Real-time Game recognition: Capable of detecting key components of a go game using a custom trained Yolov8 model.
  • Game management: Capable of streaming and visually reproducing a Go game with or without respecting the Go game rules.
  • SGF: Capable of saving an SGF file of the streamed game for later use.
  • .
  • Intuitive Visualization: An interactive user interface has been developed on the base of this project. The interface takes the form of a website which works only locally.

📍 Overview Year 2

In Year 2, the GoGame-Detection project was enhanced by adding new features to improve reliability, accuracy, and autonomy. We focused on refining the detection process and introducing a post-treatment phase to correct errors after the game ends.

Key Highlights:

  • Transparent Mode: Introduced an updated transparent mode for real-time game board detection without blocking rules.

  • Post-treatment Algorithms and AI: Added AI-based post-treatment functions to automatically correct detection errors after the game, improving the system’s autonomy and accuracy (Post_treatment_AI) Added also algorithm-base and hybrid-based post-treatment functions (Post_treatment_Algo)


📂 Repository Structure

├── Annex
├── Go-Game-Streaming-WebApp-main
├── GoBoard.py
├── GoGame.py
├── GoVisual.py
├── Historique_test_js.html
├── Post_treatment_AI
│   ├── Code
│   │   ├── Fill_gaps_model.py
│   │   └── modelCNN.keras
│   ├── Notebook Model.ipynb
│   └── Test
├── Post_treatment_Algo
│   ├── Code
│   │   ├── corrector_noAI.py
│   │   ├── corrector_withAI.py
│   │   └── sgf_to_numpy.py
│   └── Test
├── README.md
├── empty_board.jpg
├── historiquejs.js
├── main.py
├── model.pt
├── recup_os.py
├── requirements.txt
├── static
└── utils_.py

🚀 Getting Started

Dependencies

The code is runnable under Python3.10 (and not more recent versions for now). Please ensure you have the following dependencies installed on your system:

ℹ️ TensorFlow (version 2.17.0)

ℹ️ Flask (version 3.1.0)

ℹ️ numpy (version <2)

ℹ️ opencv-contrib-python (version 4.8.1.78)

ℹ️ opencv-python (version 4.10.0.84)

ℹ️ opencv-python-headless (version 4.10.0.84)

ℹ️ scikit-learn (version 1.6.0)

ℹ️ sente (version 0.4.2)

ℹ️ sgf (version 0.5)

ℹ️ ultralytics (version 8.0.206)

🔧 Installation

  • Cloning the Repositories:

If you are working with GoGame-Detection repository:

  1. Clone the GoGame-Detection repository:
git clone https://github.com/GoGame-Recognition-Project/GoGame-Detection.git
  1. Change to the project directory:
cd GoGame-Detection

If you are working with TenukiGo repository:

  1. Clone the TenukiGo repository:
git clone https://github.com/Borishkof/TenukiGo.git
  1. Change to the project directory:
cd TenukiGo
  1. Install the dependencies:
pip install -r requirements.txt

🤖 Running the script

python main.py

Return


About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published