Bulk Annotation of Object Detection Images

Hi there,

I’m working with a large dataset for object detection and I’m looking to streamline the annotation process using Roboflow.

I already have bounding box data available externally in JSON format, and I’d like to know the most efficient way to import all these annotations in bulk.
Ideally i’d like to marry them up to already uploaded images, or I can do it as part of an initial upload of that’s easier.

Can I annotate images that are already uploaded using a bulk method (e.g. referencing image IDs or filenames)?
Is it possible to upload only the JSON for annotation, without needing to re-upload the images, if they are already in the project?
If anyone has any examples of doing bulk annotation automatically then that would be great.

This process would be very helpful as we have a retagging process that’s based off of user feedback so if a defined tag is incorrect the image can be re-added back into the training pool to be re-trained, so the ability to be able to do this in bulk without having to manually re-draw bounding boxes would be awesome as we store the bounding box data and the re-corrected tag within our data.

Thanks in advance!

Hey Tylerh33!

I’m not finding a good answer for adding a JSON after the fact but might have something you can try.

First off, for your main question of only adding a JSON file - looks like you need to load images and annotation files at the same time. I found this page that says “You can only upload annotations with images. You cannot upload annotations for images that have already been imported into your dataset.”

Maybe someone else will have found a workaround for this. If not, you could do like you mentioned and reload ALL images (including your improved ones) with the JSON file at the same time. Just be sure you have the JSON file in a format Roboflow can accept like this blog post talks about.

Or, if no one comes up with a way to drop your JSON file on top of existing images, and you don’t want to load EVERY image every time, here’s a possible option. If I understand correctly, you have “improved annotations” for just some of the existing images in the dataset. If you tried to just load only those they would reject as duplicates. So instead, you could go into your dataset in Roboflow and filter down to the list of “improved annotations” by image name (as it sounds like you may have that info) like the screenshot here shows.

Now you can delete just those images. Then go upload those images WITH the improved annotation file. This keeps all the valid images in place and you only have to upload the updates you have. Create a new dataset version and build a model off your latest total set of information! Best of luck!

1 Like