{"adoption": {"forks": 208, "observed_at": "2026-08-28T04:06:05.134219+00:00", "stars": 2012}, "canonical_url": "https://ross.abutalabs.com/products/person-blocker", "card": {"archived": false, "artifact_type": "cli-tool", "description": "Automatically \"block\" people in images (like Black Mirror) using a pretrained neural network.", "domain": ["computer-vision", "image-processing", "privacy"], "enriched": true, "function": ["image-processing", "computer-vision", "machine-learning"], "health_score": 20, "homepage": null, "language": "Python", "license": "NOASSERTION", "license_family": "other", "maturity": "maintenance", "member_repos": ["minimaxir/person-blocker"], "name": "minimaxir/person-blocker", "platform": ["python", "cli", "cross-platform"], "pushed_at": "2022-09-09T09:46:54+00:00", "repo": "minimaxir/person-blocker", "stars": 2012, "tags": ["mask-rcnn", "object-detection", "image-censoring", "black-mirror", "coco", "tensorflow"], "topics": [], "urls": [], "use_cases": ["blur out people in photos automatically", "censor faces and objects in images like Black Mirror", "anonymize people in pictures before sharing", "detect and mask specific objects like buses or giraffes in an image", "run object detection on images from the command line without a GPU"], "what_it_is": "A Python command-line script that automatically censors ('blocks') people and up to 80 other object types in images using a pretrained Mask R-CNN model on MS COCO. It outputs both static PNG and animated GIF versions of the blocked image.", "when_to_avoid": ["you need production-grade, maintained software - it depends on old TensorFlow 1.x/Keras and sees infrequent updates", "you need video processing rather than still images", "you want fine-grained manual redaction control rather than automatic detection"], "when_to_choose": ["you want automated, no-manual-editing censoring of people or objects in images", "you need a simple CLI workflow and don't have a GPU", "you want both static and animated censored outputs"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/person-blocker", "repo": "minimaxir/person-blocker", "role": "main", "score": 32}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:06:05.134219+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:01:02.559078+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "476c955eea8dd3d5a0404ee3f09029b526903c22651f7a72dbfcb95c2903338b", "fetched_at": "2026-08-28T04:06:05.134219+00:00", "kind": "readme", "missing": false, "url": "https://github.com/minimaxir/person-blocker"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:06:05.134219+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:01:02.559078+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "476c955eea8dd3d5a0404ee3f09029b526903c22651f7a72dbfcb95c2903338b", "fetched_at": "2026-08-28T04:06:05.134219+00:00", "kind": "readme", "missing": false, "url": "https://github.com/minimaxir/person-blocker"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:01:02.559078+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "476c955eea8dd3d5a0404ee3f09029b526903c22651f7a72dbfcb95c2903338b", "fetched_at": "2026-08-28T04:06:05.134219+00:00", "kind": "readme", "missing": false, "url": "https://github.com/minimaxir/person-blocker"}], "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:06:05.134219+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:06:05.134219+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:06:05.134219+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:01:02.559078+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "476c955eea8dd3d5a0404ee3f09029b526903c22651f7a72dbfcb95c2903338b", "fetched_at": "2026-08-28T04:06:05.134219+00:00", "kind": "readme", "missing": false, "url": "https://github.com/minimaxir/person-blocker"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:06:05.134219+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:06:05.134219+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:01:02.559078+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "476c955eea8dd3d5a0404ee3f09029b526903c22651f7a72dbfcb95c2903338b", "fetched_at": "2026-08-28T04:06:05.134219+00:00", "kind": "readme", "missing": false, "url": "https://github.com/minimaxir/person-blocker"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:06:05.134219+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:06:05.134219+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:06:05.134219+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:01:02.559078+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "476c955eea8dd3d5a0404ee3f09029b526903c22651f7a72dbfcb95c2903338b", "fetched_at": "2026-08-28T04:06:05.134219+00:00", "kind": "readme", "missing": false, "url": "https://github.com/minimaxir/person-blocker"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:06:05.134219+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:06:05.134219+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:01:02.559078+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "476c955eea8dd3d5a0404ee3f09029b526903c22651f7a72dbfcb95c2903338b", "fetched_at": "2026-08-28T04:06:05.134219+00:00", "kind": "readme", "missing": false, "url": "https://github.com/minimaxir/person-blocker"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:01:02.559078+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "476c955eea8dd3d5a0404ee3f09029b526903c22651f7a72dbfcb95c2903338b", "fetched_at": "2026-08-28T04:06:05.134219+00:00", "kind": "readme", "missing": false, "url": "https://github.com/minimaxir/person-blocker"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:01:02.559078+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "476c955eea8dd3d5a0404ee3f09029b526903c22651f7a72dbfcb95c2903338b", "fetched_at": "2026-08-28T04:06:05.134219+00:00", "kind": "readme", "missing": false, "url": "https://github.com/minimaxir/person-blocker"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:01:02.559078+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "476c955eea8dd3d5a0404ee3f09029b526903c22651f7a72dbfcb95c2903338b", "fetched_at": "2026-08-28T04:06:05.134219+00:00", "kind": "readme", "missing": false, "url": "https://github.com/minimaxir/person-blocker"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_releases", "no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3082, "days_push": 1454, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 32, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}