|
@@ -19,6 +19,7 @@ from labelme import __appname__
|
|
|
from labelme import PY2
|
|
|
|
|
|
from . import utils
|
|
|
+from labelme.ai import MODELS
|
|
|
from labelme.config import get_config
|
|
|
from labelme.label_file import LabelFile
|
|
|
from labelme.label_file import LabelFileError
|
|
@@ -748,6 +749,24 @@ class MainWindow(QtWidgets.QMainWindow):
|
|
|
),
|
|
|
)
|
|
|
|
|
|
+ selectAiModel = QtWidgets.QWidgetAction(self)
|
|
|
+ selectAiModel.setDefaultWidget(QtWidgets.QWidget())
|
|
|
+ selectAiModel.defaultWidget().setLayout(QtWidgets.QVBoxLayout())
|
|
|
+ self._selectAiModelComboBox = QtWidgets.QComboBox()
|
|
|
+ selectAiModel.defaultWidget().layout().addWidget(self._selectAiModelComboBox)
|
|
|
+ self._selectAiModelComboBox.addItems([model.name for model in MODELS])
|
|
|
+ self._selectAiModelComboBox.setCurrentIndex(1)
|
|
|
+ self._selectAiModelComboBox.setEnabled(False)
|
|
|
+ self._selectAiModelComboBox.currentIndexChanged.connect(
|
|
|
+ lambda: self.canvas.initializeAiModel(
|
|
|
+ name=self._selectAiModelComboBox.currentText()
|
|
|
+ )
|
|
|
+ )
|
|
|
+ selectAiModelLabel = QtWidgets.QLabel(self.tr("AI Model"))
|
|
|
+ selectAiModelLabel.setAlignment(QtCore.Qt.AlignCenter)
|
|
|
+ selectAiModelLabel.setFont(QtGui.QFont(None, 10))
|
|
|
+ selectAiModel.defaultWidget().layout().addWidget(selectAiModelLabel)
|
|
|
+
|
|
|
self.tools = self.toolbar("Tools")
|
|
|
self.actions.tool = (
|
|
|
open_,
|
|
@@ -768,6 +787,8 @@ class MainWindow(QtWidgets.QMainWindow):
|
|
|
None,
|
|
|
zoom,
|
|
|
fitWidth,
|
|
|
+ None,
|
|
|
+ selectAiModel,
|
|
|
)
|
|
|
|
|
|
self.statusBar().showMessage(str(self.tr("%s started.")) % __appname__)
|
|
@@ -981,6 +1002,7 @@ class MainWindow(QtWidgets.QMainWindow):
|
|
|
self.actions.createPointMode.setEnabled(True)
|
|
|
self.actions.createLineStripMode.setEnabled(True)
|
|
|
self.actions.createAiPolygonMode.setEnabled(True)
|
|
|
+ self._selectAiModelComboBox.setEnabled(False)
|
|
|
else:
|
|
|
if createMode == "polygon":
|
|
|
self.actions.createMode.setEnabled(False)
|
|
@@ -990,6 +1012,7 @@ class MainWindow(QtWidgets.QMainWindow):
|
|
|
self.actions.createPointMode.setEnabled(True)
|
|
|
self.actions.createLineStripMode.setEnabled(True)
|
|
|
self.actions.createAiPolygonMode.setEnabled(True)
|
|
|
+ self._selectAiModelComboBox.setEnabled(False)
|
|
|
elif createMode == "rectangle":
|
|
|
self.actions.createMode.setEnabled(True)
|
|
|
self.actions.createRectangleMode.setEnabled(False)
|
|
@@ -998,6 +1021,7 @@ class MainWindow(QtWidgets.QMainWindow):
|
|
|
self.actions.createPointMode.setEnabled(True)
|
|
|
self.actions.createLineStripMode.setEnabled(True)
|
|
|
self.actions.createAiPolygonMode.setEnabled(True)
|
|
|
+ self._selectAiModelComboBox.setEnabled(False)
|
|
|
elif createMode == "line":
|
|
|
self.actions.createMode.setEnabled(True)
|
|
|
self.actions.createRectangleMode.setEnabled(True)
|
|
@@ -1006,6 +1030,7 @@ class MainWindow(QtWidgets.QMainWindow):
|
|
|
self.actions.createPointMode.setEnabled(True)
|
|
|
self.actions.createLineStripMode.setEnabled(True)
|
|
|
self.actions.createAiPolygonMode.setEnabled(True)
|
|
|
+ self._selectAiModelComboBox.setEnabled(False)
|
|
|
elif createMode == "point":
|
|
|
self.actions.createMode.setEnabled(True)
|
|
|
self.actions.createRectangleMode.setEnabled(True)
|
|
@@ -1014,6 +1039,7 @@ class MainWindow(QtWidgets.QMainWindow):
|
|
|
self.actions.createPointMode.setEnabled(False)
|
|
|
self.actions.createLineStripMode.setEnabled(True)
|
|
|
self.actions.createAiPolygonMode.setEnabled(True)
|
|
|
+ self._selectAiModelComboBox.setEnabled(False)
|
|
|
elif createMode == "circle":
|
|
|
self.actions.createMode.setEnabled(True)
|
|
|
self.actions.createRectangleMode.setEnabled(True)
|
|
@@ -1022,6 +1048,7 @@ class MainWindow(QtWidgets.QMainWindow):
|
|
|
self.actions.createPointMode.setEnabled(True)
|
|
|
self.actions.createLineStripMode.setEnabled(True)
|
|
|
self.actions.createAiPolygonMode.setEnabled(True)
|
|
|
+ self._selectAiModelComboBox.setEnabled(False)
|
|
|
elif createMode == "linestrip":
|
|
|
self.actions.createMode.setEnabled(True)
|
|
|
self.actions.createRectangleMode.setEnabled(True)
|
|
@@ -1030,6 +1057,7 @@ class MainWindow(QtWidgets.QMainWindow):
|
|
|
self.actions.createPointMode.setEnabled(True)
|
|
|
self.actions.createLineStripMode.setEnabled(False)
|
|
|
self.actions.createAiPolygonMode.setEnabled(True)
|
|
|
+ self._selectAiModelComboBox.setEnabled(False)
|
|
|
elif createMode == "ai_polygon":
|
|
|
self.actions.createMode.setEnabled(True)
|
|
|
self.actions.createRectangleMode.setEnabled(True)
|
|
@@ -1038,6 +1066,10 @@ class MainWindow(QtWidgets.QMainWindow):
|
|
|
self.actions.createPointMode.setEnabled(True)
|
|
|
self.actions.createLineStripMode.setEnabled(True)
|
|
|
self.actions.createAiPolygonMode.setEnabled(False)
|
|
|
+ self.canvas.initializeAiModel(
|
|
|
+ name=self._selectAiModelComboBox.currentText()
|
|
|
+ )
|
|
|
+ self._selectAiModelComboBox.setEnabled(True)
|
|
|
else:
|
|
|
raise ValueError("Unsupported createMode: %s" % createMode)
|
|
|
self.actions.editMode.setEnabled(not edit)
|