Coincidentally I'm working on this type of thing right now. Right now, 'feature detection' is a tiny bit more difficult. I work with something known as Active Shape/Appearance Models which do just that. The issue with them is needing to be roughly in the right spot to correctly conform to the object. Once you detect the object, you can apply a mesh frame to detect the inner objects. I'd recommend looking at Stacked Active Shape Modelling for a nice edge detection approach to feature detection.
SimpleCV just released a video about face detection but I don't think they've expanded into features yet. Hopefully they don't cause I want to do it!