I hope this is on topic, I found this through the proposal here: https://area51.meta.stackexchange.com/questions/320/shall-we-unite-computational-science-proposals
A good visual description of BOW:
I don't quite understand the point of some of the steps here however. I know feature extraction gets some form of unique features from an image. But that's it.
Encoding seems like some form of kd-tree manipulation, but it seems like the most common method is histogram encoding. Just with the encoding stage I can get to object recognition, because with encoding I can directly search match feature columns.
But the standard model goes on, and here is where I get completely lost.
I have no idea what pooling is. But the pooling step I'm interested in is max or sum pooling using pyramid match kernel. What is the point of pooling?
Finally, with classification, some form of SVM is used to compare the input image classifier with the rest of the classifiers. I sort of understand this process, but it doesn't seem necessary unless I need to find what class an object belongs to, rather than recognizing an object itself.
So ignoring the classification part, how does encoding and pooling work? Why do I need to pool at all if I could achieve object recognition just by extracting features and comparing it with a database of feature converted to a kd-tree?