def __init__(self, param, parent):
        core.CWorkflowTaskWidget.__init__(self, parent)

        if param is None:
            self.parameters = PanopticFpnParam()
        else:
            self.parameters = param

        # Create layout : QGridLayout by default
        self.gridLayout = QGridLayout()

        # cuda parameter
        cuda_label = QLabel("CUDA")
        self.cuda_ckeck = QCheckBox()
        self.cuda_ckeck.setChecked(True)

        self.gridLayout.setColumnStretch(0, 0)
        self.gridLayout.addWidget(self.cuda_ckeck, 0, 0)
        self.gridLayout.setColumnStretch(1, 1)
        self.gridLayout.addWidget(cuda_label, 0, 1)
        self.gridLayout.setColumnStretch(2, 2)

        # Set widget layout
        layout_ptr = qtconversion.PyQtToQt(self.gridLayout)
        self.setLayout(layout_ptr)

        if not self.parameters.cuda:
            self.cuda_ckeck.setChecked(False)
Exemplo n.º 2
0
    def __init__(self, param, parent):
        core.CWorkflowTaskWidget.__init__(self, parent)

        if param is None:
            self.parameters = DatasetPascalVocParam()
        else:
            self.parameters = param

        # Create layout : QGridLayout by default
        self.grid_layout = QGridLayout()

        self.browse_ann_folder = pyqtutils.append_browse_file(grid_layout=self.grid_layout, label="Annotation folder",
                                                              path=self.parameters.annotation_folder_path,
                                                              mode=QFileDialog.Directory)

        self.browse_img_folder = pyqtutils.append_browse_file(grid_layout=self.grid_layout, label="Image folder",
                                                              path=self.parameters.image_folder_path,
                                                              mode=QFileDialog.Directory)

        self.browse_instance_seg_folder = pyqtutils.append_browse_file(grid_layout=self.grid_layout,
                                                                       label="Instance segmentation folder",
                                                                       path=self.parameters.instance_seg_folder_path,
                                                                       mode=QFileDialog.Directory)

        self.browse_class_file = pyqtutils.append_browse_file(grid_layout=self.grid_layout, label="Classes file",
                                                              path=self.parameters.class_path,
                                                              mode=QFileDialog.ExistingFile)

        # PyQt -> Qt wrapping
        layout_ptr = qtconversion.PyQtToQt(self.grid_layout)

        # Set widget layout
        self.setLayout(layout_ptr)
    def __init__(self, param, parent):
        core.CWorkflowTaskWidget.__init__(self, parent)

        if param is None:
            self.parameters = DatasetCocoParam()
        else:
            self.parameters = param

        # Create layout : QGridLayout by default
        self.grid_layout = QGridLayout()

        self.browse_json = pyqtutils.append_browse_file(
            self.grid_layout,
            label="COCO json file",
            path=self.parameters.json_path,
            filter="*.json")

        self.browse_img_folder = pyqtutils.append_browse_file(
            self.grid_layout,
            label="Image folder",
            filter="",
            path=self.parameters.image_folder,
            mode=QFileDialog.Directory)

        # PyQt -> Qt wrapping
        layout_ptr = qtconversion.PyQtToQt(self.grid_layout)

        # Set widget layout
        self.setLayout(layout_ptr)
    def __init__(self, param, parent):
        core.CWorkflowTaskWidget.__init__(self, parent)

        if param is None:
            self.parameters = DatasetYoloParam()
        else:
            self.parameters = param

        # Create layout : QGridLayout by default
        self.grid_layout = QGridLayout()

        self.browse_folder = pyqtutils.append_browse_file(
            grid_layout=self.grid_layout,
            label="YOLO dataset folder",
            path=self.parameters.data_folder_path,
            mode=QFileDialog.Directory)

        self.browse_class_file = pyqtutils.append_browse_file(
            grid_layout=self.grid_layout,
            label="YOLO classes file",
            path=self.parameters.class_file_path,
            mode=QFileDialog.ExistingFile)

        # PyQt -> Qt wrapping
        layout_ptr = qtconversion.PyQtToQt(self.grid_layout)

        # Set widget layout
        self.setLayout(layout_ptr)
