-
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
Unexpected behaviour with task meta
#4179
Comments
I found place where file order is wrong
|
For me it looks like and order of that is why annotation mess |
I know, but I think it's the wrong way. CVAT can use a user-defined order in the manifest file, and then all those constructions do not need. AND it's the matter! Bug with wrong frame order persists too. |
The manifest file in the current implementation plays the role of a list of files in the cloud storage. And I believe that we should not limit the order of the files to the order in the manifest file.
I'll investigate it. Thanks. |
When I try to use the predefined sorting method, I receive the following error: It would be great if we could select a sorting method that would use the same order defined in the manifest file. |
@gHerzmann I removed all sorting from source code and fixed it in Because do not understand why anybody need to setup it in another place than |
Fixes #5061, #4179 - Added a way to declare custom file ordering for the local task data uploads via TUS protocol - Added an option to use a manifest to support the `predefined` sorting method - This file is required for the `predefined` sorting mode with image archives - Fixed file ordering when tasks are created from SDK or CLI in the `predefined` sorting mode - Added more tests for task data uploading API The uploading protocol is implemented: The user specifies `sorting_method=predefined` if the task creation request. Then the data is uploaded. 1. Client files uploading 1.1. The files are uploaded as separate files (using the TUS protocol) or grouped files (using the `Upload-Multiple` requests). 1.2. The `Upload-Finish` request comes (or its unlabeled legacy equivalent). The new optional field can be supplied: `upload_file_order` - a list of strings. It allows to override the input file order, if necessary, and is only valid with the `predefined` sorting method specified. 1.2.1. If the field is empty or missing, the client files in the data requests are considered ordered. 1.2.2. If the field is not empty, a list containing the file list in the required order is expected in the `upload_file_order` field. 1.2.2.1. If there are `client_files` in the request, the files are sorted 1.2.2.2. If file lists mismatch, an explanatory error is raised. 2. Data processing 2.1. At this point, all `*_files` are considered ordered as requested. 2.2. Require a metafile for zip uploads with predefined sorting. The file is expected to accompany the uploaded zip file, not to be inside of the archive. 2.3. If there is a metafile in the input data, files are ordered after the metafile. 2.3.1. If the data is extracted from cloud, only the specified subset of the files is kept in the manifest. 2.3.2. If the upload data doesn't exist in the metafile, an error is raised. 2.3.3. A `job_file_mapping` has higher priority than metafile, if specified. Co-authored-by: Roman Donchenko <roman@cvat.ai>
Added in #5083 |
My actions before raising this issue
Steps to Reproduce (for bugs)
manifest.jsonl
with own order (not abc) on aws (2D images)manifest.jsonl
to cloud storagemanifest.jsonl
manifest.jsonl
)manifest.jsonl
fileExport to COCO mess too – file names and order.
This endpoint shown files in expected order:
cloudstorages/{store_id}/content?manifest_path=manifest.jsonl
But
tasks/{new-task-id}/data/meta
return abc order. (looks like abc)I checked folder
/home/django/data/storages/{store_id}/{name}/manifest.jsonl
it has expected orderPossible Solution
Let users make own order in
manifest.jsonl
and use it as it isAnd restore it from manifest or form
request.data['server_files']
Steps:
sorted
from codeFound related:
serializer
creationand I don't know whydata['server_files']
income reversed?!!now I know why it may come in any order, because find the root of this evil
https://github.com/openvinotoolkit/cvat/blob/develop/cvat/apps/engine/views.py#L630
Because looks like serializer does not guaranties income order, is not it?
But it fixable there – just rebuild it if from
request.data['server_files']
.Your Environment
The text was updated successfully, but these errors were encountered: