Logo Lanfrica

ArjunRamphal/COMP702Project

Domaine:

digital infrastructure

Type de record:

software
Créateur:
Arj
Hôte:
South African Bank Notes Recognition # South African Bank Note Recognition System **Course:** COMP702 - Image Processing and Computer Vision **Authors:** Arjun Ramphal, Darian Robert, Lokadi Naicker, Keolin Naicker ## Overview This repository contains a robust Computer Vision pipeline for identifying South African bank notes (R10, R20, R50, R100, R200). The system is designed to be invariant to scale, rotation, and facial side (obverse/reverse), and is specifically optimized to perform accurately against high-frequency textured backgrounds. To fulfill the comparative requirements of the Honours project, this system implements a **Sequential Optimization Study**. 1. **Phase 1: Preprocessing Evaluation:** Tests contrast enhancement and noise reduction techniques (CLAHE, Bilateral, Gaussian, Equalization) to find the optimal structural clarifier. 2. **Phase 2: Segmentation & Geometric Normalization:** Tests boundary isolation methods (Perspective Warping, Exact Masking, Padded Bounding Boxes, Adaptive Thresholding). 3. **Phase 3: Feature Extraction & Template Matching:** Evaluates the final isolated Regions of Interest (ROI) across four distinct classification architectures: * **SIFT** (Floating-point geometry matched via FLANN KD-Tree) * **ORB** (Binary geometry matched via BF Hamming + RANSAC) * **AKAZE** (Non-linear scale space matched via BF Hamming + RANSAC) * **Color Histograms** (3D HSV color mass matched via Histogram Intersection) ## Installation & Setup 1. Ensure Python 3.10+ is installed on your system. 2. Clone this repository to your local machine. 3. Install the required dependencies: ```bash pip install -r requirements.txt ``` ### Dependencies (`requirements.txt`) ```text opencv-python>=4.5.0 numpy scikit-learn ``` ## Dataset Configuration The system requires a strict directory structure to automatically label and process the images. Ensure your repository is structured as follows before execution: ```text COMP702_BankNote_Recognition/ │ ├── README.md ├── requirements.txt ├─ …