I hope this falls within the \"programming question\" category. Im all lightheaded from Googling (and reading every post in here on the subject) on the subject \"Computer Vi
Have a look at at OpenCV's SURF feature extraction (they also have a demo which uses it to detect objects). Surf features are salient image features which are invariant to rotation and scale. Many algorithms detect objects by extracting such features from an image, and then use simple "bag of words" classification (comparing the set of extracted image features to the features of your "shapes". Even without referring to their spacial alignment you can have good detection rates if you only have 6 shapes).