How tanbinrkyser/driver-facial-expression-recognition works
This repository is a PyTorch driver facial-expression recognition research prototype. Its principal workflow prepares cropped, split images, trains a dual-backbone classifier, and uses the trained model for evaluation or single-image prediction. README documents the preprocessing, transforms, loaders, and training stages; sampled source confirms the model, inference, evaluation, and Grad-CAM behavior. Preprocessing and loader wiring is summarized from the README because those implementations were not sampled.
Main entry points: engine.py ShuffleEfficientViT · inference_2.py Single-image inference · conf_matrix_2.py Test evaluation · explain_3.py Branch Grad-CAM
Components 18
Image preparation
- Face cropping
cropping.py - Train/test split
dataset_preprocessing_2.py - Cropped split data
- Image transforms
data_transformation_2.py - Data loaders
create_dataloaders_2.py
Model and training
- Two-stage training
train_final.py - ShuffleEfficientViT
engine.py - Model checkpoint
- Learning-rate finder
lr_finder.py
Prediction and analysis
- Single-image inference
inference_2.py - Emotion prediction
- Test evaluation
conf_matrix_2.py - Metrics and confusion matrix
- Branch Grad-CAM
explain_3.py - Attention visualizations
Other components
- KMU-FED images
- Pretrained weights
- Image user
Connections 23
- KMU-FED images → Face cropping: supplies images
- Face cropping → Train/test split: creates crops
- Train/test split → Cropped split data: writes split
- Cropped split data → Image transforms: provides images
- Image transforms → Data loaders: transforms samples
- Data loaders → Two-stage training: provides batches
- Two-stage training → ShuffleEfficientViT: trains
- ShuffleEfficientViT → Pretrained weights: loads pretrained weights
- Two-stage training → Model checkpoint: saves best state
- Image user → Single-image inference: submits image
- Single-image inference → ShuffleEfficientViT: runs prediction
- Model checkpoint → Single-image inference: loads state
- Single-image inference → Emotion prediction: produces label
- Cropped split data → Test evaluation: supplies test set
- Model checkpoint → Test evaluation: loads state
- Test evaluation → ShuffleEfficientViT: runs evaluation
- Test evaluation → Metrics and confusion matrix: reports metrics
- Image user → Branch Grad-CAM: requests explanation
- Model checkpoint → Branch Grad-CAM: loads state
- Branch Grad-CAM → ShuffleEfficientViT: computes activations
- Branch Grad-CAM → Attention visualizations: generates heatmaps
- Data loaders → Learning-rate finder: provides batches
- Learning-rate finder → ShuffleEfficientViT: tests learning rates