detectLoop
Syntax
Description
detects loop closures for the last added descriptor and returns the view
identifiers loopViewIds
= detectLoop(loopDetector
)loopViewIds
that correspond to loop closures.
If the function detects no loop closures, loopViewIds
is
empty. The loop closure detector ignores the number of most recently added
descriptors, set by the NumExcludedDescriptors
name-value
argument, to avoid detecting loop closures against recent descriptors.
detects loop closures using the scan context descriptor
loopViewIds
= detectLoop(loopDetector
,descriptor
)descriptor
.
[
returns the scan context distances loopViewIds
,dists
] = detectLoop(___)dists
between the loop
descriptor and the query descriptors, using any combination of input arguments
from previous syntaxes. The function computes distance between scan context
descriptors, normalized to the range [0,1], using a modified cosine
distance.
[___] = detectLoop(___,
specifies options using one or more name-value arguments in addition to any
combination of arguments from the previous syntaxes. For example,
Name=Value
)detectLoop(loopDetector,NumExcludedDescriptors=15)
detects loop closures for the last added descriptor while ignoring only the 15
most recently added loop descriptors.
Examples
Input Arguments
Output Arguments
Algorithms
The ring key descriptor is a subdescriptor extracted from a scan context descriptor. It is the occupancy ratio of each azimuthal bin that makes it rotation-invariant.
The scan context loop closure detector is a two-phase algorithm. It first uses the ring key descriptor for a nearest neighbor search to find candidate loop closures. Then, it computes the scan context distance using the scan context descriptors, and thresholds it to identify the best loop closure detections.
Extended Capabilities
Version History
Introduced in R2021b