Exemplo n.º 5
0
    def __init__(self, param, parent):
        core.CWorkflowTaskWidget.__init__(self, parent)

        if param is None:
            self.parameters = DatasetWgisdParam()
        else:
            self.parameters = param

        # Create layout : QGridLayout by default
        self.grid_layout = QGridLayout()

        self.browse_folder = pyqtutils.append_browse_file(
            grid_layout=self.grid_layout,
            label="Dataset folder",
            path=self.parameters.data_folder_path,
            mode=QFileDialog.Directory)

        self.browse_class_file = pyqtutils.append_browse_file(
            grid_layout=self.grid_layout,
            label="Classes file",
            path=self.parameters.class_file_path,
            mode=QFileDialog.ExistingFile)

        self.combo_seg_mask_mode = pyqtutils.append_combo(
            grid_layout=self.grid_layout, label="Segmentation masks")
        self.combo_seg_mask_mode.addItem("None")
        self.combo_seg_mask_mode.addItem("Instance")
        self.combo_seg_mask_mode.addItem("Panoptic")
        self.combo_seg_mask_mode.setCurrentText(self.parameters.seg_mask_mode)

        # PyQt -> Qt wrapping
        layout_ptr = qtconversion.PyQtToQt(self.grid_layout)

        # Set widget layout
        self.setLayout(layout_ptr)
    def __init__(self, param, parent):
        core.CWorkflowTaskWidget.__init__(self, parent)

        if param is None:
            self.parameters = TrainFasterRcnnParam()
        else:
            self.parameters = param

        # Create layout : QGridLayout by default
        self.grid_layout = QGridLayout()
        self.spin_workers = pyqtutils.append_spin(
            self.grid_layout,
            label="Data loader workers",
            value=self.parameters.cfg["num_workers"],
            min=0,
            max=8,
            step=2)

        self.spin_batch = pyqtutils.append_spin(
            self.grid_layout,
            label="Batch size",
            value=self.parameters.cfg["batch_size"],
            min=1,
            max=1024,
            step=1)

        self.spin_epoch = pyqtutils.append_spin(
            self.grid_layout,
            label="Epochs",
            value=self.parameters.cfg["epochs"],
            min=1)

        self.spin_size = pyqtutils.append_spin(
            self.grid_layout,
            label="Input size",
            value=self.parameters.cfg["input_size"])

        label_model_format = QLabel("Model format")
        row = self.grid_layout.rowCount()
        self.grid_layout.addWidget(label_model_format, row, 0)
        self.check_pth = QCheckBox("pth")
        self.check_pth.setChecked(self.parameters.cfg["export_pth"])
        self.grid_layout.addWidget(self.check_pth, row, 1)
        self.check_onnx = QCheckBox("onnx")
        self.check_onnx.setChecked(self.parameters.cfg["export_onnx"])
        self.grid_layout.addWidget(self.check_onnx, row + 1, 1)

        self.browse_folder = pyqtutils.append_browse_file(
            self.grid_layout,
            label="Output folder",
            path=self.parameters.cfg["output_folder"],
            tooltip="Select output folder",
            mode=QFileDialog.Directory)

        # PyQt -> Qt wrapping
        layout_ptr = qtconversion.PyQtToQt(self.grid_layout)

        # Set widget layout
        self.setLayout(layout_ptr)
