We propose a method for 3D reconstruction by a machine learning approach. Existing methods for 3D reconstruction uses various assumptions. However, the proposed method reconstructs surface normals of an object from a single image without any assumption. This method acquires a relationship between image features and surface normals of objects by machine learning. Experimental results using human face images show that the proposed method achived faster and higher accuracy 3D reconstruction.