Flirtlib
FLIRTLib - Fast Laser Interest Region Transform Library
Install / Use
/learn @tipaldi/FlirtlibREADME
** FLIRTLib - Fast Laser Interest Region Transform Library ** Gian Diego Tipaldi, Kai O. Arras. ** Copyright (C) 2009-2015 Gian Diego Tipaldi and Kai O. Arras
FLIRTLib implements the Fast Laser Interest Region Transform introduced by Tipaldi and Arras. The library implements four different multi-scale feature detectors and two feature descriptors for 2D range data. It is written in C++ and comes with an API reference (written using Doxygen) and a set of example binaries to visualize the detector results and the descriptors, as well as perform scan to scan matching.
Detectors
The library implements the following detectors: range, normal edge, normal blob and curvature. All detectors apply the scale-space theory (see References) to the range data. The first three detectors apply the theory to the monodimensional signal defined by the laser scanner, while the last one applies the theory to the continuous geodesic coordinate of the curve that better approximate the point cloud.
Range detector. It finds interest points in scale-space with a blob detector applied on the raw range information in the laser scan. Normal Edge detector. It finds interest points in scale-space with an edge detector applied on a local approximation of the normal direction. Normal Blob detector. It finds interest points in scale-space with a blob detector applied on a local approximation of the normal direction. Curvature detector. It finds interest points using the scale space theory for curves introduced by Unnikrishnan and Hebert.
Descriptors
Shape Context. It implements a local and linear version of teh Shape Context introduced by Belongie and Malik. Beta-Grid. It implements a linear-polar occupancy grid. It extends the Shape Context with the notion of free space.
Structure
The archive has the following structure:
src/ : the source files data/ : the log files used in the paper. doc/ : the doxygen configuration file. Run doxygen in this directory and you will obtain a local copy of this html documentaion and the latex reference manual. The src/ directory has the following structure:
mainpage.h : dummy header file for generating the documentation. README : this file INSTALL : installation notes. COPYING and COPYING.LESSER : the software license. See License for further details. CMakeLists.txt : the cmake configuration script. build_tools/ : the directory containing the cmake modules. feature/ : the directory with the main features code. gemometry/ : the directory with the code for points. gui/ : the directory with the code for teh gui and the flirtDemo. sensors/ : the directory with the code for the sensors abstraction. sensorstream/ : the directory with the code for the sensor streams abstraction. utils/ : the directory with the code for utility function such as convolution, regression, pose estimation and histogram distances. applications/ : the directory with the code for generating the binaries to test the library.
Install
The library relies on cmake to generate the Makefiles.
Run mkdir build cd build cmake ../ make
For a more verbose output do Run VERBOSE=1 cmake ../ VERBOSE=1 make
Install the library using make install
Dependencies
The software depends on the following external libraries
Boost >= 1.36 (submodules math and graph) Qt4 (for the gui) Qwt5 for Qt4 (for the gui) OpenGL (for the gui) Cairo (for drwaing the ransac results)
Usage
The library comes with some demo binaries and an API interface. Look at the example binaries in applications/
Binaries
They package provide the following binaries in <lib_root>/bin/
flirtDemo. It is a simple graphical frontend for visualizing the effect of the different detector and descriptors when changing the parameters. To visualize the descriptors simply click on the corresponding interest points in the viewer.
ransacLoopClosureTest. It performs scan to scan matching with ransac. It generates a file with the number of succesful matches for the three different strategies. See the paper for more detail about the ransac experiment.
ransacLoopClosureDraw. It performs scan to scan matching with ransac. It generates a directory with images showing the matching results. It can used to generate animations.
Using the library
The library is compiled as a collection of shared objects and are available in
<lib_root>/lib/
The header files are located in
<lib_root>/include
See the class list on the doxygen documentation for a more detailed API reference.
How to cite
Choose one of the following publications:
[1] Gian Diego Tipaldi, Manuel Braun, Kai O. Arras. FLIRT: Interest Regions for 2D Range Data with Applications to Robot Navigation. In Proceedings of the International Symposium on Experimental Robotics (ISER). 2010
[2] Gian Diego Tipaldi, Kai O. Arras. FLIRT -- Interest Regions for 2D Range Data. In Proceedings of the IEEE International Conference on Robotics and Automation (ICRA). 2010.
License
FLIRTLib - Fast Laser Interesting Region Transform Library Copyright (C) 2009-2015 Gian Diego Tipaldi and Kai O. Arras
FLIRTLib is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
FLIRTLib is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along with FLIRTLib. If not, see http://www.gnu.org/licenses/ .
Related Skills
node-connect
351.2kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
110.6kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
351.2kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
351.2kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
