DeepVerify is a deepfake detection system designed to identify manipulated images and videos, specifically focusing on political media. This project utilizes advanced machine learning techniques to detect deepfakes and enhance the integrity of political content.
- 📘 Introduction
- ✨ Features
- 💻 Tech Stack
- 📊 Dataset
- ⚙️ Installation
- 🚀 Usage
- 🧠 Model Development
- 🏭 Production Workflow
- 🤝 Contributing
- 📄 License
- 🙏 Acknowledgements
With the rise of deepfake technology, the spread of manipulated political media has become a significant concern. DeepVerify aims to provide a robust solution to detect such content, leveraging state-of-the-art machine learning models.
- 🖼️ Image and Video Detection: Supports deepfake detection for both images and videos.
- 🧠 Ensemble Learning: Combines predictions from multiple models to enhance accuracy.
- 💻 User-friendly Interface: Developed with React, TypeScript, and Tailwind CSS.
- 📄 API Documentation: Comprehensive API documentation using Swagger for integration and usage.
- Frontend: React, TypeScript, Tailwind CSS, Vite
- Backend: Node.js, NestJS
- Machine Learning Models: XceptionNet, EfficientNet-B4, 3D ResNet, CNN-LSTM
- Database: MongoDB
- Package Management: npm
- Monorepo Management: Turbo
The project utilizes the FaceForensics++ dataset for training and evaluation, which includes a comprehensive set of images and videos with manipulated and real content.
-
Clone the repository:
git clone https://github.com/francisojeah/deep-verify-project.git cd deep-verify
-
Frontend setup:
cd web-apps/frontend npm install
-
Backend setup:
cd web-apps/backend npm install
-
Microservice setup:
cd web-apps/microservice docker build -t deepverify-microservice .
-
Database setup: Create a MongoDB instance and configure your
.env
file in the backend folder with the necessary database details.Example
.env
file:APP_NAME=DeepVerify APP_DESCRIPTION=DeepFake Detection in Political Media APP_SERVER_LISTEN_PORT=3000 APP_SERVER_LISTEN_IP=0.0.0.0 API_VERSION=v1 GLOBAL_PREFIX=backend SERVER_URL=http://localhost:3000 CLIENT_URL=http://localhost:5173 JWT_SECRET=your_jwt_secret JWT_TIME=3600 EMAIL_HOST=smtp.example.com [email protected] EMAIL_PASSWORD=your_email_password [email protected] SALT_ROUNDS=10 DB_URI=mongodb://localhost:27017/deepverify GOOGLE_CLIENT_ID=your_google_client_id GOOGLE_SECRET=your_google_secret
-
Model setup:
cd models python training/train.py
-
Start the frontend:
cd web-apps/frontend npm run dev
-
Start the backend:
cd web-apps/backend npm run start:dev
-
Start the microservice:
docker run -p 8000:8000 deepverify-microservice
Run the preprocessing script to prepare the data:
cd models/data
python preprocess.py
Train the model using the training script:
cd models/training
python train.py
Evaluate the model's performance:
cd models/evaluation
python evaluate.py
- Data Preprocessing: Cleaning and preparing the FaceForensics++ dataset.
- Model Training: Training the selected models on the dataset.
- Model Evaluation: Assessing model performance and fine-tuning.
- Deployment: Deploying the backend and model microservices.
- Integration: Integrating the models with the frontend application.
Contributions are welcome! If you have suggestions, bug reports, or improvements, please open an issue or submit a pull request.
This project is licensed under the MIT License. See the LICENSE file for more details.
- The FaceForensics++ team for providing the dataset.
- Open source contributors and the developer community.