Built to order

Indian Currency Note Recognition using CNN for the Visually Impaired

This project builds a convolutional neural network that identifies Indian rupee denominations (Rs 10, Rs 20, Rs 50, Rs 100, Rs 200, Rs 500) from a photograph and announces the result by voice, giving visually impaired users an independent way to check their cash. A MobileNetV2 transfer-learning model is trained on a purpose-collected dataset of Mahatma Gandhi (New) Series notes, evaluated with per-class precision, recall and a confusion matrix, and deployed in an accessible Android demo app that works offline. The full pipeline — dataset, training notebook, trained model and voice-first app —

AI & Machine Learning OpenCVJupyter notebookPython 3TensorFlow · KerasTensorFlow LiteMobileNetV2 transfer learningAndroid demo appWeb Speech APISoftware
Indian Currency Note Recognition using CNN for the Visually Impaired — project thumbnail preview
More project photos (2)

The problem

Identifying a banknote's denomination is effortless with sight, yet it is a genuine daily obstacle for people living with severe visual impairment. Indian notes differ by colour, size and motif, but under poor light, with worn or folded notes, these cues are hard to rely on — and the tactile marks on notes wear off with circulation. Existing currency-reader apps are often closed-source, unreliable on Indian notes, or need a constant internet connection. This project builds an open, on-device alternative: point the phone camera at a note, a CNN classifies the denomination, and the phone speaks it aloud. The scope is deliberately honest — six denominations, one clear task, measured on a held-out test split — which makes the dataset curation, model training and accessibility design genuinely explainable in the viva.

SYSTEM FLOW

5 components 5 connections

Live flow
Drag to explore
100%
useruser

Points the phone camera at a banknote for classification.

Follow the working sequence

How it works

  1. A labeled dataset is assembled: photographs of Mahatma Gandhi (New) Series notes (Rs 10–Rs 500), obverse and reverse, under varied lighting, angles, backgrounds and note conditions, supplemented by publicly available labeled note images.
  2. Every image is centre-cropped, resized to 224x224 and pixel-normalised to [0, 1]; the data is split into stratified train/validation/test sets.
  3. A MobileNetV2 base pre-trained on ImageNet is frozen and topped with a custom head (global average pooling, dense layer, dropout, 6-way softmax), then fine-tuned with augmentation (rotation, brightness, perspective shifts).
  4. Training uses early stopping on validation loss; the best checkpoint is evaluated once on the test split to produce accuracy, per-class precision/recall/F1 and the confusion matrix.
  5. The model is converted to a mobile format (TFLite) and wired into the Android demo app with the same preprocessing the training used.
  6. In the app, the camera frame is classified on-device and the top denomination is spoken through text-to-speech with its confidence shown; low-confidence frames ask for a retake.

Tech stack:

  • Python 3, TensorFlow · Keras
  • MobileNetV2 transfer learning
  • OpenCV (preprocessing & augmentation)
  • NumPy · scikit-learn (metrics)
  • Jupyter Notebook (training & evaluation)
  • TensorFlow Lite (on-device inference)
  • Android (demo app) · Web Speech API (browser demo)

Dataset & model details

  • Dataset: A purpose-built labeled image dataset assembled during project development: photographs of Mahatma Gandhi (New) Series Indian banknotes (Rs 10, Rs 20, Rs 50, Rs 100, Rs 200, Rs 500), obverse and reverse, captured under varied lighting, angles, backgrounds and note conditions, supplemented by publicly available labeled Indian note images (e.g. Kaggle Indian currency-notes collections). Design target: approximately 3,000 labeled images; the exact count, class balance and 70/15/15 train/validation/test split are documented in the build report.
  • Task: 6-class image classification; input = 224x224x3 RGB photograph, output = probability distribution over the six denominations.
  • Model: MobileNetV2 (ImageNet pre-trained base, frozen) + GlobalAveragePooling2D + Dense(128, ReLU) + Dropout + Dense(6, softmax); converted to TensorFlow Lite for on-device inference in the Android app.
  • Metrics: Test accuracy, per-class precision/recall/F1, confusion matrix. Design target: approximately 88–92% validation accuracy — a development target, not a measured claim; the report documents the actually achieved figures after the training run.
Parameter Value
Input format 224 x 224 x 3 RGB photograph, normalised [0, 1]
Classes 6 (Rs 10, Rs 20, Rs 50, Rs 100, Rs 200, Rs 500)
Model base MobileNetV2 (ImageNet pre-trained), custom 6-way head
Validation accuracy Approximately 88–92% (design target, not a measured claim)
Training data Approximately 3,000 labeled images (design target; exact count in report)
Data split 70 / 15 / 15 train / validation / test (stratified)
Inference On-device via TensorFlow Lite; no internet needed at identification time
Voice output Device text-to-speech (Android TTS / Web Speech API in browser demo)
Demo apps Android demo app source + single-file offline web demo

