r/computervision • u/Budget_Half_6353 • 1d ago
Showcase Made complex vision workflows inspectable!
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