Hey everyone, had some experience with this problem so it looks like a good place for my 1st post - I’ve had a similar case in work where we basically tried to determine if the image is clean enough for our classification method (acting as a safety filter). Our specific case required the object to be completely visible.
Because of the diversity of noise the images contained (photo was taken underwater, so there were blobs, some distortion, discolored parts and more), we’ve initially taken an unsupervised one-class approach, trying different methods like VAE and Efficient-GAN. It was my first time in the unsupervised domain (besides some pretty simple works in the university with GANs), so take that under consideration, but TL;DR - that didn’t work. The methods were able to distinguish our one-class from inherently different images, but weren’t sensitive enough to notice subtle differences o. We also found some evidence from several resources showing this problem still has some way to go for complex images, e.g. the excerpt from this under-review article
We ended up utilizing histograms to capture the “big” noises + supervised classification with heavy augmentations to do a decent, not perfect, job on the smaller noises which we deemed good enough.