I am trying to develop an image search application. I have crawled through e-commerce websites and obtained a data set of images (about 2.5 Million). Now I want to identify the object of interest from each image so that when I do a feature comparison on large scale the results will be accurate (generally there is only one object of interest in each image). I went through grab cuts and graph cuts but that requires user interaction of some sort. Is there any way where I can remove the user interaction aspect and do this automatically?
You may find the Salient Object Segmentation so useful in your problem.
Here is the idea:
When human freely looks at a scene, there are some objects that involuntarily grabs the human attention. These objects are often the most informative ones in the scene, and are passed for detailed analysis in Human Visual System. Skipping the neuro-scientific aspect of this field of study, Visual Saliency detection researchers in Computer Vision Computer community are making amazing improvements on proposing algorithms to make the machine to predict these regions in an image.
Interestingly, these salienct objects are the objects in the scene which convey the most amount of information regarding the scene or whatever.
Another bonus is that there are plenty of ready-to-launch implementation over the web which can be used. Just google the term: "Salient Object Segmentation" or "Human Fixation Prediction" and pick one out of pool.
Improving on Saeed's answer, I list here two algorithms I have used for the task of finding the region of interest (ROI):
1- Efficient Subwindow Search, which finds a rectangular ROI. It's very efficient but needs a lot of preprocessing to work properly;
2- Saliency detection, which finds 'important' pixels in an image. It doesn't try to find a rectangular bounding box. Very easy to use.
The codes for both of these algorithms are available on the internet.