Computer vision project for Nigeria Sign Language gesture recognition.
# Nigerian Sign Language (NSL) Recognition with YOLOv8 and ESP32-CAM
This project recognizes **Nigerian Sign Language (NSL)** hand gestures using an **ESP32-CAM** for data collection and a **YOLOv8** model for training/inference.
A **Flask web app** serves real-time predictions from the trained model.
π **Main Repository:**
github.com
---
## π Project Overview
- π· **Data Collection:** Images captured with **ESP32-CAM** (programmed via **Arduino IDE**).
- π **Annotation:** Labeled with LabelImg/Roboflow in **YOLO format**.
- π€ **Model Training:** Trained a **YOLOv8** model producing `best.pt`.
- π **Deployment:** **Flask** API for real-time hand gesture recognition.
- π― **Goal:** Practical NSL recognition to support accessibility & inclusion.
---
## π Repository Structure
nigeria-signs-language/
βββ app.py # Flask server (inference)
βββ requirements.txt # Python dependencies
βββ README.md
βββ .gitignore
βββ dataset/ # Optional: sample or link to dataset
β βββ train/images/ train/labels/
β βββ val/images/ val/labels/
βββ output/
β βββ nsl_yolo_train2/
β βββ weights/
β βββ best.pt # Trained YOLOv8 weights (provide or link)
βββ templates/ # Flask HTML (if UI is used)
βββ static/ # CSS/JS/assets (if UI is used)
βββ esp32_cam/ # Arduino sketches & notes (data collection)
---
## π requirements.txt (minimal)
flask
ultralytics
opencv-python
numpy
torch
torchvision
---
## π§ Model Path (important)
from ultralytics import YOLO
model_path = r"output/nsl_yolo_train2/weights/best.pt"
model = YOLO(model_path)
---
## π§ͺ Quick Inference (CLI)
yolo predict model=output/nsl_yolo_train2/weights/best.pt source=0
# or
yolo predict model=output/nsl_yolo_train2/weights/best.pt source="sample.jpg"
---
## π― Training
yolo detect train data=dataset/data.yaml model=yolov8n.pt epochs=50 imgsz=640
---
## πDataset/data.yaml
path: ./dataset
train: train/images
val: val/images
nc: 26
names: [A, B, C, D, E, F, G, H, I, J, K, β¦