Production-ready Indian currency note recognition system using MobileNetV2 transfer learning. Identifies ₹10, ₹20, ₹50, ₹100, ₹200, ₹500 notes from images with 90-95% accuracy using just 200-600 images per class. Features a Streamlit web app with real-time predictions, confidence scores, probability charts, and downloadable reports.
- 6 Indian denominations: ₹10, ₹20, ₹50, ₹100, ₹200, ₹500
- 90-95% accuracy with minimal training data (50 images/class recommended)
- 10x faster training (5-10 mins vs 15-20 mins for scratch CNNs)
- Real-time Streamlit app with image upload, predictions, and analytics
- MobileNetV2 optimized preprocessing (224x224, [-1,1] scaling)
- Production features: Confidence scoring, probability charts, JSON reports
| Category | Technologies |
|---|---|
| Deep Learning | TensorFlow 2.20+, Keras 3.11+, MobileNetV2 |
| Web App | Streamlit |
| Computer Vision | OpenCV, PIL |
| Data Processing | NumPy, Pandas |
| Visualization | Matplotlib |
Features:
- Upload currency image → Get instant prediction
- Confidence score + probability distribution chart
- Download detailed prediction report
- Mobile-friendly responsive design
git clone https://github.com/ImRAryan/IndianCurrencyPredictor.git
cd IndianCurrencyPredictorpip install -r requirements.txt# Model files (auto-downloaded by app)
best_mobilenetv2_currency_model.h5
label_mapping.jsonstreamlit run app.pystreamlit==1.38.0
tensorflow==2.20.0
keras==3.11.3
opencv-python==4.10.0
numpy==1.26.4
pandas==2.2.2
matplotlib==3.9.2
pillow==10.4.0
scikit-learn==1.5.1
- Prepare dataset: Organize images in
currencydataset/train/{10,20,50,100,200,500}/ - Run training notebook:
Indian_Currency_Recognition_MobileNetV2.ipynb - Minimum: 30 images/class (80-85% accuracy)
- Recommended: 50 images/class (90-95% accuracy)