1. A method for providing a non-rigid transformation for an articulated body comprising: selecting, based on input image data, a plurality of target positions for matching a kinematic model representing an articulated body, wherein the kinematic model comprises a pose based on initial kinematic model parameters that provide spatial relationships of elements of the kinematic model, and wherein the kinematic model comprises a plurality of joints, a plurality of end-effectors, and links between selected joints and end-effectors all within a model skin of the kinematic model; generating, in addition to the end-effectors of the kinematic model, a plurality of virtual end-effectors corresponding to the target positions, wherein each of the virtual end-effectors is generated at a point on the model skin of the kinematic model closest to an associated target position of the target positions; generating an inverse kinematics problem comprising a Jacobian matrix based on the initial kinematic model parameters, the target positions, and the virtual end-effectors; determining a change in the kinematic model parameters based on the inverse kinematics problem; repeating the selecting the plurality of target positions, generating the plurality of virtual end-effectors, generating the inverse kinematics problem, and determining the change in the kinematic model parameters until a convergence is attained, wherein repeating the generating the plurality of virtual end-effectors comprises determining new virtual end-effectors on the model skin of the kinematic model closest to associated target positions at each iteration; and outputting resultant kinematic model parameters associated with the convergence.