Basic raw photo editor with joint neurual demosaic and denoise

I created a basic raw photo editor to test combined neural demosaicing and denoising. I did this after spending a long time trying to improve existing traditional demosaicing techniques with only little success.

It handles Bayer and X-Trans raw files of several formats. The model is based on the 2016 paper “Deep joint demosaicking and denoising” by Gharbi et al. with some minor alterations.

I noticed several others have been posting about similar projects and I was hoping to reach out and connect.

The goal is to improve the neural models over time and land in a joint demosaicing + denoising + CA correction framework that would be easy to train and deploy on a variety of systems.

The app runs on Windows, macOS and Linux. I could only sign it for macOS for now, so installing on windows gives the usual warnings. The macOS version is untested, I don’t have access to a mac.

Let me know if you try it out. The focus is on the demosaicing rather than building yet another raw editor but I will do my best to fix any issues that pop up.

The downloadable installers and technical details are available on the GitHub page.

6 Likes

System requirements

There is no CPU fallback in this app. You need a GPU that supports Vulkan (Linux, Windows), DirectX 12 (Windows) or Metal (macOS).

Minimum Recommended
OS Windows 10, Linux with Vulkan drivers (Mesa 22+ or NVIDIA), macOS 12 Windows 11, recent Mesa, macOS 13+ on Apple Silicon
GPU Any Vulkan / DX12 / Metal GPU, 2 GB video memory Discrete GPU or Apple Silicon with f16 shader support, 4–8 GB
RAM 8 GB 16 GB (32 GB for 60–100 MP files)

Looks nice , sorry to ask but how much of this was done by AI?

It depends on what you mean. Technically speaking it’s 100% AI. That being said, some parts I will have to do over by hand just to keep it readable.

The focus right now is on the demosaicing part. The Pytorch training setup is probably the first thing that I will go over and clean up.

I spent a lot of time trying different model architectures, performance tradeoffs and what works and what doesn’t. Using AI coding tools really helped cut the overhead on that by a lot.

Cool! How does the demosaicing engine stack up against, say Markensteijn or Adobe?

I have never tried Adobe or any other commercial photo editor, but I’m guessing all of them have top notch demosaicing and denoising implementations at this point.

You can think of this more as an amateurish implementation of the most basic kind of joint neural demosaicing and denoising.

In my opinion this method compares favorably to Markesteijn. It does not have the worms issue that comes from heavy directional interpolation. It also has basically no color zippering unlike Markesteijn.

But it is not blemish free either. Most notably the X-Trans version suffer from luma zippering along high contrast edges. I’m hoping it can be fixed model tuning and better training data in the future.

How does this differ from what is in vkdt? vkdt: jddcnn: joined denoising and demosaicing convolutional neural network

Surprisingly, that’s not usually the case. Many of the commercial programs use quite basic algorithms.

1 Like

It is hard to tell from the information on the linked page. It is the same basic idea but based on a different class of model.

I can’t seem to get it to work in the app even using the nightly build so the only chance to judge it would be to look at the pytorch code. I will have a look when I have the time.

If you know more, please let me know.

Thanks for the link!

LR with its “wormy” Fuji files :smiley: Have they fixed that already?

I (or rather the industrious AI coding agent) have created a web demo version that runs the demosaicing model in your browser if it is set up to use WebGPU.

It is hosted from the GitHub page.

https://monkeypangit.github.io/starfish/

1 Like