{"adoption": {"forks": 4726, "observed_at": "2026-08-28T04:12:11.663586+00:00", "stars": 49745}, "canonical_url": "https://ross.abutalabs.com/products/supervision", "card": {"archived": false, "artifact_type": "library", "description": "We write your reusable computer vision tools. 💜", "domain": ["computer-vision", "image-processing", "machine-learning", "deep-learning", "data-science"], "enriched": true, "function": ["computer-vision", "image-processing", "video-processing", "data-visualization", "machine-learning", "sdk"], "health_score": 100, "homepage": "https://supervision.roboflow.com", "language": "Python", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["roboflow/supervision"], "name": "roboflow/supervision", "platform": ["python", "cross-platform"], "pushed_at": "2026-08-25T15:34:03+00:00", "repo": "roboflow/supervision", "stars": 49745, "tags": ["object-detection", "instance-segmentation", "object-tracking", "yolo", "coco", "pascal-voc", "annotators", "zone-counting", "model-agnostic", "pytorch", "tensorflow", "detection-metrics", "dataset-loading", "bounding-boxes", "low-code", "video"], "topics": ["computer-vision", "image-processing", "python", "yolo", "instance-segmentation", "object-detection", "tracking", "video-processing", "coco", "pascal-voc", "deep-learning", "metrics", "machine-learning", "pytorch", "tensorflow", "classification", "oriented-bounding-box", "low-code", "hacktoberfest"], "urls": [], "use_cases": ["draw bounding boxes and masks on detection results", "count objects crossing a line or inside a zone in video", "load and convert COCO or Pascal VOC datasets", "evaluate object detection models with mAP metrics", "track objects across video frames", "plug any detector model into a shared detection API", "annotate and visualize model predictions in notebooks"], "what_it_is": "Supervision is a Python library of reusable computer vision tools that bridges the gap between detection/segmentation/classification models and application code. It provides model-agnostic connectors, annotators for drawing boxes/masks/trails, dataset loaders for formats like COCO and Pascal VOC, and utilities for tracking, zone counting, and evaluation metrics.", "when_to_avoid": ["you need to train models from scratch - supervision focuses on inference-time tooling, not training", "you need a full end-to-end CV platform with labeling and deployment - consider the broader Roboflow ecosystem instead", "your project is not in Python or requires GPU-level optimized inference itself rather than utilities around model outputs"], "when_to_choose": ["you need post-processing, annotation, or evaluation utilities around existing detection or segmentation models", "you want model-agnostic connectors so you can swap YOLO, Transformers, or Roboflow models without rewriting code", "you are building video analytics like zone counting, line crossing, or object tracking on top of detections", "you work in Python notebooks and want quick visualization of CV model outputs"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/supervision", "repo": "roboflow/supervision", "role": "main", "score": 95}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:12:11.663586+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T16:20:11.195602+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "875d6caa75d5e20359a297ffc36b8175242fdf39d8ae9b75ab7fd1852d759837", "fetched_at": "2026-08-28T04:12:11.663586+00:00", "kind": "readme", "missing": false, "url": "https://github.com/roboflow/supervision"}, {"content_hash": "36c6c3c2e4f9f7e35fb7fea86ea9bfd1cf7fe7061016698b1a017ae1cc7f4a36", "fetched_at": "2026-08-28T18:12:59.195204+00:00", "kind": "homepage", "missing": false, "url": "https://supervision.roboflow.com"}, {"content_hash": "4be8a6c98c3c67ca2c8736830f38c8038a53fac31efe28d52709867229c73e43", "fetched_at": "2026-08-28T18:12:59.203539+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/supervision/json"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:12:11.663586+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T16:20:11.195602+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "875d6caa75d5e20359a297ffc36b8175242fdf39d8ae9b75ab7fd1852d759837", "fetched_at": "2026-08-28T04:12:11.663586+00:00", "kind": "readme", "missing": false, "url": "https://github.com/roboflow/supervision"}, {"content_hash": "36c6c3c2e4f9f7e35fb7fea86ea9bfd1cf7fe7061016698b1a017ae1cc7f4a36", "fetched_at": "2026-08-28T18:12:59.195204+00:00", "kind": "homepage", "missing": false, "url": "https://supervision.roboflow.com"}, {"content_hash": "4be8a6c98c3c67ca2c8736830f38c8038a53fac31efe28d52709867229c73e43", "fetched_at": "2026-08-28T18:12:59.203539+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/supervision/json"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T16:20:11.195602+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "875d6caa75d5e20359a297ffc36b8175242fdf39d8ae9b75ab7fd1852d759837", "fetched_at": "2026-08-28T04:12:11.663586+00:00", "kind": "readme", "missing": false, "url": "https://github.com/roboflow/supervision"}, {"content_hash": "36c6c3c2e4f9f7e35fb7fea86ea9bfd1cf7fe7061016698b1a017ae1cc7f4a36", "fetched_at": "2026-08-28T18:12:59.195204+00:00", "kind": "homepage", "missing": false, "url": "https://supervision.roboflow.com"}, {"content_hash": "4be8a6c98c3c67ca2c8736830f38c8038a53fac31efe28d52709867229c73e43", "fetched_at": "2026-08-28T18:12:59.203539+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/supervision/json"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:12:11.663586+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:12:11.663586+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:12:11.663586+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T16:20:11.195602+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "875d6caa75d5e20359a297ffc36b8175242fdf39d8ae9b75ab7fd1852d759837", "fetched_at": "2026-08-28T04:12:11.663586+00:00", "kind": "readme", "missing": false, "url": "https://github.com/roboflow/supervision"}, {"content_hash": "36c6c3c2e4f9f7e35fb7fea86ea9bfd1cf7fe7061016698b1a017ae1cc7f4a36", "fetched_at": "2026-08-28T18:12:59.195204+00:00", "kind": "homepage", "missing": false, "url": "https://supervision.roboflow.com"}, {"content_hash": "4be8a6c98c3c67ca2c8736830f38c8038a53fac31efe28d52709867229c73e43", "fetched_at": "2026-08-28T18:12:59.203539+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/supervision/json"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:12:11.663586+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:12:11.663586+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T16:20:11.195602+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "875d6caa75d5e20359a297ffc36b8175242fdf39d8ae9b75ab7fd1852d759837", "fetched_at": "2026-08-28T04:12:11.663586+00:00", "kind": "readme", "missing": false, "url": "https://github.com/roboflow/supervision"}, {"content_hash": "36c6c3c2e4f9f7e35fb7fea86ea9bfd1cf7fe7061016698b1a017ae1cc7f4a36", "fetched_at": "2026-08-28T18:12:59.195204+00:00", "kind": "homepage", "missing": false, "url": "https://supervision.roboflow.com"}, {"content_hash": "4be8a6c98c3c67ca2c8736830f38c8038a53fac31efe28d52709867229c73e43", "fetched_at": "2026-08-28T18:12:59.203539+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/supervision/json"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:12:11.663586+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:12:11.663586+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:12:11.663586+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T16:20:11.195602+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "875d6caa75d5e20359a297ffc36b8175242fdf39d8ae9b75ab7fd1852d759837", "fetched_at": "2026-08-28T04:12:11.663586+00:00", "kind": "readme", "missing": false, "url": "https://github.com/roboflow/supervision"}, {"content_hash": "36c6c3c2e4f9f7e35fb7fea86ea9bfd1cf7fe7061016698b1a017ae1cc7f4a36", "fetched_at": "2026-08-28T18:12:59.195204+00:00", "kind": "homepage", "missing": false, "url": "https://supervision.roboflow.com"}, {"content_hash": "4be8a6c98c3c67ca2c8736830f38c8038a53fac31efe28d52709867229c73e43", "fetched_at": "2026-08-28T18:12:59.203539+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/supervision/json"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:12:11.663586+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:12:11.663586+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T16:20:11.195602+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "875d6caa75d5e20359a297ffc36b8175242fdf39d8ae9b75ab7fd1852d759837", "fetched_at": "2026-08-28T04:12:11.663586+00:00", "kind": "readme", "missing": false, "url": "https://github.com/roboflow/supervision"}, {"content_hash": "36c6c3c2e4f9f7e35fb7fea86ea9bfd1cf7fe7061016698b1a017ae1cc7f4a36", "fetched_at": "2026-08-28T18:12:59.195204+00:00", "kind": "homepage", "missing": false, "url": "https://supervision.roboflow.com"}, {"content_hash": "4be8a6c98c3c67ca2c8736830f38c8038a53fac31efe28d52709867229c73e43", "fetched_at": "2026-08-28T18:12:59.203539+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/supervision/json"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T16:20:11.195602+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "875d6caa75d5e20359a297ffc36b8175242fdf39d8ae9b75ab7fd1852d759837", "fetched_at": "2026-08-28T04:12:11.663586+00:00", "kind": "readme", "missing": false, "url": "https://github.com/roboflow/supervision"}, {"content_hash": "36c6c3c2e4f9f7e35fb7fea86ea9bfd1cf7fe7061016698b1a017ae1cc7f4a36", "fetched_at": "2026-08-28T18:12:59.195204+00:00", "kind": "homepage", "missing": false, "url": "https://supervision.roboflow.com"}, {"content_hash": "4be8a6c98c3c67ca2c8736830f38c8038a53fac31efe28d52709867229c73e43", "fetched_at": "2026-08-28T18:12:59.203539+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/supervision/json"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T16:20:11.195602+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "875d6caa75d5e20359a297ffc36b8175242fdf39d8ae9b75ab7fd1852d759837", "fetched_at": "2026-08-28T04:12:11.663586+00:00", "kind": "readme", "missing": false, "url": "https://github.com/roboflow/supervision"}, {"content_hash": "36c6c3c2e4f9f7e35fb7fea86ea9bfd1cf7fe7061016698b1a017ae1cc7f4a36", "fetched_at": "2026-08-28T18:12:59.195204+00:00", "kind": "homepage", "missing": false, "url": "https://supervision.roboflow.com"}, {"content_hash": "4be8a6c98c3c67ca2c8736830f38c8038a53fac31efe28d52709867229c73e43", "fetched_at": "2026-08-28T18:12:59.203539+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/supervision/json"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T16:20:11.195602+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "875d6caa75d5e20359a297ffc36b8175242fdf39d8ae9b75ab7fd1852d759837", "fetched_at": "2026-08-28T04:12:11.663586+00:00", "kind": "readme", "missing": false, "url": "https://github.com/roboflow/supervision"}, {"content_hash": "36c6c3c2e4f9f7e35fb7fea86ea9bfd1cf7fe7061016698b1a017ae1cc7f4a36", "fetched_at": "2026-08-28T18:12:59.195204+00:00", "kind": "homepage", "missing": false, "url": "https://supervision.roboflow.com"}, {"content_hash": "4be8a6c98c3c67ca2c8736830f38c8038a53fac31efe28d52709867229c73e43", "fetched_at": "2026-08-28T18:12:59.203539+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/supervision/json"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 98, "rhythm": 87}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 1374, "days_push": 8, "days_rel": 9, "gap_med": 41, "n_releases_24m": 12}, "score": 95, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}