Is background subtraction common practice for image classification? I am going to build a mushroom identification application and using neural networks for image classification. Right now I am thinking about different image processing methods to implement before feeding my data (mushroom pictures) to the neural network. As one solution I have stumbled into background subtraction, which sounds rather sensible solution as almost all mushroom pictures have forest (similar) background. Yet I have not found any adequate proof that it is used in image classification.
So my question is, whether it is a common practice to remove background from images before using them to train neural network for image classification?
 A: I tried this several times in several projects in the past, and yes, it may help if done properly. However, reliable background removal is not trivial, and it has to be carefully, manually checked for each image. And as it's not a very easy thing to do, it's not commonly done when working with neural networks and large datasets. Usually, a better approach is to ensure that you have a large number of images with diverse backgrounds, so that the network cannot just rely on the background to drive the prediction.
As a fun fact, from a Marvin Minsky Interview: 

[...] Where a perceptron had been trained to distinguish between - this was for military purposes - it was looking at a scene of a forest in which there were camouflaged tanks in one picture and no camouflaged tanks in the other. And the perceptron - after a little training - made a 100% correct distinction between these two different sets of photographs. Then they were embarrassed a few hours later to discover that the two rolls of film had been developed differently. And so these pictures were just a little darker than all of these pictures and the perceptron was just measuring the total amount of light in the scene. But it was very clever of the perceptron to find some way of making the distinction.

