ROBOTICS 101Concept explainer

Place Recognition

To close a loop, a robot must notice that it has been here before. Place recognition compares what the robot sees now with a database of past views. A classic method describes each view as a bag of visual words, a histogram of the kinds of features it contains.

Bag of words

Features in each image are assigned to the nearest of \(K\) visual words, learned in advance. A view becomes a weighted histogram \(\mathbf{v}\), and two views are compared by cosine similarity:

$$s(\mathbf{a}, \mathbf{b}) = \frac{\mathbf{a}\cdot\mathbf{b}}{\lVert\mathbf{a}\rVert\,\lVert\mathbf{b}\rVert}$$

Words that appear everywhere are down-weighted, which is the tf-idf idea from text search. DBoW2, used in ORB-SLAM, works this way.

What to notice

The true place scores highest, and the bars for other places stay low. Raise the viewpoint change and the scores drop, so a strict threshold starts to miss real revisits. Turn on "Two places look almost the same" and a different place scores as high as the true one. That is perceptual aliasing, like two identical office corridors, and accepting it would add a wrong loop closure that can wreck the whole map. Systems guard against it by checking geometry or requiring several matches in a row.