From 8dcd1066788f0f937dcaf1dc2f3d269d086ee298 Mon Sep 17 00:00:00 2001 From: Joan Sola <jsola@iri.upc.edu> Date: Sat, 16 Apr 2022 21:42:26 +0200 Subject: [PATCH] Delete tracks that have no keyframe (old dead tracks) --- src/processor/processor_visual_odometry.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/processor/processor_visual_odometry.cpp b/src/processor/processor_visual_odometry.cpp index 0f50386f9..b0d02ec63 100644 --- a/src/processor/processor_visual_odometry.cpp +++ b/src/processor/processor_visual_odometry.cpp @@ -498,6 +498,19 @@ LandmarkBasePtr ProcessorVisualOdometry::emplaceLandmark(FeatureBasePtr _feat) void ProcessorVisualOdometry::postProcess() { frame_count_ ++; + + // delete tracks with no keyframes + for (auto track_it = track_matrix_.getTracks().begin(); track_it != track_matrix_.getTracks().end(); /* do not increment iterator yet... */) + { + auto track_id = track_it->first; + if (track_matrix_.trackAtKeyframes(track_id).empty()) + { + ++track_it; // ... increment iterator **before** erasing the element!!! + track_matrix_.remove(track_id); + } + else + ++track_it; + } } bool ProcessorVisualOdometry::voteForKeyFrame() const -- GitLab