Waarom falen apps die sigaren identificeren zo vaak als het bandje beschadigd of afwezig is?
Omdat de meeste ervan het bandje lezen en niets anders. Bandjes raken versleten, draaien weg van de camera, zitten verpakt in cellofaan of zijn er helemaal af gehaald. En zelfs een bandje dat perfect op de foto komt, draagt vaak een naam die is opgebouwd uit woorden die te algemeen zijn om iets te identificeren: een reëel, gemeten deel van elke catalogus, geen uitzonderingsgeval.
Wat doet een scanner die alleen het bandje leest eigenlijk?
Die laat tekstherkenning (optical character recognition, OCR) los op één klein papieren ringetje en behandelt wat daaruit komt als het volledige antwoord. Camera erop richten, de software leest de gedrukte letters, en die tekenreeks wordt opgezocht in een database. Dat is de hele keten. Er wordt geen poging gedaan om de kleur van het dekblad te lezen, de vorm van de kop, de lengte of de ringmaat, of wat er verder ook in het volle zicht op de rest van de sigaar zit. Komt de bandtekst er schoon uit, dan lijkt de app capabel. Zo niet, dan is er niets anders in de keten om op terug te vallen.
Het verraadt zich in hoe deze apps zich gedragen wanneer een bandje wel aanwezig is maar licht scheef staat, of wanneer de opdruk is verbleekt door het hanteren. Ze lopen niet netjes terug in kwaliteit; ze falen volledig, omdat het enige signaal dat ze hadden zojuist verdwenen is. Een systeem met meer dan één input kan er één kwijtraken en nog steeds een redelijke gok wagen. Een systeem met precies één input kan nergens heen zodra die input slecht is.
Waarom ontbreekt of onleesbaar is het bandje zo vaak?
Een bandje is een smal strookje papier om een cilinder heen, en normaal gebruik werkt er constant tegenin:
- Weerspiegeling van cellofaan. Winkelverpakking kaatst de flitser recht terug in de lens en blaast precies de letters weg die OCR nodig heeft.
- Rotatie. Een bandje dat vanuit de verkeerde hoek rond de omtrek van de sigaar wordt gefotografeerd, verbergt het grootste deel van zijn eigen tekst achter de kromming.
- Slijtage. Een sigaar die in een zak of reisetui wordt meegenomen, of simpelweg veel wordt vastgehouden, loopt schuurplekken op die eerst de foliedruk en dunne inkt onleesbaar maken.
- Bewust verwijderen. Veel rokers halen het bandje eraf voordat ze opsteken, wat betekent dat de foto die tijdens het roken wordt gemaakt (vaak precies het moment waarop iemand een sigaar wil identificeren die hij aangereikt kreeg) geen bandje meer heeft om te scannen.
- Gedeeltelijke bandjes. Sommige vitola's worden geleverd met een tweede bandje of een voetbandje dat maar een fragment van de volledige naam draagt, niet het geheel.
Niets hiervan is zeldzaam. Het is de gewone staat waarin een sigaar zich het grootste deel van de tijd bevindt terwijl hij daadwerkelijk gerookt wordt, en dat is hetzelfde moment waarop iemand het meest waarschijnlijk naar zijn telefoon grijpt.
Waarom is een "perfecte" foto van het bandje op zichzelf niet genoeg?
Omdat de woorden die erop staan misschien niet onderscheidend zijn. Een aanzienlijk deel van elke echte sigarencatalogus draagt modelnamen die volledig bestaan uit algemene, beschrijvende woorden (termen als "reserve", "especial", "maduro", "selection", "anniversary") zonder ergens in de naam een uniek, merkspecifiek woord. De eigen productiediagnostiek van Paradigm komt hierbij uit op 13,3% van de catalogusvermeldingen: namen die alleen zijn opgebouwd uit woorden die zo algemeen zijn dat tekstvergelijking alleen het veld niet kan versmallen, omdat exact dezelfde woorden voorkomen in tientallen ongerelateerde lijnen van verschillende fabrikanten.
Geef een tekstvergelijkingsengine een tekenreeks die uitsluitend uit algemeen vocabulaire bestaat, en er is geen onderscheidend ankerpunt om op te zoeken. Het is geen falen van de fotokwaliteit. De OCR deed zijn werk en las elke letter correct, en toch kan de zoekopdracht niet tot één sigaar versmallen, omdat de tekst zelf nooit uniek was om te beginnen. Een scannerarchitectuur die volledig rond bandtekst is gebouwd, komt hier niet voorbij. Er is geen tweede signaal om de knoop door te hakken.
Wat zou er daadwerkelijk moeten gebeuren om een scanner een slecht bandje te laten overleven?
Hij zou het bandje moeten behandelen als één input naast meerdere, niet als het hele systeem. Een aanpak die de hele sigaar bekijkt, leest de tint en textuur van het dekblad, de vorm van de kop en hoe die is gesneden, en de fysieke afmetingen (lengte en ringmaat) naast welke bandtekst er ook beschikbaar is, en weegt dat alles samen. Lees meer over wat die visuele aanwijzingen op zichzelf aangeven in wat je kunt verwachten van het dekblad en de vorm van een sigaar.
Dat weegt het zwaarst juist wanneer het bandje niet bruikbaar is. Een gescheurd of ontbrekend bandje laat nog altijd een dekbladkleur, een zichtbare kopstijl en een globaal formaat over om mee te werken: drie signalen in plaats van nul. Een volledig leesbaar bandje met algemene woorden laat nog altijd het visuele bewijs over om een shortlist te versmallen die tekst alleen niet kon afsluiten. Geen van deze signalen is op zichzelf beslissend. Samen brengen ze een match terug van "onmogelijk" naar "plausibel", en dat is precies het verschil tussen een scanner die geruisloos faalt en een die je dicht genoeg brengt om het met het oog te bevestigen. Voor het algemene beeld van de betrouwbaarheid, inclusief waar zelfs herkenning met meerdere signalen het nog mis heeft, zie hoe nauwkeurig is AI-sigarenherkenning.
Betekent dit dat bandtekst waardeloos is?
Nee. Het is meestal het snelste en meest specifieke signaal dat beschikbaar is, en het is de moeite waard om het eerst te lezen. Het probleem is het behandelen ervan als het enige signaal, en niets nuttigs meer kunnen zeggen zodra het is aangetast. Een bandje dat schoon leesbaar is en een onderscheidend merkwoord bevat, klopt bijna altijd. De faalmodus is specifiek wat er aan de andere kant daarvan gebeurt: slechte fotocondities, of een leesbare maar algemene naam. Elk systeem dat geen plan heeft voor die combinatie zal falen op een voorspelbaar, terugkerend deel van de pogingen in de praktijk: geen zeldzaam uitzonderingsgeval, maar een gewone sigaar op een dinsdagavond met het cellofaan nog halverwege eromheen.
Kun je dit zelf testen?
Ja, informeel. Neem een bandje dat je met het oog al kunt identificeren en probeer het op drie manieren te fotograferen: frontaal in goed licht, onder een scherpe hoek, en door cellofaan met een flitsreflectie in beeld. Haal elke foto door de scanner die je aan het beoordelen bent. Een tool die alleen het bandje leest, zal de eerste vermoedelijk perfect raken en de andere twee volledig missen, zonder in beide gevallen een gedeeltelijk antwoord, omdat er geen terugvallaag is. Een systeem dat meer dan het bandje leest, zou bij de twee moeilijkere gevallen nog steeds in de buurt moeten komen, ook als het niet precies de juiste lijn raakt, omdat het dekblad en de vorm nergens naartoe zijn.
| Conditie | OCR op alleen het bandje | Matching op de hele sigaar |
|---|---|---|
| Schoon bandje, onderscheidende naam | Betrouwbaar | Betrouwbaar |
| Schoon bandje, volledig algemene woorden | Versmalt niet | Dekblad/vorm/formaat versmallen het veld |
| Gescheurd, verbleekt of schuin bandje | Faalt volledig | Valt terug op een shortlist |
| Bandje volledig verwijderd | Helemaal geen input | Dekblad, kop en formaat nog bruikbaar |
De korte versie
- Scanners die alleen het bandje lezen, hebben precies één input, en die input wordt regelmatig aangetast door normaal gebruik, weerspiegeling van verpakking, rotatie of bewust verwijderen.
- Een aanzienlijk deel van de echte catalogusvermeldingen (gemeten op 13,3% in de productiedata van Paradigm) draagt modelnamen die volledig uit algemene woorden bestaan, wat tekstvergelijking onderuit haalt, zelfs bij een perfect leesbaar bandje.
- Een systeem dat dekbladkleur, kopvorm en afmetingen naast de bandtekst leest, heeft nog signalen over wanneer het bandje alleen niet genoeg is.
- Geen enkele herkenningsaanpak is onfeilbaar; de praktische vraag is wat een systeem doet zodra zijn beste signaal is aangetast.
- Je kunt elke scanner zelf aan een stresstest onderwerpen met drie foto's van één bandje: frontaal, onder een hoek, en door cellofaan.