Exemplo n.º 7
0
    def __init__(self, param, parent):
        core.CWorkflowTaskWidget.__init__(self, parent)

        if param is None:
            self.parameters = InferYolactParam()
        else:
            self.parameters = param

        # Create layout : QGridLayout by default
        self.grid_layout = QGridLayout()

        # Confidence
        label_confidence = QLabel("Confidence")
        self.spin_confidence = QDoubleSpinBox()
        self.spin_confidence.setRange(0, 1)
        self.spin_confidence.setSingleStep(0.05)
        self.spin_confidence.setDecimals(2)
        self.spin_confidence.setValue(self.parameters.confidence)

        # Predictions count
        label_pred_count = QLabel("Max predictions count")
        self.spin_pred_count = QSpinBox()
        self.spin_pred_count.setRange(1, 100)
        self.spin_pred_count.setSingleStep(1)
        self.spin_pred_count.setValue(self.parameters.top_k)

        # Mask transparency
        label_mask_alpha = QLabel("Mask transparency")
        self.spin_mask_alpha = QDoubleSpinBox()
        self.spin_mask_alpha.setRange(0, 1)
        self.spin_mask_alpha.setSingleStep(0.05)
        self.spin_mask_alpha.setDecimals(2)
        self.spin_mask_alpha.setValue(self.parameters.mask_alpha)

        # Device
        self.checkbox = QCheckBox("CUDA")
        if self.parameters.device == "cuda":
            self.checkbox.setChecked(True)
        else:
            self.checkbox.setChecked(False)

        # Fill layout
        self.grid_layout.addWidget(label_confidence, 0, 0, 1, 1)
        self.grid_layout.addWidget(self.spin_confidence, 0, 1, 1, 1)
        self.grid_layout.addWidget(label_pred_count, 1, 0, 1, 1)
        self.grid_layout.addWidget(self.spin_pred_count, 1, 1, 1, 1)
        self.grid_layout.addWidget(label_mask_alpha, 2, 0, 1, 1)
        self.grid_layout.addWidget(self.spin_mask_alpha, 2, 1, 1, 1)
        self.grid_layout.addWidget(self.checkbox, 3, 0, 1, 2)

        # PyQt -> Qt wrapping
        layout_ptr = qtconversion.PyQtToQt(self.grid_layout)

        # Set widget layout
        self.setLayout(layout_ptr)
    def __init__(self, param, parent):
        core.CWorkflowTaskWidget.__init__(self, parent)

        if param is None:
            self.parameters = TrainResnetParam()
        else:
            self.parameters = param

        # Create layout : QGridLayout by default
        self.grid_layout = QGridLayout()
        self.combo_model = pyqtutils.append_combo(self.grid_layout, "Model name")
        self.combo_model.addItem("resnet18")
        self.combo_model.addItem("resnet34")
        self.combo_model.addItem("resnet50")
        self.combo_model.addItem("resnet101")
        self.combo_model.addItem("resnet152")

        self.spin_workers = pyqtutils.append_spin(self.grid_layout, label="Data loader workers",
                                              value=self.parameters.cfg["num_workers"], min=0, max=8, step=2)

        self.spin_batch = pyqtutils.append_spin(self.grid_layout, label="Batch size",
                                            value=self.parameters.cfg["batch_size"], min=1, max=1024, step=1)

        self.spin_epoch = pyqtutils.append_spin(self.grid_layout, label="Epochs", value=self.parameters.cfg["epochs"], min=1)

        self.spin_classes = pyqtutils.append_spin(self.grid_layout, label="Classes", value=self.parameters.cfg["classes"], min=1)

        self.spin_size = pyqtutils.append_spin(self.grid_layout, label="Input size", value=self.parameters.cfg["input_size"])

        self.check_pretrained = pyqtutils.append_check(self.grid_layout, label="Pre-trained model",
                                                   checked=self.parameters.cfg["use_pretrained"])

        self.check_features = pyqtutils.append_check(self.grid_layout, label="Feature Extract mode",
                                                 checked=self.parameters.cfg["feature_extract"])

        label_model_format = QLabel("Model format")
        row = self.grid_layout.rowCount()
        self.grid_layout.addWidget(label_model_format, row, 0)
        self.check_pth = QCheckBox("pth")
        self.check_pth.setChecked(self.parameters.cfg["export_pth"])
        self.grid_layout.addWidget(self.check_pth, row, 1)
        self.check_onnx = QCheckBox("onnx")
        self.check_onnx.setChecked(self.parameters.cfg["export_onnx"])
        self.grid_layout.addWidget(self.check_onnx, row+1, 1)

        self.browse_folder = pyqtutils.append_browse_file(self.grid_layout, label="Output folder",
                                                      path=self.parameters.cfg["output_folder"],
                                                      tooltip="Select output folder",
                                                      mode=QFileDialog.Directory)

        # PyQt -> Qt wrapping
        layout_ptr = qtconversion.PyQtToQt(self.grid_layout)

        # Set widget layout
        self.setLayout(layout_ptr)
    def __init__(self, param, parent):
        core.CWorkflowTaskWidget.__init__(self, parent)

        if param is None:
            self.parameters = NeuralStyleTransferParam()
        else:
            self.parameters = param

        self.param_changed = False

        # Create layout : QGridLayout by default
        self.grid_layout = QGridLayout()

        # Combobox for inference backend
        label_backend = QLabel("DNN backend")
        self.combo_backend = QComboBox()
        self.fill_combo_backend() 
        self.combo_backend.setCurrentIndex(self.combo_backend.findData(self.parameters.backend))
        self.combo_backend.currentIndexChanged.connect(self.on_backend_changed)

        # Combobox for inference target
        label_target = QLabel("DNN target")
        self.combo_target = QComboBox()
        self.fill_combo_target(self.parameters.backend)
        self.combo_target.setCurrentIndex(self.combo_target.findData(self.parameters.target))
        self.combo_target.currentIndexChanged.connect(self.on_param_changed)

        # Combobox for models
        label_model = QLabel("Select your model")
        self.combo_model = QComboBox()
        self.fill_combo_model()
        self.combo_model.currentIndexChanged.connect(self.on_param_changed)
        
        try:
            current_index = self.model_paths.index(self.parameters.model_path)
            self.combo_model.setCurrentIndex(current_index)
        except:
            self.combo_model.setCurrentIndex(0)            
        
        # Fill layout
        self.grid_layout.addWidget(label_backend, 0, 0, 1, 1)
        self.grid_layout.addWidget(self.combo_backend, 0, 1, 1, 1)
        self.grid_layout.addWidget(label_target, 1, 0, 1, 1)
        self.grid_layout.addWidget(self.combo_target, 1, 1, 1, 1)
        self.grid_layout.addWidget(label_model, 2, 0, 1, 1)
        self.grid_layout.addWidget(self.combo_model, 2, 1, 1, 1)

        # PyQt -> Qt wrapping
        layout_ptr = qtconversion.PyQtToQt(self.grid_layout)

        # Set widget layout
        self.setLayout(layout_ptr)
    def __init__(self, param, parent):
        core.CWorkflowTaskWidget.__init__(self, parent)

        if param is None:
            self.parameters = ResnetParam()
        else:
            self.parameters = param

        # Create layout : QGridLayout by default
        self.grid_layout = QGridLayout()

        self.combo_model = pyqtutils.append_combo(self.grid_layout,
                                                  "Model name")
        self.combo_model.addItem("resnet18")
        self.combo_model.addItem("resnet34")
        self.combo_model.addItem("resnet50")
        self.combo_model.addItem("resnet101")
        self.combo_model.addItem("resnet152")
        self.combo_model.setCurrentIndex(self._get_model_name_index())

        self.combo_dataset = pyqtutils.append_combo(self.grid_layout,
                                                    "Trained on")
        self.combo_dataset.addItem("ImageNet")
        self.combo_dataset.addItem("Custom")
        self.combo_dataset.setCurrentIndex(self._get_dataset_index())
        self.combo_dataset.currentIndexChanged.connect(
            self.on_combo_dataset_changed)

        self.spin_size = pyqtutils.append_spin(
            self.grid_layout,
            label="Input size",
            value=self.parameters.input_size)

        self.browse_model = pyqtutils.append_browse_file(
            self.grid_layout, "Model path", self.parameters.model_path)

        self.browse_classes = pyqtutils.append_browse_file(
            self.grid_layout, "Classes path", self.parameters.classes_path)

        if self.parameters.dataset == "ImageNet":
            self.browse_model.set_path("Not used")
            self.browse_model.setEnabled(False)
            self.browse_classes.setEnabled(False)

        # PyQt -> Qt wrapping
        layout_ptr = qtconversion.PyQtToQt(self.grid_layout)

        # Set widget layout
        self.setLayout(layout_ptr)