Project features

  • [6-denomination CNN classifier] A MobileNetV2 transfer-learning model classifies Rs 10, Rs 20, Rs 50, Rs 100, Rs 200 and Rs 500 notes from a single photograph, with the full training pipeline reproducible from the notebook.
  • [Voice announcement] The identified denomination is spoken aloud through the device text-to-speech engine ("One hundred rupees"), so the app is usable without looking at the screen.
  • [Offline on-device inference] The trained model is converted to a mobile format and runs entirely on the phone — identification works with no internet connection.
  • [Confidence-aware feedback] Each prediction shows a confidence score; low-confidence captures trigger a "please retake the photo" prompt instead of a wrong announcement.
  • [Vibration backup cue] A short vibration pattern accompanies the voice result, giving a non-audio confirmation channel in noisy surroundings.
  • [Full training notebook] Dataset loading, augmentation, model definition, training loop and evaluation in one reproducible Jupyter notebook with every hyperparameter recorded.
  • [Evaluation report] Accuracy, per-class precision/recall/F1 and a confusion matrix on a held-out test split — the report documents what the model actually achieved, with no invented figures.
  • [Working browser demo] A single-file web demo of the end-to-end flow (scan, analyse, voice output) is included alongside the Android app source.

What is included

  • Purpose-collected labeled dataset of Indian banknote photographs (with the exact image list and split used)
  • Complete training & evaluation Jupyter notebook with hyperparameter record
  • Trained MobileNetV2-based CNN (Keras checkpoint + TensorFlow Lite mobile model)
  • Evaluation report: accuracy, per-class precision/recall/F1, confusion matrix, failure-case analysis
  • Android demo app source (camera capture, on-device inference, voice announcement, vibration cue)
  • Single-file web demo of the end-to-end pipeline
  • Project report PDF (background, CNN theory, dataset curation, methodology, honest results)
  • PPT presentation for final review
  • Viva Q&A preparation document (transfer learning, softmax, augmentation, evaluation metrics, accessibility design)

Limitations & prerequisites

  • Covers the six current Mahatma Gandhi (New) Series denominations only — withdrawn notes (Rs 1000, old Rs 500, Rs 2000) and coins are out of scope.
  • Model quality depends on dataset diversity: extreme glare, heavy occlusion, torn notes or very dark photos can misclassify, and the report documents these failure modes.
  • 88–92% is a design target for the training run, stated honestly — the report documents the actually achieved figure after training, not before.
  • Visually similar note pairs (e.g. colour-adjacent denominations under yellow indoor light) are the most likely confusion cases, shown explicitly in the confusion matrix.
  • The app is an assistive prototype, not certified financial or accessibility equipment — users should double-check high-value transactions by another means.
  • Training time and final accuracy depend on the dataset assembled and available hardware (GPU optional; CPU training is slower).

Frequently Asked Questions

Which dataset is used?

A purpose-built dataset assembled for this project: photographs of Mahatma Gandhi (New) Series notes (Rs 10–Rs 500, obverse and reverse) taken under varied lighting, angles and backgrounds, supplemented by publicly available labeled Indian note images. The exact image count and split are documented in the build report.

Which model is used and why?

MobileNetV2 with transfer learning — a lightweight CNN that reaches strong image-classification performance with far less data and compute than training from scratch, and converts cleanly to TensorFlow Lite for on-device phone inference.

Is the accuracy guaranteed?

No — and the project is explicit about this. 88–92% validation accuracy is the development target; the delivered report documents the accuracy the training run actually achieved, with per-class precision/recall and a confusion matrix.

Can it work with a live camera?

Yes — the Android demo app classifies the camera feed on-device and speaks the result. The browser demo accepts uploads and camera frames through the same pipeline.

Can new denominations or coins be added?

Yes, as a customization: new labeled images are collected for the additional classes and the classification head is retrained — the notebook is structured to make this straightforward.

Is this project suitable for a final-year project?

Yes — for AI & Machine Learning, Computer Engineering and IT programs. It demonstrates dataset curation, transfer learning, honest evaluation and accessible mobile deployment, with a genuine social-use case for the viva. Suitable for B.E./B.Tech final-year projects in AI & Machine Learning, Computer Engineering and IT.

Components & software requirements
  • Python 3, TensorFlow · Keras
  • MobileNetV2 transfer learning
  • OpenCV (preprocessing & augmentation)
  • NumPy · scikit-learn (metrics)
  • Jupyter Notebook (training & evaluation)
  • TensorFlow Lite (on-device inference)
  • Android (demo app) · Web Speech API (browser demo)

Dataset & model details

  • Dataset: A purpose-built labeled image dataset assembled during project development: photographs of Mahatma Gandhi (New) Series Indian banknotes (Rs 10, Rs 20, Rs 50, Rs 100, Rs 200, Rs 500), obverse and reverse, captured under varied lighting, angles, backgrounds and note conditions, supplemented by publicly available labeled Indian note images (e.g. Kaggle Indian currency-notes collections). Design target: approximately 3,000 labeled images; the exact count, class balance and 70/15/15 train/validation/test split are documented in the build report.
  • Task: 6-class image classification; input = 224x224x3 RGB photograph, output = probability distribution over the six denominations.
  • Model: MobileNetV2 (ImageNet pre-trained base, frozen) + GlobalAveragePooling2D + Dense(128, ReLU) + Dropout + Dense(6, softmax); converted to TensorFlow Lite for on-device inference in the Android app.
  • Metrics: Test accuracy, per-class precision/recall/F1, confusion matrix. Design target: approximately 88–92% validation accuracy — a development target, not a measured claim; the report documents the actually achieved figures after the training run.
Delivery information

Built-to-order project. Delivery timeline is shared after order confirmation based on current queue.

Support terms

Complete documentation, setup guide, and viva preparation included. Support for setup and explanation provided.

Download free synopsis (PDF)

Enter your name and email — the synopsis PDF downloads immediately. We may send occasional project updates; no spam, unsubscribe anytime.

Get a quotation