Track name change, find frames with certain number of predicted instances, predict on consecutive frame chunks #977
hsingchien
started this conversation in
Ideas
Replies: 1 comment 1 reply
-
Hi @hsingchien, Wow, you've been busy! These are all great suggestions - I agree the labeling suggestions feature you've implemented could be very powerful! It sounds like you are ready to open a PR (or a draft PR). We can continue the discussion there if you like where we can comment and help out with the implementation as well. Splitting these features into three separate PRs would be ideal. Cool ideas ❄️ 😎 |
Beta Was this translation helpful? Give feedback.
1 reply
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
There are couple of issues/improvements I found might be helpful. I have experimented with the source code and managed to implement the following improvements/functions (I am not experienced at Python app development. This is a great learning experience for me as I went through the code and got to know its design and architecture better).
In the current version, double clicking track name in instance table will clear the old name. This can be easily fixed by asking GenericTableModel to display also under EditRole in dataviews.py>GenericTableModel>data.
I found it useful to quickly generate frame list with only certain number of visible predicted instances. I am working on a 2-animal project, having 1 instance means failure on the other animal.
This can be achieved by a small tweak on <prediction_score> suggestion method. I renamed original input <num_instance> to <instance_at_least> added another input <instance_no_more_than>. Now I can just set <predition_score> to 100 and both instance upperbound and lowerbound to be 1, and label suggestion will give back all frames with precisely 1 predicted instance. This obviously enables other frame filtering possibilities as well.
Selecting consecutive frame chunks for inference has been discussed in several other threads like Manually edit how many frames to predict on #633 , Add LabeledFrame table to the GUI #736 . Though selecting frames in seekbar while holding SHIFT is a smart way to get a chunk of the frames, in its current implementation, user cannot add multiple chunks of consecutive frames. Selecting on the seekbar is also not precise enough for videos with thousands of frames.
I added a label suggestion method taking spinbox inputs <frame_from> and <frame_to>. The frames between will be added to the label suggestions. Then user can predict on suggested frames. This way we can work on as many frame chunks as possible in a single run.
In order to make the spinbox function properly, I have to hack into the corresponding QSpinBox object in app.py>MainWindow>on_data_update to keep their upperbound tracking the frame number of the current video. This is not desired because these QWidgets are designed to be static. Another caveat is that adding too many labeling suggestions may cause the app laggy.
I have written and run tests on 1&2 above. Issue 1 is a simple fix, I guess can be included in the next update. 2&3 are mostly my own coding practice, I am not sure if they are of any value (I do hope so :). The labeling suggestions can be very powerful with its current form, will be much more so once the LabeledFrame panel is implemented as discussed in #736 . Happy to discuss more!
Beta Was this translation helpful? Give feedback.
All reactions