-
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
[GSoC2024] Fix import of outside track shapes in Datumaro-based formats #7669
Conversation
Hi, thank you for sending the PR! Just disabling tracks in the export doesn't seem to be a proper solution, as the whole point of using the outside property is to use it with tracks. Probably, something along these lines should be adjusted, as this is the common logic for several formats. The handling logic (and so, the solution) should be similar to this fragment. |
Thanks for your advice. Will make necessary changes! |
Hi @zhiltsov-max , I have made necessary changes and add a test to it. Please have a look |
Co-authored-by: Maxim Zhiltsov <[email protected]>
Hii, @zhiltsov-max, I have transferred the code to tests/python and fixed the bug that arose. I have checked with all the REST API, SDK and CLI tests. Please take a look. |
Hi, please fix the issues reported by the CI. |
Hope the changes will fix the issues flagged by the CI. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please update the tests, and we can merge this.
By snippet, I meant "subset of the json data file". If the skeleton points are supposed to be empty, why are there both ones with and without points? Additionally, when running an export to CVAT, it tries to interpolate the tracks of the skeleton which has no points and throws a broadcast error. My intuition tells me that skeleton tracks should not try to be interpolated and only use the points. That seems to work correctly when I cleaned out the skeletons with no points. It may be that it fixed it because there were no other keyframes to try to interpolate from, but I'm not certain on that. As for the purpose of this PR, if this is not the right PR for this investigation, should I open a new issue instead? |
What is this file?
Agree, it seems like the source of the problem, according to your findings.
There is the issue which you mentioned before. If it describes the problem you faced, then it should be discussed there. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please add a more complex test like this
task_test_7669_outside_in_dm_formats_backup_2024_04_17_18_55_18.zip
job_11805_annotations_2024_04_17_16_43_29_coco keypoints 1.0.zip
Co-authored-by: Maxim Zhiltsov <[email protected]>
@zhiltsov-max Thanks for the suggestion. I have added the new test for this. |
Co-authored-by: Maxim Zhiltsov <[email protected]>
Hi @zhiltsov-max , I have added the example you provided into our test and added some checking on the number of |
Thank you for contributing into the project! |
Hi @zhiltsov-max ! I found two annotations in backup where "points":[] for a skeleton track. I removed them and tried to create from backup but I am facing this error - KeyError: "There is no item named 'task.json' in the archive" I am 100% that in my zip file there is a task.json tough.
Would highly appreciate some help. |
I don't see how it's related to this PR or issues focused.
What is |
@zhiltsov-max dataset is the zipped file. One is the original backup which is not modified - this one I can use to create a new task without any issues. What could be the issue? |
@Eldies , please look at the issue. |
hi @Eldies, any news on this? |
ftr: I could solve the problem. I could export the dataset easily without errors when I tried it on the self hosted version. |
Motivation and context
Main Issue: #7571
Related Issue: #2339
I've reproduced the issue mentioned in #7571 when exporting and importing annotations using both the Datumaro and Coco 1.0 formats. Specifically, the "Switch outside" attribute isn't being applied as expected. After some investigation, I pinpointed the root cause to be the absence of the "outside" attribute in the exported annotations.
To address this, I've made adjustments to the binding.py file to bypass the track_id during annotation import. This modification appears to solve the issue regarding the "Switch outside" attribute. However, it introduces a new concern: the potential loss of information, including keyframes and track_id.
While this workaround offers a temporary fix, I'm contemplating a more holistic approach that entails properly handling the "outside" attribute during both the export and import processes of annotations. This method could preserve the integrity of the annotations while ensuring the functionality of the "Switch outside" attribute.
I'm reaching out for feedback or suggestions on my proposed solution. Is there a preference for one of these approaches, or might there be another avenue I haven't considered?
Looking forward to your insights.
Checklist
develop
branch(cvat-canvas,
cvat-core,
cvat-data and
cvat-ui)
License
Feel free to contact the maintainers if that's a concern.