This repository contains a Python-based project for recognizing gender from images using deep learning techniques. The project includes data preprocessing, dataset filtering, and a convolutional neural network model for classification.
Features
- Face alignment using dlib-based landmarks
- Dataset filtering and organization utilities
- Image preprocessing with multiprocessing
- CNN model training with TensorFlow/Keras
- Data augmentation for improved model generalization
Tech Stack
- Python 3
- TensorFlow and Keras for deep learning
- OpenCV for image processing
- dlib for face alignment
- NumPy for numerical operations
- Matplotlib for plotting training history
Getting Started
Prerequisites
- Python 3.6 or higher
- TensorFlow
- dlib
- OpenCV
- NumPy
- Matplotlib
Installation
Clone the repository:
git clone https://github.com/justin-napolitano/Gender-Recognition-from-image.git
cd Gender-Recognition-from-image
Install required packages (preferably in a virtual environment):
pip install tensorflow opencv-python dlib numpy matplotlib
Usage
- Preprocess images:
python preprocess.py --input_dir path/to/raw_images --output_dir path/to/processed_images --crop_dim 224
- Filter dataset (adjust parameters as needed):
python FilterDataset.py --input_dir path/to/processed_images --output_dir path/to/filtered_dataset
- Train the model:
Run the data_generation.py script which contains the model training pipeline. Update directory paths inside the script accordingly.
python data_generation.py
Project Structure
align_dlib.py: Face alignment module using dlib landmarks (copied from openface project).data_generation.py: Defines and trains the CNN model with data augmentation.FilterDataset.py: Utilities to filter and organize dataset based on minimum images per class.lfw_input.py: TensorFlow queue-based image loader with augmentation (used for batching).preprocess.py: Preprocesses images by detecting, aligning, and cropping faces with multiprocessing.processed_data/: Directory for processed and filtered dataset images.README.md: This file.
Future Work / Roadmap
- Add explicit dataset download and preparation scripts.
- Improve model architecture and hyperparameter tuning.
- Add evaluation scripts and metrics reporting.
- Integrate with a web or mobile interface for real-time gender recognition.
- Expand dataset support and include more diverse data.
- Add unit and integration tests for pipeline components.
Note: Some paths and parameters are hardcoded and should be adapted to your environment.