diff --git a/include/core/processor/track_matrix.h b/include/core/processor/track_matrix.h
index fa18d8313c591905b2b093e15261c18a5a69e8f2..e60a59f8233abb7fade714f20cbabc417a76e091 100644
--- a/include/core/processor/track_matrix.h
+++ b/include/core/processor/track_matrix.h
@@ -119,6 +119,8 @@ class TrackMatrix
         FeatureBasePtr  feature     (const SizeStd& _track_id, CaptureBasePtr _cap) const;
         CaptureBasePtr  firstCapture(const SizeStd& _track_id) const;
 
+        list<size_t>    trackIds() const;
+
         // tracks across captures that belong to keyframe
         Track           trackAtKeyframes(size_t _track_id) const;
 
diff --git a/src/processor/track_matrix.cpp b/src/processor/track_matrix.cpp
index 1830270b13d7fea4d6462f2c97c7977b0879308f..d7154a788b5727b6e2f8cd201b382643110d5bf1 100644
--- a/src/processor/track_matrix.cpp
+++ b/src/processor/track_matrix.cpp
@@ -244,4 +244,14 @@ Track TrackMatrix::trackAtKeyframes(size_t _track_id) const
         return Track();
 }
 
+list<size_t> TrackMatrix::trackIds() const
+{
+    list<size_t> track_ids;
+    for (auto track : tracks_)
+    {
+        track_ids.push_back(track.first);
+    }
+    return track_ids;
+}
+
 }