<p>I would strongly recommend you to use the <a href="https://en.wikipedia.org/wiki/Convolutional_neural_network" rel="nofollow noreferrer">Convolutional Neural Network(CNN)</a> to solve this 10-class image classification problem, since you can obtain much images for the "products".
The pipeline will be very similar to that of a image classification problem using CNN such as <a href="http://s3.amazonaws.com/academia.edu.documents/30766359/10.1.1.41.6835.pdf?AWSAccessKeyId=AKIAJ56TQJRTWSMTNPEA&amp;Expires=1473733206&amp;Signature=F6QrJ9%2Fw01NuZgy9622H%2BswdW7U%3D&amp;response-content-disposition=inline%3B%20filename%3DLearning_algorithms_for_classification_A.pdf" rel="nofollow noreferrer">handwritten digit recognition</a>.</p>

<p>For your question, in fact, it would be better to crop the "products" and then resize them to the same size to train a CNN classifier. And at the recognition(or prediction) phase, you should also crop the product and resize it to that size to feed it into the pre-trained classifier. Benefits of this preprocessing procedure include:</p>

<ul>
<li>greatly reduce the degree of difficulty for recognition and improve accuracy.</li>
<li>properly smaller image size needs less computation and memory consumption while the corresponding classifier still can have a competitive(or same) accuracy. </li>
</ul>

<p>For the "scale-variant image recognition" problem, in fact, as mentioned above, at the recognition phase you should also crop the product and resize it to the same size as that of training your CNN, so the scale would not change violently. On the other hand, you can perform <a href="http://papers.nips.cc/paper/4824-imagenet-classification-with-deep-convolutional-neural-networks.pdf" rel="nofollow noreferrer">data augmentation</a> and <a href="http://arxiv.org/vc/arxiv/papers/1501/1501.02876v1.pdf" rel="nofollow noreferrer">more augmentation methods</a> before training CNN to improve the CNN's robustness to scale-variance. Here is an example for face data augmentation, from left to right are <code>normal</code>, <code>zoom out</code>, <code>zoom in</code>, <code>rotate</code> seprately and you can make it more:</p>

<p><a href="https://i.stack.imgur.com/Jvwlo.jpg" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/Jvwlo.jpg" alt="normal"></a> <a href="https://i.stack.imgur.com/5gawM.jpg" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/5gawM.jpg" alt="zoom out"></a> <a href="https://i.stack.imgur.com/1YXjr.jpg" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/1YXjr.jpg" alt="zoom in"></a> <a href="https://i.stack.imgur.com/9k881.jpg" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/9k881.jpg" alt="rotate"></a></p>

<p>Hope my expression is clear and will help you.</p>
"Image Recognition" too many features
<p>I have a task related to image recognition, and the task is to tell which product is based on thousands photos taken for a wide variety of products. </p>

<p>For example, we have taken short videos (1 minute) for 10 different labeled products. And then we use cv2.VideoCapture to convert them into 60s * 30fps ~ 1,800 frames per product. So we have about 18K different images for 10 products all perfectly labeled. </p>

<p>I am thinking about turning images into pixels and use the label as the outcome and all the pixels as income to use machine learning (neural net) to turn this into a classification problem. However, each image is 1080 * 1920 which gives you 2 million pixels, let about the color (RGB,..etc). </p>

<p>Is there any standard technique which I should use? I can do edge detection, contour to crop them to a smaller size but then all the pictures will end up in different size, isn't it? If I scale it all to be the same size, won't that all change the scale-variant image recognition problems? </p>

<p>I own those products so I can take as many photos as I want. Sorry this is more like a best-practice or architectural question instead of a specific programming questions. </p>

<p>This is picture that scaled down to be smaller so you can have a sense of what problem I am trying to solve. </p>

<p><a href="https://i.stack.imgur.com/tgCUU.jpg" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/tgCUU.jpg" alt="enter image description here"></a></p>