2
$\begingroup$

Is it possible to train a neural network to detect whether an image is blurry or not?

I'm currently using synthetically blurred images to build the classifier. However, I'm worried that this approach is not valid as we are using synthetic images. What are the challenges of using an approach like this?

$\endgroup$
  • $\begingroup$ The term of art you're looking for is super-resolution imaging. $\endgroup$ – Reinstate Monica Jun 17 '18 at 17:36
1
$\begingroup$

Using synthetically generated images to build the classifier and then applying the classifier to real world images means that there is a high risk of the build data set and the production data set not having the same distribution (i.e. statistical properties), and that is a bad idea. You always want your build data set and your production data set to come from the same distribution.

Using synthetic data is good for proof of concept, but not for building the production version of your classifier.

$\endgroup$
1
$\begingroup$

'Is it possible to train a NN to detect...' - stop right there, the answer is always 'Yes.'. At least theoretically - so says the Universal Approximation Theorem. It's not a question of if you can do it, but finding out how to do it well and without burning through ten GPUs a day.

Enough being obtuse though; it's practically doable as well. You most likely want some kind of adversarial-style setup - train a recognition network to recognize a sharp image as true and the synthetically blurred one as a fake.

You could attach it to a generator network that blurs real images to more or less get an arbitrarily large training set. Really quite similar to a VAE-GAN, except you want to extract the discriminator from the GAN component.

$\endgroup$
  • $\begingroup$ Why should it be framed as a GAN problem? Couldn't it be just framed as supervised binary classification? $\endgroup$ – Simone Jun 18 '18 at 10:45
  • $\begingroup$ It's only GANnish if you're including the automated blurring process as part of the architecture. And I'd call it more of an analogy/proof-of-concept - VAEs are often blurry, VAE-GANs are not blurry where it matters, ergo there are networks (GAN discriminators in VAEGANs) capable of smartly recognizing blurriness. $\endgroup$ – jkm Jun 18 '18 at 10:53
  • $\begingroup$ The first statement should be clarified: NNs can theoretically approximate any function. However, the real issue is whether the function is captured in the data. What if I want to predict from an image the name of the person who took the photo? No chance. $\endgroup$ – Jan Kukacka Jun 18 '18 at 16:02
  • $\begingroup$ True. I've actually deliberately added 'detect' in the quote above to account for that as it implies there is something detectable in the data. $\endgroup$ – jkm Jun 18 '18 at 17:09
  • $\begingroup$ It's been shown to be practically impossible to get a neural net to add two numbers, so I'm not convinced of the UAT argument. $\endgroup$ – samdsamdm Jun 19 '18 at 15:19

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.