1. A method of three-dimensional reconstruction comprising: acquiring a plurality of frames of image data of a surface of an object, each one of the plurality of frames of image data captured from a camera position along a camera path and each one of the plurality of frames of image data including a conventional image of the object from the camera position and data for a three-dimensional reconstruction of the surface of the object as viewed from the camera position; selecting a subset of the plurality of frames of image data to provide a plurality of key frames, each one of the plurality of key frames related to at least one other one of the plurality of key frames by a portion of the camera path including a rotation and a translation determined based upon one or more common points in the three-dimensional reconstruction of the surface of the object in each of the respective key frames, wherein the remaining ones of the plurality of frames of image data are non-key frames; providing a three-dimensional model of the object; determining a second rotation and a second translation from one of the key frames to at least one of the non-key frames sequentially positioned between the one of the key frames and a sequentially adjacent one of the key frames; obtaining three-dimensional reconstruction information of the surface of the object from the camera position of the at least one of the non-key frames to provide upsampled three-dimensional data; and adding the upsampled three-dimensional data to the three-dimensional model based upon the second rotation and the second translation.