# Is there Julia library for AI Image Denoising?

**URL:** <https://discourse.julialang.org/t/is-there-julia-library-for-ai-image-denoising/75688>\
**Category:** Signal and Image Processing\
**Tags:** image-processing\
**Created:** [February 2, 2022, 10:15pm UTC](https://discourse.julialang.org/t/is-there-julia-library-for-ai-image-denoising/75688 "2022-02-02T22:15:20Z")\
**Posts on this page:** 1\
**Showing post:** 6

<div class="post-metadata">

**Author:** ![Palli](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/palli/32/3380_2.png) [@Palli](https://discourse.julialang.org/u/Palli)\
**Post date:** [April 27, 2022, 9:48am UTC](https://discourse.julialang.org/t/is-there-julia-library-for-ai-image-denoising/75688/6 "2022-04-27T09:48:02Z")

</div>

I haven’t seen such in Julia, but I would like the 2022 state-of-the-art (SOTA) implemented in Julia (it’s one page of code, page 29 in the paper, for “Algorithm 1”, I didn’t see any number 2…):

> **[GitHub - google-research/maxim: \[CVPR 2022 Oral\] Official repository for "MAXIM:...](https://github.com/google-research/maxim)**
>
> \[CVPR 2022 Oral\] Official repository for "MAXIM: Multi-Axis MLP for Image Processing". SOTA for denoising, deblurring, deraining, dehazing, and enhancement.

The code seemed simple enough, but it does much more than denoicing, also e.g. deraining, which I didn’t know was a thing… All at the same time.

[EDIT: NAFNet, see at the bottom, from 10 April 2022, seemingly also claims SOTA on deblurring, and is very intriguing for technical reasons " Nonlinear Activation", and computational efficiency. Previous EDIT: It seems Restormer from 2021 is still SOTA for denoising, but even with MAXIM 5th, the competition at the top is very close. [DND Benchmark (Image Denoising) | Papers With Code](https://paperswithcode.com/sota/image-denoising-on-dnd?p=maxim-multi-axis-mlp-for-image-processing) I believe the latter may be better at denoising when combined with other tasks, but would still like to see both implemented or wrapped in Julia.]

It’s Python (or well JAX) code, and it could also just be wrapped from Julia (assuming you have all of it), but I thought it might still be a fun project to port, since seemingly simple… Does anyone see any hindrance in porting such JAX/Python code, to what Flux?

> [@juliohm](#):
>
> there is no such thing as “AI image denoising”

Well, traditional methods are not AI or ML, but certainly claimed “AI” solutions are offered:

> **[VanceAI Image Denoiser: Denoise AI & Remove Grain from Photo](https://vanceai.com/denoise-ai/)**
>
> Remove noise & grain from pictures in seconds with VanceAI's Denoise AI. Fix grainy photos and remove artifacts from images online for free.

The algorithm above is ML, a sub-field of AI, and ML/AI may be used in recent denoicing-only algs too, but at least deraining and having all together certainly seems AI to me… Superresolution, at least the good algorithms are also AI/ML, and I only find that missing, having that and the rest in one package would be cool. I suppose the superresolution could be done after (or before) in a separate phase, but I’m not sure if the manipulation of the former would interfere and thus need to be combined.

[https://image-upscaler.com/image-denoiser/](https://image-upscaler.com/image-denoiser/)

See also from Intel:  
[https://www.openimagedenoise.org](https://www.openimagedenoise.org)

Previous state-of-the-art from 2021 (and there some intriguing [newer] info and not [inceptioniai.org](http://inceptioniai.org) in the email address there):  
[GitHub - swz30/MPRNet: [CVPR 2021] Multi-Stage Progressive Image Restoration. SOTA results for Image deblurring, deraining, and denoising.](https://github.com/swz30/MPRNet)

> Our Related Works  
> Learning Enriched Features for Fast Image Restoration and Enhancement, TPAMI 2022. Paper | Code  
> Restormer: Efficient Transformer for High-Resolution Image Restoration, CVPR 2022. Paper | Code  
> Learning Enriched Features for Real Image Restoration and Enhancement, ECCV 2020. Paper | Code  
> CycleISP: Real Image Restoration via Improved Data Synthesis, CVPR 2020. Paper | Code

About Restormer

> **April 4, 2022:** Integrated into [Huggingface Spaces](https://huggingface.co/spaces) using [Gradio](https://github.com/gradio-app/gradio). Try out the web demo:  
> [Image Restoration with Restormer - a Hugging Face Space by swzamir](https://huggingface.co/spaces/swzamir/Restormer)

> **[GitHub - XPixelGroup/BasicSR: Open Source Image and Video Restoration Toolbox...](https://github.com/XPixelGroup/BasicSR)**
>
> Open Source Image and Video Restoration Toolbox for Super-resolution, Denoise, Deblurring, etc. Currently, it includes EDSR, RCAN, SRResNet, SRGAN, ESRGAN, EDVR, BasicVSR, SwinIR, ECBSR, etc. Also support StyleGAN2, DFDNet.

BasicVSR++ was added to the “19 hours ago” above repo and it’s very cool:

[![](https://global.discourse-cdn.com/julialang/original/3X/a/5/a5f48e5ce358fd2e2ef5a61b7fedb71f1f624564.jpeg "BasicVSR++: Improving Video Super-Resolution with Enhanced Propagation and Alignment") ](https://www.youtube.com/watch?v=iIDml09CUc4&t=37)

I did not know this was a thing:

> **[Papers with Code - NAFSSR: Stereo Image Super-Resolution Using NAFNet](https://paperswithcode.com/paper/nafssr-stereo-image-super-resolution-using)**
>
> 🏆 SOTA for Stereo Image Super-Resolution on KITTI2015 - 4x upscaling (PSNR metric)

> NAFSSR outperforms the state-of-the-art methods on the KITTI 2012, KITTI 2015, Middlebury, and Flickr1024 datasets.

it links to NAFNet code repo, which is also claimed SOTA for denoising (and deblurring) in 2022:

> ## NAFNet: Nonlinear Activation Free Network for Image Restoration
> 
> Although there have been significant advances in the field of image restoration recently, the system complexity of the state-of-the-art (SOTA) methods is increasing as well, which may hinder the convenient analysis and comparison of methods. In this paper, we propose a simple baseline that exceeds the SOTA methods and is computationally efficient. To further simplify the baseline, we reveal that the nonlinear activation functions, e.g. Sigmoid, ReLU, GELU, Softmax, etc. are **not necessary** : they could be replaced by multiplication or removed.

---

_[View the full topic](https://discourse.julialang.org/t/is-there-julia-library-for-ai-image-denoising/75688)._
