1. A method of generating a non-rigid model including: receiving, on a data interface, a plurality of key images; and generating, by a processor, the non-rigid model based upon: an appearance error between appearances in the plurality of key images and an appearance component of the non-rigid model; a shape error between shapes in the plurality of key images and a shape component of the non-rigid model; and a dimensionality of the shape and appearance components of the non-rigid model.