GlobalDescriptor (PyDescriptor / netvlad) (#1163)

* First commit for pydescriptor

* Fixed Python refactoring errors

* GUI: added PyDescriptor parameters

* reordered python3 includes

* updated rtabmap_netvlad.py test main

* fixed build from last merge

* integrated https://github.com/introlab/rtabmap/pull/1255

* rescaled dot product result

Closing https://github.com/introlab/rtabmap/issues/1105
This commit is contained in:
matlabbe
2024-04-07 15:48:16 -07:00
committed by GitHub
parent c33e995e83
commit 5ed1bf0ca8
15 changed files with 723 additions and 16 deletions
+38
View File
@@ -0,0 +1,38 @@
/**
* Python interface for python descriptors like:
* - NetVLAD: https://github.com/uzh-rpg/netvlad_tf_open
*/
#ifndef PYDESCRIPTOR_H
#define PYDESCRIPTOR_H
#include <rtabmap/core/GlobalDescriptorExtractor.h>
#include "rtabmap/core/PythonInterface.h"
#include <Python.h>
namespace rtabmap
{
class PyDescriptor : public GlobalDescriptorExtractor
{
public:
PyDescriptor(const ParametersMap & parameters = ParametersMap());
virtual ~PyDescriptor();
const std::string & path() const {return path_;}
float dim() const {return dim_;}
virtual void parseParameters(const ParametersMap & parameters);
virtual GlobalDescriptor extract(const SensorData & data) const;
virtual GlobalDescriptorExtractor::Type getType() const {return kPyDescriptor;}
private:
PyObject * pModule_;
PyObject * pFunc_;
std::string path_;
int dim_;
};
}
#endif