This repository contains an implementation of face recognition and verification using ResNet architectures. The project is structured to handle both face recognition (classification) and face verification (similarity) tasks.
resnet/
├── src/
│ ├── data/
│ │ └── datasets.py # Dataset classes and data loading utilities
│ ├── models/
│ │ └── resnet.py # ResNet model implementations
│ └── utils/
│ ├── config.py # Configuration settings
│ └── train_utils.py # Training and validation utilities
├── train.ipynb # Training notebook
├── requirements.txt # Project dependencies
└── README.md # Project documentation
- Implementation of ResNet architectures (18, 34, 50, 101, 152)
- Face recognition training pipeline
- Face verification capabilities
- Data augmentation using Albumentations
- Training monitoring with Weights & Biases
- Checkpoint saving and loading
- Validation metrics tracking
Install the required packages using:
pip install -r requirements.txt
- Configure your data paths and training parameters in
src/utils/config.py
- Open and run
train.ipynb
to start training - Monitor training progress through Weights & Biases dashboard
The repository implements various ResNet architectures:
- ResNet18
- ResNet34
- ResNet50
- ResNet101
- ResNet152
Each architecture can be used by importing from src.models.resnet
.
The training pipeline uses Albumentations for data augmentation, including:
- Random resized cropping
- Horizontal flipping
- Brightness and contrast adjustments
- Color jittering
- Random rotations
- Gaussian noise
- And more...
The training process includes:
- Cross-entropy loss for classification
- AdamW optimizer
- Learning rate scheduling
- Model checkpointing
- Validation metrics tracking