The problem
Maps, delivery routing and municipal records all depend on a humble piece of information: the number on a building — yet reading that number from street photos is a classic hard problem. Blur, skew, uneven lighting, decorative fonts and occlusions make digit recognition brittle, and hand-written rules fail on the variety of real street photography. Manual reading does not scale for city-scale surveys. SVHN (Street View House Numbers), introduced by Netzer et al. in 2011, is the standard academic benchmark for this task precisely because it captures that difficulty: 600,000+ labeled digit crops harvested from Google Street View with all the blur, skew and lighting variation of real streets. This project builds a sequence pipeline on SVHN rather than a single black box: a CNN labels each digit in a house-number region and the pipeline concatenates the predictions, exposing per-digit confidence so weak reads are visible instead of silently wrong.
How it works
Dataset & model:
Dataset name: SVHN — Street View House Numbers (Netzer et al., "Reading Digits in Natural Images with Unsupervised Feature Learning", NIPS Workshop 2011).
Source: Official academic release of the SVHN benchmark (digit crops harvested from Google Street View).
Task: Digit classification, composed into a house-number sequence pipeline.
Classes: 10 digit classes (0–9), per the official dataset annotations.
Model: CNN digit classifier trained on SVHN digit crops.
Input: House-number region crops from street photos (JPEG/PNG), segmented into digit crops on upload.
Prediction: Per-digit probability distribution over digits 0–9.
Output: Full house number concatenated from per-digit predictions, with per-digit confidence.
Evaluation metrics: Digit accuracy on the SVHN test split logged per epoch, accuracy/loss curves, per-digit confusion matrix — computed by the training notebook during the buyer's build. No accuracy claimed; design target approximately 95%+ digit accuracy.
Working:
- SVHN digit crops are loaded in their official train/test split, with per-digit labels taken from the dataset annotations.
- Preprocessing: training crops are augmented with brightness jitter, slight rotation and noise to simulate street-photo conditions; test crops are normalized only.
- Training phase: a CNN digit classifier trains on the crops, with digit accuracy and loss curves logged each epoch.
- Evaluation phase: the notebook computes digit accuracy on the SVHN test split and builds a per-digit confusion matrix.
- Inference phase: the Flask app loads the exported .pth weights at startup; each uploaded house-number region is segmented into digit crops and each crop is classified.
- Output: per-digit predictions are concatenated into the full house number and displayed with per-digit confidence.
Specifications:
Model | CNN digit classifier trained on SVHN
Dataset | SVHN — 600,000+ labeled digit crops (Netzer et al. 2011)
Task | Digit classification with a sequence pipeline for house numbers
Classes | 10 digit classes (0–9)
Input | House-number region crops (JPEG/PNG), segmented into digit crops
Output | Full house number with per-digit confidence
Evaluation | Digit accuracy on SVHN test split, loss curves, per-digit confusion matrix — computed during the buyer's build
Design target | Approximately 95%+ digit accuracy (target, not a measured claim)
Demo app | Flask web app with street-photo crop upload and recognized-number display
Weights | .pth checkpoint exported from the included training run
Project features
[SVHN Digit Classifier] (implemented) — CNN classifier trained on 600,000+ labeled SVHN digit crops covering digits 0–9.
[Digit-Sequence Pipeline] (implemented) — Per-digit predictions are concatenated into the full house number instead of a single opaque output.
[Per-Digit Confidence Display] (implemented) — The demo shows the recognized number with a confidence score per digit, so weak reads are visible.
[Street-Condition Augmentation] (implemented) — Brightness jitter, slight rotation and noise during training simulate real street-photo conditions.
[Training Notebook with Evaluation] (implemented) — Logs digit accuracy and loss curves each epoch and builds a per-digit confusion matrix on the SVHN test split.
[Exportable Model Weights] (implemented) — The best checkpoint is saved as a .pth file for deployment-style demos.
[Full-Scene Number Localization] (optional) — Automatic detection of number plates in full street scenes is outside the base build and can be developed as an extension, scoped at quotation.
What is included
Complete source code (data pipeline, training, evaluation, Flask app)
Trained CNN weights (.pth)
Dataset download and split-configuration scripts
Project report PDF (background, dataset analysis, methodology, evaluation, error analysis)
PPT presentation for final review
Viva Q&A preparation document (CNNs, digit recognition, sequence pipelines, evaluation metrics)
Setup guide (environment, dependencies, GPU guidance for training)
Limitations & prerequisites
Scope is limited to pre-cropped house-number regions; automatic localization of number plates in full scenes is outside the build.
Blurry or low-resolution street photos are the documented weak point; the report documents where digit reads degrade.
Decorative fonts, heavy skew and occluded digits classify worse than the clean SVHN-style crops.
The system is an educational prototype and must not drive real delivery or emergency-routing decisions.
Performance depends on the train/test split, augmentation and training conditions of the buyer's own run.
Frequently Asked Questions
Which dataset and model are used?
SVHN (Street View House Numbers, Netzer et al. 2011) — 600,000+ labeled digit crops from Google Street View, the standard academic benchmark for real-world digit recognition. The model is a CNN digit classifier; a sequence pipeline concatenates per-digit predictions into the full house number.
Is the accuracy guaranteed?
No measured accuracy is claimed. The training notebook computes digit accuracy on the SVHN test split every epoch and builds a per-digit confusion matrix during the buyer's build. The design target is approximately 95%+ digit accuracy; final performance depends on the split, augmentation and training conditions.
Does it locate house numbers in full street scenes?
No. The build works on pre-cropped house-number regions. Automatic localization of number plates in full scenes is outside the scope, though it can be discussed as a customization.
Can it read blurry or low-resolution street photos?
It attempts to, but blurry or low-resolution crops are the documented weak point; the report documents where digit reads degrade, and per-digit confidence makes weak reads visible.
Is this project suitable for a final-year project?
Yes, for B.E./B.Tech in Computer Science, AI/ML, Data Science and related programs. It demonstrates CNN digit recognition, sequence pipelines, augmentation and evaluation on a standard benchmark.
What will I receive, and can it be customized?
Source code, trained .pth weights, dataset download and split scripts, report, PPT, viva Q&A and a setup guide. Customizable: full-scene number-plate localization, additional languages or scripts, or a mobile capture interface, scoped at quotation.
Components & software requirements
Python 3.10
PyTorch (digit classifier training, validation, inference)
torchvision, Pillow (PIL), OpenCV (digit crops, augmentation, segmentation)
NumPy, scikit-learn (metrics, confusion matrix)
Matplotlib, Seaborn (accuracy and loss curves)
Flask (demo web app)
Jupyter Notebook (training and evaluation)
GPU recommended for training (cloud-GPU guidance in the setup guide); CPU is sufficient for demo inference
Delivery information
Built-to-order: the source code, trained weights, dataset pipeline, report, PPT and viva kit are prepared fresh for the buyer. Typical delivery spans dataset setup, the training run, evaluation and documentation; the exact schedule is confirmed at quotation.
Support terms
Setup guidance (environment, dependencies, cloud-GPU options for training, running the Flask demo); viva preparation covering CNNs, digit recognition, sequence pipelines and evaluation metrics; customization discussion (full-scene localization, new scripts, mobile interface) scoped at quotation.