A computer-implemented method for augmented reality rendering of three-dimensional and virtual objects, the method comprising: acquiring, a plurality of images by a camera; acquiring, a new frame by the camera; calculating, a set of three-dimensional points, based on the plurality of images, the new frame, and inertial measurement unit, IMU, data from an IMU; estimating (416, 528), based on the new frame, a depth map of the environment using a machine learning algorithm; aligning (420, 532, 536) the depth map with the set of three-dimensional points, to determine a scale of the depth map; reconstructing (424, 540) a surface geometry of the environment using the depth map and the scale of the depth map; and rendering (428, 544) a virtual object in the environment using the reconstructed surface geometry of the environment; wherein prior to the aligning (420, 532, 536) the depth map with the set of three-dimensional points, the method further comprises: estimating, based on the plurality of images and the IMU data, a camera pose relative to the environment, the camera pose corresponding to the new frame; and determining, based on the plurality of images, the new frame, and the IMU data, the set of three-dimensional points relative to the camera pose; characterized in that, the aligning (420, 532, 536) the depth map with the set of three-dimensional points to determine the scale of the depth map, comprises: for each point of the set of three-dimensional points, obtaining, based on a three-dimensional location of the point and the camera pose, a depth value D i from a center of projection of the camera, and obtaining a depth value d i from the depth map; calculating a ratio of the depth value D i to the depth value d i as a scale value S i; where the scale calculations are averaged to obtain an absolute global scale of the depth map. acquiring, a plurality of images by a camera; acquiring, a new frame by the camera; calculating, a set of three-dimensional points, based on the plurality of images, the new frame, and inertial measurement unit, IMU, data from an IMU; estimating (416, 528), based on the new frame, a depth map of the environment using a machine learning algorithm; aligning (420, 532, 536) the depth map with the set of three-dimensional points, to determine a scale of the depth map; reconstructing (424, 540) a surface geometry of the environment using the depth map and the scale of the depth map; and rendering (428, 544) a virtual object in the environment using the reconstructed surface geometry of the environment; wherein prior to the aligning (420, 532, 536) the depth map with the set of three-dimensional points, the method further comprises: estimating, based on the plurality of images and the IMU data, a camera pose relative to the environment, the camera pose corresponding to the new frame; and determining, based on the plurality of images, the new frame, and the IMU data, the set of three-dimensional points relative to the camera pose; estimating, based on the plurality of images and the IMU data, a camera pose relative to the environment, the camera pose corresponding to the new frame; and determining, based on the plurality of images, the new frame, and the IMU data, the set of three-dimensional points relative to the camera pose; characterized in that, the aligning (420, 532, 536) the depth map with the set of three-dimensional points to determine the scale of the depth map, comprises: for each point of the set of three-dimensional points, obtaining, based on a three-dimensional location of the point and the camera pose, a depth value D i from a center of projection of the camera, and obtaining a depth value d i from the depth map; calculating a ratio of the depth value D i to the depth value d i as a scale value S i; for each point of the set of three-dimensional points, obtaining, based on a three-dimensional location of the point and the camera pose, a depth value D i from a center of projection of the camera, and obtaining a depth value d i from the depth map; calculating a ratio of the depth value D i to the depth value d i as a scale value S i; where the scale calculations are averaged to obtain an absolute global scale of the depth map.