Visual Simultaneous Localization And Mapping: From Geometry to Deep Learning