After your edit, the noisy image disappeared. Was that intentional?
You and I have a different definition of very noisy. So far, the images are generally well framed, lit and thought out. It would be nice to train on images that aren’t so ideal. That was what I was implying.
The noisy ones are on File:NIND MuseeL-Bobo ISO6400.jpg - Wikimedia Commons (and the “other versions” links there), I originally had one clean-noisy pair but I put more different ISO values and didn’t want to take too much space on this board since the noisy ones are already available there (and I haven’t found how to make a small gallery yet).
The noise values can (and go) pretty far; beyond the maximum ISO of this camera and to much greater values in the full frame images (I haven’t made one of those for the test set yet, because everything I can use for training is precious, but I could use some regular images and just rely on visual comparison without a metric …).
I’m not sure if the framing and such would help much, because training works on about 220 pixels patches which are then pretty random, but more variety definitely helps. The only limitation is that the scene can’t move at all, and that includes lighting which has to stay constant across all shots.
I tried to include some pleasant to look at images because I (and I expect other researchers and readers) are likely to look at these images a lot, so it makes the job more pleasant.
Would it be possible to use .pgm files in your software? Because when I tried DxO Deep PRIME yesterday it generated a dng.
dcraw -c -4 -E -j -t 0
I have used pgm2dng before and it would be interesting to try how much better the NR would be. pgm2dng needs to be written for each camera (black level) so starting with one camera model would be a good start.
Not out of the box but it shouldn’t be too hard to implement.
PGM files should be handled by OpenCV (which should now be used in all read/write operations) and ImageMagick (cropping).
I believe those are 1ch images so the networks would have to be adapted from 3 to 1. (the first, input, or second, output, parameter of torch.nn.Conv2d and torch.nn.ConvTranspose2d).
I think the second biggest issue (after non-generalization) is that exposure and alignment may not be equal across shots, but that could be a non-issue with a camera’s native ISO values and easy static scenes, and less time processing means more time can be spent acquiring data.
If you are using demosaiced images for training, the demosaicing algorithm will affect noise quality/character. EG some algorithms increase noise more than others.
I also suspect that the demosaicing differences between x-trans sensors and bayer sensors will affect performance.
Unfortunately they are from the ‘vintage’ Nikon D40 which is noisy even at base ISO 200. I have taken 4 shots at ISO 200 so they can be stacked to get equivalent to ISO 50 (I think).
Images are placed into the public domain.
I can make more sets of still life scenes if you want.
Meanwhile I have been trying to work with PGM files to be able to noise reduce before demosaicing and before black level. Got stuck with PGM files from 7D. When I try to create DNG files from PGM I get the wrong colour. Perhaps wrong cfa pattern? Works with M5, M6, R etc…
For my M5, there were no issue. dcraw -4 -E -j -t 0 IMG_6990.CR2 IMG_6990.zip (38.2 MB)
./pgm2dng IMG_6990.pgm
IMG_6990.DNG (48.7 MB)
CR2 to the left, DNG from pgm2dng to the right.
After that I copied all metadata with exiftool -tagsFromFile IMG_6990.CR2 -all -icc_profile IMG_6990.DNG
pgm2dng is avalible from Magic Lantern http://a1ex.magiclantern.fm/bleeding-edge/pgm2dng.c
Compile it with gcc -o pgm2dng -m32 pgm2dng.c /path/to/magic-lantern/src/chdk-dng.c -I/path/to/magic-lantern/src -lm
Or use the one I compiled for M5. pgm2dng.zip (8.9 KB)
Will do, It might take me a while (a month or so?) because I’m currently focusing a lot on File:ElectricBoatDiagram.png - Wikimedia Commons and I will hopefully be moving soon. I’m excited to start working on raw/ish denoising though. Thank you for working on this