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
+126 -2
View File
@@ -95,7 +95,7 @@
<enum>QFrame::Raised</enum>
</property>
<property name="currentIndex">
<number>12</number>
<number>11</number>
</property>
<widget class="QWidget" name="page_22">
<layout class="QVBoxLayout" name="verticalLayout_29" stretch="0,0">
@@ -11209,7 +11209,7 @@ see Sqlite3 doc 'PRAGMA synchronous'.</string>
<property name="title">
<string>Loop Closure Detection</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_22" stretch="0,0,0,1,0,0">
<layout class="QVBoxLayout" name="verticalLayout_22" stretch="0,0,0,1,0,0,0">
<item>
<widget class="QLabel" name="label">
<property name="text">
@@ -11370,6 +11370,36 @@ see Sqlite3 doc 'PRAGMA synchronous'.</string>
</property>
</widget>
</item>
<item row="4" column="1">
<widget class="QLabel" name="label_603">
<property name="text">
<string>Global descriptor extractor.</string>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
<property name="textInteractionFlags">
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
</property>
</widget>
</item>
<item row="4" column="0">
<widget class="QComboBox" name="comboBox_globalDescriptorExtractor">
<property name="sizeAdjustPolicy">
<enum>QComboBox::AdjustToContents</enum>
</property>
<item>
<property name="text">
<string>Disabled</string>
</property>
</item>
<item>
<property name="text">
<string>PyDescriptor</string>
</property>
</item>
</widget>
</item>
</layout>
</item>
<item>
@@ -11468,6 +11498,100 @@ see Sqlite3 doc 'PRAGMA synchronous'.</string>
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="groupBox_pydescriptor">
<property name="title">
<string>PyDescriptor</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_152">
<item>
<widget class="QLabel" name="label_604">
<property name="text">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Python wrapper for python descriptor like &lt;a href=&quot;https://github.com/uzh-rpg/netvlad_tf_open&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#0000ff;&quot;&gt;NetVLAD&lt;/span&gt;&lt;/a&gt;. Download the interface &lt;a href=&quot;https://github.com/introlab/rtabmap/tree/master/corelib/src/pydescriptor&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#0000ff;&quot;&gt;script&lt;/span&gt;&lt;/a&gt; and copy it in the python folder of NetVLAD, then set its path below.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
<property name="openExternalLinks">
<bool>true</bool>
</property>
<property name="textInteractionFlags">
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
</property>
</widget>
</item>
<item>
<layout class="QGridLayout" name="gridLayout_118" columnstretch="0,0,1">
<item row="0" column="0">
<widget class="QToolButton" name="toolButton_pydescriptor_path">
<property name="text">
<string>...</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QSpinBox" name="pydescriptor_dim">
<property name="minimum">
<number>0</number>
</property>
<property name="maximum">
<number>999999</number>
</property>
<property name="singleStep">
<number>1</number>
</property>
<property name="value">
<number>4096</number>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLineEdit" name="lineEdit_pydescriptor_path"/>
</item>
<item row="0" column="2">
<widget class="QLabel" name="label_607">
<property name="text">
<string>[Required] Path to rtabmap python script.</string>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
<property name="textInteractionFlags">
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
</property>
</widget>
</item>
<item row="1" column="2">
<widget class="QLabel" name="label_606">
<property name="text">
<string>Descriptor dimension.</string>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
<property name="textInteractionFlags">
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
</property>
</widget>
</item>
</layout>
</item>
<item>
<spacer name="verticalSpacer_88">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
</item>