Exemplo n.º 11
0
    def __init__(self, param, parent):
        core.CWorkflowTaskWidget.__init__(self, parent)

        if param is None:
            self.parameters = CovidNetParam()
        else:
            self.parameters = param

        # Create layout : QGridLayout by default
        self.grid_layout = QGridLayout()
        # PyQt -> Qt wrapping
        layout_ptr = qtconversion.PyQtToQt(self.grid_layout)

        # Set widget layout
        self.setLayout(layout_ptr)
Exemplo n.º 12
0
    def __init__(self, param, parent):
        core.CWorkflowTaskWidget.__init__(self, parent)

        if param is None:
            self.parameters = Deeplabv3plusParam()
        else:
            self.parameters = param
        # Create layout : QGridLayout by default
        self.gridLayout = QGridLayout()

        self.qcomboLabel = QLabel("Trained on")
        self.combo_dataset = QComboBox()
        self.combo_dataset.addItem("Custom")
        self.combo_dataset.addItem("Cityscapes")
        self.combo_dataset.setCurrentIndex(0 if self.parameters.dataset ==
                                           "Custom" else 1)
        self.combo_dataset.currentIndexChanged.connect(
            self.on_combo_dataset_changed)

        self.qlabelConfigFile = QLabel("Select a config file (.yaml) :")
        self.qbrowseWidgetConfigFile = BrowseFileWidget(
            path=self.parameters.configFile, mode=QFileDialog.ExistingFile)

        self.qlabelModelFile = QLabel("Select a model file (.pth) :")
        self.qbrowseWidgetModelFile = BrowseFileWidget(
            path=self.parameters.modelFile, mode=QFileDialog.ExistingFile)

        self.gridLayout.addWidget(self.qcomboLabel, 0, 0, 1, 1)
        self.gridLayout.addWidget(self.combo_dataset, 0, 1, 1, 2)
        self.gridLayout.addWidget(self.qlabelConfigFile, 1, 0, 1, 1)
        self.gridLayout.addWidget(self.qbrowseWidgetConfigFile, 1, 1, 1, 2)
        self.gridLayout.addWidget(self.qlabelModelFile, 2, 0, 1, 1)
        self.gridLayout.addWidget(self.qbrowseWidgetModelFile, 2, 1, 1, 2)

        # PyQt -> Qt wrapping
        layout_ptr = qtconversion.PyQtToQt(self.gridLayout)

        # Set widget layout
        self.setLayout(layout_ptr)
        if self.parameters.dataset != "Custom":
            self.qlabelModelFile.setEnabled(False)
            self.qlabelConfigFile.setEnabled(False)
            self.qbrowseWidgetConfigFile.setEnabled(False)
            self.qbrowseWidgetModelFile.setEnabled(False)
Exemplo n.º 13
0
    def __init__(self, param, parent):
        core.CWorkflowTaskWidget.__init__(self, parent)

        if param is None:
            self.parameters = MaskRcnnParam()
        else:
            self.parameters = param

        # Create layout : QGridLayout by default
        self.grid_layout = QGridLayout()

        self.combo_dataset = pyqtutils.append_combo(self.grid_layout,
                                                    "Trained on")
        self.combo_dataset.addItem("Coco2017")
        self.combo_dataset.addItem("Custom")
        self.combo_dataset.setCurrentIndex(self._get_dataset_index())
        self.combo_dataset.currentIndexChanged.connect(
            self.on_combo_dataset_changed)

        self.browse_model = pyqtutils.append_browse_file(
            self.grid_layout, "Model path", self.parameters.model_path)

        self.browse_classes = pyqtutils.append_browse_file(
            self.grid_layout, "Classes path", self.parameters.classes_path)

        self.spin_confidence = pyqtutils.append_double_spin(
            self.grid_layout, "Confidence", self.parameters.confidence, 0.0,
            1.0, 0.1, 2)
        self.spin_mask_thresh = pyqtutils.append_double_spin(
            self.grid_layout, "Mask threshold", self.parameters.mask_threshold,
            0.0, 1.0, 0.1, 2)

        if self.parameters.dataset == "Coco2017":
            self.browse_model.set_path("Not used")
            self.browse_model.setEnabled(False)
            self.browse_classes.setEnabled(False)

        # PyQt -> Qt wrapping
        layout_ptr = qtconversion.PyQtToQt(self.grid_layout)

        # Set widget layout
        self.setLayout(layout_ptr)
