2019-01-19 21:40:38 +01:00
<?xml version="1.0" encoding="UTF-8"?>
<ui version= "4.0" >
<class > Train3DMASCDialog</class>
<widget class= "QDialog" name= "Train3DMASCDialog" >
<property name= "geometry" >
<rect >
<x > 0</x>
<y > 0</y>
2022-10-17 17:33:15 +02:00
<width > 834</width>
<height > 795</height>
2019-01-19 21:40:38 +01:00
</rect>
</property>
<property name= "windowTitle" >
<string > Dialog</string>
</property>
2023-03-27 22:52:23 +02:00
<layout class= "QVBoxLayout" name= "verticalLayout" stretch= "0,0,0,1" >
2019-01-19 21:40:38 +01:00
<item >
<widget class= "QGroupBox" name= "rtGroupBox" >
<property name= "title" >
<string > Random Trees</string>
</property>
<layout class= "QFormLayout" name= "formLayout" >
<item row= "0" column= "0" >
<widget class= "QLabel" name= "label" >
2023-01-26 07:56:39 +01:00
<property name= "toolTip" >
<string > < html> < head/> < body> < p> OpenCV parameter< /p> < p> The maximum possible depth of the tree. That is the training algorithms attempts to split a node while its depth is less than maxDepth. The root node has zero depth. The actual depth may be smaller if the other termination criteria are met, and/or if the tree is pruned.< /p> < p> [default 25]< /p> < /body> < /html> </string>
</property>
2019-01-19 21:40:38 +01:00
<property name= "text" >
<string > max depth</string>
</property>
</widget>
</item>
<item row= "0" column= "1" >
<widget class= "QSpinBox" name= "maxDepthSpinBox" >
2019-01-20 13:59:09 +01:00
<property name= "toolTip" >
<string > < html> < head/> < body> < p> The maximum possible depth of the tree.< /p> < p> That is the training algorithms attempts to split a node while its depth is less than maxDepth.< /p> < p> The root node has zero depth. The actual depth may be smaller if the other termination criteria are met and/or if the tree is pruned.< /p> < /body> < /html> </string>
</property>
2019-01-19 21:40:38 +01:00
<property name= "minimum" >
<number > 1</number>
</property>
<property name= "value" >
<number > 25</number>
</property>
</widget>
</item>
<item row= "1" column= "0" >
<widget class= "QLabel" name= "label_5" >
2023-01-26 07:56:39 +01:00
<property name= "toolTip" >
<string > < html> < head/> < body> < p> OpenCV parameter< /p> < p> The number of trees in the forest!< /p> < p> [default 100]< /p> < /body> < /html> </string>
</property>
2019-01-19 21:40:38 +01:00
<property name= "text" >
<string > max tree count</string>
</property>
</widget>
</item>
<item row= "1" column= "1" >
<widget class= "QSpinBox" name= "maxTreeCountSpinBox" >
2019-01-20 13:59:09 +01:00
<property name= "toolTip" >
<string > The maximum number of iterations/elements</string>
</property>
2019-01-19 21:40:38 +01:00
<property name= "minimum" >
<number > 1</number>
</property>
<property name= "maximum" >
<number > 10000</number>
</property>
<property name= "singleStep" >
<number > 10</number>
</property>
<property name= "value" >
<number > 100</number>
</property>
</widget>
</item>
<item row= "2" column= "0" >
<widget class= "QLabel" name= "label_4" >
2023-01-26 07:56:39 +01:00
<property name= "toolTip" >
<string > < html> < head/> < body> < p> OpenCV parameter< /p> < p> The size of the randomly selected subset of features at each tree node and that are used to find the best split(s). If you set it to 0 then the size will be set to the square root of the total number of features.< /p> < p> [default 0]< /p> < /body> < /html> </string>
</property>
2019-01-19 21:40:38 +01:00
<property name= "text" >
<string > active var count</string>
</property>
</widget>
</item>
<item row= "2" column= "1" >
2019-01-20 13:59:09 +01:00
<widget class= "QSpinBox" name= "activeVarCountSpinBox" >
<property name= "toolTip" >
<string > < html> < head/> < body> < p> The size of the randomly selected subset of features at each tree node and that are used to find the best split(s).< /p> < p> If you set it to 0 then the size will be set to the square root of the total number of features.< /p> < p> Default value is 0.< /p> < /body> < /html> </string>
</property>
</widget>
2019-01-19 21:40:38 +01:00
</item>
<item row= "3" column= "0" >
<widget class= "QLabel" name= "label_2" >
2023-01-26 07:56:39 +01:00
<property name= "toolTip" >
<string > < html> < head/> < body> < p> OpenCV parameter< /p> < p> If the number of samples in a node is less than this parameter then the node will not be split.< /p> < p> [default 10]< /p> < /body> < /html> </string>
</property>
2019-01-19 21:40:38 +01:00
<property name= "text" >
<string > min sample count</string>
</property>
</widget>
</item>
<item row= "3" column= "1" >
<widget class= "QSpinBox" name= "minSampleCountSpinBox" >
2019-01-20 13:59:09 +01:00
<property name= "toolTip" >
<string > If the number of samples in a node is less than this parameter then the node will not be split</string>
</property>
2019-01-19 21:40:38 +01:00
<property name= "minimum" >
<number > 1</number>
</property>
2023-01-26 07:56:39 +01:00
<property name= "value" >
<number > 10</number>
</property>
2019-01-19 21:40:38 +01:00
</widget>
</item>
</layout>
</widget>
</item>
<item >
<widget class= "QGroupBox" name= "otherGroupBox" >
<property name= "title" >
2019-01-20 22:12:20 +01:00
<string > Other parameters</string>
2019-01-19 21:40:38 +01:00
</property>
<layout class= "QFormLayout" name= "formLayout_2" >
<item row= "0" column= "0" >
<widget class= "QLabel" name= "label_3" >
<property name= "text" >
<string > Test data ratio</string>
</property>
</widget>
</item>
<item row= "0" column= "1" >
<widget class= "QSpinBox" name= "testDataRatioSpinBox" >
2019-01-20 13:59:09 +01:00
<property name= "toolTip" >
<string > Ratio of input points used for evaluating the classification</string>
</property>
2019-01-19 21:40:38 +01:00
<property name= "suffix" >
<string > %</string>
</property>
<property name= "minimum" >
<number > 0</number>
</property>
<property name= "maximum" >
<number > 99</number>
</property>
<property name= "value" >
<number > 20</number>
</property>
</widget>
</item>
2023-03-27 22:52:23 +02:00
<item row= "3" column= "0" >
<widget class= "QCheckBox" name= "checkBox_useExistingScalarFields" >
<property name= "toolTip" >
<string > < html> < head/> < body> < p> You the existing feature for the training. If not checked, all features will be recalculated and the existing features will be overwritten.< /p> < /body> < /html> </string>
</property>
<property name= "text" >
<string > Use existing attributes</string>
</property>
</widget>
</item>
<item row= "4" column= "0" >
<widget class= "QCheckBox" name= "checkBox_keepTraces" >
<property name= "toolTip" >
<string > < html> < head/> < body> < p> If checked : < /p> < p> * A directory is created near the parameter file, with name 3dmasc_yyyymmdd_HHhMM.< /p> < p> * A file 3dmasc_yyyymmdd_HHhMM.txt is created in this directory. < /p> < p> * Each time you train the classifier, the feature list and the classifier are stored and an entry is created in the trace file to save the overall accuracy.< /p> < /body> < /html> </string>
</property>
<property name= "text" >
<string > Keep traces</string>
</property>
</widget>
</item>
<item row= "2" column= "0" >
<widget class= "QCheckBox" name= "keepAttributesCheckBox" >
<property name= "text" >
<string > Keep attributes on completion</string>
</property>
</widget>
</item>
2019-01-19 21:40:38 +01:00
</layout>
</widget>
</item>
<item >
2019-01-20 22:12:20 +01:00
<widget class= "QFrame" name= "frame" >
<property name= "frameShape" >
<enum > QFrame::StyledPanel</enum>
2019-01-19 21:40:38 +01:00
</property>
2019-01-20 22:12:20 +01:00
<property name= "frameShadow" >
<enum > QFrame::Raised</enum>
2019-01-19 21:40:38 +01:00
</property>
2019-01-20 22:12:20 +01:00
<layout class= "QHBoxLayout" name= "horizontalLayout" >
<item >
<widget class= "QPushButton" name= "runPushButton" >
<property name= "text" >
<string > Run</string>
</property>
</widget>
</item>
<item >
<widget class= "QPushButton" name= "savePushButton" >
<property name= "enabled" >
<bool > false</bool>
</property>
<property name= "text" >
2023-01-17 16:43:57 +01:00
<string > Save classifier</string>
2019-01-20 22:12:20 +01:00
</property>
</widget>
</item>
<item >
<widget class= "QPushButton" name= "closePushButton" >
<property name= "text" >
<string > Close</string>
</property>
</widget>
</item>
</layout>
<zorder > runPushButton</zorder>
<zorder > closePushButton</zorder>
<zorder > savePushButton</zorder>
</widget>
2019-01-19 21:40:38 +01:00
</item>
<item >
2019-01-20 22:12:20 +01:00
<widget class= "QGroupBox" name= "resultGroupBox" >
<property name= "sizePolicy" >
<sizepolicy hsizetype= "Preferred" vsizetype= "Expanding" >
<horstretch > 0</horstretch>
<verstretch > 0</verstretch>
</sizepolicy>
2019-01-19 21:40:38 +01:00
</property>
2019-01-20 22:12:20 +01:00
<property name= "title" >
<string > Results</string>
2019-01-19 21:40:38 +01:00
</property>
2022-10-17 17:33:15 +02:00
<layout class= "QGridLayout" name= "gridLayout" columnstretch= "1,0" >
<item row= "0" column= "0" colspan= "2" >
2019-01-20 22:12:20 +01:00
<widget class= "QLabel" name= "resultLabel" >
<property name= "text" >
<string > correct = 0/0 - accuracy = 0.0</string>
</property>
</widget>
</item>
2022-10-17 17:33:15 +02:00
<item row= "1" column= "0" rowspan= "2" >
2019-01-20 22:12:20 +01:00
<widget class= "QTableWidget" name= "tableWidget" >
<property name= "verticalScrollBarPolicy" >
<enum > Qt::ScrollBarAlwaysOn</enum>
</property>
<property name= "showDropIndicator" stdset= "0" >
<bool > false</bool>
</property>
<property name= "dragDropOverwriteMode" >
<bool > false</bool>
</property>
<property name= "selectionMode" >
<enum > QAbstractItemView::NoSelection</enum>
</property>
2019-03-25 22:45:39 +01:00
<property name= "sortingEnabled" >
<bool > true</bool>
</property>
2019-01-20 22:12:20 +01:00
<attribute name= "horizontalHeaderDefaultSectionSize" >
<number > 170</number>
</attribute>
<attribute name= "verticalHeaderVisible" >
<bool > false</bool>
</attribute>
<column >
<property name= "text" >
<string > Feature</string>
</property>
</column>
<column >
<property name= "text" >
<string > Importance</string>
</property>
</column>
</widget>
</item>
2022-10-28 17:05:36 +02:00
<item row= "3" column= "0" >
<widget class= "QToolButton" name= "exportToolButton" >
<property name= "text" >
2023-01-17 16:43:57 +01:00
<string > Export feature list</string>
2022-10-28 17:05:36 +02:00
</property>
</widget>
</item>
2022-10-17 17:33:15 +02:00
<item row= "1" column= "1" >
<widget class= "QTableWidget" name= "tableWidgetScales" >
<column >
<property name= "text" >
<string > Scales</string>
</property>
</column>
</widget>
</item>
2019-01-20 22:12:20 +01:00
</layout>
2019-01-19 21:40:38 +01:00
</widget>
</item>
</layout>
</widget>
<resources />
<connections >
<connection >
2019-01-20 22:12:20 +01:00
<sender > runPushButton</sender>
<signal > clicked()</signal>
2019-01-19 21:40:38 +01:00
<receiver > Train3DMASCDialog</receiver>
<slot > accept()</slot>
<hints >
<hint type= "sourcelabel" >
2019-01-20 22:12:20 +01:00
<x > 76</x>
<y > 296</y>
2019-01-19 21:40:38 +01:00
</hint>
<hint type= "destinationlabel" >
2019-01-20 22:12:20 +01:00
<x > 198</x>
<y > 237</y>
2019-01-19 21:40:38 +01:00
</hint>
</hints>
</connection>
</connections>
</ui>