{
  "tool": "nx_imgsearch",
  "title": "Nishi Reverse Image — sovereign visual search",
  "overall": 985,
  "single_edit_classes_survived": 16,
  "single_edit_classes_total": 16,
  "classes_total_with_combined": 17,
  "single_hash_baseline": 597,
  "gate": "14/14 GREEN",
  "scale_invariance": "similarity-consensus RANSAC (translation + scale), integer, no float",
  "tiers": [
    {"name": "copy-dhash",  "class": "identity",   "method": "64-bit dHash, Hamming"},
    {"name": "orient-d4",   "class": "identity",   "method": "dihedral-group canonical hash"},
    {"name": "local-orb",   "class": "identity",   "method": "FAST+BRIEF+RANSAC geometry"},
    {"name": "similar-ehd", "class": "similarity", "method": "edge-orientation layout, L1"}
  ],
  "measured_robustness_permille": {
    "note": "recall@1 vs 256 distractors; UPPER BOUND on open-web performance",
    "identity": 1000, "rescale": 1000, "brightness_contrast": 1000,
    "crop_10": 1000, "crop_20": 1000, "crop_30": 906, "letterbox": 1000,
    "mirror_rotate": 1000, "noise": 1000, "watermark": 1000, "recompress": 1000,
    "crop_rescale_combined": 843
  },
  "known_gaps": [
    {"class": "crop+rescale", "permille": 843, "needs": "full ORB scale pyramid; similarity-RANSAC already lifted it 500->843, a naive octave pyramid was MEASURED to regress the same-scale classes so it is not shipped"},
    {"class": "semantic-lookalike", "permille": 0, "needs": "quantised learned embedding tier"},
    {"class": "webp-avif-decode", "permille": 0, "needs": "WebP/AVIF decoders"}
  ],
  "properties": ["integer", "zero-float", "sovereign", "self-describing", "honest-absent"]
}
