mrkeyoor.com_
Sun 20 Sept 07:02 UTC
Dev Toolsevaluationupdated 27 Aug 2026

supervision review

Supervision is a Python toolkit for the work around a computer vision model: storing detections, drawing annotations, tracking objects, measuring geometry, counting zones, and converting datasets. It lets an application use outputs from different detection or segmentation models without rewriting the same post-processing code for each one.

+955stars / 7d
Verdict

Our Supervision run installed 50 packages and built in 7 seconds, while the test step ended with 2 sklearn collection errors after logging 3,517 passes. That is good enough to justify a trial for model-neutral vision plumbing, especially annotation, tracking, geometry, and dataset conversion. Pin the version and run tests for the exact extras you use, because a small base API can sit on top of a large dependency and integration surface.

We ran it

Lab card: what happened when we ran supervisionScreenshot of supervision (supervision.roboflow.com)
Install✓ · 29s50 packages · 384 MB
Build✓ · 7s
Tests✗ · 45s0 passed · 0 failed · 2 errors of 2 (pytest)
Known vulns0(pip-audit)
Repo416 files~95,513 lines of source · 70.4 MB · 10 CI workflows · tests dir

Answers from our run

Does supervision build from source?

Dependencies installed in 29 seconds (50 packages), and the build succeeded in 7 seconds. We cloned commit 4692f31 into a clean Debian container with 3 CPUs and no project-specific setup.

Do supervision's tests pass?

Yes: 0 of 2 passed when we ran the project's own test command (pytest), with 2 collection errors. Some failures need services or credentials a bare container does not have.

Does supervision have known vulnerabilities in its dependencies?

pip-audit found none in the dependency tree at the time of our run.

Who should not use supervision?

Users expecting a trained model: Supervision consumes model output and the README points to separate model packages or hosted inference.

What are the alternatives to supervision?

OpenCV, Ultralytics, FiftyOne. Our Supervision run installed 50 packages and built in 7 seconds, while the test step ended with 2 sklearn collection errors after logging 3,517 passes.

Setup3/529-second install, but 384 MB and missing sklearn in tests
Docs5/5API docs, examples, guides, notebooks, and migration notes
Community5/549,750 stars with active releases and issue work
Maturity4/5Large passing suite; optional dependency coverage needs care

Discussed on

  1. hnSupervision: Reusable Computer Vision236 points
  2. hnSupervision – reusable computer vision tools5 points
  3. hnShow HN: Supervision, reusable computer vision utilities5 points

Who it’s for

Computer vision developers who want model-neutral detection and annotation utilities.
Teams building video analytics with tracking, zones, heatmaps, or speed estimation.
Dataset maintainers converting among COCO, YOLO, and Pascal VOC formats.
Prototype builders who need readable Python components before writing custom optimized code.

Who it’s NOT for

Users expecting a trained model: Supervision consumes model output and the README points to separate model packages or hosted inference.
Minimal Python services with tight disk limits: our base install added 50 packages and occupied 384 MB before any model.
Teams that need the repository's full test suite to pass from the base install: our run stopped on a missing sklearn import.
Applications requiring GPU kernels for every post-processing step: the README presents NumPy and OpenCV-oriented utilities, not an end-to-end GPU pipeline.
Users unwilling to test numeric edge cases during upgrades: release 0.30.1 changes corrected results for large coordinates and rotated boxes.

Setup reality

Our sandbox installed 50 Python packages in 29 seconds and occupied 384 MB. The build passed in 7 seconds. Tests exited 1 after 45 seconds; pip-audit found 0 known vulnerabilities.

The basic library needs Python 3.10 or newer. Models remain separate: the README's RF-DETR example adds Pillow and rfdetr, while Roboflow Inference needs its package and an API key. Video and model integrations can bring their own system and Python dependencies.

Pytest hit 2 collection errors because sklearn was missing from tests/metrics/test_sklearn_parity.py. The outer log also recorded 3,517 passed, 20 skipped, 1 failed, and 2 errors in the wider run. The log does not identify why scikit-learn was absent.

Supervision starts after the model returns detections

Supervision does not train or serve a vision model. It gives model output a common Python representation and supplies the operations applications repeatedly need afterward. Detections can hold boxes, masks, classes, confidence values, tracker IDs, and attached data. Annotators draw those results, trackers connect objects across frames, and geometry helpers handle zones, intersections, and measurements. Connectors accept output from several popular model libraries.

That division is the reason to adopt it. A team can switch a detector or compare two models while keeping much of its counting, drawing, and video logic. The tradeoff is another abstraction between model tensors and application code. When a connector drops metadata or a new model returns a shape Supervision does not expect, developers still need to understand both sides. The library saves routine work; it does not make model outputs interchangeable in every detail.

