1. A method for registering a plurality of 3D point sets by determining optimal relative positions and orientations of the 3D point sets, comprising: generating, by one or more scanners, a plurality of 3D point sets, each 3D point set representing a view of a surface of an object; determining initial values of rotation matrices corresponding to the 3D point sets based on correspondence values of the 3D point sets; optimizing a cost function on a product manifold of the rotation matrices using the initial values and an iterative optimization method to determine optimal values of the rotation matrices; and calculating optimal values of translation vectors corresponding to the 3D point sets based on the optimal values of the rotation matrices; wherein the optimizing step comprises: calculating updated values of the rotation matrices based on the initial values to reduce a value of the cost function; determining whether the cost function is locally minimized based on the updated values; if the cost function is not minimized, setting the initial values to be the updated values and repeating the optimizing step; and if the cost function is minimized, determining the updated values to be the optimal values of the rotation matrices.