Exemplo n.º 14
0
    def __init__(self, param, parent):
        core.CWorkflowTaskWidget.__init__(self, parent)

        if param is None:
            self.parameters = MorphoSnakesParam()
        else:
            self.parameters = param

        # variable
        self.MAX_SPINBOX = 10000000

        # Create layout : QGridLayout by default
        self.gridLayout = QGridLayout()

        # all parameters widgets
        # snacks methods avaiable
        self.mgac = QWidget()
        self.chanVese = QWidget()

        # set all parameters widgets
        self.methodWidget()
        self.mgacWidget()
        self.chanVeseWidget()

        # main widget
        self.stack = QStackedWidget()
        self.stack.addWidget(self.mgac)
        self.stack.addWidget(self.chanVese)
        self.gridLayout.addWidget(self.stack, 2, 0)
        self.gridLayout.setRowStretch(3, 3)

        # PyQt -> Qt wrapping
        layout_ptr = qtconversion.PyQtToQt(self.gridLayout)

        # Set widget layout
        self.setLayout(layout_ptr)

        # update left parameter panel
        if self.parameters.method != "mgac":
            self.comboMethod.setCurrentIndex(1)
    def __init__(self, param, parent):
        core.CWorkflowTaskWidget.__init__(self, parent)

        if param is None:
            self.parameters = KeyptsRcnnParam()
        else:
            self.parameters = param

        # Create layout : QGridLayout by default
        self.gridLayout = QGridLayout()

        # cuda parameter
        cuda_label = QLabel("CUDA")
        self.cuda_ckeck = QCheckBox()
        self.cuda_ckeck.setChecked(True)

        # proba parameter
        proba_label = QLabel("Threshold :")

        self.proba_spinbox = QDoubleSpinBox()
        self.proba_spinbox.setValue(0.8)
        self.proba_spinbox.setSingleStep(0.1)
        self.proba_spinbox.setMaximum(1)
        if self.parameters.proba != 0.8:
            self.proba_spinbox.setValue(self.parameters.proba)

        self.gridLayout.setColumnStretch(0, 0)
        self.gridLayout.addWidget(self.cuda_ckeck, 0, 0)
        self.gridLayout.setColumnStretch(1, 1)
        self.gridLayout.addWidget(cuda_label, 0, 1)
        self.gridLayout.addWidget(proba_label, 1, 0)
        self.gridLayout.addWidget(self.proba_spinbox, 1, 1)
        self.gridLayout.setColumnStretch(2, 2)

        # Set widget layout
        layoutPtr = qtconversion.PyQtToQt(self.gridLayout)
        self.setLayout(layoutPtr)

        if not self.parameters.cuda:
            self.cuda_ckeck.setChecked(False)
    def __init__(self, param, parent):
        core.CWorkflowTaskWidget.__init__(self, parent)

        if param is None:
            self.parameters = ColorfulImageColorizationParam()
        else:
            self.parameters = param

        self.param_changed = False

        # Create layout : QGridLayout by default
        self.grid_layout = QGridLayout()

        # Combobox for inference backend
        label_backend = QLabel("DNN backend")
        self.combo_backend = QComboBox()
        self.fill_combo_backend()
        self.combo_backend.setCurrentIndex(
            self.combo_backend.findData(self.parameters.backend))
        self.combo_backend.currentIndexChanged.connect(self.on_backend_changed)

        # Combobox for inference target
        label_target = QLabel("DNN target")
        self.combo_target = QComboBox()
        self.fill_combo_target(self.parameters.backend)
        self.combo_target.setCurrentIndex(
            self.combo_target.findData(self.parameters.target))
        self.combo_target.currentIndexChanged.connect(self.on_param_changed)

        # Fill layout
        self.grid_layout.addWidget(label_backend, 0, 0, 1, 1)
        self.grid_layout.addWidget(self.combo_backend, 0, 1, 1, 1)
        self.grid_layout.addWidget(label_target, 1, 0, 1, 1)
        self.grid_layout.addWidget(self.combo_target, 1, 1, 1, 1)

        # PyQt -> Qt wrapping
        layout_ptr = qtconversion.PyQtToQt(self.grid_layout)

        # Set widget layout
        self.setLayout(layout_ptr)
    def __init__(self, param, parent):
        core.CWorkflowTaskWidget.__init__(self, parent)

        if param is None:
            self.parameters = MaskRcnnParam()
        else:
            self.parameters = param

        # Create layout : QGridLayout by default
        self.gridLayout = QGridLayout()

        # cuda parameter
        self.cuda_check = QCheckBox("CUDA")
        self.cuda_check.setChecked(self.parameters.device == "cuda")

        # dataset
        dataset_label = QLabel("Trained on")
        self.dataset_combo = QComboBox()
        self.dataset_combo.addItem("COCO")
        self.dataset_combo.addItem("CityScapes")
        self.dataset_combo.setCurrentText(self.parameters.dataset)

        # probability parameter
        proba_label = QLabel("Threshold :")
        self.proba_spinbox = QDoubleSpinBox()
        self.proba_spinbox.setValue(self.parameters.proba)
        self.proba_spinbox.setSingleStep(0.1)
        self.proba_spinbox.setMaximum(1)

        self.gridLayout.addWidget(self.cuda_check, 0, 0)
        self.gridLayout.setColumnStretch(0, 0)
        self.gridLayout.addWidget(dataset_label, 1, 0)
        self.gridLayout.addWidget(self.dataset_combo, 1, 1)
        self.gridLayout.addWidget(proba_label, 2, 0)
        self.gridLayout.addWidget(self.proba_spinbox, 2, 1)

        # Set widget layout
        layout_ptr = qtconversion.PyQtToQt(self.gridLayout)
        self.setLayout(layout_ptr)
