# Ge-ezVision: Amharic Character Recognition
## Overview
This project is an end-to-end Machine Learning system designed to recognize handwritten Amharic characters. It processes raw images, trains a Deep Convolutional Neural Network (CNN), and provides tools for evaluation and prediction.
## Project Documentation
Detailed documentation for each phase of the project is available here:
* **Final Project Documentation (Full Report)**: The complete, professional documentation covering the entire lifecycle.
* **Phase 1 Report**: Project Proposal and Data Collection.
* **Phase 2 Report**: Baseline Modeling.
* **Phase 3 Report**: Evaluation and Refinement.
## Key Features
- **Dataset**: 37,652 images of 238 unique Amharic characters (Source: Fetulhak - Handwritten Amharic Character Dataset).
- **Architecture**: Custom "DeepAmharicNet" (PyTorch) - 4-layer Deep CNN with Batch Norm and Dropout.
- **Pipeline**: Automated scripts for data preprocessing, training (with Augmentation), and evaluation.
## Project Structure
```
├── data/ # Raw and processed datasets
├── docs/ # Documentation
│ ├── Phase 1 Report
│ ├── Phase 2 Report
│ ├── Phase 3 Report
│ └── Final Project Documentation
├── models/ # Saved model artifacts (.pth)
├── notebooks/ # EDA and Evaluation notebooks
├── reports/ # Generated metrics (Confusion Matrix, etc.)
├── src/ # Source code
│ ├── data/ # Processing scripts
│ └── models/ # Model definition, training, loading
└── README.md
```
## Getting Started
### 1. Setup
```bash
python -m venv venv
venv\Scripts\activate
pip install torch torchvision pandas pillow scikit-learn seaborn matplotlib tqdm
```
### 2. Data Preparation
```bash
# Processes raw data into data/processed/
python src/data/process_data.py
```
### 3. Training
```bash
# Trains for 20 epochs (Target >85%) and saves to models/amharic_cnn.pth
# Note: Takes ~3-4 hours on CPU
pytho …