| --- |
| license: cc-by-4.0 |
| library_name: ultralytics |
| pipeline_tag: object-detection |
| tags: |
| - yolo |
| - object-detection |
| - tic-tac-toe |
| --- |
| |
| # Tic-tac-toe Cell Detector (YOLOv8n) |
|
|
| ## Overview |
| - YOLOv8n model that detects occupancy per 3x3 cell (empty / white_circle / black_cross). |
| - Output: bounding boxes and classes for 9 cells. The included script can overlay cell indices and labels on the image. |
| - Intended input: top-down tic-tac-toe board images (matching this repo's synthetic/real data distribution). |
|
|
| ## License |
| - Model weights: CC-BY-4.0 |
| - Code: AGPL-3.0 (per Ultralytics dependency) |
| - Source code for data generation/training/inference: https://github.com/guren-kaina/AMD_Robotics_Hackathon_2025_ProjectTemplate/tree/main/mission2/code/tic_tac_toe_overlay |
| |
| ## Usage |
| ```bash |
| pip install ultralytics |
| python - <<'PY' |
| from ultralytics import YOLO |
| model = YOLO("models/train/weights/best.pt") # weights from this repo |
| res = model("your_input.jpg", imgsz=640, conf=0.25) |
| print(res[0].boxes.cls, res[0].boxes.xyxy) |
| res[0].save(filename="overlay.jpg") # visualization |
| PY |
| ``` |
| - Class IDs: 0=empty_cell, 1=white_circle_cell, 2=black_cross_cell |
| - The included `main.py` runs preprocessing, cell index drawing, and JSON export. |
| |
| ## Training data |
| - Synthetic: gray background + white grid, includes low contrast/blur/noise and O/X distractors. Default generation train 1000 / val 200. |
| - Real: `real/images` and YOLO-format labels `real/labels` (no PII). |
| |
| ## Training setup |
| - Base: Ultralytics YOLOv8n |
| - Image size: default 640 |
| - Epochs: default 20 |
| - Options: `--preprocess-train` for contrast augmentation, `--real-data` to mix real data into training |
| - Weights saved to `models/train/weights/best.pt` |
| |
| ## Limitations and notes |
| - Accuracy may drop with oblique views or extreme lighting. |
| - Only 3 classes; out-of-board objects or different token shapes are unsupported. |
| - For new domains, re-label and retrain. |
| |