-
Notifications
You must be signed in to change notification settings - Fork 3.1k
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
CVAT corrupts annotations when importing #7498
Comments
Hello, Only keyframes are imported when you upload annotations. |
Hello! |
The idea is that keyframes actually does matter comparing to annotation coordinates. That is why, as for me, it is better to add some keyframes rather then loose a bunch of annotations |
You are right, that looks weird |
Hello @nmanovic, I am interested in this issue, can you assign it to me? |
i'm trying to solve this issue by a adding some interpolation to the improrted data patch part, for which I think it's best to inserted in slice function of tracks. modify the for loop starting from 139 could work. But I can't figure out what track['shapes'] means and what's the difference with track['elements']. Could you please give me a hint? @bsekachev @nmanovic |
track['shapes'] contains positions data of the track on different frames |
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. <!-- 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>
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>
Actions before raising this issue
Steps to Reproduce
How I did it on app.cvat.ai
You'll see that for first job in second task - coordinates of annotations are the same and not changing.
Demo:
https://github.com/opencv/cvat/assets/57707673/45018fd7-e70c-4f05-afb6-aa0ff4efa5da
Annotations:
DEMO.zip
Expected Behavior
cvat should not corrupt annotations
Possible Solution
No response
Context
No response
Environment
The text was updated successfully, but these errors were encountered: