8000 v1.2.2 by talmo · Pull Request #697 · talmolab/sleap · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

v1.2.2 #697

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 14 commits into from
Apr 3, 2022
Merged

v1.2.2 #697

merged 14 commits into from
Apr 3, 2022

Conversation

talmo
Copy link
Collaborator
@talmo talmo commented Apr 3, 2022

Description

Add support for new maDLC labels format (#678)
Fix numpy conversion in inference (#687)
Fix topological sorting to always start with root node (#688)
Create unique default shortcuts (fixes #686) (#690)
Training monitor enhancements (implements #624) (#691)
Add hide instance menu item and hotkey (implements #665) (#692, #694)
Fix formatting to read and save tracking scores (#693)

Types of changes

  • Bugfix
  • New feature
  • Refactor / Code style update (no logical changes)
  • Build / CI changes
  • Documentation Update
  • Other (explain)

Does this address any currently open issues?

[list open issues here]

Outside contributors checklist

  • Review the guidelines for contributing to this repository
  • Read and sign the CLA and add yourself to the authors list
  • Make sure you are making a pull request against the develop branch (not main). Also you should start your branch off develop
  • Add tests that prove your fix is effective or that your feature works
  • Add necessary documentation (if appropriate)

Thank you for contributing to SLEAP!

❤️

talmo and others added 14 commits March 17, 2022 01:50
* squash merge from roomrys/sleap-1 (#460)

* Add test dataset with tracks

* Add track indices to labels provider

* Add identity class map generator

* Update docstring

* Add class map model trainer, head and config

* Add inference

* Docs and tests for identity module
- Slightly modified matching to greedy-like behavior
* Fix inference
- Add imports to evals inference
- Move the common Predictor.predict() method to base class
- Fix docstrings for new inference classes
- Add test model and integration test

* Generate tracks from config metadata if not provided

* Force typecasting in identity functions

* Force boolean masking op

* Clean up inference module
- Move common Predictor methods to base class
- Switch to `model.predict_on_batch()` for massive performance increase
  with `predictor.predict()`.
- Enable prediction directly on arrays (slow)

* Enable Qt5Agg backend only when necessary during training

* Top-down supervised identity prediction (#476)

* Add sizematcher to new training pipelines

* Fix topdown ID visualization during training

* Add LabeledFrame.tracked_instances property for filtering
- Greedy checking in has_* properties

* Add Labels.copy() method for creating deep copies
- Works by serializing and deserializing to JSON (inefficient, but
  guaranteed to work since we have lots of coverage on I/O)

* Extract labels with tracked instances
- Add copy kwarg to extract to return deep copies
- Remove user and/or untracked instances in with_user_labels_only().
  Previously this functionality was blocked since we couldn't remove the
  instances from labeled frames without affecting the source labels.
- Add remove_untracked_instances() utility for filtering out instances
  from the labels.

* Add track filtering in LabelsReader provider
- This is slightly redundant with
  Labels.with_user_labels_only(..., with_track_only=True) but serves as
  an extra guarantee that we don't train on instances without tracks
  accidentally, regardless of how the data is preprocessed. Can still
  emit "empty" frames if no instances have tracks set, however.

* Add track filtering in DataReaders during training
- Auto-enabled when training from ID models
- Filters out instances without tracks BEFORE train/val splitting
- Split is now done on copy of labels
- Fix DataReaders arg typing
- Tests for DataReaders

* Add crop size detection to topdown ID models
- Add training integration test for topdown ID

* add removal of untracked instances for labeled instances (#460)

* Add removal of untracked instances for labeled instances
- previously used `LabeledFrame.tracked_instances()` which only returns predicted instances with tracking
- created `LabeledFrame.remove_untracked` which returns both user labeled and predicted instances with tracking
* Formatting
- using black v20.8b1

* add tests for Labels and LabeledFrames (#460)

* Add tests
- test `Labels.remove_untracked_instances()` for both cases of `remove_empty_frames: bool`
-test `LabeledFrames.remove_untracked()` for both user-labeled and predicted frames

* formatting (#460)

* add newline (no indent) at end of files which had failed Lint test

* clean-up comments and unneeded parenthesis (#460)

* Last merge fixes

* Lint
* Expose identity module in nn

* Override predict_on_batch to optionally cast data to numpy
* Fix topological sorting to always start with root node

* Add test
* Training monitor enhancements
- Cleaned up imports
- Docstrings
- Now update based on time, not epochs
- Added markers for epoch-level losses
- Added best validation loss marker and text
- Reduced minimum possible y-axis value when log scaling
- Marker colors, alpha, sizes and line widths adjusted

* Move training monitor to gui submodule

* add metrics to training monitor title

* add mean time per epoch
* add ETA to finish next 10 epochs
* add plateau patience fraction (when in plateau)
* update dev_requirements to install version of click that does not break black

* Add code coverage

* add coverage for all lines within LossViewer.update_runtime()

Co-authored-by: roomrys <38435167+roomrys@users.noreply.github.com>
* Single press of hotkey (H) toggles instance visibility

* Add instance visibility message/warning to status bar

* Resize keyboard shortcuts dialog box
* Update formatting to include tracking_scores

* Add formatting fixtures, tracking_scores test
* add hide instance menu item and hotkey

* single press of hotkey (H) toggles instance visibility

* Add instance visibility message to status bar

* Resize keyboard shortcuts dialog box

* Make shortcuts pop-up slightly narrower and taller

* Hide predicted instances as well

* hide predicted instances
* update status bar message:
- count only visible predicted and labeled instances
- only show "hidden instances" warning when number instances in frame is greater than 0
- normal font weight

* Logic update for detecting instances to show

* Add test for instance visibility

* Change which qtbot wait is used

* Change timeout of qtbot.waitActive

- attempt to pass ubuntu tests on github actions

* Use arbitrary qtbot.wait

Hope to verify that ubuntu test fails due to a waiting error

* Add test for instance colors

- predict ubuntu test will fail

* Add test skip mark for ubuntu

* Import pytest

* Skip test for linux

* Remove unused packages
* Change default tab appearance

* Bump to 1.2.2
@talmo talmo marked this pull request as ready for review April 3, 2022 22:47
@talmo talmo merged commit fc050f1 into main Apr 3, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants
0