1. A method for registering an object in three dimensions using machine vision comprising the steps of: at training time, acquiring training images of an object used for training with one or more cameras; at runtime, acquiring runtime images of an object to be registered at runtime with the one or more cameras; and determining a three dimensional pose transformation between the pose of the object used at training time and the pose of the object to be registered at runtime by (a) defining features in each of the runtime images as three-dimensional rays through an origin of each of the one or more camera's, respectively, (b) associating the three-dimensional rays with corresponding runtime features from the training images, and (c) computing an optimal pose estimate which maps the training features onto the corresponding three-dimensional rays of runtime features using iterative, reweighted least squares analysis.