GithubHelp home page GithubHelp logo

imagereconstructionbyfrequencies's Introduction

Применение вейвлет-преобразований для построения интерпретируемой шумоподавляющей сети

Данный репозиторий содержит код для обучения модифицированной архитектуры нейронной сети IS-Net. На изображении ниже приведена схема архитектуры сети.

alt text

Подготовка обучающего набора данных

Для запуска обучения необходимо представить его в следующем формате:

PATH_TO_TRAIN_DATASET_FOLDER/
    ---> noisy/
        ---> train_image_1.png
        ---> train_image_2.png
        ...
        ---> train_image_N.png
    ---> clear/
        ---> train_image_1.png
        ---> train_image_2.png
        ...
        ---> train_image_N.png

PATH_TO_VALIDATION_DATASET_FOLDER/
    ---> noisy/
        ---> val_image_1.png
        ---> val_image_2.png
        ...
        ---> val_image_N.png
    ---> clear/
        ---> val_image_1.png
        ---> val_image_2.png
        ...
        ---> val_image_N.png

Где в директориях clear/ должны находится изображания без шума, а в директориях noisy/ - изображения с шумом и имеющие соответвующее имя, как у чистого файла изображения.

По данной ссылке можно скачать набор данных SIDD, преобразованный в используемый формат.

Обучение модели

Запуск визуализации

В текущем пайплайне используется визуализация через visom, данный пакет устанавливается через пакетный менеджер pip:

pip3 install visdom

Запуск visdom рекомендуется делать фоновым процессом, с помощью screen или tmux. Пример запуска visom:

visdom -port=9001
Запуск обучения

Для запуска обучения необходимо перейти в соответствующую директорию с кодом и установить необходимые зависимости:

cd research_pipelines/denoising_with_wavelets/
pip3 install -r requirements.txt

После установки зависимостей, можно запустить обучение. Пример консольной команды для запуска процесса обучения модели:

python3 pytorch_wavelet_train.py \
    --train_data_folder $PATH_TO_TRAIN_DATASET_FOLDER \
    --validation_data_folder $PATH_TO_VALIDATION_DATASET_FOLDER \
    --epochs 150 \
    --lr_milestones 5 \
    --image_size 512 \
    --batch_size 4 \
    --visdom 9001 \
    --njobs 4 \
    --exp $PATH_TO_EXPERIMENT_FOLDER/ \
    --preload_datasets
Запуск валидации

Скрипт запускается из директории research_pipelines/denoising_with_wavelets/. Валидация запускается следующим скриптом:

usage: evaluate_model.py [-h] -m MODEL -f FOLDER [-o OUTPUT]

Plot wavelets

options:
  -h, --help            show this help message and exit
  -m MODEL, --model MODEL
                        Path to model checkpoint file
  -f FOLDER, --folder FOLDER
                        Path to folder with images
  -o OUTPUT, --output OUTPUT
                        Path to folder with output visualizations (optional)

Предобученную модель можно скачать по следующей ссылке.

Визулизация коэффициентов вейвлет-преобразований

Для отрисовки матриц с коэффициентами ДВП подготовлен следующий скрипт: research_pipelines/denoising_with_wavelets/scripts/plot_wavelets_pyramid.py

usage: plot_wavelets_pyramid.py [-h] -m MODEL [-i IMAGE] [-o OUTPUT] [-g GAMMA_CORRECTION]

Plot wavelets

options:
  -h, --help            show this help message and exit
  -m MODEL, --model MODEL
                        Path to model checkpoint file
  -i IMAGE, --image IMAGE
                        Path to input image (optional)
  -o OUTPUT, --output OUTPUT
                        Path to folder with output visualizations (optional)
  -g GAMMA_CORRECTION, --gamma_correction GAMMA_CORRECTION
                        Coefficient to adjust gamma of wavelets coefficients visualization (optional)

Замечание: перед запуском python скриптов может понадобиться добавить следующую переменную окружения:

export PYTHONPATH=./

imagereconstructionbyfrequencies's People

Contributors

alexeysrus avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.