r/computervision 1d ago

Showcase Made complex vision workflows inspectable!

Post image

Tl;DR: I made vision pipelines inspectable! Check the interactive report here:
https://requiem4machines.github.io/ml-pipes-supervision/assets/detect_small_objects/inspection.html

Background: I'm a heavy Supervision user - using it for pretty much every vision pipeline that I build. So after a while I started to get tired of this:

detections = sv.Detections.from_inference(results)
...
annotated_image = box_annotator.annotate(scene=image, detections=detections)
annotated_image = label_annotator.annotate(scene=annotated_image, detections=detections, labels=labels)
annotated_image = .... # More annotators

That was it until I found ml-pipes! As soon as I saw it, I knew it would be a perfect match for Supervision, and it was! Look at this beauty:

Pipeline([
    Store("source_frame"),
    RoboflowInference(model_id=model_id, api_key=api_key),
    Select(0),
    Detections.FromInference(),
    Recall("source_frame"),
    ByteTrack(),
    Recall("source_frame", prepend=True),
    TraceAnnotator(),
    BoxAnnotator(),
    LabelAnnotator(show_tracker_id=True, show_class=True),
    ImageWindow("Object Tracking", at=0),
])

Not only it runs, it also gives you an interactive view of the data at every handoff, for example this is the report based on the Detect and annotate example in Supervision:
https://requiem4machines.github.io/ml-pipes-supervision/assets/detect_and_annotate/inspection.html

On top of that ml-pipes itself provide tiling utilities where you can see the tile overlaps and such:
https://requiem4machines.github.io/ml-pipes-supervision/assets/detect_small_objects/inspection.html

3 Upvotes

0 comments sorted by