{"adoption": {"forks": 157, "observed_at": "2026-08-28T04:03:44.312910+00:00", "stars": 1140}, "canonical_url": "https://ross.abutalabs.com/products/glue-factory", "card": {"archived": false, "artifact_type": "library", "description": "Training library for local feature detection and matching", "domain": ["computer-vision", "deep-learning", "machine-learning", "image-processing"], "enriched": true, "function": ["machine-learning", "deep-learning", "computer-vision", "image-processing", "benchmarking"], "health_score": 76, "homepage": null, "language": "Python", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["cvg/glue-factory"], "name": "cvg/glue-factory", "platform": ["python", "cross-platform"], "pushed_at": "2026-07-20T13:55:30+00:00", "repo": "cvg/glue-factory", "stars": 1140, "tags": ["feature-matching", "feature-detection", "lightglue", "gluestick", "superpoint", "pytorch", "image-matching", "training-library", "hpatches", "megadepth", "gpu", "linux", "macos"], "topics": ["computer-vision", "deep-learning", "iccv2023", "image-matching"], "urls": [], "use_cases": ["train a local feature matcher for image matching", "reproduce LightGlue or GlueStick training", "evaluate feature extractors on HPatches benchmark", "train feature matching models on my own dataset", "match keypoints and lines between images with deep learning", "benchmark SuperPoint-style feature detectors", "train a model for visual localization feature matching"], "what_it_is": "Glue Factory is a PyTorch-based library for training and evaluating deep neural networks that detect and match local visual features (points and lines) in images. It supports reproducing state-of-the-art models like LightGlue and GlueStick, training on custom datasets, and benchmarking on standard datasets such as HPatches and MegaDepth-1500.", "when_to_avoid": ["you only need off-the-shelf inference without training - use LightGlue or GlueStick repos directly", "you need non-PyTorch frameworks or non-deep-learning classical feature matching (e.g. SIFT/ORB via OpenCV)", "you require permissive licensing for bundled third-party models like original SuperPoint or SuperGlue, which carry restrictive licenses"], "when_to_choose": ["you need to train or fine-tune deep local feature detectors or matchers", "you want reproducible state-of-the-art point/line matching models like LightGlue", "you need standardized benchmarking (HPatches, MegaDepth-1500) for feature matching", "you work in PyTorch and want auto-downloading models and datasets"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/glue-factory", "repo": "cvg/glue-factory", "role": "main", "score": 69}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:44.312910+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:35:29.380466+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e13c521f88c0d47559c1dd92626f6640f73d6bb82ce249977a531451442cb066", "fetched_at": "2026-08-28T04:03:44.312910+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cvg/glue-factory"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:44.312910+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:35:29.380466+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e13c521f88c0d47559c1dd92626f6640f73d6bb82ce249977a531451442cb066", "fetched_at": "2026-08-28T04:03:44.312910+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cvg/glue-factory"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:35:29.380466+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e13c521f88c0d47559c1dd92626f6640f73d6bb82ce249977a531451442cb066", "fetched_at": "2026-08-28T04:03:44.312910+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cvg/glue-factory"}], "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:03:44.312910+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:44.312910+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:44.312910+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:35:29.380466+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e13c521f88c0d47559c1dd92626f6640f73d6bb82ce249977a531451442cb066", "fetched_at": "2026-08-28T04:03:44.312910+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cvg/glue-factory"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:44.312910+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:44.312910+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:35:29.380466+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e13c521f88c0d47559c1dd92626f6640f73d6bb82ce249977a531451442cb066", "fetched_at": "2026-08-28T04:03:44.312910+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cvg/glue-factory"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:44.312910+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:44.312910+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:44.312910+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:35:29.380466+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e13c521f88c0d47559c1dd92626f6640f73d6bb82ce249977a531451442cb066", "fetched_at": "2026-08-28T04:03:44.312910+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cvg/glue-factory"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:44.312910+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:44.312910+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:35:29.380466+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e13c521f88c0d47559c1dd92626f6640f73d6bb82ce249977a531451442cb066", "fetched_at": "2026-08-28T04:03:44.312910+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cvg/glue-factory"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:35:29.380466+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e13c521f88c0d47559c1dd92626f6640f73d6bb82ce249977a531451442cb066", "fetched_at": "2026-08-28T04:03:44.312910+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cvg/glue-factory"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:35:29.380466+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e13c521f88c0d47559c1dd92626f6640f73d6bb82ce249977a531451442cb066", "fetched_at": "2026-08-28T04:03:44.312910+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cvg/glue-factory"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:35:29.380466+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e13c521f88c0d47559c1dd92626f6640f73d6bb82ce249977a531451442cb066", "fetched_at": "2026-08-28T04:03:44.312910+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cvg/glue-factory"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 93, "longevity": 75, "rhythm": 35}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 1063, "days_push": 44, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 69, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}