Giter Club home page Giter Club logo

chan-admm-reimplementation's Introduction

About

In 2023, I enrolled in a graduate-level course on machine learning and statistics taught by Professor Qi Guo at Purdue University. The course required us to undertake a final project that involved re-implementing a seminal machine learning publication. I chose to focus on the paper titled "Plug and Play ADMM for Image Restoration," authored by Dr. Stanley Chan.

My efforts in this project resulted in a grade of 86.0/84.0 for the final project and an overall A in the class. I have compiled my work on this final project, along with the paper, in this GitHub repository.

Differences with original code base

Since this is a re-implmentation of a very well documented project, there is an existing codebase for the original project here. This github does three things differently than this original codebase:

  1. That codebase is in MatLab while this one is in Python3
  2. The parameters are a bit different - not better or worse but it's a re-implmementation in a different language so the values are different
  3. This project expands upon the old one and tests results for different scenarios than the original which only tested on a few
  4. The PNSR is lower in general for this project because the noise is higher than in the MatLab demo

How to use

Demo

To see the ADMM algorithm in action, go to the demonstrations folder. All scripts can be run with python and will display the before and after denoised image. You should run the files from within the demonstrations folder.

Analysis

In the final project document, there are graphs displaying how the Peak to Signal Noise Ratio (PNSR) changes given different parameters. This is calculated with the scripts in the analysis folder. These scripts take a long time, sometimes several days, to run. I highly reccomend using other computing recourses. Also, the files can load python pickles from the pickles folder if you don't want to generate the data from scratch. The generated plots are also in the analysis folder.

chan-admm-reimplementation's People

Contributors

mirawelner avatar

Stargazers

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