Skip to content

Feature-preserving image denoising with multiresolution filters

Notifications You must be signed in to change notification settings

eric-yyjau/image_denoising_matching

Repository files navigation

Feature-preserving image denoising with multiresolution filters

Final project for ECE251C: Filter banks and wavelets.

The Paper

Summary

  • Study and implement the bilateral filter, multiresolution bilateral filter, guided filter.
  • Compare the image denoising and edge-preserving performance of the above algorithms, by peak signal to noise ratio (PSNR) and structural similarity (SSIM) index. (SIDD dataset)
  • Further compare the feature preserving performance by comparing the feature detection and matching result before and after denoising using SIFT. The metric is repeatability and homography estimation on Hpatches benchmark dataset.

Run the code

1) Denoising performance on SIDD

  • download SIDD small sRGB from ftp://sidd_user:sidd_2018@130.63.97.225/SIDD_Small_sRGB_Only.zip
  • run 'demo_filters.py' to see result on one patch
python demo_filters.py # run on an example image
  • run 'tune_filters_sidd.py' to tune parameters on 40 images
  • run 'test_filters_sidd.py' to test filters on SIDD

2) Export and Evaluate repeatability on SIFT

Requirements

  • GPU
    • need a gpu to run (not work on pure cpu version)
  • Environments
    • python 3.6, pytorch >= 0.4.1
    • conda create
conda env create -f environment.yml # env name: py36-imgdn
  • use pip
conda create --name py36-imgdn python=3.6
conda activate py36-imgdn
pip install -r requirements.txt

Datasets

  • download HPatches
`-- datasets/
|   |-- HPatches
|   |   |-- i_ajuntament
|   |   | ...
`-- ...

Export

  • set config file.
python export_classical.py export_descriptor configs/example_config.yaml sift_test_small

evaluate

python evaluation.py <path to npz files> [-r, --repeatibility | -o, --outputImg | -homo, --homography ]
python evaluation.py logs/sift_test_small/predictions -r -homo

Run scripts

  • Do export, then evaluate the prediction.
./run_export.sh

Run evaluation for different noise

# check help 
python run_eval_good.py -h
  • Change the parameters from sequence_info.get_sequences.
    • set ['exp_name', 'param', mode, 'filter', filter_d].
  • Run for collecting samples
python run_eval_good.py test_0330 --dataset hpatches --model sift --runEval
  • Check output and check exist
python run_eval_good.py test_0330 --dataset hpatches --model sift -co -ce

Results

Please refer to final_report.pdf and presentation.pdf.

  • sift results
    • matching Matching
    • repeatability Matching
    • warping using predicted homography Matching

Logging

https://docs.google.com/document/d/1VCM1yOlSXhzatvEgNLB1IoWqT81NWjPtbGr0THJ5uqE/edit#heading=h.nrpj9v3j7ji7

Credits

This implementation is developed by Yigian Wang and You-Yi Jau.

About

Feature-preserving image denoising with multiresolution filters

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published