Obscurra is a Python-based image processing tool designed to detect faces in images and apply a blur effect to anonymize them. The project aims to enhance privacy by automatically processing images to obscure identifiable facial features through a user-friendly graphical interface.
This repository contains the source code, documentation, and models used by the tool.
- Detects faces in images using Haar cascades.
- Blurs detected faces to anonymize them.
- Supports multiple image formats: JPG, JPEG, PNG, and WEBP.
- Modular design for easy maintenance and extensibility.
- Develop a tool to detect and blur faces in images.
- Provide a simple GUI for image processing.
- Compile the application into a portable executable.
- Research: Investigated face detection models and image processing techniques.
- Requirements: Defined project scope and objectives.
- Core Features: Implemented face detection using Haar Cascade and MTCNN.
- GUI: Developed a Tkinter-based user interface.
- Testing: Identified and resolved bugs.
- Optimization: Enhanced performance and accuracy.
- Executable: Packaged application using PyInstaller.
- Documentation: Created user and developer guides.
- Integrated multiple face detection models.
- Developed a portable executable with a comprehensive GUI.
- Enhanced user experience with real-time image processing updates.
- Model Integration: Ensured compatibility between different face detection models.
- Performance: Required optimization for processing speed and accuracy.
- GUI Usability: Improved interface design based on user feedback.
The project followed an agile development process with iterative cycles of development, testing, and refinement, focusing on usability and performance.
- Python: Core language
- Tkinter: GUI framework
- OpenCV: Image processing
- TensorFlow: MTCNN model
- PyInstaller: Executable packaging
Obscurrra/
├── src/
│ ├── Obscurrra.py # Main script
│ ├── icon.ico # Application icon
│ ├── haarcascade_frontalface_default.xml # Frontal face detection model
│ ├── haarcascade_profileface.xml # Profile face detection model
│ ├── mtcnn_weights.npy # MTCNN model weights
└── dist/ # Compiled executable
- Download the Executable: Obtain from the release section.
- Run the Application: Launch the GUI executable.
- Process Images:
- Select input and output folders.
- Choose detection models and set preferences.
- Click "Start Processing."
-
Clone the Repository:
git clone https://github.com/jakujobi/obscurrra.git cd obscurrra
-
Create a Virtual Environment and Install Dependencies:
python -m venv venv source venv/bin/activate # On Windows use `venv\Scripts\activate` pip install -r requirements.txt
-
Run the Application:
python src/Obscurrra.py
-
Install PyInstaller:
pip install pyinstaller
-
Compile the Application:
pyinstaller --onefile --windowed src/Obscurrra.py
- Explore advanced face detection models.
- Add real-time video processing capabilities.
- Enhance cross-platform compatibility.
- John Akujobi- Project Lead, UI Designer, Software Engineer
This documentation provides a comprehensive yet concise overview of the Obscurrra project, highlighting key features, challenges, and future directions for both users and developers.