-
Notifications
You must be signed in to change notification settings - Fork 3k
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
[GSoC2024] fix skeleton tracks slice between jobs #7615
Conversation
Hi! Thank you for contributing to the project. Could you please add a test for the updated functionality? You can find instructions here. |
Hi, I've updated my test case and highlighted how the issue may occur. |
Hi, any updates? Please update the server tests to pass, they can be found in this file. |
Yes. I find that radical modifications to interpolation function can cause many tests fail, so I reverted that function and put criteria to slice function. Now both rest api test and Demo in #7498 on my local machine work well, but unit test still fails. I am still working on it. |
@zhiltsov-max Please take a look. I think tests have been resolved. |
Codecov Report
Additional details and impacted files@@ Coverage Diff @@
## develop #7615 +/- ##
===========================================
+ Coverage 83.39% 83.42% +0.02%
===========================================
Files 373 373
Lines 39744 39747 +3
Branches 3745 3745
===========================================
+ Hits 33145 33157 +12
+ Misses 6599 6590 -9
|
Thank you for contributing into the project! |
Fixes cvat-ai#7498 In cvat-ai#6968, sub tracks splitting has been fixed but not entirely, if the user wants to import tracks between more than 2 jobs it can cause malformed annotation like cvat-ai#7498. In the pervious test case, https://github.com/opencv/cvat/blob/d1a300f0189744bef01d2c60135ec474c5004fbc/tests/python/rest_api/test_tasks.py#L543-L563 skeleton track is static so it did not identify any issues. <!-- Raise an issue to propose your change (https://github.com/opencv/cvat/issues). It helps to avoid duplication of efforts from multiple independent contributors. Discuss your ideas with maintainers to be sure that changes will be approved and merged. Read the [Contribution guide](https://opencv.github.io/cvat/docs/contributing/). --> <!-- Provide a general summary of your changes in the Title above --> ### Motivation and context Pervious interpolate method will drop the last frame. That's correct for most cases, but if slices and tracks are like this: slice: -------------xxxxx--------- track: ---------xxxxxxxxxx------- We have to keep the last frame of slice in the track. If not, this track won't close. ### How has this been tested? I rewrited the testcase `test_can_split_skeleton_tracks_on_jobs` Now it test the split function with a longer input track and stricter interpolate reference. ### Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. If an item isn't applicable for some reason, then ~~explicitly strikethrough~~ the whole line. If you don't do that, GitHub will show incorrect progress for the pull request. If you're unsure about any of these, don't hesitate to ask. We're here to help! --> - [x] I submit my changes into the `develop` branch - [x] I have created a changelog fragment <!-- see top comment in CHANGELOG.md --> ~~- [ ] I have updated the documentation accordingly~~ - [x] I have added tests to cover my changes - [x] I have linked related issues (see [GitHub docs]( https://help.github.com/en/github/managing-your-work-on-github/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword)) - [x] I have increased versions of npm packages if it is necessary ([cvat-canvas](https://github.com/opencv/cvat/tree/develop/cvat-canvas#versioning), [cvat-core](https://github.com/opencv/cvat/tree/develop/cvat-core#versioning), [cvat-data](https://github.com/opencv/cvat/tree/develop/cvat-data#versioning) and [cvat-ui](https://github.com/opencv/cvat/tree/develop/cvat-ui#versioning)) ### License - [x] I submit _my code changes_ under the same [MIT License]( https://github.com/opencv/cvat/blob/develop/LICENSE) that covers the project. Feel free to contact the maintainers if that's a concern. --------- Co-authored-by: Maxim Zhiltsov <zhiltsov.max35@gmail.com>
Related #6779 |
Fixes #7498
In #6968, sub tracks splitting has been fixed but not entirely, if the user wants to import tracks between more than 2 jobs it can cause malformed annotation like #7498.
In the pervious test case, https://github.com/opencv/cvat/blob/d1a300f0189744bef01d2c60135ec474c5004fbc/tests/python/rest_api/test_tasks.py#L543-L563
skeleton track is static so it did not identify any issues.
Motivation and context
Pervious interpolate method will drop the last frame. That's correct for most cases, but if slices and tracks are like this:
slice: -------------xxxxx---------
track: ---------xxxxxxxxxx-------
We have to keep the last frame of slice in the track. If not, this track won't close.
How has this been tested?
I rewrited the testcase
test_can_split_skeleton_tracks_on_jobs
Now it test the split function with a longer input track and stricter interpolate reference.
Checklist
develop
branch- [ ] I have updated the documentation accordingly(cvat-canvas,
cvat-core,
cvat-data and
cvat-ui)
License
Feel free to contact the maintainers if that's a concern.