Further improvements to DepthAI integration (#1458)

* Reorganize DepthAI params

* Advanced Tuning of DepthAI’s SGBM Pipeline

* Update IMU Local Transform for OAK-D LR, OAK-D SR, and PoE Devices

* Reorganiz the usage of DepthAI. Get params before creating the pipeline, and automatically determine the resolution of different models.

* Identify the IMU type to specifically handle BMI270 and BNO085/086
This commit is contained in:
Borong Yuan
2025-03-09 03:30:11 +08:00
committed by GitHub
parent 4eea83d1af
commit d88353dc1b
4 changed files with 608 additions and 611 deletions

View File

@@ -858,13 +858,15 @@ PreferencesDialog::PreferencesDialog(QWidget * parent) :
connect(_ui->spinBox_stereoMyntEye_contrast, SIGNAL(valueChanged(int)), this, SLOT(makeObsoleteSourcePanel()));
connect(_ui->spinBox_stereoMyntEye_irControl, SIGNAL(valueChanged(int)), this, SLOT(makeObsoleteSourcePanel()));
connect(_ui->comboBox_depthai_resolution, SIGNAL(currentIndexChanged(int)), this, SLOT(makeObsoleteSourcePanel()));
connect(_ui->comboBox_depthai_image_width, SIGNAL(currentIndexChanged(int)), this, SLOT(makeObsoleteSourcePanel()));
connect(_ui->comboBox_depthai_output_mode, SIGNAL(currentIndexChanged(int)), this, SLOT(makeObsoleteSourcePanel()));
connect(_ui->spinBox_depthai_conf_threshold, SIGNAL(valueChanged(int)), this, SLOT(makeObsoleteSourcePanel()));
connect(_ui->spinBox_depthai_lrc_threshold, SIGNAL(valueChanged(int)), this, SLOT(makeObsoleteSourcePanel()));
connect(_ui->checkBox_depthai_extended_disparity, SIGNAL(stateChanged(int)), this, SLOT(makeObsoleteSourcePanel()));
connect(_ui->checkBox_depthai_disparity_companding, SIGNAL(stateChanged(int)), this, SLOT(makeObsoleteSourcePanel()));
connect(_ui->comboBox_depthai_subpixel_fractional_bits, SIGNAL(currentIndexChanged(int)), this, SLOT(makeObsoleteSourcePanel()));
connect(_ui->comboBox_depthai_disparity_companding, SIGNAL(currentIndexChanged(int)), this, SLOT(makeObsoleteSourcePanel()));
connect(_ui->comboBox_depthai_disparity_width, SIGNAL(currentIndexChanged(int)), this, SLOT(makeObsoleteSourcePanel()));
connect(_ui->comboBox_depthai_median_filter, SIGNAL(currentIndexChanged(int)), this, SLOT(makeObsoleteSourcePanel()));
connect(_ui->checkBox_depthai_use_spec_translation, SIGNAL(stateChanged(int)), this, SLOT(makeObsoleteSourcePanel()));
connect(_ui->doubleSpinBox_depthai_alpha_scaling, SIGNAL(valueChanged(double)), this, SLOT(makeObsoleteSourcePanel()));
connect(_ui->checkBox_depthai_imu_published, SIGNAL(stateChanged(int)), this, SLOT(makeObsoleteSourcePanel()));
@@ -2251,12 +2253,14 @@ void PreferencesDialog::resetSettings(QGroupBox * groupBox)
_ui->spinBox_stereoMyntEye_brightness->setValue(120);
_ui->spinBox_stereoMyntEye_contrast->setValue(116);
_ui->spinBox_stereoMyntEye_irControl->setValue(0);
_ui->comboBox_depthai_resolution->setCurrentIndex(1);
_ui->comboBox_depthai_image_width->setCurrentIndex(1);
_ui->comboBox_depthai_output_mode->setCurrentIndex(0);
_ui->spinBox_depthai_conf_threshold->setValue(200);
_ui->checkBox_depthai_extended_disparity->setChecked(false);
_ui->comboBox_depthai_subpixel_fractional_bits->setCurrentIndex(2);
_ui->comboBox_depthai_disparity_companding->setCurrentIndex(1);
_ui->checkBox_depthai_disparity_companding->setChecked(false);
_ui->comboBox_depthai_subpixel_fractional_bits->setCurrentIndex(1);
_ui->comboBox_depthai_disparity_width->setCurrentIndex(1);
_ui->comboBox_depthai_median_filter->setCurrentIndex(2);
_ui->spinBox_depthai_lrc_threshold->setValue(5);
_ui->checkBox_depthai_use_spec_translation->setChecked(false);
_ui->doubleSpinBox_depthai_alpha_scaling->setValue(-1);
@@ -2763,13 +2767,15 @@ void PreferencesDialog::readCameraSettings(const QString & filePath)
settings.endGroup(); // MyntEye
settings.beginGroup("DepthAI");
_ui->comboBox_depthai_resolution->setCurrentIndex(settings.value("resolution", _ui->comboBox_depthai_resolution->currentIndex()).toInt());
_ui->comboBox_depthai_image_width->setCurrentIndex(settings.value("image_width", _ui->comboBox_depthai_image_width->currentIndex()).toInt());
_ui->comboBox_depthai_output_mode->setCurrentIndex(settings.value("output_mode", _ui->comboBox_depthai_output_mode->currentIndex()).toInt());
_ui->spinBox_depthai_conf_threshold->setValue(settings.value("conf_threshold", _ui->spinBox_depthai_conf_threshold->value()).toInt());
_ui->spinBox_depthai_lrc_threshold->setValue(settings.value("lrc_threshold", _ui->spinBox_depthai_lrc_threshold->value()).toInt());
_ui->checkBox_depthai_extended_disparity->setChecked(settings.value("extended_disparity", _ui->checkBox_depthai_extended_disparity->isChecked()).toBool());
_ui->checkBox_depthai_disparity_companding->setChecked(settings.value("disparity_companding", _ui->checkBox_depthai_disparity_companding->isChecked()).toBool());
_ui->comboBox_depthai_subpixel_fractional_bits->setCurrentIndex(settings.value("subpixel_fractional_bits", _ui->comboBox_depthai_subpixel_fractional_bits->currentIndex()).toInt());
_ui->comboBox_depthai_disparity_companding->setCurrentIndex(settings.value("companding", _ui->comboBox_depthai_disparity_companding->currentIndex()).toInt());
_ui->comboBox_depthai_disparity_width->setCurrentIndex(settings.value("disparity_width", _ui->comboBox_depthai_disparity_width->currentIndex()).toInt());
_ui->comboBox_depthai_median_filter->setCurrentIndex(settings.value("median_filter", _ui->comboBox_depthai_median_filter->currentIndex()).toInt());
_ui->checkBox_depthai_use_spec_translation->setChecked(settings.value("use_spec_translation", _ui->checkBox_depthai_use_spec_translation->isChecked()).toBool());
_ui->doubleSpinBox_depthai_alpha_scaling->setValue(settings.value("alpha_scaling", _ui->doubleSpinBox_depthai_alpha_scaling->value()).toDouble());
_ui->checkBox_depthai_imu_published->setChecked(settings.value("imu_published", _ui->checkBox_depthai_imu_published->isChecked()).toBool());
@@ -3365,20 +3371,22 @@ void PreferencesDialog::writeCameraSettings(const QString & filePath) const
settings.endGroup(); // MyntEye
settings.beginGroup("DepthAI");
settings.setValue("resolution", _ui->comboBox_depthai_resolution->currentIndex());
settings.setValue("output_mode", _ui->comboBox_depthai_output_mode->currentIndex());
settings.setValue("conf_threshold", _ui->spinBox_depthai_conf_threshold->value());
settings.setValue("lrc_threshold", _ui->spinBox_depthai_lrc_threshold->value());
settings.setValue("extended_disparity", _ui->checkBox_depthai_extended_disparity->isChecked());
settings.setValue("image_width", _ui->comboBox_depthai_image_width->currentIndex());
settings.setValue("output_mode", _ui->comboBox_depthai_output_mode->currentIndex());
settings.setValue("conf_threshold", _ui->spinBox_depthai_conf_threshold->value());
settings.setValue("lrc_threshold", _ui->spinBox_depthai_lrc_threshold->value());
settings.setValue("extended_disparity", _ui->checkBox_depthai_extended_disparity->isChecked());
settings.setValue("disparity_companding", _ui->checkBox_depthai_disparity_companding->isChecked());
settings.setValue("subpixel_fractional_bits", _ui->comboBox_depthai_subpixel_fractional_bits->currentIndex());
settings.setValue("companding", _ui->comboBox_depthai_disparity_companding->currentIndex());
settings.setValue("use_spec_translation", _ui->checkBox_depthai_use_spec_translation->isChecked());
settings.setValue("alpha_scaling", _ui->doubleSpinBox_depthai_alpha_scaling->value());
settings.setValue("imu_published", _ui->checkBox_depthai_imu_published->isChecked());
settings.setValue("dot_intensity", _ui->doubleSpinBox_depthai_dot_intensity->value());
settings.setValue("flood_intensity", _ui->doubleSpinBox_depthai_flood_intensity->value());
settings.setValue("detect_features", _ui->comboBox_depthai_detect_features->currentIndex());
settings.setValue("blob_path", _ui->lineEdit_depthai_blob_path->text());
settings.setValue("disparity_width", _ui->comboBox_depthai_disparity_width->currentIndex());
settings.setValue("median_filter", _ui->comboBox_depthai_median_filter->currentIndex());
settings.setValue("use_spec_translation", _ui->checkBox_depthai_use_spec_translation->isChecked());
settings.setValue("alpha_scaling", _ui->doubleSpinBox_depthai_alpha_scaling->value());
settings.setValue("imu_published", _ui->checkBox_depthai_imu_published->isChecked());
settings.setValue("dot_intensity", _ui->doubleSpinBox_depthai_dot_intensity->value());
settings.setValue("flood_intensity", _ui->doubleSpinBox_depthai_flood_intensity->value());
settings.setValue("detect_features", _ui->comboBox_depthai_detect_features->currentIndex());
settings.setValue("blob_path", _ui->lineEdit_depthai_blob_path->text());
settings.endGroup(); // DepthAI
settings.beginGroup("Images");
@@ -4287,7 +4295,7 @@ void PreferencesDialog::selectSourceDriver(Src src, int variant)
else if(src == kSrcStereoDepthAI) // OAK-D-Pro (variant==2), OAK-D (variant==1), OAK-D Lite (variant==0)
{
_ui->checkBox_depthai_imu_published->setChecked(variant >= 1);
_ui->comboBox_depthai_resolution->setCurrentIndex(variant >= 1?1:3);
_ui->comboBox_depthai_image_width->setCurrentIndex(1);
_ui->comboBox_depthai_output_mode->setCurrentIndex(variant==2?2:0);
_ui->doubleSpinBox_depthai_dot_intensity->setValue(variant==2?1:0);
}
@@ -6863,19 +6871,18 @@ Camera * PreferencesDialog::createCamera(
UDEBUG("DepthAI");
camera = new CameraDepthAI(
device.toStdString().c_str(),
_ui->comboBox_depthai_resolution->currentIndex(),
_ui->comboBox_depthai_image_width->currentIndex()?1280:640,
this->getGeneralInputRate(),
this->getSourceLocalTransform());
((CameraDepthAI*)camera)->setOutputMode(_ui->comboBox_depthai_output_mode->currentIndex());
((CameraDepthAI*)camera)->setDepthProfile(_ui->spinBox_depthai_conf_threshold->value(), _ui->spinBox_depthai_lrc_threshold->value());
((CameraDepthAI*)camera)->setExtendedDisparity(_ui->checkBox_depthai_extended_disparity->isChecked());
((CameraDepthAI*)camera)->setExtendedDisparity(_ui->checkBox_depthai_extended_disparity->isChecked(), _ui->checkBox_depthai_disparity_companding->isChecked());
((CameraDepthAI*)camera)->setSubpixelMode(_ui->comboBox_depthai_subpixel_fractional_bits->currentIndex()!=0, _ui->comboBox_depthai_subpixel_fractional_bits->currentIndex()==2?4:_ui->comboBox_depthai_subpixel_fractional_bits->currentIndex()==3?5:3);
((CameraDepthAI*)camera)->setCompanding(_ui->comboBox_depthai_disparity_companding->currentIndex()!=0, _ui->comboBox_depthai_disparity_companding->currentIndex()==1?64:96);
((CameraDepthAI*)camera)->setDisparityWidthAndFilter(_ui->comboBox_depthai_disparity_width->currentIndex()==0?64:96, _ui->comboBox_depthai_median_filter->currentIndex()==2?5:_ui->comboBox_depthai_median_filter->currentIndex()==3?7:3);
((CameraDepthAI*)camera)->setRectification(_ui->checkBox_depthai_use_spec_translation->isChecked(), _ui->doubleSpinBox_depthai_alpha_scaling->value(), !useRawImages);
((CameraDepthAI*)camera)->setIMU(_ui->checkBox_depthai_imu_published->isChecked(), _ui->checkbox_publishInterIMU->isChecked());
((CameraDepthAI*)camera)->setIrIntensity(_ui->doubleSpinBox_depthai_dot_intensity->value(), _ui->doubleSpinBox_depthai_flood_intensity->value());
((CameraDepthAI*)camera)->setDetectFeatures(_ui->comboBox_depthai_detect_features->currentIndex());
((CameraDepthAI*)camera)->setBlobPath(_ui->lineEdit_depthai_blob_path->text().toStdString());
((CameraDepthAI*)camera)->setDetectFeatures(_ui->comboBox_depthai_detect_features->currentIndex(), _ui->lineEdit_depthai_blob_path->text().toStdString());
if(_ui->comboBox_depthai_detect_features->currentIndex() == 1)
{
((CameraDepthAI*)camera)->setGFTTDetector(_ui->checkBox_GFTT_useHarrisDetector->isChecked(), _ui->doubleSpinBox_GFTT_minDistance->value(), _ui->reextract_maxFeatures->value());

View File

@@ -5975,33 +5975,8 @@ when using the file type, logs are saved in LogRtabmap.txt (located in the worki
<string>DepthAI</string>
</property>
<layout class="QGridLayout" name="gridLayout_120" columnstretch="0,1">
<item row="7" column="0">
<widget class="QComboBox" name="comboBox_depthai_disparity_companding">
<property name="currentIndex">
<number>0</number>
</property>
<property name="sizeAdjustPolicy">
<enum>QComboBox::AdjustToContents</enum>
</property>
<item>
<property name="text">
<string>Disabled</string>
</property>
</item>
<item>
<property name="text">
<string>64 pixels</string>
</property>
</item>
<item>
<property name="text">
<string>96 pixels</string>
</property>
</item>
</widget>
</item>
<item row="0" column="0">
<widget class="QComboBox" name="comboBox_depthai_resolution">
<widget class="QComboBox" name="comboBox_depthai_image_width">
<property name="currentIndex">
<number>0</number>
</property>
@@ -6010,123 +5985,20 @@ when using the file type, logs are saved in LogRtabmap.txt (located in the worki
</property>
<item>
<property name="text">
<string>720p</string>
<string>640</string>
</property>
</item>
<item>
<property name="text">
<string>800p</string>
</property>
</item>
<item>
<property name="text">
<string>400p</string>
</property>
</item>
<item>
<property name="text">
<string>480p</string>
</property>
</item>
<item>
<property name="text">
<string>1200p</string>
<string>1280</string>
</property>
</item>
</widget>
</item>
<item row="9" column="0">
<widget class="QDoubleSpinBox" name="doubleSpinBox_depthai_alpha_scaling">
<property name="minimum">
<double>-1.000000000000000</double>
</property>
<property name="maximum">
<double>1.000000000000000</double>
</property>
<property name="singleStep">
<double>1.000000000000000</double>
</property>
<property name="value">
<double>0.000000000000000</double>
</property>
</widget>
</item>
<item row="11" column="1">
<widget class="QLabel" name="label_676">
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Intensity on range 0 to 1, that will determine brightness.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<item row="0" column="1">
<widget class="QLabel" name="label_626">
<property name="text">
<string>IR laser dot projector intensity. 0 to turn off.</string>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
<property name="textInteractionFlags">
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
</property>
</widget>
</item>
<item row="13" column="0">
<widget class="QComboBox" name="comboBox_depthai_detect_features">
<property name="currentIndex">
<number>0</number>
</property>
<property name="sizeAdjustPolicy">
<enum>QComboBox::AdjustToContents</enum>
</property>
<item>
<property name="text">
<string>None</string>
</property>
</item>
<item>
<property name="text">
<string>GFTT</string>
</property>
</item>
<item>
<property name="text">
<string>SuperPoint</string>
</property>
</item>
<item>
<property name="text">
<string>HF-Net</string>
</property>
</item>
</widget>
</item>
<item row="8" column="1">
<widget class="QLabel" name="label_646">
<property name="text">
<string>Use the translation information from the board design data (not the calibration data).</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="1">
<widget class="QLabel" name="label_625">
<property name="text">
<string>Output mode.</string>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
<property name="textInteractionFlags">
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
</property>
</widget>
</item>
<item row="13" column="1">
<widget class="QLabel" name="label_679">
<property name="text">
<string>On-device feature detector.</string>
<string>Image width.</string>
</property>
<property name="wordWrap">
<bool>true</bool>
@@ -6161,13 +6033,10 @@ when using the file type, logs are saved in LogRtabmap.txt (located in the worki
</item>
</widget>
</item>
<item row="4" column="1">
<widget class="QLabel" name="label_745">
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Disparity range increased from 0-95 to 0-190, combined from full resolution and downscaled images.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<item row="1" column="1">
<widget class="QLabel" name="label_625">
<property name="text">
<string>Extended disparity. Suitable for short range objects. Currently incompatible with sub-pixel disparity.</string>
<string>Output mode.</string>
</property>
<property name="wordWrap">
<bool>true</bool>
@@ -6190,26 +6059,6 @@ when using the file type, logs are saved in LogRtabmap.txt (located in the worki
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QSpinBox" name="spinBox_depthai_lrc_threshold">
<property name="minimum">
<number>-1</number>
</property>
<property name="maximum">
<number>255</number>
</property>
<property name="value">
<number>5</number>
</property>
</widget>
</item>
<item row="8" column="0">
<widget class="QCheckBox" name="checkBox_depthai_use_spec_translation">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QLabel" name="label_627">
<property name="text">
@@ -6223,55 +6072,26 @@ when using the file type, logs are saved in LogRtabmap.txt (located in the worki
</property>
</widget>
</item>
<item row="12" column="1">
<widget class="QLabel" name="label_677">
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Intensity on range 0 to 1, that will determine brightness.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
<item row="3" column="0">
<widget class="QSpinBox" name="spinBox_depthai_lrc_threshold">
<property name="minimum">
<number>-1</number>
</property>
<property name="text">
<string>IR flood light intensity. 0 to turn off.</string>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
<property name="textInteractionFlags">
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
</property>
</widget>
</item>
<item row="14" column="1">
<widget class="QLabel" name="label_680">
<property name="text">
<string>Path to MyriadX blob file.</string>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
<property name="textInteractionFlags">
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
</property>
</widget>
</item>
<item row="11" column="0">
<widget class="QDoubleSpinBox" name="doubleSpinBox_depthai_dot_intensity">
<property name="maximum">
<double>1.000000000000000</double>
</property>
<property name="singleStep">
<double>0.050000000000000</double>
<number>255</number>
</property>
<property name="value">
<double>0.000000000000000</double>
<number>5</number>
</property>
</widget>
</item>
<item row="6" column="1">
<widget class="QLabel" name="label_746">
<item row="3" column="1">
<widget class="QLabel" name="label_748">
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Computes disparity with sub-pixel interpolation (3 fractional bits by default). &lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
<string>Computes and combines disparities in both L-R and R-L directions, and combine them. </string>
</property>
<property name="text">
<string>Subpixel mode: number of fractional bits. Suitable for long range. Currently incompatible with extended disparity.</string>
<string>Disparity left-right check threshold. Set -1 to turn off.</string>
</property>
<property name="wordWrap">
<bool>true</bool>
@@ -6281,10 +6101,43 @@ when using the file type, logs are saved in LogRtabmap.txt (located in the worki
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLabel" name="label_626">
<item row="4" column="0">
<widget class="QCheckBox" name="checkBox_depthai_extended_disparity">
<property name="text">
<string>Resolution.</string>
<string/>
</property>
</widget>
</item>
<item row="4" column="1">
<widget class="QLabel" name="label_745">
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Disparity range increased from 0-95 to 0-190, combined from full resolution and downscaled images.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="text">
<string>Extended disparity. Suitable for short range objects.</string>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
<property name="textInteractionFlags">
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
</property>
</widget>
</item>
<item row="5" column="0">
<widget class="QCheckBox" name="checkBox_depthai_disparity_companding">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="5" column="1">
<widget class="QLabel" name="label_763">
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt; * Matching pixel by pixel for N disparities.&lt;/p&gt;&lt;p&gt; * Matching every 2nd pixel for M disparitites.&lt;/p&gt;&lt;p&gt; * Matching every 4th pixel for T disparities.&lt;/p&gt;&lt;p&gt; * In case of 96 disparities: N=48, M=32, T=16.&lt;/p&gt;&lt;p&gt; * This way the search range is extended to 176 disparities, by sparse matching.&lt;/p&gt;&lt;p&gt; * Note: when enabling this flag only depth map will be affected, disparity map is not.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="text">
<string>Disparity companding using sparse matching.</string>
</property>
<property name="wordWrap">
<bool>true</bool>
@@ -6297,7 +6150,7 @@ when using the file type, logs are saved in LogRtabmap.txt (located in the worki
<item row="6" column="0">
<widget class="QComboBox" name="comboBox_depthai_subpixel_fractional_bits">
<property name="currentIndex">
<number>0</number>
<number>1</number>
</property>
<property name="sizeAdjustPolicy">
<enum>QComboBox::AdjustToContents</enum>
@@ -6324,20 +6177,109 @@ when using the file type, logs are saved in LogRtabmap.txt (located in the worki
</item>
</widget>
</item>
<item row="4" column="0">
<widget class="QCheckBox" name="checkBox_depthai_extended_disparity">
<item row="6" column="1">
<widget class="QLabel" name="label_746">
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Computes disparity with sub-pixel interpolation (3 fractional bits by default). &lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="text">
<string>Subpixel mode: number of fractional bits. Suitable for long range.</string>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
<property name="textInteractionFlags">
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
</property>
</widget>
</item>
<item row="7" column="0">
<widget class="QComboBox" name="comboBox_depthai_disparity_width">
<property name="currentIndex">
<number>1</number>
</property>
<property name="sizeAdjustPolicy">
<enum>QComboBox::AdjustToContents</enum>
</property>
<item>
<property name="text">
<string>64 pixels</string>
</property>
</item>
<item>
<property name="text">
<string>96 pixels</string>
</property>
</item>
</widget>
</item>
<item row="7" column="1">
<widget class="QLabel" name="label_747">
<property name="text">
<string>Disparity search range: 64 or 96 pixels are supported by the HW.</string>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
<property name="textInteractionFlags">
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
</property>
</widget>
</item>
<item row="8" column="0">
<widget class="QComboBox" name="comboBox_depthai_median_filter">
<property name="currentIndex">
<number>2</number>
</property>
<property name="sizeAdjustPolicy">
<enum>QComboBox::AdjustToContents</enum>
</property>
<item>
<property name="text">
<string>MEDIAN_OFF</string>
</property>
</item>
<item>
<property name="text">
<string>KERNEL 3x3</string>
</property>
</item>
<item>
<property name="text">
<string>KERNEL 5x5</string>
</property>
</item>
<item>
<property name="text">
<string>KERNEL 7x7</string>
</property>
</item>
</widget>
</item>
<item row="8" column="1">
<widget class="QLabel" name="label_764">
<property name="text">
<string>Set kernel size for disparity/depth median filtering, or disable.</string>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
<property name="textInteractionFlags">
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
</property>
</widget>
</item>
<item row="9" column="0">
<widget class="QCheckBox" name="checkBox_depthai_use_spec_translation">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QLabel" name="label_748">
<property name="toolTip">
<string>Computes and combines disparities in both L-R and R-L directions, and combine them. </string>
</property>
<item row="9" column="1">
<widget class="QLabel" name="label_646">
<property name="text">
<string>Disparity left-right check threshold. Set -1 to turn off.</string>
<string>Use the translation information from the board design data (not the calibration data).</string>
</property>
<property name="wordWrap">
<bool>true</bool>
@@ -6348,26 +6290,22 @@ when using the file type, logs are saved in LogRtabmap.txt (located in the worki
</widget>
</item>
<item row="10" column="0">
<widget class="QCheckBox" name="checkBox_depthai_imu_published">
<property name="text">
<string/>
<widget class="QDoubleSpinBox" name="doubleSpinBox_depthai_alpha_scaling">
<property name="minimum">
<double>-1.000000000000000</double>
</property>
</widget>
</item>
<item row="12" column="0">
<widget class="QDoubleSpinBox" name="doubleSpinBox_depthai_flood_intensity">
<property name="maximum">
<double>1.000000000000000</double>
</property>
<property name="singleStep">
<double>0.050000000000000</double>
<double>1.000000000000000</double>
</property>
<property name="value">
<double>0.000000000000000</double>
</property>
</widget>
</item>
<item row="9" column="1">
<item row="10" column="1">
<widget class="QLabel" name="label_678">
<property name="toolTip">
<string>On some high distortion lenses, and/or due to rectification (image rotated) invalid areas may appear even with alpha=0, in these cases alpha &lt; 0.0 helps removing invalid areas.</string>
@@ -6383,13 +6321,75 @@ when using the file type, logs are saved in LogRtabmap.txt (located in the worki
</property>
</widget>
</item>
<item row="7" column="1">
<widget class="QLabel" name="label_747">
<item row="11" column="0">
<widget class="QCheckBox" name="checkBox_depthai_imu_published">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="11" column="1">
<widget class="QLabel" name="label_650">
<property name="text">
<string>IMU published</string>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
<property name="textInteractionFlags">
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
</property>
</widget>
</item>
<item row="12" column="0">
<widget class="QDoubleSpinBox" name="doubleSpinBox_depthai_dot_intensity">
<property name="maximum">
<double>1.000000000000000</double>
</property>
<property name="singleStep">
<double>0.050000000000000</double>
</property>
<property name="value">
<double>0.000000000000000</double>
</property>
</widget>
</item>
<item row="12" column="1">
<widget class="QLabel" name="label_676">
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt; * Matching pixel by pixel for N disparities.&lt;/p&gt;&lt;p&gt; * Matching every 2nd pixel for M disparitites.&lt;/p&gt;&lt;p&gt; * Matching every 4th pixel for T disparities.&lt;/p&gt;&lt;p&gt; * In case of 96 disparities: N=48, M=32, T=16.&lt;/p&gt;&lt;p&gt; * This way the search range is extended to 176 disparities, by sparse matching.&lt;/p&gt;&lt;p&gt; * Note: when enabling this flag only depth map will be affected, disparity map is not.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Intensity on range 0 to 1, that will determine brightness.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="text">
<string>Disparity companding using sparse matching. Currently incompatible with extended disparity.</string>
<string>IR laser dot projector intensity. 0 to turn off.</string>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
<property name="textInteractionFlags">
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
</property>
</widget>
</item>
<item row="13" column="0">
<widget class="QDoubleSpinBox" name="doubleSpinBox_depthai_flood_intensity">
<property name="maximum">
<double>1.000000000000000</double>
</property>
<property name="singleStep">
<double>0.050000000000000</double>
</property>
<property name="value">
<double>0.000000000000000</double>
</property>
</widget>
</item>
<item row="13" column="1">
<widget class="QLabel" name="label_677">
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Intensity on range 0 to 1, that will determine brightness.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="text">
<string>IR flood light intensity. 0 to turn off.</string>
</property>
<property name="wordWrap">
<bool>true</bool>
@@ -6400,6 +6400,49 @@ when using the file type, logs are saved in LogRtabmap.txt (located in the worki
</widget>
</item>
<item row="14" column="0">
<widget class="QComboBox" name="comboBox_depthai_detect_features">
<property name="currentIndex">
<number>0</number>
</property>
<property name="sizeAdjustPolicy">
<enum>QComboBox::AdjustToContents</enum>
</property>
<item>
<property name="text">
<string>None</string>
</property>
</item>
<item>
<property name="text">
<string>GFTT</string>
</property>
</item>
<item>
<property name="text">
<string>SuperPoint</string>
</property>
</item>
<item>
<property name="text">
<string>HF-Net</string>
</property>
</item>
</widget>
</item>
<item row="14" column="1">
<widget class="QLabel" name="label_679">
<property name="text">
<string>On-device feature detector.</string>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
<property name="textInteractionFlags">
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
</property>
</widget>
</item>
<item row="15" column="0">
<layout class="QHBoxLayout" name="horizontalLayout_15" stretch="0,1">
<item>
<widget class="QToolButton" name="toolButton_depthai_blob_path">
@@ -6423,10 +6466,10 @@ when using the file type, logs are saved in LogRtabmap.txt (located in the worki
</item>
</layout>
</item>
<item row="10" column="1">
<widget class="QLabel" name="label_650">
<item row="15" column="1">
<widget class="QLabel" name="label_680">
<property name="text">
<string>IMU published</string>
<string>Path to MyriadX blob file.</string>
</property>
<property name="wordWrap">
<bool>true</bool>