You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A PyTorch-based multimodal biometric recognition system that uses fingerprints and iris images for person identification.
System Design
Quick Start
# Install
poetry install
# Train
poetry run train
# Serve API
poetry run serve
# Run with Docker Compose (MLflow + Airflow)
docker-compose up -d
Model Architecture
Component
Architecture
Output Dim
Fingerprint Branch
MobileNetV2 (pretrained, frozen)
1280
Iris Branch
2x Conv2D + MaxPool + GlobalAvgPool
32 (shared)
Fusion Module
Linear(1344→128) + ReLU + Dropout
128
Classifier
Linear(128→num_classes)
num_classes
Project Structure
src/biometric_recognition/
├── api/ # FastAPI server (serve.py, schema.py)
├── data/ # BiometricDataset class
├── models/ # Model architecture (branches.py, multimodal_model.py)
├── pipeline/ # Training stages (data_prep, train, evaluate, upload)
├── utils/ # Utilities (aws, mlflow, metrics, training, etc.)
└── train.py # Main training script
airflow/ # Airflow DAG for pipeline orchestration
k8s/ # Kubernetes deployment manifests
terraform/ # AWS infrastructure (ECR, S3)
configs/ # Hydra configuration
Training
# Local training
poetry run train
# With custom parameters
poetry run train training.epochs=20 data.batch_size=16
# Via Airflow
docker-compose exec airflow-webserver airflow dags trigger biometric_training_pipeline