Skip to content

About

๐Ÿ“œThe Brahmilipi to Kannada Character Recognition System is an AI-powered computer vision application designed to automatically recognize Brahmilipi script characters from images and convert them into their corresponding Kannada Unicode characters. This project bridges ancient script representation and modern digital text processing using deeplearn

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Latest commit

ย 

History

6 Commits

Folders and files

Repository files navigation

Brahmilipi to Kannada Character Recognition System

An AI-powered character recognition system that converts Brahmilipi script images to Kannada Unicode characters using deep learning and computer vision techniques.

๐Ÿš€ Features

  • Deep Learning Model: CNN-based architecture with TensorFlow/Keras for accurate character recognition
  • Synthetic Data Generation: Advanced pipeline creating training data with noise injection and geometric transformations
  • Web Interface: Flask-based application with real-time image upload and prediction
  • Multi-Character Support: Recognizes 7 core Kannada vowels and consonants (เฒ…, เฒ†, เฒ‡, เฒˆ, เฒ‰, เฒŠ, เฒ•)
  • Image Processing: Robust preprocessing pipeline with OpenCV for various image formats

๐Ÿ› ๏ธ Tech Stack

  • Backend: Python, Flask
  • Machine Learning: TensorFlow, Keras, scikit-learn
  • Computer Vision: OpenCV
  • Frontend: HTML, CSS, JavaScript (jQuery)
  • Data Processing: NumPy, JSON

๐Ÿ“‹ Prerequisites

  • Python 3.8 or higher
  • pip package manager

๐Ÿ”ง Installation

  1. Clone the repository

    git clone <repository-url>
    cd Bralmilipi_to_Kannada_Translator
  2. Install dependencies

    pip install -r requirements.txt
  3. Train the model (if not already trained)

    python src/train_model.py

๐Ÿš€ Usage

Running the Web Application

  1. Start the Flask server

    python src/main.py
  2. Access the application

    • Open your browser and navigate to http://127.0.0.1:5000
    • Upload an image containing Brahmilipi characters
    • Get instant Kannada character predictions

Using the Model Programmatically

from src.train_model import predict_character, generate_synthetic_images

# Generate test image
synthetic_images, labels = generate_synthetic_images(num_images_per_class=1)
test_image = synthetic_images[0]

# Predict character
predicted_char = predict_character(test_image)
print(f"Predicted character: {predicted_char}")

๐Ÿ“ Project Structure

Bralmilipi_to_Kannada_Translator/
โ”œโ”€โ”€ src/
โ”‚   โ”œโ”€โ”€ main.py                 # Flask web application
โ”‚   โ”œโ”€โ”€ train_model.py          # Model training and prediction
โ”‚   โ”œโ”€โ”€ preprocess.py           # Image preprocessing utilities
โ”‚   โ”œโ”€โ”€ utils.py                # Helper functions
โ”‚   โ”œโ”€โ”€ templates/
โ”‚   โ”‚   โ”œโ”€โ”€ index.html          # Main web interface
โ”‚   โ”‚   โ””โ”€โ”€ display_images.html # Image display page
โ”‚   โ””โ”€โ”€ static/
โ”‚       โ””โ”€โ”€ uploads/            # Uploaded images directory
โ”œโ”€โ”€ data/
โ”‚   โ””โ”€โ”€ mapping.json            # Character mappings
โ”œโ”€โ”€ character_mappings.json     # Model character mappings
โ”œโ”€โ”€ kannada_synthetic_character_model.h5  # Trained model
โ”œโ”€โ”€ requirements.txt            # Python dependencies
โ””โ”€โ”€ README.md                   # Project documentation

๐Ÿง  Model Architecture

  • Input Layer: 64x64x1 grayscale images
  • Convolutional Layers: 2 Conv2D layers with BatchNormalization
  • Pooling: MaxPooling2D for feature reduction
  • Regularization: Dropout layers (0.25-0.5) to prevent overfitting
  • Output: 7-class softmax classification for Kannada characters

๐Ÿ“Š Model Performance

  • Training Accuracy: ~85% (with synthetic data)
  • Validation Accuracy: ~79%
  • Test Accuracy: ~75%

Note: Performance can be improved with real character image datasets

๐Ÿ”„ Supported Characters

Brahmilipi Kannada Unicode
Image1 เฒ… U+0C85
Image2 เฒ† U+0C86
Image3 เฒ‡ U+0C87
Image4 เฒˆ U+0C88
Image5 เฒ‰ U+0C89
Image6 เฒ• U+0C95
Image7 เฒŠ U+0C8A

๐Ÿšง Limitations

  • Currently trained on synthetic data - real character images would improve accuracy
  • Limited to 7 characters - can be extended to full Kannada alphabet
  • Model accuracy needs improvement with better training data

๐Ÿ”ฎ Future Enhancements

  • Expand character set to complete Kannada alphabet
  • Implement real character image dataset collection
  • Add data augmentation techniques
  • Improve model architecture for better accuracy
  • Add batch processing capabilities
  • Implement character sequence recognition

๐Ÿค Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

๐Ÿ™ Acknowledgments

  • TensorFlow team for the deep learning framework
  • OpenCV community for computer vision tools
  • Flask team for the web framework
  • Contributors to the Kannada Unicode standard

About

๐Ÿ“œThe Brahmilipi to Kannada Character Recognition System is an AI-powered computer vision application designed to automatically recognize Brahmilipi script characters from images and convert them into their corresponding Kannada Unicode characters. This project bridges ancient script representation and modern digital text processing using deeplearn

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages