Skip to content

AdityaKr015/Indian-Sign-Language-Detection

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

19 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Indian-Sign-Language-Detection

Frameworks & Libraries:- Python Ultralytics

Platforms:- Roboflow Kaggle

License:- MIT

A College Deeplearning Project that build Sign Detection with Hindi langauge annotation.


πŸ““ Training Notebook

The full model training pipeline can be found here:

Open Notebook


Project Overview

In this project, I built a real-time hand sign detection system which shows Hindi labels with confidence scores using transfer learning (pretrained YOLOv11 model), using a dataset from Roboflow and fine-tuned on the Kaggle platform.

The main goal of this project is to:-

  • Helps to understand the sign langauge in hindi for people who don't know hand sign langauge.

Features

  • Real-time hand sign detection.
  • Bounding Box labeled objects with confidence.
  • Supports classification of 100+ classes.

Implementation

Project implementation started with dataset preparation and ended with real-time detection results. The entire workflow uses Kaggle for training and Roboflow Universe for data preparation.

1. Dataset Integration

  • The dataset was sourced from Roboflow, consisting of 110 classes with Hindi annotations.
  • Each image was annotated with bounding boxes marking the location of objects.
  • The dataset was exported in YOLO-compatible format (with training, validation, and test splits).
  • The dataset was uploaded to Kaggle to load into the Jupyter Notebook for model training.

2. Environment Setup

  • Installed the Ultralytics Library on Kaggle to use YOLO.
  • Set up Dual GPU (2Γ— T4) for training runtime.
  • Model was evaluated on the val data split.
  • Model ran on the test data split to produce bounding boxes with labels and confidence scores.
  • Zipped the output folder for download to local machine.

3. Model Training

Fine-tuned the pre-trained YOLOv11m model from Ultralytics using transfer learning, optimized for real-time performance, speed, and accuracy on dual NVIDIA T4 GPUs.

Training parameters:-

Parameter Value Purpose
Epochs / Batch 200 / 48 Stable convergence, optimized for dual T4 GPU memory
Img Size 640 Γ— 640 Balanced trade-off between detail and inference speed
Optimizer AdamW Momentum 0.9, weight decay 0.0005 for regularization
Learning Rate 0.001 β†’ 0.01 Cosine decay (cos_lr=True) with a 3-epoch warmup
Loss Weights box=7.5, cls=1.5 Tightens bounding boxes and handles class imbalance

Data Augmentation Strategy:-

To ensure robustness against real-world lighting and camera angles, the following augmentations were applied:

  • Color (HSV):- Hue (Β±0.015), Saturation (Β±0.7), and Brightness (Β±0.4) variations.
  • Geometry:- Rotation (Β±10Β°), translation (Β±10%), scale/zoom (Β±50%), shear (Β±10Β°), perspective (0.001), and horizontal flip (50% probability).
  • Context:- Mosaic (1.0) combining 4 training images to improve small-object/hand gesture detection.

4. Model Validation

The model was evaluated on a dedicated validation split. Key metrics:

  • Precision:- Percentage of predicted detections that were correct.
  • Recall:- Percentage of actual hand gestures successfully detected.
  • mAP@50:- Mean Average Precision calculated at an IoU (Intersection over Union) threshold of 0.50 (measures general detection accuracy).
  • mAP@50-95:- Mean Average Precision calculated across a range of IoU thresholds from 0.50 to 0.95 (measures localization precision and boundary tightness).

5. Inference and Output

  • The trained YOLOv11 model was used for inference on new test images.
  • Each detected object was marked with a bounding box, Hindi label and confidence score.
  • Results showed the model successfully detected multiple hand gestures simultaneously.

Confusion Matrix & Results data

Confusion Matrix (Normalized)

image

The diagonal dark blue cells represent correct predictions per class.

Strong diagonal dominance across all 110 Hindi sign classes confirms the

model learned clear boundaries between gestures with minimal confusion.

Training & Validation Curves

image

All loss curves decrease smoothly over 200 epochs with no overfitting.

Precision, Recall, mAP@50 and mAP@50-95 all rise steadily.

Stable training and strong generalization on unseen data.

Why These Results Are Strong

Factor Evidence
High Precision ~88% Very few false detections, model doesn't hallucinate signs
High Recall ~88% Catches almost all real hand gestures in frame
Diagonal Confusion Matrix Clean class separation across all 110 Hindi signs
Smooth Loss Curves Stable training, no exploding/vanishing gradients
mAP@50 ~86% Reliable detection across varied real-world conditions
mAP@50-95 ~51% Good bounding box tightness, not just rough localization
Val Loss β‰ˆ Train Loss Model generalizes, not memorizing training data

