This thesis investigates the problem of Visual Simultaneous Localization and Mapping (vSLAM) in
changing environments. The vSLAM problem is to sequentially estimate the pose of a device with
mounted cameras in a map generated based on images taken with those cameras. vSLAM algorithms
face two main challenges in changing environments: moving objects and temporal appearance
changes. Moving objects cause problems in pose estimation if they are mistaken for static objects.
Moving objects also cause problems for loop closure detection (LCD), which is the problem of
detecting whether a previously visited place has been revisited. A same moving object observed
in two different places may cause false loop closures to be detected. Temporal appearance changes
such as those brought about by time of day or weather changes cause long-term data association
errors for LCD. These cause difficulties in recognizing previously visited places after they have
undergone appearance changes. Focus is placed on LCD, which turns out to be the part of vSLAM
that changing environment affects the most. In addition, several techniques and algorithms for
Visual Place Recognition (VPR) in challenging conditions that could be used in the context of
LCD are surveyed and the performance of two state-of-the-art modern VPR algorithms in changing
environments is assessed in an experiment in order to measure their applicability for LCD. The
most severe performance degrading appearance changes are found to be those caused by change in
season and illumination. Several algorithms and techniques that perform well in loop closure related
tasks in specific environmental conditions are identified as a result of the survey. Finally, a limited
experiment on the Nordland dataset implies that the tested VPR algorithms are usable as is or can
be modified for use in long-term LCD. As a part of the experiment, a new simple neighborhood
consistency check was also developed, evaluated, and found to be effective at reducing false positives
output by the tested VPR algorithms