A robust framework for image denoising and defect detection, leveraging a multi-phase deep learning approach to effectively handle various noise types and enhance defect detection accuracy.
- Implements a binary classification model for accurate defect detection
- Utilizes BCEWithLogitsLoss for model training
- Employs AdamW optimizer with configurable learning rate
- Performs multi-class classification to identify noise types
- Supports Gaussian, Periodic, and Salt noise types
- Uses CrossEntropyLoss for training
- Provides dedicated denoising models for each noise type
- Features a custom architecture optimized for noise removal
- Includes individual training pipelines for each noise type
- Applies trained models to denoise the entire dataset
- Integrates noise type detection and denoising for seamless processing
- Retrains the defect detection model using denoised images
Follow these steps to set up the framework:
-
Clone the Repository:
git clone https://github.com/safinal/denoising-framework.git cd denoising-framework -
Set Up a Virtual Environment:
python -m venv .venv source .venv/bin/activate # On Linux/Mac # or .venv\Scripts\activate # On Windows
-
Install Dependencies:
pip install -r requirements.txt
Run the framework in different phases using the main script:
python run.py --phase [PHASE] --config [YAML_CONFIG_PATH]phase1: Trains the defect detection modelphase2.1: Trains the noise type detection modelphase2.2: Trains denoising models for each noise typephase3.1: Denoises the dataset using trained modelsphase3.2: Retrains defect detection on the denoised dataset
The framework uses YAML configuration files located in the src/config/ directory to specify parameters.
This project is licensed under the terms of the included LICENSE file.