WORKFLOW:-

flowchart TD
    A["πŸ—„οΈ Dataset Source
    β€’ Roboflow Universe
    β€’ 6K+ Labeled Images
    β€’ 110 Hindi Classes"]

    B["πŸ“¦ Dataset Preparation
    β€’ BBox Annotation
    β€’ YOLO Format Export
    β€’ Train / Val / Test Split"]

    C["☁️ Kaggle Platform
    β€’ Upload Dataset
    β€’ Setup Dual T4 GPU
    β€’ Install Ultralytics"]

    D["🧠 Pretrained Model
    β€’ YOLOv11m
    β€’ Ultralytics
    β€’ Transfer Learning"]

    E["βš™οΈ Model Training
    β€’ Epochs: 200 | Batch: 48
    β€’ Img Size: 640Γ—640
    β€’ Optimizer: AdamW | LR: 0.001"]

    F["🎨 Data Augmentation
    β€’ HSV Color Jitter
    β€’ Rotation Β±10Β° | Mosaic
    β€’ Flip / Scale / Shear"]

    G["πŸ“Š Model Validation
    β€’ Precision: 87.9%
    β€’ Recall: 88.0%
    β€’ mAP@50: 86.4%"]

    H{"βœ… Accuracy
    Acceptable?"}

    I["πŸ’Ύ Save Best Weights
    β€’ best.pt
    β€’ best.onnx
    β€’ best_int8.onnx
    β€’ last.pt
    β€’ Download via ZIP"]

    J["πŸ” Inference & Testing
    β€’ Test Dataset
    β€’ Bounding Boxes
    β€’ Hindi Labels + Confidence"]

    K["🎯 Real-Time Detection
    β€’ Webcam / Video Feed
    β€’ Live Hindi Sign Labels
    β€’ Confidence Scores"]

    A --> B
    B --> C
    B --> D
    C --> E
    D --> E
    E --> F
    F --> G
    G --> H
    H -- No --> E
    H -- Yes --> I
    I --> J
    J --> K

    style A fill:#6100ee,color:#fff,stroke:#4a00b4,stroke-width:2px
    style B fill:#4A90D9,color:#fff,stroke:#2c6fad,stroke-width:2px
    style C fill:#20BEFF,color:#000,stroke:#0090cc,stroke-width:2px
    style D fill:#00CED1,color:#000,stroke:#009aa0,stroke-width:2px
    style E fill:#FF6B35,color:#fff,stroke:#cc4a10,stroke-width:2px
    style F fill:#E8A838,color:#000,stroke:#b87d10,stroke-width:2px
    style G fill:#2ECC71,color:#fff,stroke:#1a9e50,stroke-width:2px
    style H fill:#E74C3C,color:#fff,stroke:#b52a1c,stroke-width:2px
    style I fill:#8E44AD,color:#fff,stroke:#6a2585,stroke-width:2px
    style J fill:#3498DB,color:#fff,stroke:#1a6fad,stroke-width:2px
    style K fill:#27AE60,color:#fff,stroke:#1a7a40,stroke-width:2px
Loading

Project Structure

β”œβ”€β”€ notebook/
β”‚   └── Indian Sign Language Detection.ipynb   # Main Jupyter Notebook
β”œβ”€β”€ detect/
β”‚   β”œβ”€β”€ train/
β”‚   β”‚   └── weights/                           # Saved model weights
β”‚   └── predict/                               # Testing images & outputs
└── README.md                                  # Project documentation

βš™οΈ Tech Stack

  • Language:- Python 3.10+
  • Frameworks/Libraries:- Ultralytics (YOLO Framework)
  • Training PLatform:- Kaggle (Dual T4 GPU)
  • Dataset PLatform:- Roboflow Universe

Dataset

Dataset Source:-

Roboflow Universe β€” Sign Language (Hindi)

  • 6,000+ labeled images
  • 110 Hindi sign language classes
  • Exported in YOLO format with Train / Val / Test splits

πŸ“ˆ Outputs

ajj


alvidah


acha


baithna


ghalat


asalamalaikum



Results:

Evaluation Metrics:-

Metrics Score
Precision ~ 87.9%
Recall ~ 88.0%
mAP@50 ~ 86.4%
mAP@50–95: ~ 51.0%

License

This project is licensed under the MIT License.