Exemplo n.º 18
0
    def __init__(self, param, parent):
        core.CWorkflowTaskWidget.__init__(self, parent)

        if param is None:
            self.parameters = DatasetViaParam()
        else:
            self.parameters = param

        # Create layout : QGridLayout by default
        self.grid_layout = QGridLayout()

        self.browse_json = pyqtutils.append_browse_file(
            self.grid_layout,
            label="VIA json file",
            path=self.parameters.via_json_path,
            filter="*.json")

        # PyQt -> Qt wrapping
        layout_ptr = qtconversion.PyQtToQt(self.grid_layout)

        # Set widget layout
        self.setLayout(layout_ptr)
    def __init__(self, param, parent):
        core.CWorkflowTaskWidget.__init__(self, parent)

        if param is None:
            self.parameters = RaftOpticalFlowParam()
        else:
            self.parameters = param

        # Create layout : QGridLayout by default
        self.gridLayout = QGridLayout()

        # cuda parameter
        cuda_label = QLabel("CUDA")
        self.cuda_ckeck = QCheckBox()

        if self.parameters.cuda:
            self.cuda_ckeck.setChecked(True)

        if not self.parameters.cuda:
            self.cuda_ckeck.setChecked(False)
            self.cuda_ckeck.setEnabled(False)

        # model size parameter
        self.rbtn1 = QRadioButton("Small-sized Optical Flow")
        self.rbtn1.setChecked(True)

        self.rbtn2 = QRadioButton("Normal-sized Optical Flow")

        self.gridLayout.addWidget(self.cuda_ckeck, 0, 0)
        self.gridLayout.addWidget(cuda_label, 0, 1)
        self.gridLayout.addWidget(self.rbtn1, 1, 0)
        self.gridLayout.addWidget(self.rbtn2, 1, 1)

        # PyQt -> Qt wrapping
        layout_ptr = qtconversion.PyQtToQt(self.gridLayout)

        # Set widget layout
        self.setLayout(layout_ptr)
Exemplo n.º 20
0
    def __init__(self, param, parent):
        core.CWorkflowTaskWidget.__init__(self, parent)

        if param is None:
            self.parameters = ThresholdParam()
        else:
            self.parameters = param

        self.MAX_SPINBOX = 10000000
        self.gridLayout = QGridLayout()
        
        # all parameters widgets
        self.stack_none = QWidget()
        self.stack_otsu = QWidget()
        self.stack_yen = QWidget()
        self.stack_local = QWidget()
        self.stack_minimum = QWidget()
        self.stack_triangle = QWidget()
        self.stack_niblack = QWidget()
        self.stack_sauvola = QWidget()
        self.stack_multiotsu = QWidget()
        self.stack_hysteris = QWidget()
        self.stack_isodata = QWidget()
        self.stack_li = QWidget()

        # set all parameters widgets
        self.stack_methodWidget()
        self.stack_triangleWidget()
        self.stack_minimumWidget()
        self.stack_localWidget()
        self.stack_niblackWidget()
        self.stack_sauvolaWidget()
        self.stack_multiotsuWidget()
        self.stack_hysterisWidget()
        self.stack_otsuWidget()
        self.stack_yenWidget()
        self.stack_isodataWidget()
        self.stack_liWidget()

        # main widget
        self.stack = QStackedWidget()
        self.stack.addWidget(self.stack_otsu)
        self.stack.addWidget(self.stack_local)
        self.stack.addWidget(self.stack_niblack)
        self.stack.addWidget(self.stack_triangle)
        self.stack.addWidget(self.stack_multiotsu)
        self.stack.addWidget(self.stack_hysteris)
        self.stack.addWidget(self.stack_minimum)
        self.stack.addWidget(self.stack_none)
        self.stack.addWidget(self.stack_yen)
        self.stack.addWidget(self.stack_isodata)
        self.stack.addWidget(self.stack_li)
        self.stack.addWidget(self.stack_sauvola)
        self.gridLayout.addWidget(self.stack, 2, 0)

        layout_ptr = qtconversion.PyQtToQt(self.gridLayout)
        self.setLayout(layout_ptr)

        # update left parameter panel
        if self.parameters.local_method != None:
           index = self.stack_comboMethod.findText(self.parameters.local_method, Qt.MatchFixedString)
           self.stack_comboMethod.setCurrentIndex(index)
