Skip to content

agarnung/image-deblurring-exploration

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

image-deblurring-exploration

An attempt to make my mobile phone's camera work. Inspired by practical uses of deblurring/deconvolution techniques.

The exploration is documented in the notebook.

My mobile phone camera is broken (i.e. 📉 : (📷 ⊂ 📱) → ⛓️‍💥); the lens is shattered (photo attached below). In this repository, I investigate how to work around this problem using variational techniques in image processing to restore photos taken with the damaged camera.

Crashed lense,

Currently, these are my type of photos:

Blurry photo 6...

...How do I improve them?

Project Description

The main goal of this project is to investigate and apply deblurring/deconvolution methods to improve photos taken with a mobile camera that has suffered physical damage, specifically to the lens. The images captured by this camera are blurry due to the damage, and traditional focus correction methods cannot be used due to the lack of precise information about the Point Spread Function (PSF). To address this issue, we explore deblurring techniques, both with known PSF (non-blind deblurring) and without it (blind deblurring), using variational techniques and numerical methods.

Objective

The goal is to automatically and effectively restore images through deconvolution techniques. This involves:

  • Recovering the PSF (Point Spread Function) using deblurring methods.
  • Performing the deconvolution of the damaged images to produce clearer and sharper photos.
  • Evaluating the quality of the restored images by comparing them with a reference image taken with a working camera.

Project overview

  • The folder notebook contains the main investigation.
  • The folder code contain the code utilized.

Troubleshooting

Installing heavy Python libraries like torch or torchvision, one can run out of space in /tmp. The workaround is to specify your own temporary directory:

pip._vendor.urllib3.exceptions.ProtocolError: ("Connection broken: OSError(28, 'No space left on device')", OSError(28, 'No space left on device'))
(venv_datos) alejandro@pop-os:/media/alejandro/DATOS/venv_DATOS/src/dwdn$ TMPDIR=/media/alejandro/DATOS/pip_cache pip install torch torchvision

TODO

  • Proper use of the Markdown rendering on GitHub; e.g. why LaTeX. HTML tables... seem to fail.
  • Train model with data augmentation

About

An attempt to make my mobile phone's camera work

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published