Looking for general advice on classification of paintings by painter
I want to try to do something like this:
http://cs229.stanford.edu/proj2010/Bl...
But I've noticed that it looks like sort of cutting-edge research. First thing I'd like to know is whether someone who has done a good deal of machine learning before but none on images (me) could realistically hope to accomplish such a thing.
If it is realistic, all I'm looking for is a broad list of steps for what I need to do to get a good result with what OpenCV has on offer. I'm not looking for code, or even pseudocode. I can do all of that once I know what I should do. For example, the paper linked above talks about normalizing the images to 100x100. Do I just take a chunk that size out of the center of the image or something? And the OpenCV books I have on hand don't talk much about how to use the machine learning tools of OpenCV, though they are strangely still documented for some reason. I already know what SVM and decision trees are. All I need to know is how to get the images into a form that is suitable for them. All these features (SIFT, HOG, etc.) are very baffling if you haven't done CV before.
ahh, sounds you have a problem getting started, finding a sizeable bite in all of this ?
start small. resize() all images to 100x100, and compare them in a loop with distance = norm(im1,im2). (L2 distance). just START, and write some code.
then, improve. flatten the images to a single row (reshape()), stack all off them into a huge Mat, and use an SVM (or DTree, if you want) for the classification.
then, try with different features than "plain pixels", and try to read about neural networks, too (cs231).
sure, this is all very baffling, so do one small step, then the next.
p.s try the search bar on this site, there are lots of good examples here.
If they aren't square to begin with how should I resize them?
resize(img,img, Size(100,100));
I'm on my phone right now, away from my development environment. May I ask what outcome this has exactly?
it resizes an image to 100x100, obviously ;)
(even if the image is not originally square)
How does it decide what to throw away and is there a method that is optimal for computer vision, at least in this context?
it doesnt. it's just brute force interpolation
Alright, well, we'll see what happens