4
$\begingroup$

I just got into AI few months ago. I noticed most of the images in training datasets are usually low quality( almost pixelated).

Does the quality of training images affect the accuracy of the neural network?

I tried googling, but I couldn't find an answer.

$\endgroup$
2
$\begingroup$

For most of the current use cases, where NNs are used in conjunction with images, the image quality (resolution, color depth) can be low.

Consider image classification for example. The CNN extracts features from the image to tell different types of objects apart. Those features are pretty independent from the quality of the image (in reasonable bounds). Compare it with your own visual experience. Try to reduce the resolution of an image of a car step by step to figure out how little details you need until you can no longer distinguish it from a plane. This is similar to modern CNNs, which can even outperform human vision in some regards.

This changes when small details start to matter. Maybe you need to be able to detect small differences in fur patterns to tell different cat breeds apart. As soon as you lose those details, the detection rate will drop significantly.

So the answer to your question is, it depends. As long as you do not lose the important features of the image, you'll be fine with low resolution.


In case you care about the reason for the low quality of images used in machine learning - The resolution is an easy factor you can manipulate to scale the speed of your NN. Decreasing resolution will reduce the computational demands significantly.

Many CNNs even include pooling layers in their architecture, which artificially reduce the resolution further after certain processing steps. This is usually a good idea as long as you are fine with loosing positional information. You shouldn't do this when teaching the CNN to play a game, because location is highly important, but for image classification this has become an established method to increase performance.

$\endgroup$
1
$\begingroup$

Let me answer your question in two parts.

  1. If the Network is to be trained on images with high detail information(content); like, if you want to train a Network capable enough to pick and classify even smallest of the elements in that image.
    Eg- An image in a family picnic and you want to classify each fruit in the basket lying on the table, which would only acquire about 5% of total image space.
    If you decrease the pixel resolution(compress pixel information) of such an image then you would end up blurring the basket part(due to information overlap) and would highly affect your Network; lead to bad trained parameters.
    Note-The fruit basket is not only the single object in focus for classifier, would also include other things in background(trees, landscape...), thus you would require the whole image for training.

    2.When the object to classify contains redundant (or less distinctive) information.
    Eg- The most trivial use of NN to train on a set of characters ([a-z0-9]); now high pixel resolution of such images wouldn't do any benefit to the Network. The improvement in classification for High density images will be minimal in comparison to the overhead experienced due to storage and training time(high training time does not affect your network and is not a criteria to measure the accuracy of your network, i.e. to say a network with high training time and low training time are equivalent).
    We can easily reduce the pixel densities to the point where still we can retain the desired information.
    Note- In the picnic image, our focus is only on the basket, so we can cut out that part from the frame and reduce it's pixel to an extent where each fruits still retains it's information, no information leakage.
$\endgroup$

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.