[classifier] better messaging
This commit is contained in:
parent
9e2c6f343a
commit
ff3e0841a6
@ -247,7 +247,7 @@ class ConsistencyWorker(QRunnable):
|
||||
if steps > 0 and f % steps == 0:
|
||||
progress += 1
|
||||
self.signals.progress.emit(progress, processed, errors)
|
||||
self.signals.message.emit("Tracking stopped at frame %i.", f)
|
||||
self.signals.message.emit(f"Tracking stopped at frame {f}.")
|
||||
self.signals.stopped.emit(f)
|
||||
|
||||
|
||||
@ -548,11 +548,17 @@ class ConsistencyClassifier(QWidget):
|
||||
self._tracks = self._dataworker.tracks
|
||||
self._dataworker = None
|
||||
if np.sum(self._userlabeled) < 1:
|
||||
logging.error("ConsistencyTracker: I need at least 1 user-labeled frame to start with!")
|
||||
msg = "ConsistencyTracker: I need at least 1 user-labeled frame to start with!"
|
||||
logging.error(msg)
|
||||
self._messagebox.append(msg)
|
||||
self.setEnabled(False)
|
||||
else:
|
||||
t1_userlabeled = self._frames[self._userlabeled & (self._tracks == 1)]
|
||||
t2_userlabeled = self._frames[self._userlabeled & (self._tracks == 2)]
|
||||
if any([len(t1_userlabeled) == 0, len(t2_userlabeled)== 0]):
|
||||
self._messagebox.append("Error preparing data! Make sure that the first user-labeled frames contain both tracks!")
|
||||
self.setEnabled(False)
|
||||
return
|
||||
max_startframe = np.min([t1_userlabeled[-1], t2_userlabeled[-1]])
|
||||
min_startframe = np.max([t1_userlabeled[0], t2_userlabeled[0]])
|
||||
self._maxframes = np.max(self._frames)
|
||||
@ -574,10 +580,7 @@ class ConsistencyClassifier(QWidget):
|
||||
def stop(self):
|
||||
if self._worker is not None:
|
||||
self._worker.stop()
|
||||
self._startbtn.setEnabled(True)
|
||||
self._proceedbtn.setEnabled(True)
|
||||
self._stopbtn.setEnabled(False)
|
||||
self._refreshbtn.setEnabled(True)
|
||||
self._messagebox.append("Stopping tracking.")
|
||||
|
||||
def start(self):
|
||||
self._startbtn.setEnabled(False)
|
||||
@ -590,6 +593,7 @@ class ConsistencyClassifier(QWidget):
|
||||
self._worker.signals.progress.connect(self.worker_progress)
|
||||
self._worker.signals.message.connect(self.worker_error)
|
||||
self._worker.signals.currentframe.connect(self.worker_frame)
|
||||
self._messagebox.append("Tracking in progress ...")
|
||||
self.threadpool.start(self._worker)
|
||||
|
||||
def worker_frame(self, frame):
|
||||
@ -602,8 +606,11 @@ class ConsistencyClassifier(QWidget):
|
||||
self.start()
|
||||
|
||||
def refresh(self):
|
||||
self.setEnabled(False)
|
||||
self._dataworker = ConsitencyDataLoader(self._data)
|
||||
self._dataworker.signals.stopped.connect(self.data_processed)
|
||||
self._messagebox.clear()
|
||||
self._messagebox.append("Refreshing...")
|
||||
self.threadpool.start(self._dataworker)
|
||||
|
||||
def worker_progress(self, progress, processed, errors):
|
||||
@ -612,13 +619,15 @@ class ConsistencyClassifier(QWidget):
|
||||
self._assignedlabel.setText(str(processed))
|
||||
|
||||
def worker_stopped(self, frame):
|
||||
self._apply_btn.setEnabled(True)
|
||||
self._startbtn.setEnabled(True)
|
||||
self._proceedbtn.setEnabled(True)
|
||||
self._stopbtn.setEnabled(False)
|
||||
self._apply_btn.setEnabled(True)
|
||||
self._refreshbtn.setEnabled(True)
|
||||
self._startframe_spinner.setValue(frame-1)
|
||||
self._proceedbtn.setEnabled(bool(frame < self._maxframes-1))
|
||||
self._refreshbtn.setEnabled(True)
|
||||
self._processed_frames = frame
|
||||
self._messagebox.append("... done.")
|
||||
|
||||
def assignedTracks(self):
|
||||
return self._tracks
|
||||
@ -683,7 +692,7 @@ def main():
|
||||
import pickle
|
||||
from fixtracks.info import PACKAGE_ROOT
|
||||
|
||||
datafile = PACKAGE_ROOT / "data/merged_small_starter.pkl"
|
||||
datafile = PACKAGE_ROOT / "data/merged_small_beginning.pkl"
|
||||
|
||||
with open(datafile, "rb") as f:
|
||||
df = pickle.load(f)
|
||||
|
Loading…
Reference in New Issue
Block a user