The Gram-Schmidt Orthogonalization process can be used to find an orthonormal basis for a vector space, given any basis to start with.