#๐ต๏ธโโ๏ธ FaceTective---Face-Authenticity-Detector FaceTective is an AI-powered tool designed to detect deepfake images with high accuracy. By leveraging MobileNetV2 and fine-tuning with custom layers, it classifies whether an uploaded face image is real or fake. The project also features a Streamlit-based web app for easy interaction.
๐ Features
- Detects real vs fake images using deep learning.
- Built with MobileNetV2 as the backbone + custom classification layers.
- Includes data augmentation (rotation, zoom, flipping) for better generalization.
- Provides probability scores along with predictions.
- Simple Streamlit web interface for uploading and testing images.
๐ ๏ธ Tech Stack
- Python
- TensorFlow / Keras โ Model training & fine-tuning
- MobileNetV2 โ Pretrained CNN architecture
- NumPy & Matplotlib โ Data handling & visualization
- Streamlit โ Web app deployment
๐ Project Structure
FaceTective/
โโโ facetective_train.py # Model training script
โโโ app.py # Streamlit web app
โโโ facetective_model.h5 # Saved trained model
โโโ data/ # Dataset (real & fake images)
โโโ README.md # Project documentation
โ๏ธ Installation Clone the repository: git clone https://github.com/your-username/FaceTective.git cd FaceTective
Install dependencies: pip install -r requirements.txt
Run the training script (optional, if you want to retrain): python facetective_train.py
Launch the Streamlit app: streamlit run app.py
๐ฏ Usage
- Upload a face image (.jpg, .jpeg, .png).
- Model preprocesses and classifies the image.
- Get prediction result: Real or Fake + confidence score.
๐ Model Performance
- Architecture: MobileNetV2 + Dense layers + Dropout
- Loss Function: Binary Crossentropy
- Optimizer: Adam
- Metrics Tracked: Accuracy, Precision, Recall, F1-score, ROC-AUC
๐ฎ Future Improvements
- Add explainability (Grad-CAM heatmaps).
- Support video deepfake detection.
- Improve dataset size and diversity.
- Explore Vision Transformers (ViT) or XceptionNet for better results.
๐ค Contributing Pull requests are welcome! For major changes, please open an issue first to discuss what youโd like to change.
