Giter Club home page Giter Club logo

proximaloperatorsproject's Introduction

Proximal Operators for Nonnegative Inverse Problems

Repository of the course Microengineering project I (10 credits), a semester research project carried out from February to June 2020 at EPFL's Biomedical Imaging Group.

The project was supervised by:

Scope of the Project

The project is dedicated to the study of image regularizers and their combination with nonnegativity constraints. This is in the context of solving imaging problems, whose algorithms of choice take advantage of the proximal operators of nonnegativity constraints and of the regularizers. However, this involves costly variable splitting, and additional optimzation problems. This splitting could be avoided by fulfilling any of the two conditions

alt text

where denotes the image regularizer and denotes the nonnegativity constraints. The left hand side of the equations represent the ground truth.

Therefore, the goal of this project is to project is to experimentally test the previous equations for different common image regularizers, and build a data base of which regularizers are candidates for reduced splitting, and therefore can potentially improve performance.

Methodology

Given that all image regularizers are convex, the methodology was to use CVXPy, a Python-embedded modeling language for convex optimization problems, to obtain both the ground truth and the right-hand-side of the tested equations. Even though this method incurrs in inherent numerical errors, it has the advantage that many different regularizers can be studied through a common framework, without the need to use proximal analysis to obtain the ground truth and the proximal operators of regularizers.

Code and Directory Structure

The respository has 5 subdirectories

  • Code: Contains the file proximal.py, with the framework to test for reduced splitting. Moreover, it contains the Jupyter notebooks Evaluations.ipynb -where all the different image regularizers are tested- Experiments.ipynb -where some of the results are tested on real images, on an image denoising task- and Plots.ipynb -where some relevant plots for the report are created-. The rest are utils for the code to run. See the wiki for details.
  • Data: Contains the file peppers.tiff, the only image necessary for the experiments (the rest is imported from the skimage.data module). Furthermore, it contains the results from the experiments in .npy formal. The README.txt explains this files in more detail
  • Presentation: Contains the file Final_PPT_Nogueron.pdf, the final graded presentation of the project in PDF format.
  • Report: Contains the file Report_ANogueron.pdf, the final report in PDF format. Moreover, it contains the directory LaTex_Project, with all the files necessary to generate the report in LaTex.
  • Web: Contians the file abstract and the image TV_Experiment, that briefly illustrate and explain the project.

Results

The main results are:

Regularizer Reduced Splitting
p norms Yes
1-dimensional TV Yes
nonisometric TV (2D) Yes
isometric TV (2D) No
Group Sparsity Yes
Hessian-Schatten norm ?

For detailed results and discussion, look at section 4 of the report.

proximaloperatorsproject's People

Contributors

alejandro-1996 avatar poldap avatar

Watchers

 avatar  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.