[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:
|
if steps > 0 and f % steps == 0:
|
||||||
progress += 1
|
progress += 1
|
||||||
self.signals.progress.emit(progress, processed, errors)
|
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)
|
self.signals.stopped.emit(f)
|
||||||
|
|
||||||
|
|
||||||
@ -548,11 +548,17 @@ class ConsistencyClassifier(QWidget):
|
|||||||
self._tracks = self._dataworker.tracks
|
self._tracks = self._dataworker.tracks
|
||||||
self._dataworker = None
|
self._dataworker = None
|
||||||
if np.sum(self._userlabeled) < 1:
|
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)
|
self.setEnabled(False)
|
||||||
else:
|
else:
|
||||||
t1_userlabeled = self._frames[self._userlabeled & (self._tracks == 1)]
|
t1_userlabeled = self._frames[self._userlabeled & (self._tracks == 1)]
|
||||||
t2_userlabeled = self._frames[self._userlabeled & (self._tracks == 2)]
|
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]])
|
max_startframe = np.min([t1_userlabeled[-1], t2_userlabeled[-1]])
|
||||||
min_startframe = np.max([t1_userlabeled[0], t2_userlabeled[0]])
|
min_startframe = np.max([t1_userlabeled[0], t2_userlabeled[0]])
|
||||||
self._maxframes = np.max(self._frames)
|
self._maxframes = np.max(self._frames)
|
||||||
@ -574,10 +580,7 @@ class ConsistencyClassifier(QWidget):
|
|||||||
def stop(self):
|
def stop(self):
|
||||||
if self._worker is not None:
|
if self._worker is not None:
|
||||||
self._worker.stop()
|
self._worker.stop()
|
||||||
self._startbtn.setEnabled(True)
|
self._messagebox.append("Stopping tracking.")
|
||||||
self._proceedbtn.setEnabled(True)
|
|
||||||
self._stopbtn.setEnabled(False)
|
|
||||||
self._refreshbtn.setEnabled(True)
|
|
||||||
|
|
||||||
def start(self):
|
def start(self):
|
||||||
self._startbtn.setEnabled(False)
|
self._startbtn.setEnabled(False)
|
||||||
@ -590,6 +593,7 @@ class ConsistencyClassifier(QWidget):
|
|||||||
self._worker.signals.progress.connect(self.worker_progress)
|
self._worker.signals.progress.connect(self.worker_progress)
|
||||||
self._worker.signals.message.connect(self.worker_error)
|
self._worker.signals.message.connect(self.worker_error)
|
||||||
self._worker.signals.currentframe.connect(self.worker_frame)
|
self._worker.signals.currentframe.connect(self.worker_frame)
|
||||||
|
self._messagebox.append("Tracking in progress ...")
|
||||||
self.threadpool.start(self._worker)
|
self.threadpool.start(self._worker)
|
||||||
|
|
||||||
def worker_frame(self, frame):
|
def worker_frame(self, frame):
|
||||||
@ -602,8 +606,11 @@ class ConsistencyClassifier(QWidget):
|
|||||||
self.start()
|
self.start()
|
||||||
|
|
||||||
def refresh(self):
|
def refresh(self):
|
||||||
|
self.setEnabled(False)
|
||||||
self._dataworker = ConsitencyDataLoader(self._data)
|
self._dataworker = ConsitencyDataLoader(self._data)
|
||||||
self._dataworker.signals.stopped.connect(self.data_processed)
|
self._dataworker.signals.stopped.connect(self.data_processed)
|
||||||
|
self._messagebox.clear()
|
||||||
|
self._messagebox.append("Refreshing...")
|
||||||
self.threadpool.start(self._dataworker)
|
self.threadpool.start(self._dataworker)
|
||||||
|
|
||||||
def worker_progress(self, progress, processed, errors):
|
def worker_progress(self, progress, processed, errors):
|
||||||
@ -612,13 +619,15 @@ class ConsistencyClassifier(QWidget):
|
|||||||
self._assignedlabel.setText(str(processed))
|
self._assignedlabel.setText(str(processed))
|
||||||
|
|
||||||
def worker_stopped(self, frame):
|
def worker_stopped(self, frame):
|
||||||
self._apply_btn.setEnabled(True)
|
|
||||||
self._startbtn.setEnabled(True)
|
self._startbtn.setEnabled(True)
|
||||||
|
self._proceedbtn.setEnabled(True)
|
||||||
self._stopbtn.setEnabled(False)
|
self._stopbtn.setEnabled(False)
|
||||||
|
self._apply_btn.setEnabled(True)
|
||||||
|
self._refreshbtn.setEnabled(True)
|
||||||
self._startframe_spinner.setValue(frame-1)
|
self._startframe_spinner.setValue(frame-1)
|
||||||
self._proceedbtn.setEnabled(bool(frame < self._maxframes-1))
|
self._proceedbtn.setEnabled(bool(frame < self._maxframes-1))
|
||||||
self._refreshbtn.setEnabled(True)
|
|
||||||
self._processed_frames = frame
|
self._processed_frames = frame
|
||||||
|
self._messagebox.append("... done.")
|
||||||
|
|
||||||
def assignedTracks(self):
|
def assignedTracks(self):
|
||||||
return self._tracks
|
return self._tracks
|
||||||
@ -683,7 +692,7 @@ def main():
|
|||||||
import pickle
|
import pickle
|
||||||
from fixtracks.info import PACKAGE_ROOT
|
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:
|
with open(datafile, "rb") as f:
|
||||||
df = pickle.load(f)
|
df = pickle.load(f)
|
||||||
|
Loading…
Reference in New Issue
Block a user