A newer version of the Gradio SDK is available: 6.22.0
title: Cheque Dates Predictor LeNet5
emoji: 👁
colorFrom: pink
colorTo: purple
sdk: gradio
sdk_version: 5.44.0
app_file: app.py
pinned: false
license: apache-2.0
short_description: Cheque Dates Predictor using LeNet5 CNN architecture
Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
Cheque Dates Predictor using LeNet5
Overview
This project implements a system for extracting and recognizing handwritten dates from cheque images using the LeNet5 Convolutional Neural Network (CNN) architecture. The application automatically locates the date field on a cheque image, segments it into individual digits, and uses a trained CNN model to predict each digit, ultimately reconstructing the complete date in DD/MM/YYYY format.
Features
- Automatic extraction of date fields from cheque images
- Segmentation of date into individual digits (day, month, year)
- Digit recognition using LeNet5 CNN architecture
- Interactive web interface built with Gradio
- Visual feedback showing each step of the process
- Complete date reconstruction in standard format
Model Architecture
The project uses the LeNet5 CNN architecture, which consists of:
- Two convolutional layers with ReLU activation and average pooling
- Three fully connected layers
- Input size of 28x28 grayscale images
- Output of 10 classes (digits 0-9)
The architecture implementation:
class LeNet5(nn.Module):
def __init__(self):
super(LeNet5, self).__init__()
self.conv1 = nn.Conv2d(1, 6, kernel_size=5, stride=1, padding=2)
self.relu = nn.ReLU()
self.pool = nn.AvgPool2d(kernel_size=2, stride=2)
self.conv2 = nn.Conv2d(6, 16, kernel_size=5, stride=1)
self.fc1 = nn.Linear(16 * 5 * 5, 120)
self.fc2 = nn.Linear(120, 84)
self.fc3 = nn.Linear(84, 10)
def forward(self, x):
x = self.pool(self.relu(self.conv1(x)))
x = self.pool(self.relu(self.conv2(x)))
x = x.view(-1, 16 * 5 * 5)
x = self.relu(self.fc1(x))
x = self.relu(self.fc2(x))
x = self.fc3(x)
return x
Installation
# Clone the repository
git clone https://github.com/yourusername/Cheque_Dates_Predictor_LeNet5.git
cd Cheque_Dates_Predictor_LeNet5
# Install dependencies
pip install -r requirements.txt
Dependencies
The project requires the following Python packages:
gradio
torch
torchvision
opencv-python
pillow
Usage
Run the application with:
python app.py
The web interface will allow you to:
- Upload a cheque image
- View the extracted date region
- See individual digit predictions
- Get the complete predicted date
How It Works
The application follows these steps to extract and predict dates from cheque images:
Image Preprocessing:
- The uploaded cheque image is converted to grayscale
- The image is inverted (255 - pixel value) to enhance digit visibility
Date Region Extraction:
- The system crops the date region using predefined coordinates (x=1790, y=100, width=460, height=80)
- This region typically contains the handwritten date on standard cheque formats
Digit Segmentation:
- Individual digits are extracted from the date region
- The system segments the date into 8 parts: 2 for day (D1, D2), 2 for month (M1, M2), and 4 for year (Y1, Y2, Y3, Y4)
- Each digit is saved as a separate image for processing
Digit Recognition:
- Each digit image is preprocessed (resized to 28x28, normalized)
- The LeNet5 CNN model predicts the digit value (0-9)
Date Reconstruction:
- Individual digit predictions are combined to form the complete date in DD/MM/YYYY format
Training
The LeNet5 model was trained on the MNIST dataset, which contains 60,000 training images and 10,000 test images of handwritten digits. The training process included:
- Data preprocessing with normalization
- Model training with Adam optimizer and CrossEntropyLoss
- Validation on a separate dataset to prevent overfitting
- Testing on unseen data to evaluate performance
The model achieved high accuracy on digit recognition tasks, making it suitable for cheque date extraction.
Demo
This project is deployed as a Hugging Face Space, providing an interactive demo where users can upload their own cheque images and see the date prediction in action. The demo includes:
- An upload interface for cheque images
- Display of the original and processed images
- Visualization of each extracted digit
- The final predicted date in DD/MM/YYYY format
License
This project is licensed under the Apache 2.0 License - see the LICENSE file for details.