nx_revimg_discover.nx
buildroot/runtime/nx_revimg_discover.nx
about
nx_revimg_discover.nx -- REVERSE-IMAGE CROSS-SITE DISCOVERY engine: the "grow the search results" loop.
Given an entity's media fingerprints (the SEED set -- e.g. the Diora Baird images nx_media_gather pulls
in) and a crawled corpus of (site, image-fingerprint) records, it answers the operator's three asks:
1. WHICH OTHER SITES host this media? -- perceptual match (dHash Hamming <= thresh), so it catches
RECOMPRESSED/rescaled reposts, not just byte-identical copies (sha256 can't).
2. WHAT OTHER MEDIA do those host sites have? -- harvest a host's non-seed images = the entity's other
media we didn't have yet.
3. GROW -- fold the harvest back into the seed set and re-discover: new media surfaces new host sites.
Fingerprints come from nx_phash (dHash) over decoded images; matching reuses nx_simhash_hamming
(popcount64 of XOR) -- ZERO new ranking math. Linear scan here; nx_phash_index (BK-tree) is the scale
tier. HONEST: harvesting a host's non-seed images is co-location-based (a fan/official page of the
entity is mostly entity media); the grow loop's cross-site re-match is what verifies a harvested image
is really the entity (it must reappear on another host). license_tier: ORIGINAL
dependencies 1 imports · 3 importers
imports: nx_simhash.nx
imported by: nx_revimg_crawl.nxnx_revimg_crawl_run.nxnx_revimg_discover_gate.nx
structs
| none |
consts
| none |
functions
| 18 | func nx_revimg_match(seeds: *i64, nseed: i64, corpus_fp: *i64, ncorp: i64, thresh: i64, |
| 37 | func nx_revimg_host_sites(seeds: *i64, nseed: i64, corpus_fp: *i64, corpus_site: *i64, ncorp: i64, thresh: i64, |
| 68 | func nx_revimg_harvest(site: i64, seeds: *i64, nseed: i64, corpus_fp: *i64, corpus_site: *i64, ncorp: i64, thresh: i64, |