We have a few projects and datasets in Labelbox uploaded using the Python SDK’s API LabelImport.create_from_objects.
We make changes to some of these dataset’s annotations offline when re-evaluating the labels internally.
We want to reflect these annotation changes (which can be across many images) on labelbox at scale. Specifically, these updates/changes involve 1 or 2 annotation changes across several images.
Specifically, we want to use the Python SDK to reflect these offline changes on labelbox.
However, we are unable to find an efficient way to do so.
We currently enqueue an image, which deletes all of its annotations. And then upload all the updated annotations for that image, which includes the unchanged annotations too.
We do this with 2 calls:
- Call to Label.bulk_delete to enqueue the images that need relabelling.
- LabelImport.create_from_objects and wait_until_done() to upload the new annotations for each image.
This is not cost effective, as we get charged for every annotation update.
We would like to use the SDK to update just individual annotations for some images across a dataset.
How can we update just 1 annotation for 1 image on labelbox using the SDK?