The base package covered 50 dependencies before any model arrived

The README's smallest instruction is pip install supervision on Python 3.10 or newer. Its first model example separately installs Pillow and RF-DETR. A Roboflow Inference example needs an API key, while other connectors depend on their own model packages. This is sensible packaging for a model-neutral toolkit, but the practical environment is defined by the features and backends an application selects.

Our installed environment used 384 MB for 50 packages. That is not excessive for many vision workstations, yet it matters in serverless jobs, edge containers, and command-line tools that only need a few geometry functions. The repository has fallback paths for some image conversion work, and release 0.30.1 made PyAV lazy when OpenCV is active on macOS. Even so, test the import graph for the exact minimal package you intend to ship.

What happened when we ran it

Our sandbox installed commit 4692f31 in 29 seconds, then built it in 7 seconds. The checkout contained 416 files, roughly 95,513 lines of source, and occupied 70.4 MB. Pip-audit found 0 known vulnerabilities among the installed Python packages. The repository had 10 CI workflow files and a tests directory, with no Dockerfile found by our scan.

Tests exited with code 1 after 45 seconds. A focused collection result reported 0 passed, 0 failed, and 2 errors because tests/metrics/test_sklearn_parity.py could not import sklearn. The wider wrapper's final line recorded 3,517 passed, 20 skipped, 1 failed, and 2 errors in 30.07 seconds. We are preserving both log summaries because they describe different layers of the run; neither supports calling the suite clean.

Dataset conversion is useful, but it is not a data quality check

Supervision loads, splits, merges, and exports common detection datasets, including COCO, YOLO, and Pascal VOC layouts. Images can load on demand while iteration exposes paths, pixels, and annotations. These utilities remove a lot of format glue from training and evaluation scripts. They are particularly handy when one project receives labels from several tools or must feed more than one training library.

Conversion can preserve a malformed label just as faithfully as a correct one. Class mappings, image dimensions, empty annotations, polygon validity, and train-test leakage remain the user's job to validate. The same caution applies to merged datasets, where class sets are reconciled but semantic differences between two labels with the same name are outside the file format. Add assertions around the data contract instead of treating a successful export as proof that the dataset is sound.

Release 0.30.1 fixes calculations that can change saved results

The August 24, 2026 release focuses on numeric precision and stability. It corrects oriented-box area and intersection calculations at large coordinate origins, integer overflow in scalar box IoU, polygon centers with large coordinates, and corner alignment in smoothed rotated tracks. It also changes complex-valued box coordinates from silently losing the imaginary component to raising a type error. No public signature was added or removed.

Those fixes are a sign of careful maintenance, but they deserve regression checks in geospatial imagery, stitched frames, or pipelines with stored thresholds. The release notes explicitly say corrected results may differ from 0.30.0 for affected inputs. A counting or matching application can change behavior when an IoU value moves across a threshold even though the upgrade has no signature change. Pinning alone is insufficient; keep representative fixtures with large coordinates and rotated objects.

Current activity supports adoption, while integration tests remain your responsibility

GitHub listed 49,750 stars, 73 combined issues and pull requests, and a last push on August 25, 2026. Version 0.30.1 was published one day earlier. Recent closed reports and release work cover macOS library loading, box finiteness, polygon overflow, and documentation examples. That is stronger health evidence than star count by itself.

Supervision is a practical default for Python teams that have a detector but do not want to rebuild tracking, annotation, geometry, and format conversion. Our 7-second build and thousands of logged passes make the codebase credible, while the missing sklearn collection dependency keeps the measured result short of clean. Use the narrowest extras possible, test your chosen connectors, and keep numeric fixtures around any decision threshold.

Alternatives

ProjectWhat it isPick it when
OpenCV gh↗The lower-level computer vision library behind many image and video operations.pick this instead when you need primitive image processing and are willing to build detection-specific abstractions yourself.
Ultralytics gh↗A model-centered toolkit for training, predicting, tracking, and exporting YOLO models.pick this instead when one YOLO stack should own both inference and downstream results.
FiftyOneA dataset and model-analysis application for exploring samples, labels, errors, and evaluations.pick this instead when visual dataset inspection and evaluation matter more than lightweight runtime utilities.

What people are saying

  1. [github-trending] roboflow/supervision

Sources

  1. Supervision README
  2. Supervision 0.30.1 release
  3. Supervision documentation
  4. Supervision issue tracker

More dev tools reviews

Apktool · x64dbg · UTM · QtScrcpy · gcx · mold · the whole board →