Using edited roboflow detections as annotations for re-training?

Is there any obvious way to re-send edited roboflow inferences back to the upload que with active learning or batch upload queues?

Scenario:
After the roboflow predictions/ detections are returned for an image, we then process the predictions and have a newly edited version of the same structure that we would like to include into our annotations queue for re-training.

I was looking for something here, like

project.upload(
    image_path="UPLOAD_IMAGE.jpg",
    batch_name="YOUR_BATCH_NAME",
    split="train",
    num_retry_uploads=3,
    tag="YOUR_TAG_NAME",
    annotations = edited_roboflow_predictions_or_detections,
    sequence_number=99,
    sequence_size=100
)

from Upload one Image | Roboflow Docs

What’s the best way to go about achieving this outside roboflow? Some way to auto-label with edited-predictions from custom trained models is difficult?

Many thanks :worried: :pray:

or perhaps Piotr could knock on some doors to open source more libraries from Roboflow’s internal code to achieve this? :wink:

Hi @kedar - do you mind telling me a bit about how you want to edit the annotations? Do you want a human to review and edit boxes, rename classes, or do some entirely different adjustment?

You can use the upload annotations endpoint to upload an annotation with an image (docs).

Let’s imagine that the detections returned by roboflow are corrected on-site through a different custom interface (programmatic like removing duplicates, filtering by thresholds + 1st human input)
We would like to send these corrected detections back with the image to our retraining queue instead of those predicted by the label-assist of our custom model (and then have non mandatory: 2nd human review in roboflow web ui)

does this help?

Thanks for helping out Jacob.

I checked the docs and it seems like we need to write a library to convert roboflow predictions into the _annotations.coco.json format.

is that incorrect?

Hey @kedar

You’re on the right track!

You will have to convert the annotations to upload them back into Roboflow, but if you are using Supervision (which it sounds like you might be familiar with), you can use the DetectionDataset.as_pascal_voc method to convert into the Pascal VOC format and upload that into Roboflow.

As for your review process, you can set is_prediction to True when using our Python SDK.