{"adoption": {"forks": 974, "observed_at": "2026-08-28T04:09:34.932692+00:00", "stars": 6088}, "canonical_url": "https://ross.abutalabs.com/products/anomalib", "card": {"archived": false, "artifact_type": "library", "description": "An anomaly detection library comprising state-of-the-art algorithms and features such as experiment management, hyper-parameter optimization, and edge inference.", "domain": ["computer-vision", "machine-learning", "deep-learning", "image-processing"], "enriched": true, "function": ["machine-learning", "deep-learning", "computer-vision", "image-processing", "benchmarking", "llm-training"], "health_score": 100, "homepage": "https://anomalib.readthedocs.io/en/latest/", "language": "Python", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["open-edge-platform/anomalib"], "name": "open-edge-platform/anomalib", "platform": ["python", "cross-platform"], "pushed_at": "2026-08-26T13:39:00+00:00", "repo": "open-edge-platform/anomalib", "stars": 6088, "tags": ["anomaly-detection", "anomaly-segmentation", "unsupervised-learning", "openvino", "pytorch", "edge-inference", "industrial-inspection", "gpu"], "topics": ["anomaly-localization", "anomaly-segmentation", "anomaly-detection", "unsupervised-learning", "neural-network-compression", "openvino", "geti"], "urls": [], "use_cases": ["detect defects in industrial images", "train an unsupervised anomaly detection model", "segment anomalous regions in images", "benchmark anomaly detection algorithms", "deploy anomaly detection to edge devices", "optimize hyperparameters for anomaly models", "visual inspection of manufactured parts"], "what_it_is": "Anomalib is a Python deep learning library for anomaly detection, offering state-of-the-art unsupervised algorithms for detecting and localizing anomalies in images. It includes experiment management, hyper-parameter optimization, and export/edge inference support via OpenVINO.", "when_to_avoid": ["you need supervised classification rather than unsupervised anomaly detection", "you need anomaly detection on time series or tabular data rather than images", "you want a lightweight inference-only tool without training features"], "when_to_choose": ["you need ready-to-use state-of-the-art anomaly detection or localization models", "you want PyTorch-based training with experiment tracking and HPO built in", "you need to export models for edge inference with OpenVINO"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/anomalib", "repo": "open-edge-platform/anomalib", "role": "main", "score": 98}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:09:34.932692+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:48:18.225758+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0701dc0da9e225e015fc6172b24d9164cf6e8508ea881f82eb545829e0100cac", "fetched_at": "2026-08-28T04:09:34.932692+00:00", "kind": "readme", "missing": false, "url": "https://github.com/open-edge-platform/anomalib"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:09:34.932692+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:48:18.225758+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0701dc0da9e225e015fc6172b24d9164cf6e8508ea881f82eb545829e0100cac", "fetched_at": "2026-08-28T04:09:34.932692+00:00", "kind": "readme", "missing": false, "url": "https://github.com/open-edge-platform/anomalib"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:48:18.225758+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0701dc0da9e225e015fc6172b24d9164cf6e8508ea881f82eb545829e0100cac", "fetched_at": "2026-08-28T04:09:34.932692+00:00", "kind": "readme", "missing": false, "url": "https://github.com/open-edge-platform/anomalib"}], "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:09:34.932692+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:09:34.932692+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:09:34.932692+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:48:18.225758+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0701dc0da9e225e015fc6172b24d9164cf6e8508ea881f82eb545829e0100cac", "fetched_at": "2026-08-28T04:09:34.932692+00:00", "kind": "readme", "missing": false, "url": "https://github.com/open-edge-platform/anomalib"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:09:34.932692+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:09:34.932692+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:48:18.225758+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0701dc0da9e225e015fc6172b24d9164cf6e8508ea881f82eb545829e0100cac", "fetched_at": "2026-08-28T04:09:34.932692+00:00", "kind": "readme", "missing": false, "url": "https://github.com/open-edge-platform/anomalib"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:09:34.932692+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:09:34.932692+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:09:34.932692+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:48:18.225758+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0701dc0da9e225e015fc6172b24d9164cf6e8508ea881f82eb545829e0100cac", "fetched_at": "2026-08-28T04:09:34.932692+00:00", "kind": "readme", "missing": false, "url": "https://github.com/open-edge-platform/anomalib"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:09:34.932692+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:09:34.932692+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:48:18.225758+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0701dc0da9e225e015fc6172b24d9164cf6e8508ea881f82eb545829e0100cac", "fetched_at": "2026-08-28T04:09:34.932692+00:00", "kind": "readme", "missing": false, "url": "https://github.com/open-edge-platform/anomalib"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:48:18.225758+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0701dc0da9e225e015fc6172b24d9164cf6e8508ea881f82eb545829e0100cac", "fetched_at": "2026-08-28T04:09:34.932692+00:00", "kind": "readme", "missing": false, "url": "https://github.com/open-edge-platform/anomalib"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:48:18.225758+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0701dc0da9e225e015fc6172b24d9164cf6e8508ea881f82eb545829e0100cac", "fetched_at": "2026-08-28T04:09:34.932692+00:00", "kind": "readme", "missing": false, "url": "https://github.com/open-edge-platform/anomalib"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:48:18.225758+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0701dc0da9e225e015fc6172b24d9164cf6e8508ea881f82eb545829e0100cac", "fetched_at": "2026-08-28T04:09:34.932692+00:00", "kind": "readme", "missing": false, "url": "https://github.com/open-edge-platform/anomalib"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 100, "rhythm": 95}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 1765, "days_push": 7, "days_rel": 39, "gap_med": 13, "n_releases_24m": 16}, "score": 98, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}