Machine Learning Library in G'MIC

Funny that @hanatos just mentioned it, because these last days, I’ve been tried to completely recode the denoise_cnn command, in order to use a CNN that is able to take an estimated noise level (scalar value), as an input to the network.
So that a single network can denoise an image more or less, according to the user’s wishes.

It turned out to be not that easy to make the network take this parameter into account, rather than doing his own noise level estimation and completely ignore the instructions of the user (a bit like a child :slight_smile: ).

That issue could be finally solved using FiLM (Feature-wise Linear Modulation), a technique which I find a bit “violent”, but that’s what you need apparently for networks (unlike with children!).

The new denoising network has now 450k parameters (larger than before).
Some examples:

Noisy image:

noisy

Denoised images:

 gmic noisy.png +denoise_cnn[0] 5,32 +denoise_cnn[0] 10,32 +denoise_cnn[0] 20,32 +denoise_cnn[0] 40,32

I’ll try to release version 3.5.1 of G’MIC soon, with this network updated.

1 Like