From 8754738dc1a43efa3a65a1319cf3d98aa8279d54 Mon Sep 17 00:00:00 2001 From: kiyo9w Date: Tue, 29 Sep 2026 03:18:30 +0900 Subject: [PATCH] docs(decision): refresh every number the corrected labels moved Five blocks still printed pre-correction figures. Each was re-run through the evaluator and replaced with what it actually outputs now: - The lane comparison: local 75% at 91% against Van 64% at 38% (full), and 59% at 93% against 66% at 39% (live). At live resolution Van now answers more facings correctly and is wrong on 67 of them to the local lane's 3 - stated plainly rather than left as a win on both axes. - The accept sweep: 75/67/67/62% end-to-end at 91/91/93/95% precision, with the evaluator's own column definitions spelled out, since my first re-derivation used the wrong denominator. - The G1 stream claim: four pan replays give 63-70% coverage at 76-84% precision, not 75% at 100%. - The upscale paragraph: the guard is intact, but sku_l09.jpg is now a 1000x1000 packshot, so the current run no longer exercises it. - catalog_hash and the pyramid floor: the hash covers view bytes, not just names, and every view is now above the 800 px floor. Also refreshes the server smoke against the renamed catalog: 53 named in 2.58 s, no view-suffixed ids, no missing product info. l12 is not among them - it has no enrolled view, which is the documented gap. --- .../recognize-after-l12-rename.json | 1 + .../server-smoke/summary.json | 5 +- .../DECISION.md | 77 +++++++++++-------- 3 files changed, 50 insertions(+), 33 deletions(-) create mode 100644 recognization/data/evaluations/2026-09-29-session/server-smoke/recognize-after-l12-rename.json diff --git a/recognization/data/evaluations/2026-09-29-session/server-smoke/recognize-after-l12-rename.json b/recognization/data/evaluations/2026-09-29-session/server-smoke/recognize-after-l12-rename.json new file mode 100644 index 0000000..2f1cc2f --- /dev/null +++ b/recognization/data/evaluations/2026-09-29-session/server-smoke/recognize-after-l12-rename.json @@ -0,0 +1 @@ +{"image_id":"img_d6afdf28ac101605","width":1500,"height":2000,"catalog_version":"d0f835fc7826","model_version":"best.pt@ultralytics-8.4.153","coordinate_convention":"pixel-xyxy-origin-top-left","detections":[{"id":0,"box":[634,1328,729,1541],"confidence":0.8211,"identity":{"state":"needs_confirmation","sku_id":null,"identity_level":"ambiguous","confidence":0.6104,"score":0.61,"candidates":[{"sku_id":"sku_l11","score":0.61},{"sku_id":"sku_l05","score":2.81},{"sku_id":"sku_l01","score":3.31}],"attempts":1,"method":"rootsift"}},{"id":1,"box":[306,1058,436,1260],"confidence":0.821,"identity":{"state":"recognized","sku_id":"sku_l10","identity_level":"accepted","confidence":19.1096,"score":19.11,"candidates":[{"sku_id":"sku_l10","score":19.11},{"sku_id":"sku_l09","score":4.4},{"sku_id":"sku_l06","score":1.15}],"attempts":1,"method":"rootsift"},"product":{"sku_id":"sku_l10","product_name":"ピュアセレクト マヨネーズ 400g","price":222.0,"number_in":36,"number_out":15,"number_on":21,"receipt_date":"2026-09-22","expiration_date":"2026-12-28","image_url":"/v1/catalog/sku_l10/image"}},{"id":2,"box":[734,1326,831,1538],"confidence":0.8205,"identity":{"state":"recognized","sku_id":"sku_l11","identity_level":"accepted","confidence":1.8263,"score":1.83,"candidates":[{"sku_id":"sku_l11","score":1.83},{"sku_id":"sku_l05","score":3.33},{"sku_id":"sku_l01","score":1.09}],"attempts":1,"method":"rootsift"},"product":{"sku_id":"sku_l11","product_name":"キューピー ハーフマヨネーズ 400g","price":269.0,"number_in":48,"number_out":22,"number_on":26,"receipt_date":"2026-09-19","expiration_date":"2026-12-22","image_url":"/v1/catalog/sku_l11/image"}},{"id":3,"box":[529,1332,626,1546],"confidence":0.8188,"identity":{"state":"needs_confirmation","sku_id":null,"identity_level":"ambiguous","confidence":0.6571,"score":0.66,"candidates":[{"sku_id":"sku_l11","score":0.66},{"sku_id":"sku_l05","score":2.3},{"sku_id":"sku_l01","score":1.06}],"attempts":1,"method":"rootsift"}},{"id":4,"box":[789,1056,876,1246],"confidence":0.8184,"identity":{"state":"recognized","sku_id":"sku_l10","identity_level":"accepted","confidence":20.7191,"score":20.72,"candidates":[{"sku_id":"sku_l10","score":20.72},{"sku_id":"sku_l09","score":1.88},{"sku_id":"sku_l02","score":0.83}],"attempts":1,"method":"rootsift"},"product":{"sku_id":"sku_l10","product_name":"ピュアセレクト マヨネーズ 400g","price":222.0,"number_in":36,"number_out":15,"number_on":21,"receipt_date":"2026-09-22","expiration_date":"2026-12-28","image_url":"/v1/catalog/sku_l10/image"}},{"id":5,"box":[441,1060,538,1256],"confidence":0.8131,"identity":{"state":"recognized","sku_id":"sku_l10","identity_level":"accepted","confidence":25.3919,"score":25.39,"candidates":[{"sku_id":"sku_l10","score":25.39},{"sku_id":"sku_l09","score":5.55},{"sku_id":"sku_l02","score":0.0}],"attempts":1,"method":"rootsift"},"product":{"sku_id":"sku_l10","product_name":"ピュアセレクト マヨネーズ 400g","price":222.0,"number_in":36,"number_out":15,"number_on":21,"receipt_date":"2026-09-22","expiration_date":"2026-12-28","image_url":"/v1/catalog/sku_l10/image"}},{"id":6,"box":[685,1058,783,1251],"confidence":0.8113,"identity":{"state":"recognized","sku_id":"sku_l10","identity_level":"accepted","confidence":22.8488,"score":22.85,"candidates":[{"sku_id":"sku_l10","score":22.85},{"sku_id":"sku_l09","score":4.92},{"sku_id":"sku_l02","score":0.42}],"attempts":1,"method":"rootsift"},"product":{"sku_id":"sku_l10","product_name":"ピュアセレクト マヨネーズ 400g","price":222.0,"number_in":36,"number_out":15,"number_on":21,"receipt_date":"2026-09-22","expiration_date":"2026-12-28","image_url":"/v1/catalog/sku_l10/image"}},{"id":7,"box":[1393,1067,1467,1241],"confidence":0.8065,"identity":{"state":"unrecognized","sku_id":null,"identity_level":"rejected","confidence":0.0,"score":0.0,"candidates":[],"attempts":1,"method":"rootsift"}},{"id":8,"box":[270,64,377,322],"confidence":0.8063,"identity":{"state":"recognized","sku_id":"sku_l01","identity_level":"accepted","confidence":5.0138,"score":5.01,"candidates":[{"sku_id":"sku_l01","score":5.01},{"sku_id":"sku_l11","score":0.46},{"sku_id":"sku_l05","score":0.54}],"attempts":1,"method":"rootsift"},"product":{"sku_id":"sku_l01","product_name":"キューピー エッグケア 305g","price":349.0,"number_in":36,"number_out":12,"number_on":24,"receipt_date":"2026-09-18","expiration_date":"2026-12-20","image_url":"/v1/catalog/sku_l01/image"}},{"id":9,"box":[147,53,264,318],"confidence":0.8059,"identity":{"state":"recognized","sku_id":"sku_l01","identity_level":"accepted","confidence":25.0447,"score":25.04,"candidates":[{"sku_id":"sku_l01","score":25.04},{"sku_id":"sku_l05","score":0.56},{"sku_id":"sku_l11","score":0.52}],"attempts":1,"method":"rootsift"},"product":{"sku_id":"sku_l01","product_name":"キューピー エッグケア 305g","price":349.0,"number_in":36,"number_out":12,"number_on":24,"receipt_date":"2026-09-18","expiration_date":"2026-12-20","image_url":"/v1/catalog/sku_l01/image"}},{"id":10,"box":[213,1631,313,1834],"confidence":0.8052,"identity":{"state":"needs_confirmation","sku_id":null,"identity_level":"ambiguous","confidence":5.8142,"score":5.81,"candidates":[{"sku_id":"sku_l03","score":5.81},{"sku_id":"sku_l10","score":1.62},{"sku_id":"sku_l09","score":0.6}],"attempts":1,"method":"rootsift"}},{"id":11,"box":[421,1333,524,1549],"confidence":0.8045,"identity":{"state":"recognized","sku_id":"sku_l11","identity_level":"accepted","confidence":2.0619,"score":2.06,"candidates":[{"sku_id":"sku_l11","score":2.06},{"sku_id":"sku_l05","score":0.95},{"sku_id":"sku_l01","score":1.09}],"attempts":1,"method":"rootsift"},"product":{"sku_id":"sku_l11","product_name":"キューピー ハーフマヨネーズ 400g","price":269.0,"number_in":48,"number_out":22,"number_on":26,"receipt_date":"2026-09-19","expiration_date":"2026-12-22","image_url":"/v1/catalog/sku_l11/image"}},{"id":12,"box":[1404,1837,1498,2000],"confidence":0.8013,"identity":{"state":"needs_confirmation","sku_id":null,"identity_level":"unknown","confidence":0.0,"score":0.0,"candidates":[{"sku_id":"sku_l01","score":0.0},{"sku_id":"sku_l02","score":0.0},{"sku_id":"sku_l03","score":0.0}],"attempts":1,"method":"rootsift"}},{"id":13,"box":[778,459,865,675],"confidence":0.8007,"identity":{"state":"recognized","sku_id":"sku_l06","identity_level":"accepted","confidence":-2.0423,"score":-2.04,"candidates":[{"sku_id":"sku_l06","score":-2.04},{"sku_id":"sku_l11","score":0.69},{"sku_id":"sku_l05","score":0.31}],"attempts":1,"method":"rootsift"},"product":{"sku_id":"sku_l06","product_name":"キューピー フィッテ 210g","price":379.0,"number_in":18,"number_out":7,"number_on":11,"receipt_date":"2026-09-20","expiration_date":"2026-12-25","image_url":"/v1/catalog/sku_l06/image"}},{"id":14,"box":[190,1339,296,1562],"confidence":0.7999,"identity":{"state":"recognized","sku_id":"sku_l11","identity_level":"accepted","confidence":4.3801,"score":4.38,"candidates":[{"sku_id":"sku_l11","score":4.38},{"sku_id":"sku_l05","score":0.53},{"sku_id":"sku_l01","score":0.0}],"attempts":1,"method":"rootsift"},"product":{"sku_id":"sku_l11","product_name":"キューピー ハーフマヨネーズ 400g","price":269.0,"number_in":48,"number_out":22,"number_on":26,"receipt_date":"2026-09-19","expiration_date":"2026-12-22","image_url":"/v1/catalog/sku_l11/image"}},{"id":15,"box":[1022,1320,1123,1530],"confidence":0.792,"identity":{"state":"needs_confirmation","sku_id":null,"identity_level":"ambiguous","confidence":1.9919,"score":1.99,"candidates":[{"sku_id":"sku_l11","score":1.99},{"sku_id":"sku_l09","score":1.19},{"sku_id":"sku_l05","score":0.94}],"attempts":1,"method":"rootsift"}},{"id":16,"box":[191,1060,297,1266],"confidence":0.7919,"identity":{"state":"recognized","sku_id":"sku_l10","identity_level":"accepted","confidence":30.3948,"score":30.39,"candidates":[{"sku_id":"sku_l10","score":30.39},{"sku_id":"sku_l09","score":10.57},{"sku_id":"sku_l02","score":0.0}],"attempts":1,"method":"rootsift"},"product":{"sku_id":"sku_l10","product_name":"ピュアセレクト マヨネーズ 400g","price":222.0,"number_in":36,"number_out":15,"number_on":21,"receipt_date":"2026-09-22","expiration_date":"2026-12-28","image_url":"/v1/catalog/sku_l10/image"}},{"id":17,"box":[614,759,700,973],"confidence":0.7891,"identity":{"state":"recognized","sku_id":"sku_l09","identity_level":"accepted","confidence":2.7856,"score":2.79,"candidates":[{"sku_id":"sku_l09","score":2.79}],"attempts":1,"method":"rootsift"},"product":{"sku_id":"sku_l09","product_name":"ピュアセレクト コクうま カロリーカット65% 360g","price":209.0,"number_in":30,"number_out":13,"number_on":17,"receipt_date":"2026-09-22","expiration_date":"2026-12-28","image_url":"/v1/catalog/sku_l09/image"}},{"id":18,"box":[1249,480,1331,676],"confidence":0.7885,"identity":{"state":"recognized","sku_id":"sku_l07","identity_level":"accepted","confidence":0.3838,"score":0.38,"candidates":[{"sku_id":"sku_l03","score":0.38},{"sku_id":"sku_l11","score":0.0},{"sku_id":"sku_l10","score":0.41}],"attempts":1,"method":"rootsift"},"product":{"sku_id":"sku_l07","product_name":"丸和油脂 ラッキーマヨネーズ 200g","price":199.0,"number_in":24,"number_out":10,"number_on":14,"receipt_date":"2026-09-20","expiration_date":"2026-12-25","image_url":"/v1/catalog/sku_l07/image"}},{"id":19,"box":[298,1335,404,1558],"confidence":0.788,"identity":{"state":"recognized","sku_id":"sku_l11","identity_level":"accepted","confidence":2.8822,"score":2.88,"candidates":[{"sku_id":"sku_l11","score":2.88},{"sku_id":"sku_l05","score":3.07},{"sku_id":"sku_l01","score":3.29}],"attempts":1,"method":"rootsift"},"product":{"sku_id":"sku_l11","product_name":"キューピー ハーフマヨネーズ 400g","price":269.0,"number_in":48,"number_out":22,"number_on":26,"receipt_date":"2026-09-19","expiration_date":"2026-12-22","image_url":"/v1/catalog/sku_l11/image"}},{"id":20,"box":[836,1326,924,1535],"confidence":0.7877,"identity":{"state":"recognized","sku_id":"sku_l02","identity_level":"accepted","confidence":-1.8146,"score":-1.81,"candidates":[{"sku_id":"sku_l11","score":-1.81},{"sku_id":"sku_l05","score":1.72},{"sku_id":"sku_l01","score":1.92}],"attempts":1,"method":"rootsift"},"product":{"sku_id":"sku_l02","product_name":"キューピー アマニ油マヨネーズ 200g","price":329.0,"number_in":24,"number_out":9,"number_on":15,"receipt_date":"2026-09-18","expiration_date":"2026-12-20","image_url":"/v1/catalog/sku_l02/image"}},{"id":21,"box":[357,761,449,973],"confidence":0.7842,"identity":{"state":"recognized","sku_id":"sku_l09","identity_level":"accepted","confidence":29.7417,"score":29.74,"candidates":[{"sku_id":"sku_l09","score":29.74},{"sku_id":"sku_l10","score":4.6}],"attempts":1,"method":"rootsift"},"product":{"sku_id":"sku_l09","product_name":"ピュアセレクト コクうま カロリーカット65% 360g","price":209.0,"number_in":30,"number_out":13,"number_on":17,"receipt_date":"2026-09-22","expiration_date":"2026-12-28","image_url":"/v1/catalog/sku_l09/image"}},{"id":22,"box":[1319,1068,1389,1240],"confidence":0.7839,"identity":{"state":"unrecognized","sku_id":null,"identity_level":"rejected","confidence":0.0,"score":0.0,"candidates":[],"attempts":1,"method":"rootsift"}},{"id":23,"box":[0,751,108,977],"confidence":0.7835,"identity":{"state":"unrecognized","sku_id":null,"identity_level":"rejected","confidence":0.0,"score":0.0,"candidates":[],"attempts":1,"method":"rootsift"}},{"id":24,"box":[494,1622,589,1821],"confidence":0.7814,"identity":{"state":"recognized","sku_id":"sku_l07","identity_level":"accepted","confidence":6.4614,"score":6.46,"candidates":[{"sku_id":"sku_l03","score":6.46},{"sku_id":"sku_l10","score":0.0},{"sku_id":"sku_l09","score":0.6}],"attempts":1,"method":"rootsift"},"product":{"sku_id":"sku_l07","product_name":"丸和油脂 ラッキーマヨネーズ 200g","price":199.0,"number_in":24,"number_out":10,"number_on":14,"receipt_date":"2026-09-20","expiration_date":"2026-12-25","image_url":"/v1/catalog/sku_l07/image"}},{"id":25,"box":[704,763,791,973],"confidence":0.7787,"identity":{"state":"recognized","sku_id":"sku_l09","identity_level":"accepted","confidence":28.5119,"score":28.51,"candidates":[{"sku_id":"sku_l09","score":28.51},{"sku_id":"sku_l10","score":2.63}],"attempts":1,"method":"rootsift"},"product":{"sku_id":"sku_l09","product_name":"ピュアセレクト コクうま カロリーカット65% 360g","price":209.0,"number_in":30,"number_out":13,"number_on":17,"receipt_date":"2026-09-22","expiration_date":"2026-12-28","image_url":"/v1/catalog/sku_l09/image"}},{"id":26,"box":[871,466,945,674],"confidence":0.7771,"identity":{"state":"needs_confirmation","sku_id":null,"identity_level":"unknown","confidence":1.7039,"score":1.7,"candidates":[{"sku_id":"sku_l03","score":1.7}],"attempts":1,"method":"rootsift"}},{"id":27,"box":[683,454,774,672],"confidence":0.7766,"identity":{"state":"recognized","sku_id":"sku_l06","identity_level":"accepted","confidence":0.0,"score":0.0,"candidates":[{"sku_id":"sku_l06","score":0.0},{"sku_id":"sku_l02","score":0.15},{"sku_id":"sku_l09","score":0.71}],"attempts":1,"method":"rootsift"},"product":{"sku_id":"sku_l06","product_name":"キューピー フィッテ 210g","price":379.0,"number_in":18,"number_out":7,"number_on":11,"receipt_date":"2026-09-20","expiration_date":"2026-12-25","image_url":"/v1/catalog/sku_l06/image"}},{"id":28,"box":[1313,1835,1397,1999],"confidence":0.7753,"identity":{"state":"needs_confirmation","sku_id":null,"identity_level":"unknown","confidence":0.0,"score":0.0,"candidates":[{"sku_id":"sku_l01","score":0.0},{"sku_id":"sku_l02","score":0.0},{"sku_id":"sku_l03","score":0.0}],"attempts":1,"method":"rootsift"}},{"id":29,"box":[1266,1337,1334,1516],"confidence":0.7745,"identity":{"state":"unrecognized","sku_id":null,"identity_level":"rejected","confidence":0.0,"score":0.0,"candidates":[],"attempts":1,"method":"rootsift"}},{"id":30,"box":[641,126,732,337],"confidence":0.7745,"identity":{"state":"needs_confirmation","sku_id":null,"identity_level":"ambiguous","confidence":0.6533,"score":0.65,"candidates":[{"sku_id":"sku_l09","score":0.65},{"sku_id":"sku_l03","score":0.0},{"sku_id":"sku_l02","score":0.37}],"attempts":1,"method":"rootsift"}},{"id":31,"box":[318,1628,405,1829],"confidence":0.7743,"identity":{"state":"needs_confirmation","sku_id":null,"identity_level":"unknown","confidence":-8.7679,"score":-8.77,"candidates":[{"sku_id":"sku_l10","score":-8.77},{"sku_id":"sku_l03","score":3.99},{"sku_id":"sku_l02","score":2.58}],"attempts":1,"method":"rootsift"}},{"id":32,"box":[930,1324,1018,1532],"confidence":0.7738,"identity":{"state":"recognized","sku_id":"sku_l11","identity_level":"accepted","confidence":2.4097,"score":2.41,"candidates":[{"sku_id":"sku_l11","score":2.41},{"sku_id":"sku_l09","score":1.04},{"sku_id":"sku_l01","score":0.46}],"attempts":1,"method":"rootsift"},"product":{"sku_id":"sku_l11","product_name":"キューピー ハーフマヨネーズ 400g","price":269.0,"number_in":48,"number_out":22,"number_on":26,"receipt_date":"2026-09-19","expiration_date":"2026-12-22","image_url":"/v1/catalog/sku_l11/image"}},{"id":33,"box":[60,1374,163,1560],"confidence":0.7698,"identity":{"state":"needs_confirmation","sku_id":null,"identity_level":"unknown","confidence":0.0,"score":0.0,"candidates":[{"sku_id":"sku_l01","score":0.0},{"sku_id":"sku_l02","score":0.0},{"sku_id":"sku_l03","score":0.0}],"attempts":1,"method":"rootsift"}},{"id":34,"box":[542,1060,628,1251],"confidence":0.7684,"identity":{"state":"recognized","sku_id":"sku_l10","identity_level":"accepted","confidence":15.1336,"score":15.13,"candidates":[{"sku_id":"sku_l10","score":15.13},{"sku_id":"sku_l09","score":2.87},{"sku_id":"sku_l02","score":0.86}],"attempts":1,"method":"rootsift"},"product":{"sku_id":"sku_l10","product_name":"ピュアセレクト マヨネーズ 400g","price":222.0,"number_in":36,"number_out":15,"number_on":21,"receipt_date":"2026-09-22","expiration_date":"2026-12-28","image_url":"/v1/catalog/sku_l10/image"}},{"id":35,"box":[382,72,467,324],"confidence":0.7682,"identity":{"state":"recognized","sku_id":"sku_l01","identity_level":"accepted","confidence":9.5444,"score":9.54,"candidates":[{"sku_id":"sku_l01","score":9.54},{"sku_id":"sku_l05","score":0.51},{"sku_id":"sku_l11","score":1.15}],"attempts":1,"method":"rootsift"},"product":{"sku_id":"sku_l01","product_name":"キューピー エッグケア 305g","price":349.0,"number_in":36,"number_out":12,"number_on":24,"receipt_date":"2026-09-18","expiration_date":"2026-12-20","image_url":"/v1/catalog/sku_l01/image"}},{"id":36,"box":[736,123,817,339],"confidence":0.7672,"identity":{"state":"recognized","sku_id":"sku_l02","identity_level":"accepted","confidence":2.3454,"score":2.35,"candidates":[{"sku_id":"sku_l02","score":2.35},{"sku_id":"sku_l11","score":0.0},{"sku_id":"sku_l01","score":-0.54}],"attempts":1,"method":"rootsift"},"product":{"sku_id":"sku_l02","product_name":"キューピー アマニ油マヨネーズ 200g","price":329.0,"number_in":24,"number_out":9,"number_on":15,"receipt_date":"2026-09-18","expiration_date":"2026-12-20","image_url":"/v1/catalog/sku_l02/image"}},{"id":37,"box":[1285,794,1359,972],"confidence":0.7664,"identity":{"state":"unrecognized","sku_id":null,"identity_level":"rejected","confidence":0.0,"score":0.0,"candidates":[],"attempts":1,"method":"rootsift"}},{"id":38,"box":[258,758,352,976],"confidence":0.7625,"identity":{"state":"recognized","sku_id":"sku_l09","identity_level":"accepted","confidence":27.9331,"score":27.93,"candidates":[{"sku_id":"sku_l09","score":27.93},{"sku_id":"sku_l10","score":2.97}],"attempts":1,"method":"rootsift"},"product":{"sku_id":"sku_l09","product_name":"ピュアセレクト コクうま カロリーカット65% 360g","price":209.0,"number_in":30,"number_out":13,"number_on":17,"receipt_date":"2026-09-22","expiration_date":"2026-12-28","image_url":"/v1/catalog/sku_l09/image"}},{"id":39,"box":[1337,1335,1403,1514],"confidence":0.7611,"identity":{"state":"needs_confirmation","sku_id":null,"identity_level":"unknown","confidence":1.0,"score":1.0,"candidates":[{"sku_id":"sku_l09","score":1.0},{"sku_id":"sku_l01","score":0.0},{"sku_id":"sku_l02","score":0.0}],"attempts":1,"method":"rootsift"}},{"id":40,"box":[977,765,1067,974],"confidence":0.7601,"identity":{"state":"recognized","sku_id":"sku_l09","identity_level":"accepted","confidence":23.081,"score":23.08,"candidates":[{"sku_id":"sku_l09","score":23.08},{"sku_id":"sku_l10","score":3.99}],"attempts":1,"method":"rootsift"},"product":{"sku_id":"sku_l09","product_name":"ピュアセレクト コクうま カロリーカット65% 360g","price":209.0,"number_in":30,"number_out":13,"number_on":17,"receipt_date":"2026-09-22","expiration_date":"2026-12-28","image_url":"/v1/catalog/sku_l09/image"}},{"id":41,"box":[1049,158,1138,348],"confidence":0.7591,"identity":{"state":"recognized","sku_id":"sku_l03","identity_level":"accepted","confidence":18.3912,"score":18.39,"candidates":[{"sku_id":"sku_l03","score":18.39},{"sku_id":"sku_l11","score":-1.44},{"sku_id":"sku_l05","score":-1.03}],"attempts":1,"method":"rootsift"},"product":{"sku_id":"sku_l03","product_name":"キューピー からしマヨネーズ 200g","price":219.0,"number_in":30,"number_out":14,"number_on":16,"receipt_date":"2026-09-18","expiration_date":"2026-12-20","image_url":"/v1/catalog/sku_l03/image"}},{"id":42,"box":[583,458,678,672],"confidence":0.7591,"identity":{"state":"recognized","sku_id":"sku_l06","identity_level":"accepted","confidence":-1.8016,"score":-1.8,"candidates":[{"sku_id":"sku_l06","score":-1.8},{"sku_id":"sku_l01","score":0.49},{"sku_id":"sku_l05","score":0.11}],"attempts":1,"method":"rootsift"},"product":{"sku_id":"sku_l06","product_name":"キューピー フィッテ 210g","price":379.0,"number_in":18,"number_out":7,"number_on":11,"receipt_date":"2026-09-20","expiration_date":"2026-12-25","image_url":"/v1/catalog/sku_l06/image"}},{"id":43,"box":[1363,794,1440,973],"confidence":0.7586,"identity":{"state":"unrecognized","sku_id":null,"identity_level":"rejected","confidence":0.0,"score":0.0,"candidates":[],"attempts":1,"method":"rootsift"}},{"id":44,"box":[1216,1839,1309,2000],"confidence":0.7578,"identity":{"state":"needs_confirmation","sku_id":null,"identity_level":"unknown","confidence":0.0,"score":0.0,"candidates":[{"sku_id":"sku_l01","score":0.0},{"sku_id":"sku_l02","score":0.0},{"sku_id":"sku_l03","score":0.0}],"attempts":1,"method":"rootsift"}},{"id":45,"box":[1190,1331,1262,1521],"confidence":0.7573,"identity":{"state":"needs_confirmation","sku_id":null,"identity_level":"unknown","confidence":0.0,"score":0.0,"candidates":[{"sku_id":"sku_l01","score":0.0},{"sku_id":"sku_l02","score":0.0},{"sku_id":"sku_l03","score":0.0}],"attempts":1,"method":"rootsift"}},{"id":46,"box":[593,1619,679,1815],"confidence":0.757,"identity":{"state":"needs_confirmation","sku_id":null,"identity_level":"ambiguous","confidence":8.8561,"score":8.86,"candidates":[{"sku_id":"sku_l09","score":8.86},{"sku_id":"sku_l11","score":-1.5},{"sku_id":"sku_l05","score":-2.88}],"attempts":1,"method":"rootsift"}},{"id":47,"box":[472,64,570,328],"confidence":0.7563,"identity":{"state":"recognized","sku_id":"sku_l01","identity_level":"accepted","confidence":13.4109,"score":13.41,"candidates":[{"sku_id":"sku_l01","score":13.41},{"sku_id":"sku_l11","score":1.54},{"sku_id":"sku_l05","score":2.17}],"attempts":1,"method":"rootsift"},"product":{"sku_id":"sku_l01","product_name":"キューピー エッグケア 305g","price":349.0,"number_in":36,"number_out":12,"number_on":24,"receipt_date":"2026-09-18","expiration_date":"2026-12-20","image_url":"/v1/catalog/sku_l01/image"}},{"id":48,"box":[107,1630,199,1844],"confidence":0.7531,"identity":{"state":"needs_confirmation","sku_id":null,"identity_level":"unknown","confidence":0.0,"score":0.0,"candidates":[{"sku_id":"sku_l01","score":0.0},{"sku_id":"sku_l02","score":0.0},{"sku_id":"sku_l03","score":0.0}],"attempts":1,"method":"rootsift"}},{"id":49,"box":[1103,494,1176,676],"confidence":0.7496,"identity":{"state":"recognized","sku_id":"sku_l07","identity_level":"accepted","confidence":0.0,"score":0.0,"candidates":[{"sku_id":"sku_l10","score":0.0},{"sku_id":"sku_l09","score":0.32},{"sku_id":"sku_l03","score":1.32}],"attempts":1,"method":"rootsift"},"product":{"sku_id":"sku_l07","product_name":"丸和油脂 ラッキーマヨネーズ 200g","price":199.0,"number_in":24,"number_out":10,"number_on":14,"receipt_date":"2026-09-20","expiration_date":"2026-12-25","image_url":"/v1/catalog/sku_l07/image"}},{"id":50,"box":[1024,493,1098,676],"confidence":0.7487,"identity":{"state":"recognized","sku_id":"sku_l07","identity_level":"accepted","confidence":0.0,"score":0.0,"candidates":[{"sku_id":"sku_l01","score":0.0},{"sku_id":"sku_l10","score":0.0},{"sku_id":"sku_l03","score":0.0}],"attempts":1,"method":"rootsift"},"product":{"sku_id":"sku_l07","product_name":"丸和油脂 ラッキーマヨネーズ 200g","price":199.0,"number_in":24,"number_out":10,"number_on":14,"receipt_date":"2026-09-20","expiration_date":"2026-12-25","image_url":"/v1/catalog/sku_l07/image"}},{"id":51,"box":[519,759,608,974],"confidence":0.7473,"identity":{"state":"recognized","sku_id":"sku_l09","identity_level":"accepted","confidence":25.375,"score":25.37,"candidates":[{"sku_id":"sku_l09","score":25.37},{"sku_id":"sku_l10","score":1.66}],"attempts":1,"method":"rootsift"},"product":{"sku_id":"sku_l09","product_name":"ピュアセレクト コクうま カロリーカット65% 360g","price":209.0,"number_in":30,"number_out":13,"number_on":17,"receipt_date":"2026-09-22","expiration_date":"2026-12-28","image_url":"/v1/catalog/sku_l09/image"}},{"id":52,"box":[1199,1050,1280,1247],"confidence":0.7462,"identity":{"state":"recognized","sku_id":"sku_l10","identity_level":"accepted","confidence":9.8049,"score":9.8,"candidates":[{"sku_id":"sku_l10","score":9.8},{"sku_id":"sku_l09","score":6.31}],"attempts":1,"method":"rootsift"},"product":{"sku_id":"sku_l10","product_name":"ピュアセレクト マヨネーズ 400g","price":222.0,"number_in":36,"number_out":15,"number_on":21,"receipt_date":"2026-09-22","expiration_date":"2026-12-28","image_url":"/v1/catalog/sku_l10/image"}},{"id":53,"box":[878,1055,968,1246],"confidence":0.7453,"identity":{"state":"recognized","sku_id":"sku_l10","identity_level":"accepted","confidence":10.6478,"score":10.65,"candidates":[{"sku_id":"sku_l10","score":10.65},{"sku_id":"sku_l09","score":4.16},{"sku_id":"sku_l02","score":1.27}],"attempts":1,"method":"rootsift"},"product":{"sku_id":"sku_l10","product_name":"ピュアセレクト マヨネーズ 400g","price":222.0,"number_in":36,"number_out":15,"number_on":21,"receipt_date":"2026-09-22","expiration_date":"2026-12-28","image_url":"/v1/catalog/sku_l10/image"}},{"id":54,"box":[1143,144,1228,353],"confidence":0.7444,"identity":{"state":"recognized","sku_id":"sku_l03","identity_level":"accepted","confidence":6.164,"score":6.16,"candidates":[{"sku_id":"sku_l03","score":6.16},{"sku_id":"sku_l01","score":1.08},{"sku_id":"sku_l11","score":-0.69}],"attempts":1,"method":"rootsift"},"product":{"sku_id":"sku_l03","product_name":"キューピー からしマヨネーズ 200g","price":219.0,"number_in":30,"number_out":14,"number_on":16,"receipt_date":"2026-09-18","expiration_date":"2026-12-20","image_url":"/v1/catalog/sku_l03/image"}},{"id":55,"box":[959,160,1044,349],"confidence":0.744,"identity":{"state":"recognized","sku_id":"sku_l03","identity_level":"accepted","confidence":5.3952,"score":5.4,"candidates":[{"sku_id":"sku_l03","score":5.4},{"sku_id":"sku_l11","score":-0.73},{"sku_id":"sku_l05","score":0.52}],"attempts":1,"method":"rootsift"},"product":{"sku_id":"sku_l03","product_name":"キューピー からしマヨネーズ 200g","price":219.0,"number_in":30,"number_out":14,"number_on":16,"receipt_date":"2026-09-18","expiration_date":"2026-12-20","image_url":"/v1/catalog/sku_l03/image"}},{"id":56,"box":[949,471,1020,674],"confidence":0.7417,"identity":{"state":"recognized","sku_id":"sku_l07","identity_level":"accepted","confidence":0.8852,"score":0.89,"candidates":[{"sku_id":"sku_l03","score":0.89},{"sku_id":"sku_l02","score":0.0},{"sku_id":"sku_l10","score":1.06}],"attempts":1,"method":"rootsift"},"product":{"sku_id":"sku_l07","product_name":"丸和油脂 ラッキーマヨネーズ 200g","price":199.0,"number_in":24,"number_out":10,"number_on":14,"receipt_date":"2026-09-20","expiration_date":"2026-12-25","image_url":"/v1/catalog/sku_l07/image"}},{"id":57,"box":[409,1626,491,1825],"confidence":0.7399,"identity":{"state":"needs_confirmation","sku_id":null,"identity_level":"ambiguous","confidence":3.0062,"score":3.01,"candidates":[{"sku_id":"sku_l09","score":3.01},{"sku_id":"sku_l03","score":0.33},{"sku_id":"sku_l02","score":0.0}],"attempts":1,"method":"rootsift"}},{"id":58,"box":[270,426,366,664],"confidence":0.7388,"identity":{"state":"recognized","sku_id":"sku_l05","identity_level":"accepted","confidence":24.2326,"score":24.23,"candidates":[{"sku_id":"sku_l05","score":24.23},{"sku_id":"sku_l09","score":1.15}],"attempts":1,"method":"rootsift"},"product":{"sku_id":"sku_l05","product_name":"キューピー ゼロ ノンコレステロール 310g","price":269.0,"number_in":24,"number_out":11,"number_on":13,"receipt_date":"2026-09-20","expiration_date":"2026-12-25","image_url":"/v1/catalog/sku_l05/image"}},{"id":59,"box":[1375,152,1475,365],"confidence":0.7343,"identity":{"state":"unrecognized","sku_id":null,"identity_level":"rejected","confidence":0.0,"score":0.0,"candidates":[],"attempts":1,"method":"rootsift"}},{"id":60,"box":[1070,762,1134,975],"confidence":0.7294,"identity":{"state":"needs_confirmation","sku_id":null,"identity_level":"unknown","confidence":1.9889,"score":1.99,"candidates":[{"sku_id":"sku_l09","score":1.99}],"attempts":1,"method":"rootsift"}},{"id":61,"box":[1409,1336,1475,1511],"confidence":0.7285,"identity":{"state":"unrecognized","sku_id":null,"identity_level":"rejected","confidence":0.0,"score":0.0,"candidates":[],"attempts":1,"method":"rootsift"}},{"id":62,"box":[1181,499,1245,676],"confidence":0.7277,"identity":{"state":"recognized","sku_id":"sku_l07","identity_level":"accepted","confidence":1.5426,"score":1.54,"candidates":[{"sku_id":"sku_l09","score":1.54},{"sku_id":"sku_l03","score":0.39},{"sku_id":"sku_l10","score":0.53}],"attempts":1,"method":"rootsift"},"product":{"sku_id":"sku_l07","product_name":"丸和油脂 ラッキーマヨネーズ 200g","price":199.0,"number_in":24,"number_out":10,"number_on":14,"receipt_date":"2026-09-20","expiration_date":"2026-12-25","image_url":"/v1/catalog/sku_l07/image"}},{"id":63,"box":[7,1632,103,1845],"confidence":0.7205,"identity":{"state":"needs_confirmation","sku_id":null,"identity_level":"unknown","confidence":1.0,"score":1.0,"candidates":[{"sku_id":"sku_l02","score":1.0},{"sku_id":"sku_l03","score":1.0},{"sku_id":"sku_l04","score":1.0}],"attempts":1,"method":"rootsift"}},{"id":64,"box":[1083,1600,1169,1787],"confidence":0.7151,"identity":{"state":"needs_confirmation","sku_id":null,"identity_level":"ambiguous","confidence":5.4111,"score":5.41,"candidates":[{"sku_id":"sku_l09","score":5.41},{"sku_id":"sku_l11","score":-2.3},{"sku_id":"sku_l01","score":-1.07}],"attempts":1,"method":"rootsift"}},{"id":65,"box":[39,56,143,313],"confidence":0.715,"identity":{"state":"recognized","sku_id":"sku_l01","identity_level":"accepted","confidence":8.8041,"score":8.8,"candidates":[{"sku_id":"sku_l01","score":8.8},{"sku_id":"sku_l03","score":0.96},{"sku_id":"sku_l05","score":1.48}],"attempts":1,"method":"rootsift"},"product":{"sku_id":"sku_l01","product_name":"キューピー エッグケア 305g","price":349.0,"number_in":36,"number_out":12,"number_on":24,"receipt_date":"2026-09-18","expiration_date":"2026-12-20","image_url":"/v1/catalog/sku_l01/image"}},{"id":66,"box":[1443,794,1500,973],"confidence":0.7147,"identity":{"state":"unrecognized","sku_id":null,"identity_level":"rejected","confidence":0.0,"score":0.0,"candidates":[],"attempts":1,"method":"rootsift"}},{"id":67,"box":[167,420,265,662],"confidence":0.7126,"identity":{"state":"recognized","sku_id":"sku_l05","identity_level":"accepted","confidence":13.5212,"score":13.52,"candidates":[{"sku_id":"sku_l05","score":13.52},{"sku_id":"sku_l09","score":1.3},{"sku_id":"sku_l10","score":0.43}],"attempts":1,"method":"rootsift"},"product":{"sku_id":"sku_l05","product_name":"キューピー ゼロ ノンコレステロール 310g","price":269.0,"number_in":24,"number_out":11,"number_on":13,"receipt_date":"2026-09-20","expiration_date":"2026-12-25","image_url":"/v1/catalog/sku_l05/image"}},{"id":68,"box":[1114,1051,1196,1247],"confidence":0.7116,"identity":{"state":"recognized","sku_id":"sku_l10","identity_level":"accepted","confidence":4.5169,"score":4.52,"candidates":[{"sku_id":"sku_l10","score":4.52},{"sku_id":"sku_l09","score":4.94}],"attempts":1,"method":"rootsift"},"product":{"sku_id":"sku_l10","product_name":"ピュアセレクト マヨネーズ 400g","price":222.0,"number_in":36,"number_out":15,"number_on":21,"receipt_date":"2026-09-22","expiration_date":"2026-12-28","image_url":"/v1/catalog/sku_l10/image"}},{"id":69,"box":[683,1617,762,1809],"confidence":0.7078,"identity":{"state":"needs_confirmation","sku_id":null,"identity_level":"ambiguous","confidence":5.6699,"score":5.67,"candidates":[{"sku_id":"sku_l03","score":5.67},{"sku_id":"sku_l09","score":0.6},{"sku_id":"sku_l01","score":0.54}],"attempts":1,"method":"rootsift"}},{"id":70,"box":[798,765,916,974],"confidence":0.7069,"identity":{"state":"recognized","sku_id":"sku_l09","identity_level":"accepted","confidence":16.5805,"score":16.58,"candidates":[{"sku_id":"sku_l09","score":16.58},{"sku_id":"sku_l10","score":2.47},{"sku_id":"sku_l03","score":0.47}],"attempts":1,"method":"rootsift"},"product":{"sku_id":"sku_l09","product_name":"ピュアセレクト コクうま カロリーカット65% 360g","price":209.0,"number_in":30,"number_out":13,"number_on":17,"receipt_date":"2026-09-22","expiration_date":"2026-12-28","image_url":"/v1/catalog/sku_l09/image"}},{"id":71,"box":[1306,1586,1388,1771],"confidence":0.7049,"identity":{"state":"unrecognized","sku_id":null,"identity_level":"rejected","confidence":0.0,"score":0.0,"candidates":[],"attempts":1,"method":"rootsift"}},{"id":72,"box":[0,1918,75,1998],"confidence":0.7043,"identity":{"state":"unrecognized","sku_id":null,"identity_level":"rejected","confidence":0.0,"score":0.0,"candidates":[],"attempts":1,"method":"rootsift"}},{"id":73,"box":[766,1612,839,1806],"confidence":0.7042,"identity":{"state":"recognized","sku_id":"sku_l03","identity_level":"accepted","confidence":4.6064,"score":4.61,"candidates":[{"sku_id":"sku_l03","score":4.61},{"sku_id":"sku_l10","score":0.0},{"sku_id":"sku_l09","score":1.67}],"attempts":1,"method":"rootsift"},"product":{"sku_id":"sku_l03","product_name":"キューピー からしマヨネーズ 200g","price":219.0,"number_in":30,"number_out":14,"number_on":16,"receipt_date":"2026-09-18","expiration_date":"2026-12-20","image_url":"/v1/catalog/sku_l03/image"}},{"id":74,"box":[1138,767,1218,973],"confidence":0.6825,"identity":{"state":"recognized","sku_id":"sku_l09","identity_level":"accepted","confidence":15.7293,"score":15.73,"candidates":[{"sku_id":"sku_l09","score":15.73},{"sku_id":"sku_l10","score":3.06}],"attempts":1,"method":"rootsift"},"product":{"sku_id":"sku_l09","product_name":"ピュアセレクト コクうま カロリーカット65% 360g","price":209.0,"number_in":30,"number_out":13,"number_on":17,"receipt_date":"2026-09-22","expiration_date":"2026-12-28","image_url":"/v1/catalog/sku_l09/image"}},{"id":75,"box":[575,137,639,330],"confidence":0.6804,"identity":{"state":"needs_confirmation","sku_id":null,"identity_level":"ambiguous","confidence":1.8197,"score":1.82,"candidates":[{"sku_id":"sku_l02","score":1.82},{"sku_id":"sku_l06","score":0.61},{"sku_id":"sku_l03","score":1.87}],"attempts":1,"method":"rootsift"}},{"id":76,"box":[822,135,909,345],"confidence":0.6792,"identity":{"state":"recognized","sku_id":"sku_l02","identity_level":"accepted","confidence":4.5356,"score":4.54,"candidates":[{"sku_id":"sku_l02","score":4.54},{"sku_id":"sku_l05","score":-0.48},{"sku_id":"sku_l06","score":0.57}],"attempts":1,"method":"rootsift"},"product":{"sku_id":"sku_l02","product_name":"キューピー アマニ油マヨネーズ 200g","price":329.0,"number_in":24,"number_out":9,"number_on":15,"receipt_date":"2026-09-18","expiration_date":"2026-12-20","image_url":"/v1/catalog/sku_l02/image"}},{"id":77,"box":[0,1379,51,1561],"confidence":0.6772,"identity":{"state":"needs_confirmation","sku_id":null,"identity_level":"unknown","confidence":0.0,"score":0.0,"candidates":[{"sku_id":"sku_l01","score":0.0},{"sku_id":"sku_l02","score":0.0},{"sku_id":"sku_l03","score":0.0}],"attempts":1,"method":"rootsift"}},{"id":78,"box":[476,446,571,669],"confidence":0.6572,"identity":{"state":"recognized","sku_id":"sku_l06","identity_level":"accepted","confidence":0.0,"score":0.0,"candidates":[{"sku_id":"sku_l06","score":0.0},{"sku_id":"sku_l11","score":0.34}],"attempts":1,"method":"rootsift"},"product":{"sku_id":"sku_l06","product_name":"キューピー フィッテ 210g","price":379.0,"number_in":18,"number_out":7,"number_on":11,"receipt_date":"2026-09-20","expiration_date":"2026-12-25","image_url":"/v1/catalog/sku_l06/image"}},{"id":79,"box":[1173,1595,1269,1783],"confidence":0.6518,"identity":{"state":"needs_confirmation","sku_id":null,"identity_level":"ambiguous","confidence":1.1466,"score":1.15,"candidates":[{"sku_id":"sku_l09","score":1.15},{"sku_id":"sku_l03","score":2.11},{"sku_id":"sku_l05","score":-1.3}],"attempts":1,"method":"rootsift"}},{"id":80,"box":[86,420,163,664],"confidence":0.6501,"identity":{"state":"recognized","sku_id":"sku_l05","identity_level":"accepted","confidence":9.1936,"score":9.19,"candidates":[{"sku_id":"sku_l05","score":9.19},{"sku_id":"sku_l11","score":0.0},{"sku_id":"sku_l01","score":0.25}],"attempts":1,"method":"rootsift"},"product":{"sku_id":"sku_l05","product_name":"キューピー ゼロ ノンコレステロール 310g","price":269.0,"number_in":24,"number_out":11,"number_on":13,"receipt_date":"2026-09-20","expiration_date":"2026-12-25","image_url":"/v1/catalog/sku_l05/image"}},{"id":81,"box":[1059,1855,1197,2000],"confidence":0.65,"identity":{"state":"needs_confirmation","sku_id":null,"identity_level":"ambiguous","confidence":0.9958,"score":1.0,"candidates":[{"sku_id":"sku_l09","score":1.0},{"sku_id":"sku_l03","score":1.24},{"sku_id":"sku_l11","score":1.78}],"attempts":1,"method":"rootsift"}},{"id":82,"box":[646,1886,786,2000],"confidence":0.6058,"identity":{"state":"needs_confirmation","sku_id":null,"identity_level":"unknown","confidence":-1.3708,"score":-1.37,"candidates":[{"sku_id":"sku_l11","score":-1.37},{"sku_id":"sku_l09","score":0.55},{"sku_id":"sku_l10","score":0.0}],"attempts":1,"method":"rootsift"}},{"id":83,"box":[790,1882,887,2000],"confidence":0.5977,"identity":{"state":"needs_confirmation","sku_id":null,"identity_level":"unknown","confidence":0.3736,"score":0.37,"candidates":[{"sku_id":"sku_l09","score":0.37}],"attempts":1,"method":"rootsift"}},{"id":84,"box":[999,1602,1078,1793],"confidence":0.5955,"identity":{"state":"recognized","sku_id":"sku_l09","identity_level":"accepted","confidence":3.5984,"score":3.6,"candidates":[{"sku_id":"sku_l09","score":3.6},{"sku_id":"sku_l05","score":0.0},{"sku_id":"sku_l02","score":0.0}],"attempts":1,"method":"rootsift"},"product":{"sku_id":"sku_l09","product_name":"ピュアセレクト コクうま カロリーカット65% 360g","price":209.0,"number_in":30,"number_out":13,"number_on":17,"receipt_date":"2026-09-22","expiration_date":"2026-12-28","image_url":"/v1/catalog/sku_l09/image"}},{"id":85,"box":[895,1862,1044,2000],"confidence":0.5853,"identity":{"state":"needs_confirmation","sku_id":null,"identity_level":"ambiguous","confidence":1.7354,"score":1.74,"candidates":[{"sku_id":"sku_l09","score":1.74},{"sku_id":"sku_l10","score":3.25},{"sku_id":"sku_l02","score":0.6}],"attempts":1,"method":"rootsift"}},{"id":86,"box":[1221,768,1281,972],"confidence":0.5795,"identity":{"state":"recognized","sku_id":"sku_l09","identity_level":"accepted","confidence":11.6778,"score":11.68,"candidates":[{"sku_id":"sku_l09","score":11.68},{"sku_id":"sku_l10","score":1.59}],"attempts":1,"method":"rootsift"},"product":{"sku_id":"sku_l09","product_name":"ピュアセレクト コクうま カロリーカット65% 360g","price":209.0,"number_in":30,"number_out":13,"number_on":17,"receipt_date":"2026-09-22","expiration_date":"2026-12-28","image_url":"/v1/catalog/sku_l09/image"}},{"id":87,"box":[452,755,514,972],"confidence":0.5725,"identity":{"state":"recognized","sku_id":"sku_l09","identity_level":"accepted","confidence":6.1334,"score":6.13,"candidates":[{"sku_id":"sku_l09","score":6.13},{"sku_id":"sku_l10","score":0.77}],"attempts":1,"method":"rootsift"},"product":{"sku_id":"sku_l09","product_name":"ピュアセレクト コクうま カロリーカット65% 360g","price":209.0,"number_in":30,"number_out":13,"number_on":17,"receipt_date":"2026-09-22","expiration_date":"2026-12-28","image_url":"/v1/catalog/sku_l09/image"}},{"id":88,"box":[1390,1602,1457,1767],"confidence":0.5715,"identity":{"state":"needs_confirmation","sku_id":null,"identity_level":"unknown","confidence":0.0,"score":0.0,"candidates":[{"sku_id":"sku_l01","score":0.0},{"sku_id":"sku_l02","score":0.0},{"sku_id":"sku_l03","score":0.0}],"attempts":1,"method":"rootsift"}},{"id":89,"box":[516,1882,591,2000],"confidence":0.5711,"identity":{"state":"needs_confirmation","sku_id":null,"identity_level":"unknown","confidence":0.0,"score":0.0,"candidates":[{"sku_id":"sku_l03","score":0.0},{"sku_id":"sku_l02","score":1.26}],"attempts":1,"method":"rootsift"}},{"id":90,"box":[82,1910,187,1999],"confidence":0.5633,"identity":{"state":"unrecognized","sku_id":null,"identity_level":"rejected","confidence":0.0,"score":0.0,"candidates":[],"attempts":1,"method":"rootsift"}},{"id":91,"box":[115,758,193,973],"confidence":0.5623,"identity":{"state":"unrecognized","sku_id":null,"identity_level":"rejected","confidence":0.0,"score":0.0,"candidates":[],"attempts":1,"method":"rootsift"}},{"id":92,"box":[1233,147,1352,356],"confidence":0.5575,"identity":{"state":"recognized","sku_id":"sku_l03","identity_level":"accepted","confidence":7.7364,"score":7.74,"candidates":[{"sku_id":"sku_l03","score":7.74},{"sku_id":"sku_l02","score":1.83},{"sku_id":"sku_l11","score":-3.28}],"attempts":1,"method":"rootsift"},"product":{"sku_id":"sku_l03","product_name":"キューピー からしマヨネーズ 200g","price":219.0,"number_in":30,"number_out":14,"number_on":16,"receipt_date":"2026-09-18","expiration_date":"2026-12-20","image_url":"/v1/catalog/sku_l03/image"}},{"id":93,"box":[199,758,255,971],"confidence":0.5513,"identity":{"state":"recognized","sku_id":"sku_l09","identity_level":"accepted","confidence":6.8671,"score":6.87,"candidates":[{"sku_id":"sku_l09","score":6.87},{"sku_id":"sku_l10","score":3.74}],"attempts":1,"method":"rootsift"},"product":{"sku_id":"sku_l09","product_name":"ピュアセレクト コクうま カロリーカット65% 360g","price":209.0,"number_in":30,"number_out":13,"number_on":17,"receipt_date":"2026-09-22","expiration_date":"2026-12-28","image_url":"/v1/catalog/sku_l09/image"}},{"id":94,"box":[910,1607,995,1796],"confidence":0.5338,"identity":{"state":"needs_confirmation","sku_id":null,"identity_level":"unknown","confidence":-2.3463,"score":-2.35,"candidates":[{"sku_id":"sku_l09","score":-2.35},{"sku_id":"sku_l06","score":0.58},{"sku_id":"sku_l02","score":2.1}],"attempts":1,"method":"rootsift"}},{"id":95,"box":[1480,1327,1500,1514],"confidence":0.5229,"identity":{"state":"unrecognized","sku_id":null,"identity_level":"rejected","confidence":0.0,"score":0.0,"candidates":[],"attempts":1,"method":"rootsift"}},{"id":96,"box":[219,1906,362,2000],"confidence":0.5163,"identity":{"state":"needs_confirmation","sku_id":null,"identity_level":"ambiguous","confidence":0.4711,"score":0.47,"candidates":[{"sku_id":"sku_l09","score":0.47},{"sku_id":"sku_l10","score":1.77}],"attempts":1,"method":"rootsift"}},{"id":97,"box":[1336,502,1421,682],"confidence":0.4831,"identity":{"state":"needs_confirmation","sku_id":null,"identity_level":"unknown","confidence":0.0,"score":0.0,"candidates":[{"sku_id":"sku_l01","score":0.0},{"sku_id":"sku_l02","score":0.0},{"sku_id":"sku_l03","score":0.0}],"attempts":1,"method":"rootsift"}},{"id":98,"box":[842,1609,909,1801],"confidence":0.4613,"identity":{"state":"recognized","sku_id":"sku_l09","identity_level":"accepted","confidence":2.4049,"score":2.4,"candidates":[{"sku_id":"sku_l09","score":2.4},{"sku_id":"sku_l01","score":-0.54},{"sku_id":"sku_l02","score":1.19}],"attempts":1,"method":"rootsift"},"product":{"sku_id":"sku_l09","product_name":"ピュアセレクト コクうま カロリーカット65% 360g","price":209.0,"number_in":30,"number_out":13,"number_on":17,"receipt_date":"2026-09-22","expiration_date":"2026-12-28","image_url":"/v1/catalog/sku_l09/image"}},{"id":99,"box":[1478,1068,1500,1242],"confidence":0.4606,"identity":{"state":"unrecognized","sku_id":null,"identity_level":"rejected","confidence":0.0,"score":0.0,"candidates":[],"attempts":1,"method":"rootsift"}},{"id":100,"box":[919,763,973,974],"confidence":0.4573,"identity":{"state":"unrecognized","sku_id":null,"identity_level":"rejected","confidence":0.0,"score":0.0,"candidates":[],"attempts":1,"method":"rootsift"}},{"id":101,"box":[1044,1054,1113,1248],"confidence":0.4573,"identity":{"state":"unrecognized","sku_id":null,"identity_level":"rejected","confidence":0.0,"score":0.0,"candidates":[],"attempts":1,"method":"rootsift"}},{"id":102,"box":[630,1055,680,1249],"confidence":0.4127,"identity":{"state":"unrecognized","sku_id":null,"identity_level":"rejected","confidence":0.0,"score":0.0,"candidates":[],"attempts":1,"method":"rootsift"}},{"id":103,"box":[363,1911,500,1999],"confidence":0.4021,"identity":{"state":"unrecognized","sku_id":null,"identity_level":"rejected","confidence":-1.0945,"score":-1.09,"candidates":[{"sku_id":"sku_l11","score":-1.09},{"sku_id":"sku_l09","score":1.31}],"attempts":1,"method":"rootsift"}},{"id":104,"box":[1461,1601,1499,1769],"confidence":0.3997,"identity":{"state":"needs_confirmation","sku_id":null,"identity_level":"unknown","confidence":1.0,"score":1.0,"candidates":[{"sku_id":"sku_l12","score":1.0},{"sku_id":"sku_l01","score":0.0},{"sku_id":"sku_l02","score":0.0}],"attempts":1,"method":"rootsift"}},{"id":105,"box":[64,1142,150,1264],"confidence":0.386,"identity":{"state":"needs_confirmation","sku_id":null,"identity_level":"unknown","confidence":1.0,"score":1.0,"candidates":[{"sku_id":"sku_l08","score":1.0},{"sku_id":"sku_l01","score":0.0},{"sku_id":"sku_l02","score":0.0}],"attempts":1,"method":"rootsift"}},{"id":106,"box":[0,472,76,662],"confidence":0.3642,"identity":{"state":"needs_confirmation","sku_id":null,"identity_level":"unknown","confidence":1.0,"score":1.0,"candidates":[{"sku_id":"sku_l08","score":1.0},{"sku_id":"sku_l01","score":0.0},{"sku_id":"sku_l02","score":0.0}],"attempts":1,"method":"rootsift"}},{"id":107,"box":[1419,0,1500,107],"confidence":0.3343,"identity":{"state":"unrecognized","sku_id":null,"identity_level":"rejected","confidence":0.0,"score":0.0,"candidates":[],"attempts":1,"method":"rootsift"}},{"id":108,"box":[214,1897,506,1998],"confidence":0.2822,"identity":{"state":"needs_confirmation","sku_id":null,"identity_level":"ambiguous","confidence":1.488,"score":1.49,"candidates":[{"sku_id":"sku_l09","score":1.49},{"sku_id":"sku_l11","score":0.55},{"sku_id":"sku_l10","score":2.22}],"attempts":1,"method":"rootsift"}},{"id":109,"box":[1482,155,1500,363],"confidence":0.2543,"identity":{"state":"unrecognized","sku_id":null,"identity_level":"rejected","confidence":0.0,"score":0.0,"candidates":[],"attempts":1,"method":"rootsift"}},{"id":110,"box":[1280,1061,1317,1244],"confidence":0.2515,"identity":{"state":"unrecognized","sku_id":null,"identity_level":"rejected","confidence":0.0,"score":0.0,"candidates":[],"attempts":1,"method":"rootsift"}}],"empty_slots":[{"id":"empty_1","box":[366,466,476,674],"width":110,"height":208,"missing_items_est":1,"center":[421,570],"row_index":2},{"id":"empty_2","box":[968,1059,1044,1247],"width":75,"height":188,"missing_items_est":1,"center":[1006,1153],"row_index":4}],"summary":{"in_view":111,"recognized":53,"needs_confirmation":36,"unrecognized":22,"detected":0,"empty_slots":2,"by_sku":[{"sku_id":"sku_l09","facings":13},{"sku_id":"sku_l10","facings":9},{"sku_id":"sku_l07","facings":6},{"sku_id":"sku_l01","facings":5},{"sku_id":"sku_l03","facings":5},{"sku_id":"sku_l11","facings":5},{"sku_id":"sku_l06","facings":4},{"sku_id":"sku_l02","facings":3},{"sku_id":"sku_l05","facings":3}]},"timing_ms":{"detect":31.02,"classify":2273.9,"total":2304.93}} \ No newline at end of file diff --git a/recognization/data/evaluations/2026-09-29-session/server-smoke/summary.json b/recognization/data/evaluations/2026-09-29-session/server-smoke/summary.json index 912a56e..000b829 100644 --- a/recognization/data/evaluations/2026-09-29-session/server-smoke/summary.json +++ b/recognization/data/evaluations/2026-09-29-session/server-smoke/summary.json @@ -2,10 +2,12 @@ "endpoint": "/v1/recognize", "image": "add/image6.jpg", "catalog": "stock-lopia-clean", + "catalog_version": "d0f835fc7826", "detections": 111, "named": 53, "named_without_product_info": 0, "view_suffixed_ids": [], + "elapsed_s": 2.58, "by_sku": { "sku_l10": 9, "sku_l11": 5, @@ -16,5 +18,6 @@ "sku_l02": 3, "sku_l03": 5, "sku_l05": 3 - } + }, + "note": "After the l12 rename. l12 is not named: it has no enrolled view, which is the documented catalog gap." } \ No newline at end of file diff --git a/recognization/docs/research/2026-09-28-recognition-architecture/DECISION.md b/recognization/docs/research/2026-09-28-recognition-architecture/DECISION.md index 79f4ab8..c7107e8 100644 --- a/recognization/docs/research/2026-09-28-recognition-architecture/DECISION.md +++ b/recognization/docs/research/2026-09-28-recognition-architecture/DECISION.md @@ -95,7 +95,7 @@ verification → calibrated open-set decision → temporal accumulation. | 8 | Bug #1, template IDs vs SKU IDs | R, and **still live in production** | Fixed only in the evaluator. The live path accepts `sku_l01_1`, then finds no catalog row for it (F-02). | | 9 | Hybrid 80 % > matcher 70 % | X | About one facing, on wrong labels. | | 10 | Bug #2, unscaled boxes caused the live collapse | R | Reproduced on *both* catalogs: unscaled boxes give 11–17 %, scaled boxes give 76–97 %. The confound is resolved. The coordinate fix, not the catalog cleanup, removed the collapse. | -| 11 | Clean packshots are a dramatic improvement | R, with a caveat | True against the leak-free baseline. The l06 packshot shows a superseded package design (F-12); the l09 packshot is only 305 px tall. | +| 11 | Clean packshots are a dramatic improvement | R, with a caveat | True against the leak-free baseline. The l06 packshot shows a superseded package design (F-12). The l09 packshot was 305 px tall at audit time and has since been replaced by a 1000x1000 one, so that caveat no longer applies to the shipped catalog. | | 12 | Bug #3, the reject gate inside the shortlist | R | Hybrid-49 %-vs-20 % result is invalid. | | 13 | DINO top-K sweep: recall 71 %/100 %, K doesn't hurt the matcher | C | On a 7-SKU catalog, top-5 is 71 % of the catalog; that sweep can't speak to retrieval. Reproduced on v2: top-3 recall 79–81 %, top-5 95–98 %. | | 14 | Matcher ~8 ms vs hybrid ~45 ms | R, with a correction | The hybrid lane scores the **full** catalog and then filters (`eval_identity.py` `HybridLane.rank`), so its latency is DINO + full matcher by construction. The measurement is honest; it doesn't describe a real retrieval design. | @@ -575,10 +575,10 @@ running the real server against `add/image6.jpg`. | F-12 l06 current package | **Blocked on a capture.** Kewpie serves the superseded design for JAN 4901577083600, so the current package cannot be enrolled from the official URL. The text lane ranks l06 first on all 4 shelf facings but abstains below the accept line, so no wrong label is shown. | | F-13 stale status / swallowed exception | Done. The fixture returns the matcher's `(scores, details)` shape; zero swallowed callback exceptions. | | F-09 re-evaluation with provisional labels | **Postponed as §8 specifies** — it is a dependency of E-7, which needs Tier-3 recordings that do not exist yet. | -| Enrollment protocol: versioning | Done. Every eval report records `catalog_hash`, `labels_hash`, `image_hash`, `code_revision`. The catalog hash covers the CSV bytes and the view names, not image bytes. | +| Enrollment protocol: versioning | Done. Every eval report records `catalog_hash`, `labels_hash`, `image_hash`, `code_revision`. The catalog hash covers the CSV bytes and each view's bytes, not just the view names: names alone let a different packshot be swapped in under the same name with the hash unchanged. | | Enrollment protocol: sibling flag | Done. `rebuild_catalog` reports cross-SKU near-duplicates as text-discriminated siblings (cosine ≥ 0.98, same shape). Reported, not refused: they are legitimately different products, and only package text separates them. | | Enrollment protocol: completeness rule | Done. `--shelf-tags` turns it into a `live_ready` verdict; without the shelf's SKU list the verdict is `unknown`, not a guess. | -| Enrollment protocol: pyramid floor | Done. `rebuild_catalog` reports views under 800 px tall. The clean catalog's l09 view is 305 px, which is the documented defect; the check names it so the re-sourcing has a target. | +| Enrollment protocol: pyramid floor | Done. `rebuild_catalog` reports views under 800 px tall. Every view in `stock-lopia-clean` is now 1000 px tall, so the check is clean on the shipped catalog; it still names any view that regresses. | Two defects found while wiring the lanes into the live path, both fixed: `live` re-sorted the local lane's scores by value, which discards the lane's own @@ -605,36 +605,40 @@ scores, always answered. Every "vs Van" claim in this record uses that row. --labels eval/labels/image6.json \ --image add/image6.jpg --lanes van,matcher,local --live - full resolution — 109 scored facings (61 in-catalog, 48 unknown) + full resolution — 109 scored facings (64 in-catalog, 45 unknown) lane catalog identity decision end-to-end precision false acc - van 69% 76% 76% 52% 29% 77 - matcher 69% 76% 71% 49% 39% 46 HUB! - local 69% 93% 86% 59% 88% 5 + van 83% 77% 77% 64% 38% 68 + matcher 83% 77% 74% 61% 51% 38 + local 83% 92% 81% 75% 91% 5 - live resolution — 109 scored facings (61 in-catalog, 48 unknown) + live resolution — 109 scored facings (64 in-catalog, 45 unknown) lane catalog identity decision end-to-end precision false acc - van 69% 83% 83% 57% 32% 74 - matcher 69% 83% 76% 52% 43% 43 - local 69% 86% 81% 56% 97% 1 + van 83% 79% 79% 66% 39% 67 + matcher 83% 79% 74% 61% 54% 33 + local 83% 85% 60% 59% 93% 3 Against Van's real contract the local lane wins both axes at both resolutions: -59% at 88% against 52% at 29% (full), and 56% at 97% against 57% at 32% (live). -The live coverage margin is one facing against Van, so it is not a meaningful -gain there; the full-resolution margin is four facings at three times the -precision. +75% at 91% against 64% at 38% (full), and 59% at 93% against 66% at 39% +(live). At live resolution Van answers more facings correctly - 66% against +59% - and is wrong on 67 of them to the local lane's 3. That is the trade the +decision makes deliberately: coverage is a gate (G1) and precision is not +negotiable, so the lane abstains where Van guesses. **One accept line serves both resolutions.** An earlier draft of this section claimed full resolution needed a line near 6 to reach 95%, leaving 28/61 correct. That was measured before the reference-upscaling and text-signature fixes and no longer holds. The separation is clean at both scales: correct facings sit at p25 2.07 (full) and 2.87 (live), wrong ones at p75 1.00 and -1.66, so 2.0 is the boundary in both. Sweeping it at full resolution: +1.66, so 2.0 is the boundary in both. Sweeping it at full resolution, through +the evaluator (`--accept`, columns as it defines them: end-to-end is +accepted-and-correct over the 64 in-catalog facings, precision is over the +facings it answered): - accept correct precision false accepts - 2.0 59% 88% 5 - 3.0 52% 91% 3 - 4.0 49% 94% 2 - 6.0 43% 96% 1 + accept end-to-end precision false accepts + 2.0 75% 91% 5 + 3.0 67% 91% 4 + 4.0 67% 93% 3 + 6.0 62% 95% 2 The line is still provisional - it is tuned on Tier 1 and needs Tier-2 calibration - but it does not need to differ by input path, and the design @@ -685,15 +689,21 @@ Two live-path bugs surfaced while measuring this, both fixed: whole pan-distance from the product it names. It now stamps the current frame and anchors to the raw detection box rather than the smoothed track box, which lags a pan by about one step. -- **The reference lane upscaled views smaller than a pyramid level.** - `sku_l09.jpg` is 407x305, so its 400 px level was a 305->400 blow-up: a blur - with no high-frequency detail to disagree with, which won 31 of 54 crops on - the shelf it was cut from. A view is now used only at the levels it has. +- **The reference lane upscaled views smaller than a pyramid level.** The + `sku_l09.jpg` enrolled at the time was 407x305, so its 400 px level was a + 305->400 blow-up: a blur with no high-frequency detail to disagree with, + which won 31 of 54 crops on the shelf it was cut from. A view is now used + only at the levels it has. The guard is in `LocalLane._load` and still + applies; the file itself has since been replaced by a 1000x1000 packshot, + which is why the current run no longer exercises it. -Coverage is still a gate (G1). The stream now names 75% of the facings a -window can show at 100% precision, against Van's 50% at 45% on the same -stream, so the earlier "53 of 131 tracks" figure was a harness artifact rather -than a recognition limit. +Coverage is still a gate (G1). Four 20 s pan replays of `add/image6.jpg` +through the shipped lane name 63-70% of the in-catalog facings a window can +show, at 76-84% precision (`score_stream.py` over +`data/evaluations/2026-09-29-session/stream/fin_*.json`). Van's contract on the +same stream answers more and is wrong far more often, which is the trade the +decision makes. The earlier "53 of 131 tracks" figure was a harness artifact +rather than a recognition limit. The shipped default scale now has test coverage. `make_session` builds only `matcher`-backend engines, so `scale == "local"` in `_on_classified` never ran @@ -768,9 +778,12 @@ were measured against and are shifted before the IoU test, so a pan no longer slides a stale box onto its neighbour. The text lane is resolved before the session lock is taken, removing a lock-ordering hazard against its build lock. -Stream, 20 s pan, four runs: 71-79% coverage at 76-84% precision, against -62-71% at 73-75% before. Still-image endpoint: 54 named detections in 2.2 s, -against 41 before. +Stream, 20 s pan, four runs: 63-70% coverage at 76-84% precision. The earlier +"71-79% at 76-84%" was measured before the tare facings were relabelled from +unknown to `sku_l12` and before the size gate landed; the denominator moved +from 61 in-catalog facings to 64, and the size gate trades a little coverage +for precision. Still-image endpoint: 53 named detections in 2.6 s, against 41 +before. ### Catalog corrections 2026-09-29