OpenSeqSLAM source code
OpenSeqSLAM is an open source Matlab implementation of the original SeqSLAM algorithm published by Michael Milford and Grodon Wyeth at the 2012 IEEE International Conference on Robotics and Automation (ICRA12).
SeqSLAM performs place recognition by matching sequences of images as opposed to matching single images such as FAB-MAP does. SeqSLAM has achieved remarkable results recognizing places even if the environment underwent severe appearance changes, like transitioning from a sunny day to a rainy night.
In a preprocessing step, SeqSLAM drastically downsamples incoming images to e.g. 64x32 pixels. These thumbnail images are further divided into patches of 8x8 pixels, which are then normalized, so that the pixel values cover the complete range of possible values between 0 and 255.
The two innovative steps of SeqSLAM perform as follows: First, the distance matrix is locally contrast enhanced, which Milford and Wyeth describe as a step towards forcing the matcher to find best matches in every local neighborhood of the trajectory instead of only one global best match. Finally, when looking for a match to a query image, SeqSLAM performs a search to find the best matching sequence of adjacent frames. SeqSLAM literally sweeps through the contrast-enhanced difference matrix to achieve this.