Exemplo n.º 21
0
    def __init__(self, param, parent):
        core.CWorkflowTaskWidget.__init__(self, parent)

        if param is None:
            self.parameters = InferYoloV5Param()
        else:
            self.parameters = param

        # Create layout : QGridLayout by default
        self.grid_layout = QGridLayout()

        self.combo_model = pyqtutils.append_combo(self.grid_layout, "Model")
        self.combo_model.addItem("yolov5n")
        self.combo_model.addItem("yolov5s")
        self.combo_model.addItem("yolov5m")
        self.combo_model.addItem("yolov5l")
        self.combo_model.addItem("yolov5x")
        self.combo_model.setCurrentText(self.parameters.model_name)

        self.combo_dataset = pyqtutils.append_combo(self.grid_layout,
                                                    "Trained on")
        self.combo_dataset.addItem("COCO")
        self.combo_dataset.addItem("Custom")
        self.combo_dataset.setCurrentIndex(0 if self.parameters.dataset ==
                                           "COCO" else 1)
        self.combo_dataset.currentIndexChanged.connect(
            self.on_combo_dataset_changed)

        self.label_model_path = QLabel("Model path")
        self.browse_model = pyqtutils.BrowseFileWidget(
            path=self.parameters.model_path,
            tooltip="Select file",
            mode=QFileDialog.ExistingFile)
        row = self.grid_layout.rowCount()
        self.grid_layout.addWidget(self.label_model_path, row, 0)
        self.grid_layout.addWidget(self.browse_model, row, 1)
        self.label_model_path.setVisible(False if self.parameters.dataset ==
                                         "COCO" else True)
        self.browse_model.setVisible(False if self.parameters.dataset ==
                                     "COCO" else True)

        self.spin_size = pyqtutils.append_spin(self.grid_layout, "Input size",
                                               self.parameters.input_size)

        self.spin_confidence = pyqtutils.append_double_spin(
            self.grid_layout,
            "Confidence",
            self.parameters.conf_thres,
            step=0.05,
            decimals=2)

        self.spin_iou = pyqtutils.append_double_spin(self.grid_layout,
                                                     "IOU threshold",
                                                     self.parameters.iou_thres,
                                                     step=0.05,
                                                     decimals=2)

        # PyQt -> Qt wrapping
        layout_ptr = qtconversion.PyQtToQt(self.grid_layout)

        # Set widget layout
        self.setLayout(layout_ptr)
    def __init__(self, param, parent):
        core.CWorkflowTaskWidget.__init__(self, parent)

        if param is None:
            self.parameters = TrainDeeplabv3plusParam()
        else:
            self.parameters = param

        # Create layout : QGridLayout by default
        self.gridLayout = QGridLayout()
        # PyQt -> Qt wrapping
        layout_ptr = qtconversion.PyQtToQt(self.gridLayout)

        inputSizeLabel = QLabel("Desired input size:")
        self.widthSpinBox = QSpinBox()
        self.widthSpinBox.setRange(16, 4096)
        self.widthSpinBox.setSingleStep(16)
        self.widthSpinBox.setValue(self.parameters.cfg["inputWidth"])

        self.heightSpinBox = QSpinBox()
        self.heightSpinBox.setRange(16, 4096)
        self.heightSpinBox.setSingleStep(16)
        self.heightSpinBox.setValue(self.parameters.cfg["inputHeight"])

        maxIterLabel = QLabel("Max iter:")
        self.maxIterSpinBox = QSpinBox()
        self.maxIterSpinBox.setRange(0, 2147483647)
        self.maxIterSpinBox.setSingleStep(1)
        self.maxIterSpinBox.setValue(self.parameters.cfg["maxIter"])

        batchSizeLabel = QLabel("Batch size:")
        self.batchSizeSpinBox = QSpinBox()
        self.batchSizeSpinBox.setRange(1, 2147483647)
        self.batchSizeSpinBox.setSingleStep(1)
        self.batchSizeSpinBox.setValue(self.parameters.cfg["batchSize"])

        splitTrainTestLabel = QLabel("Train test percentage:")
        self.splitTrainTestSpinBox = QSpinBox()
        self.splitTrainTestSpinBox.setRange(0,100)
        self.splitTrainTestSpinBox.setSingleStep(1)
        self.splitTrainTestSpinBox.setValue(self.parameters.cfg["splitTrainTest"])

        evalPeriodLabel = QLabel("Evaluation period:")
        self.evalPeriodSpinBox = QSpinBox()
        self.evalPeriodSpinBox.setRange(0,2147483647)
        self.evalPeriodSpinBox.setSingleStep(1)
        self.evalPeriodSpinBox.setValue(self.parameters.cfg["evalPeriod"])

        baseLearningRateLabel = QLabel("Base learning rate:")
        self.baseLearningRateSpinBox = QDoubleSpinBox()
        self.baseLearningRateSpinBox.setRange(0, 10)
        self.baseLearningRateSpinBox.setDecimals(4)
        self.baseLearningRateSpinBox.setSingleStep(0.0001)
        self.baseLearningRateSpinBox.setValue(self.parameters.cfg["learningRate"])

        resnetDepthLabel = QLabel("Resnet depth:")
        self.resnetDepthComboBox = QComboBox()
        depths = ["50", "101"]
        self.resnetDepthComboBox.addItems(depths)
        self.resnetDepthComboBox.setCurrentText(str(self.parameters.cfg["resnetDepth"]))

        earlyStoppingLabel = QLabel("Early stopping:")
        self.earlyStoppingCheckBox = QCheckBox()
        self.earlyStoppingCheckBox.setChecked(self.parameters.cfg["earlyStopping"])
        self.earlyStoppingCheckBox.clicked.connect(self.showPatienceSpinBox)

        self.patienceLabel = QLabel("Patience:")
        self.patienceLabel.hide()
        self.patienceSpinBox = QSpinBox()
        self.patienceSpinBox.setRange(0, 2147483647)
        self.patienceSpinBox.setSingleStep(1)
        self.patienceSpinBox.setValue(self.parameters.cfg["patience"])
        self.patienceSpinBox.hide()

        yaml_label = QLabel("Advanced YAML config:")
        self.yaml_browse_widget = BrowseFileWidget(path=self.parameters.cfg["expertModeCfg"],
                                               mode=QFileDialog.ExistingFile)

        self.numGPUQLabel = QLabel("Number of GPU:")
        self.numGPUSpinBox = QSpinBox()
        self.numGPUSpinBox.setRange(1, 16)
        self.numGPUSpinBox.setSingleStep(1)
        self.numGPUSpinBox.setValue(self.parameters.cfg["numGPU"])

        # Output folder
        output_label = QLabel("Output folder:")
        self.output_browse_widget = BrowseFileWidget(path=self.parameters.cfg["outputFolder"],
                                                     tooltip="Select folder",
                                                     mode=QFileDialog.Directory)

        # Set widget layout
        self.gridLayout.addWidget(inputSizeLabel, 0, 0, 1, 1)
        self.gridLayout.addWidget(self.widthSpinBox, 0, 1, 1, 1)
        self.gridLayout.addWidget(self.heightSpinBox, 0, 2, 1, 1)
        self.gridLayout.addWidget(maxIterLabel, 1, 0, 1, 1)
        self.gridLayout.addWidget(self.maxIterSpinBox, 1, 1, 1, 2)
        self.gridLayout.addWidget(batchSizeLabel, 2, 0, 1, 1)
        self.gridLayout.addWidget(self.batchSizeSpinBox, 2, 1, 1, 2)
        self.gridLayout.addWidget(splitTrainTestLabel, 3, 0, 1, 1)
        self.gridLayout.addWidget(self.splitTrainTestSpinBox, 3, 1, 1, 2)
        self.gridLayout.addWidget(evalPeriodLabel, 4, 0, 1, 1)
        self.gridLayout.addWidget(self.evalPeriodSpinBox, 4, 1, 1, 2)
        self.gridLayout.addWidget(baseLearningRateLabel, 5, 0, 1, 1)
        self.gridLayout.addWidget(self.baseLearningRateSpinBox, 5, 1, 1, 2)
        self.gridLayout.addWidget(resnetDepthLabel, 6, 0, 1, 2)
        self.gridLayout.addWidget(self.resnetDepthComboBox, 6, 1, 1, 2)
        self.gridLayout.addWidget(earlyStoppingLabel, 7, 0, 1, 1)
        self.gridLayout.addWidget(self.earlyStoppingCheckBox, 7, 1, 1, 2)
        self.gridLayout.addWidget(self.patienceLabel, 8, 0, 1, 1)
        self.gridLayout.addWidget(self.patienceSpinBox, 8, 1, 1, 2)
        self.gridLayout.addWidget(yaml_label, 9, 0, 1, 1)
        self.gridLayout.addWidget(self.yaml_browse_widget, 9, 1, 1, 2)
        self.gridLayout.addWidget(self.numGPUQLabel, 10, 0, 1, 1)
        self.gridLayout.addWidget(self.numGPUSpinBox, 10, 1, 1, 2)
        self.gridLayout.addWidget(output_label, 11, 0, 1, 1)
        self.gridLayout.addWidget(self.output_browse_widget, 11, 1, 1, 2)
        self.setLayout(layout_ptr)
    def __init__(self, param, parent):
        core.CWorkflowTaskWidget.__init__(self, parent)

        if param is None:
            self.param = ResNetActionRecognitionParam()
        else:
            self.param = param

        self.param_changed = False

        # Create layout : QGridLayout by default
        self.grid_layout = QGridLayout()

        # Sample duration
        label_duration = QLabel("Sample duration (in frame)")
        self.spin_duration = QSpinBox()
        self.spin_duration.setRange(1, 100)
        self.spin_duration.setSingleStep(1)
        self.spin_duration.setValue(self.param.sample_duration)

        # Rolling prediction on/off
        self.check_rolling = QCheckBox("Rolling prediction")
        self.check_rolling.setChecked(self.param.rolling)

        # Combobox for models
        label_model = QLabel("Model")
        self.combo_models = QComboBox()
        self.fill_combo_models()
        self.combo_models.currentIndexChanged.connect(self.on_param_changed)
        self.combo_models.setCurrentIndex(
            self.combo_models.findData(self.param.model_path))

        # Combobox for inference backend
        label_backend = QLabel("DNN backend")
        self.combo_backend = QComboBox()
        self.fill_combo_backend()
        self.combo_backend.setCurrentIndex(
            self.combo_backend.findData(self.param.backend))
        self.combo_backend.currentIndexChanged.connect(self.on_backend_changed)

        # Combobox for inference target
        label_target = QLabel("DNN target")
        self.combo_target = QComboBox()
        self.fill_combo_target(self.param.backend)
        self.combo_target.setCurrentIndex(
            self.combo_target.findData(self.param.target))
        self.combo_target.currentIndexChanged.connect(self.on_param_changed)

        # Fill layout
        self.grid_layout.addWidget(label_backend, 0, 0, 1, 1)
        self.grid_layout.addWidget(self.combo_backend, 0, 1, 1, 1)
        self.grid_layout.addWidget(label_target, 1, 0, 1, 1)
        self.grid_layout.addWidget(self.combo_target, 1, 1, 1, 1)
        self.grid_layout.addWidget(label_model, 2, 0, 1, 1)
        self.grid_layout.addWidget(self.combo_models, 2, 1, 1, 1)
        self.grid_layout.addWidget(label_duration, 3, 0, 1, 1)
        self.grid_layout.addWidget(self.spin_duration, 3, 1, 1, 1)
        self.grid_layout.addWidget(self.check_rolling, 4, 0, 1, 2)

        # PyQt -> Qt wrapping
        layoutPtr = qtconversion.PyQtToQt(self.grid_layout)

        # Set widget layout
        self.setLayout(layoutPtr)