For identifying shapes you'll need image analysis techniques and those are quite computational intensive. You need to do segmentation on your frames (and you somehow need to automatically find the threshold and that's not simple), labeling eventually and the simple stuff involve just the calculation of surface and perimeter. This is the easiest way to tell apart a circle from a square (and maybe even a triangle!).
The more complex method use shape descriptors (there are about 9 of them I think) and they work really great (they're invariant to rotation, scaling, translation etc). The problem is that again, it's a little too tough on the MCU because you'll have to compute multiple order statistical moments.
If you really wanna do it I'll help you out with the algorithms.