A processor-implemented method for visual simultaneous localization and mapping, the method comprising: initializing (205, 210) a three-dimensional, 3D, target based on a first set (425, 430, 435, 440, 445, 450) of target 3D points obtained from a first reference image wherein the target 3D points in the first set are initialized along a plane at a predetermined initial depth value prior to processing a subsequent image, wherein initializing the 3D target comprises extracting a reference set of 2D interest points from the reference image, determining the target 3D points, each target 3D point corresponding to a 2D interest point in the reference set of 2D interest points, and assigning the predetermined initial depth value to each target 3D point; processing (210, 320), based on the first reference image prior to obtaining a second reference image, one or more subsequent images by jointly: tracking (215, 325) the 3D target in six degrees of freedom; and refining the 3D target based on subsequent sets of target 3D points obtained from the processing of the one or more subsequent images received subsequent to the first reference image, each subsequent set of target 3D points corresponding to one of the one or more subsequent images, characterized by determining an updated depth value for one or more of the target 3D points in the first set based on corresponding 3D points in a subsequent set; and replacing the assigned predetermined initial depth value for each of the one or more target 3D points with the corresponding updated depth value. initializing (205, 210) a three-dimensional, 3D, target based on a first set (425, 430, 435, 440, 445, 450) of target 3D points obtained from a first reference image wherein the target 3D points in the first set are initialized along a plane at a predetermined initial depth value prior to processing a subsequent image, wherein initializing the 3D target comprises extracting a reference set of 2D interest points from the reference image, determining the target 3D points, each target 3D point corresponding to a 2D interest point in the reference set of 2D interest points, and assigning the predetermined initial depth value to each target 3D point; processing (210, 320), based on the first reference image prior to obtaining a second reference image, one or more subsequent images by jointly: tracking (215, 325) the 3D target in six degrees of freedom; and refining the 3D target based on subsequent sets of target 3D points obtained from the processing of the one or more subsequent images received subsequent to the first reference image, each subsequent set of target 3D points corresponding to one of the one or more subsequent images, characterized by determining an updated depth value for one or more of the target 3D points in the first set based on corresponding 3D points in a subsequent set; and replacing the assigned predetermined initial depth value for each of the one or more target 3D points with the corresponding updated depth value. tracking (215, 325) the 3D target in six degrees of freedom; and refining the 3D target based on subsequent sets of target 3D points obtained from the processing of the one or more subsequent images received subsequent to the first reference image, each subsequent set of target 3D points corresponding to one of the one or more subsequent images, characterized by determining an updated depth value for one or more of the target 3D points in the first set based on corresponding 3D points in a subsequent set; and replacing the assigned predetermined initial depth value for each of the one or more target 3D points with the corresponding updated depth value.