fix(recognition): calibrate the accept lines against unrelated shelves
Every threshold was fitted on image6, where each crop is a facing of a product the shelf holds, so the set could not price a false accept. Measured on 4580 crops from 64 unrelated Wikimedia shelf photos at the shipped configuration: LOCAL_ACCEPT 2.0 -> 4.0 false accepts 60 (1.31%) -> 3 (0.07%) TEXT_MIN_SHARED 2 -> 4 the two-bigram reads that named sku_l12 via おい/いし On image6 that is 44 shown / 42 correct at full resolution - 95.5% precision, 65.6% coverage - the highest-coverage cell of the joint sweep that passes both G2 (>= 95%) and G3 (<= 1%). At live resolution 56% end-to-end at 97%. The text lane's evidence floor gates its answer only: zeroing the row's score would reorder the ranking and make the margin gate compare a different pair than the one it was measured on. code/sweep_accept_lines.py sweeps both axes jointly through the shipped DecisionPolicy; the earlier table swept one axis while pinning the other, so its baseline rows were not the old line.
This commit is contained in:
parent
4ce41ecb17
commit
5094b5f6ca
12 changed files with 815 additions and 195 deletions
|
|
@ -2,325 +2,338 @@
|
|||
"dataset": "wikimedia-commons",
|
||||
"catalog": "stock-lopia-clean",
|
||||
"note": "Unrelated shelves: every accept is a false accept by construction.",
|
||||
"images": 45,
|
||||
"detections": 2133,
|
||||
"false_accepts": 7,
|
||||
"false_accept_rate": 0.0033,
|
||||
"config": {
|
||||
"frame_long_side": 1280,
|
||||
"detect_conf": 0.1,
|
||||
"local_accept": 4.0,
|
||||
"text_min_shared": 4
|
||||
},
|
||||
"images": 46,
|
||||
"detections": 3504,
|
||||
"false_accepts": 3,
|
||||
"false_accept_rate": 0.0009,
|
||||
"rows": [
|
||||
{
|
||||
"file": "000_1920px-198円_中華弁当_2016_(25800617695).jpg",
|
||||
"title": "File:198円 中華弁当 2016 (25800617695).jpg",
|
||||
"detections": 2,
|
||||
"detections": 14,
|
||||
"false_accepts": 0,
|
||||
"ms": 1774
|
||||
"ms": 1669
|
||||
},
|
||||
{
|
||||
"file": "001_1920px-2011年4月の牛乳_(5588310773).jpg",
|
||||
"title": "File:2011年4月の牛乳 (5588310773).jpg",
|
||||
"detections": 78,
|
||||
"false_accepts": 1,
|
||||
"ms": 4553
|
||||
"detections": 105,
|
||||
"false_accepts": 0,
|
||||
"ms": 3225
|
||||
},
|
||||
{
|
||||
"file": "002_1920px-20140909-0252_Costa_Mesa_Mitsuwa.JPG",
|
||||
"title": "File:20140909-0252 Costa Mesa Mitsuwa.JPG",
|
||||
"detections": 95,
|
||||
"detections": 121,
|
||||
"false_accepts": 0,
|
||||
"ms": 3025
|
||||
"ms": 2674
|
||||
},
|
||||
{
|
||||
"file": "003_1920px-Aomori_Home_(4721758999).jpg",
|
||||
"title": "File:Aomori Home (4721758999).jpg",
|
||||
"detections": 76,
|
||||
"detections": 97,
|
||||
"false_accepts": 0,
|
||||
"ms": 3634
|
||||
"ms": 3333
|
||||
},
|
||||
{
|
||||
"file": "004_1920px-Asakusa_15_-_making_rice_crackers_the_old_way_(155797.jpg",
|
||||
"title": "File:Asakusa 15 - making rice crackers the old way (15579727827).jpg",
|
||||
"detections": 14,
|
||||
"detections": 40,
|
||||
"false_accepts": 0,
|
||||
"ms": 162
|
||||
"ms": 456
|
||||
},
|
||||
{
|
||||
"file": "005_1920px-Asakusa_16_-_making_rice_crackers_the_old_way_(155794.jpg",
|
||||
"title": "File:Asakusa 16 - making rice crackers the old way (15579472088).jpg",
|
||||
"detections": 3,
|
||||
"detections": 30,
|
||||
"false_accepts": 0,
|
||||
"ms": 131
|
||||
"ms": 537
|
||||
},
|
||||
{
|
||||
"file": "006_1920px-Asakusa_17_-_making_rice_crackers_the_old_way_(155794.jpg",
|
||||
"title": "File:Asakusa 17 - making rice crackers the old way (15579471588).jpg",
|
||||
"detections": 4,
|
||||
"detections": 30,
|
||||
"false_accepts": 0,
|
||||
"ms": 132
|
||||
"ms": 485
|
||||
},
|
||||
{
|
||||
"file": "007_1920px-Asakusa_19_-_the_woman_selling_the_rice_crackers_(157.jpg",
|
||||
"title": "File:Asakusa 19 - the woman selling the rice crackers (15764889785).jpg",
|
||||
"detections": 3,
|
||||
"detections": 33,
|
||||
"false_accepts": 0,
|
||||
"ms": 67
|
||||
"ms": 502
|
||||
},
|
||||
{
|
||||
"file": "008_1920px-Azabudai-Hills---2025-04-05_015.jpg",
|
||||
"title": "File:Azabudai-Hills---2025-04-05 015.jpg",
|
||||
"detections": 37,
|
||||
"detections": 54,
|
||||
"false_accepts": 2,
|
||||
"ms": 2113
|
||||
"ms": 2525
|
||||
},
|
||||
{
|
||||
"file": "010_1920px-Breathalyzers_in_a_MaxValu_supermarket.jpg",
|
||||
"title": "File:Breathalyzers in a MaxValu supermarket.jpg",
|
||||
"detections": 5,
|
||||
"detections": 24,
|
||||
"false_accepts": 0,
|
||||
"ms": 368
|
||||
"ms": 1508
|
||||
},
|
||||
{
|
||||
"file": "011_1920px-Chocolate_in_Japan_(5137097169).jpg",
|
||||
"title": "File:Chocolate in Japan (5137097169).jpg",
|
||||
"detections": 65,
|
||||
"false_accepts": 1,
|
||||
"ms": 3829
|
||||
"detections": 78,
|
||||
"false_accepts": 0,
|
||||
"ms": 1961
|
||||
},
|
||||
{
|
||||
"file": "013_1920px-Confectionery_at_WCTC_Shopping_Center,_Koror_City,_Pa.jpg",
|
||||
"title": "File:Confectionery at WCTC Shopping Center, Koror City, Palau.jpg",
|
||||
"detections": 96,
|
||||
"detections": 154,
|
||||
"false_accepts": 0,
|
||||
"ms": 6114
|
||||
"ms": 3424
|
||||
},
|
||||
{
|
||||
"file": "014_1920px-Deer_cookies_at_Nara,_Japan.jpg",
|
||||
"title": "File:Deer cookies at Nara, Japan.jpg",
|
||||
"detections": 10,
|
||||
"detections": 24,
|
||||
"false_accepts": 0,
|
||||
"ms": 733
|
||||
"ms": 465
|
||||
},
|
||||
{
|
||||
"file": "015_1920px-ESL_Price_Tag.JPG",
|
||||
"title": "File:ESL Price Tag.JPG",
|
||||
"detections": 32,
|
||||
"detections": 56,
|
||||
"false_accepts": 0,
|
||||
"ms": 1506
|
||||
"ms": 1383
|
||||
},
|
||||
{
|
||||
"file": "017_1920px-Food-with-physiological-energy-value-example.jpg",
|
||||
"title": "File:Food-with-physiological-energy-value-example.jpg",
|
||||
"detections": 10,
|
||||
"detections": 32,
|
||||
"false_accepts": 0,
|
||||
"ms": 454
|
||||
"ms": 1070
|
||||
},
|
||||
{
|
||||
"file": "019_1920px-HK_CWB_Wellcome_Shop_Supermarket_goods_Carbonated_sof.jpg",
|
||||
"title": "File:HK CWB Wellcome Shop Supermarket goods Carbonated soft drink codd-neck bottles 波子汽水 Apple Ramune Japanese products July 2017 IX1.jpg",
|
||||
"detections": 18,
|
||||
"detections": 42,
|
||||
"false_accepts": 0,
|
||||
"ms": 712
|
||||
"ms": 1094
|
||||
},
|
||||
{
|
||||
"file": "021_1920px-Interior_of_Supermarket_in_Japan_02.jpg",
|
||||
"title": "File:Interior of Supermarket in Japan 02.jpg",
|
||||
"detections": 5,
|
||||
"detections": 18,
|
||||
"false_accepts": 0,
|
||||
"ms": 286
|
||||
"ms": 491
|
||||
},
|
||||
{
|
||||
"file": "022_1920px-JP_日本_Japan_沖繩_OKINAWA_浦添市_Urasoe-city_AEON_Supermark.jpg",
|
||||
"title": "File:JP 日本 Japan 沖繩 OKINAWA 浦添市 Urasoe-city AEON Supermarket food drinks February 2026 N13p 02.jpg",
|
||||
"detections": 119,
|
||||
"detections": 165,
|
||||
"false_accepts": 0,
|
||||
"ms": 4603
|
||||
"ms": 3522
|
||||
},
|
||||
{
|
||||
"file": "023_1920px-thumbnail.jpg",
|
||||
"title": "File:JP 日本 Japan 沖繩 OKINAWA 那霸 Naha Omoromachi Shintoshin 新都心 Naha Main Place 商場 Shopping Mall shop Aeon Supermarket drink 益力多 January 2025 R12S 01.jpg",
|
||||
"detections": 117,
|
||||
"detections": 197,
|
||||
"false_accepts": 0,
|
||||
"ms": 2581
|
||||
"ms": 3389
|
||||
},
|
||||
{
|
||||
"file": "024_1920px-JaSupermarket_Instant_noodles.JPG",
|
||||
"title": "File:JaSupermarket Instant noodles.JPG",
|
||||
"detections": 97,
|
||||
"detections": 147,
|
||||
"false_accepts": 0,
|
||||
"ms": 2750
|
||||
"ms": 2744
|
||||
},
|
||||
{
|
||||
"file": "026_1920px-Kawasaki-Inryo-1.jpg",
|
||||
"title": "File:Kawasaki-Inryo-1.jpg",
|
||||
"detections": 12,
|
||||
"detections": 45,
|
||||
"false_accepts": 0,
|
||||
"ms": 892
|
||||
"ms": 2007
|
||||
},
|
||||
{
|
||||
"file": "029_1920px-Miyazu_Mipple_1F_2021-04_ac.jpg",
|
||||
"title": "File:Miyazu Mipple 1F 2021-04 ac.jpg",
|
||||
"detections": 73,
|
||||
"detections": 157,
|
||||
"false_accepts": 0,
|
||||
"ms": 852
|
||||
"ms": 1782
|
||||
},
|
||||
{
|
||||
"file": "030_1920px-Octopus_rice_crackers_No,1.JPG",
|
||||
"title": "File:Octopus rice crackers No,1.JPG",
|
||||
"detections": 5,
|
||||
"detections": 22,
|
||||
"false_accepts": 0,
|
||||
"ms": 247
|
||||
"ms": 556
|
||||
},
|
||||
{
|
||||
"file": "031_1920px-Octopus_senbei.JPG",
|
||||
"title": "File:Octopus senbei.JPG",
|
||||
"detections": 4,
|
||||
"detections": 23,
|
||||
"false_accepts": 0,
|
||||
"ms": 140
|
||||
"ms": 612
|
||||
},
|
||||
{
|
||||
"file": "032_1920px-Okaki_for_sale_in_Kawagoe.jpg",
|
||||
"title": "File:Okaki for sale in Kawagoe.jpg",
|
||||
"detections": 27,
|
||||
"detections": 70,
|
||||
"false_accepts": 0,
|
||||
"ms": 267
|
||||
"ms": 1042
|
||||
},
|
||||
{
|
||||
"file": "033_Okonomiyaki_and_takoyaki_ingredients.jpg",
|
||||
"title": "File:Okonomiyaki and takoyaki ingredients.jpg",
|
||||
"detections": 39,
|
||||
"detections": 55,
|
||||
"false_accepts": 0,
|
||||
"ms": 1228
|
||||
"ms": 2553
|
||||
},
|
||||
{
|
||||
"file": "034_1920px-Rice_toppings_&_additional_ingredients_(5846028686).jpg",
|
||||
"title": "File:Rice toppings & additional ingredients (5846028686).jpg",
|
||||
"detections": 59,
|
||||
"false_accepts": 0,
|
||||
"ms": 1871
|
||||
},
|
||||
{
|
||||
"file": "035_1920px-SW_4963.jpg",
|
||||
"title": "File:SW 4963.jpg",
|
||||
"detections": 5,
|
||||
"detections": 41,
|
||||
"false_accepts": 0,
|
||||
"ms": 200
|
||||
"ms": 755
|
||||
},
|
||||
{
|
||||
"file": "037_1920px-Soy_Sauce_selection_(6362318717).jpg",
|
||||
"title": "File:Soy Sauce selection (6362318717).jpg",
|
||||
"detections": 68,
|
||||
"detections": 85,
|
||||
"false_accepts": 0,
|
||||
"ms": 1671
|
||||
"ms": 1623
|
||||
},
|
||||
{
|
||||
"file": "038_1920px-Soy_sauce_(5846027636).jpg",
|
||||
"title": "File:Soy sauce (5846027636).jpg",
|
||||
"detections": 103,
|
||||
"false_accepts": 1,
|
||||
"ms": 1626
|
||||
"detections": 216,
|
||||
"false_accepts": 0,
|
||||
"ms": 2534
|
||||
},
|
||||
{
|
||||
"file": "039_1920px-Soy_sauce_in_supermarket.JPG",
|
||||
"title": "File:Soy sauce in supermarket.JPG",
|
||||
"detections": 71,
|
||||
"detections": 101,
|
||||
"false_accepts": 0,
|
||||
"ms": 2380
|
||||
"ms": 1884
|
||||
},
|
||||
{
|
||||
"file": "040_1920px-Spice_Supermarket_Japan.JPG",
|
||||
"title": "File:Spice Supermarket Japan.JPG",
|
||||
"detections": 254,
|
||||
"detections": 300,
|
||||
"false_accepts": 0,
|
||||
"ms": 2544
|
||||
"ms": 2994
|
||||
},
|
||||
{
|
||||
"file": "041_1920px-Strong_Zero_4962.jpg",
|
||||
"title": "File:Strong Zero 4962.jpg",
|
||||
"detections": 18,
|
||||
"detections": 45,
|
||||
"false_accepts": 0,
|
||||
"ms": 856
|
||||
"ms": 1731
|
||||
},
|
||||
{
|
||||
"file": "042_1920px-Supermarket_Digital_Displays_(2927051130).jpg",
|
||||
"title": "File:Supermarket Digital Displays (2927051130).jpg",
|
||||
"detections": 89,
|
||||
"detections": 97,
|
||||
"false_accepts": 1,
|
||||
"ms": 3561
|
||||
"ms": 2454
|
||||
},
|
||||
{
|
||||
"file": "043_1920px-Tasty_Food_Abundance_in_Healthy_Europe.png",
|
||||
"title": "File:Tasty Food Abundance in Healthy Europe.png",
|
||||
"detections": 13,
|
||||
"detections": 32,
|
||||
"false_accepts": 0,
|
||||
"ms": 1202
|
||||
"ms": 982
|
||||
},
|
||||
{
|
||||
"file": "047_1920px-Tokyo---Ebisu-and-Shibuya---2026-02-04_162.jpg",
|
||||
"title": "File:Tokyo---Ebisu-and-Shibuya---2026-02-04 162.jpg",
|
||||
"detections": 74,
|
||||
"detections": 81,
|
||||
"false_accepts": 0,
|
||||
"ms": 4770
|
||||
"ms": 1356
|
||||
},
|
||||
{
|
||||
"file": "048_1920px-Tokyo---Ebisu-and-Shibuya---2026-02-04_167.jpg",
|
||||
"title": "File:Tokyo---Ebisu-and-Shibuya---2026-02-04 167.jpg",
|
||||
"detections": 46,
|
||||
"detections": 51,
|
||||
"false_accepts": 0,
|
||||
"ms": 2557
|
||||
"ms": 823
|
||||
},
|
||||
{
|
||||
"file": "050_1920px-Umami_Snack_(41957534).jpeg",
|
||||
"title": "File:Umami Snack (41957534).jpeg",
|
||||
"detections": 33,
|
||||
"detections": 55,
|
||||
"false_accepts": 0,
|
||||
"ms": 3096
|
||||
"ms": 2518
|
||||
},
|
||||
{
|
||||
"file": "051_1920px-このかねをならすのはだーれ_(3079692697).jpg",
|
||||
"title": "File:このかねをならすのはだーれ (3079692697).jpg",
|
||||
"detections": 0,
|
||||
"detections": 3,
|
||||
"false_accepts": 0,
|
||||
"ms": 125
|
||||
"ms": 170
|
||||
},
|
||||
{
|
||||
"file": "052_1920px-スーパーの野菜コーナー_2008_(2785121488).jpg",
|
||||
"title": "File:スーパーの野菜コーナー 2008 (2785121488).jpg",
|
||||
"detections": 25,
|
||||
"detections": 85,
|
||||
"false_accepts": 0,
|
||||
"ms": 1681
|
||||
"ms": 1963
|
||||
},
|
||||
{
|
||||
"file": "055_1920px-中央フード山手店_-_panoramio.jpg",
|
||||
"title": "File:中央フード山手店 - panoramio.jpg",
|
||||
"detections": 15,
|
||||
"detections": 39,
|
||||
"false_accepts": 0,
|
||||
"ms": 263
|
||||
"ms": 689
|
||||
},
|
||||
{
|
||||
"file": "056_1920px-何このリポD人気⁈買い占めてしまおう。_(4025507198).jpg",
|
||||
"title": "File:何このリポD人気⁈買い占めてしまおう。 (4025507198).jpg",
|
||||
"detections": 38,
|
||||
"detections": 72,
|
||||
"false_accepts": 0,
|
||||
"ms": 2912
|
||||
"ms": 2286
|
||||
},
|
||||
{
|
||||
"file": "057_1920px-味噌売り場_(16183474871).jpg",
|
||||
"title": "File:味噌売り場 (16183474871).jpg",
|
||||
"detections": 61,
|
||||
"detections": 76,
|
||||
"false_accepts": 0,
|
||||
"ms": 3355
|
||||
"ms": 2081
|
||||
},
|
||||
{
|
||||
"file": "058_1920px-塩ひかえめ_(25347152904).jpg",
|
||||
"title": "File:塩ひかえめ (25347152904).jpg",
|
||||
"detections": 66,
|
||||
"detections": 86,
|
||||
"false_accepts": 0,
|
||||
"ms": 3043
|
||||
"ms": 2496
|
||||
},
|
||||
{
|
||||
"file": "060_1920px-牛乳_豆乳_2016_(32081175436).jpg",
|
||||
"title": "File:牛乳 豆乳 2016 (32081175436).jpg",
|
||||
"detections": 103,
|
||||
"false_accepts": 1,
|
||||
"ms": 3677
|
||||
"detections": 130,
|
||||
"false_accepts": 0,
|
||||
"ms": 4677
|
||||
},
|
||||
{
|
||||
"file": "061_1920px-表示価格より100円引_(38057600585).jpg",
|
||||
"title": "File:表示価格より100円引 (38057600585).jpg",
|
||||
"detections": 5,
|
||||
"detections": 17,
|
||||
"false_accepts": 0,
|
||||
"ms": 632
|
||||
"ms": 899
|
||||
}
|
||||
]
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue