Felix ToftandFelix Toft 5e4fd171e2 SuperPoint Rpautrat (MIT license) (#1603)
* initial python implementation of superpoint rpautrat

* working python implementation of superpoint

* small tweaks to try and work around the GIL issue

* fix missing os import

* begging cpp impl of superpoint python model

* finishing cpp superpoint impl using the same SPDetector interface

* finalizing superpoint cpp impl, working with cpu but needs to be cleaned

* fixing feature matching by reworking nms and filtering logic

* speeding up nms with batched operations and cleaning up

* updating conversion script

* adding args for image dimensions and cuda usage to model tracer

* wiring up UI to parse superpoint params

* adding label to superpoint rpautrat ui

* reverting some unintended ui changes

* typo

* oneline revert

* removing nms and threshold filtering from cpp, this is handled internally by the superpoint model

* using python interface to run the superpoint _to_torchscript.py script at runtime

* generate and load model file on the first incoming frame

* reverting unintented change

* ui changes appear mysteriously again, reverting

* remove topk from model to prevent issue when number of detected keypoints is lower then the k value (scripting fails in this case)

* cleaning up for review

* change dest for model file and remove debug logs

* bump patch and add version comment

* rm unucessary comment

* use resources to load file to ensure it works when rtabmap isn't built from source

* execute with pybind runpy instead of system call

* only build superpoint rpautrat if we have torch and python support

* changing param to accept a path to the weights .pth file directly

* parse the default working directory to save the model file in

* rm extraneous change

* rm setters and re-initialize the detector whenever params change. We cannot support changing params after the model is constructed

* update UI text

* only enable superpoint rpautrat when built with python and torch

* more build information regarding superpoint rpautrat

* generate temporary python script in the working dir

* rm unecessary changes to rtabmap_superpoint.py

* fix comment and only add repo root to sys.path

* introduce a new parameter for the superpoint python model definition

* execute script from string instead of writing to a file

* wrap parse params in a single compiler directive

* remove descriptor spatial matching logic and rely on upstream RTAB-Map processes to take the top-K desc and kpts

* only add python script to resources if built with superpoint rpautrat support. supress warning with type casting

* isolate pybind11 setup so it can't affect any other modules or potential regnerations of the model file

* update about dialog to show superpoint rpautrat

* remove debug logs

---------

Co-authored-by: Felix Toft <felix@robust.ai>
2025-11-07 17:22:35 -08:00
2025-08-12 00:13:19 -07:00
2013-12-12 22:36:56 +00:00
2025-10-18 14:09:44 -07:00
2025-08-06 20:53:14 -07:00
2023-03-13 03:20:06 -07:00
2025-05-03 11:24:55 -07:00
2024-03-13 23:27:47 -07:00
2014-10-24 11:37:06 +00:00
2023-03-13 03:20:06 -07:00
2025-03-09 19:01:15 -07:00
2014-11-28 10:11:08 -05:00
2025-07-12 10:11:55 -07:00
2025-03-23 10:07:10 -07:00

rtabmap

RTAB-Map Logo

Release Downloads License

RTAB-Map library and standalone application.

To use RTAB-Map under ROS, visit the rtabmap page on the ROS wiki.

Acknowledgements

This project is supported by IntRoLab - Intelligent / Interactive / Integrated / Interdisciplinary Robot Lab, Sherbrooke, Québec, Canada.

IntRoLab

CI Latest

Linux Build Status
Build Status
Build Status
Windows Build Status

ROS Binaries

ros-$ROS_DISTRO-rtabmap

ROS 1 Noetic Build Status
ROS 2 Humble Build Status
Jazzy Build Status
Rolling Build Status
Docker rtabmap Docker Pulls
Languages
C++ 63.6%
C 29.9%
CMake 1.7%
Java 1.5%
Swift 0.9%
Other 2.3%