NL9500597A - Werkwijze en inrichting voor het decoderen van barcodes. - Google Patents

Werkwijze en inrichting voor het decoderen van barcodes. Download PDF

Info

Publication number
NL9500597A
NL9500597A NL9500597A NL9500597A NL9500597A NL 9500597 A NL9500597 A NL 9500597A NL 9500597 A NL9500597 A NL 9500597A NL 9500597 A NL9500597 A NL 9500597A NL 9500597 A NL9500597 A NL 9500597A
Authority
NL
Netherlands
Prior art keywords
degree
information
values
decoding
barcode
Prior art date
Application number
NL9500597A
Other languages
English (en)
Inventor
Gerrit Boersma
Dennis Johannes Maat
Original Assignee
Scantech Bv
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Scantech Bv filed Critical Scantech Bv
Priority to NL9500597A priority Critical patent/NL9500597A/nl
Priority to AU50163/96A priority patent/AU5016396A/en
Priority to AT96906959T priority patent/ATE180910T1/de
Priority to EP96906959A priority patent/EP0818019B1/en
Priority to DE69602735T priority patent/DE69602735T2/de
Priority to US08/930,038 priority patent/US5929423A/en
Priority to PCT/NL1996/000131 priority patent/WO1996030859A1/en
Publication of NL9500597A publication Critical patent/NL9500597A/nl

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
    • G06K7/1404Methods for optical code recognition
    • G06K7/146Methods for optical code recognition the method including quality enhancement steps
    • G06K7/1486Setting the threshold-width for bar codes to be decoded
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Physics & Mathematics (AREA)
  • Electromagnetism (AREA)
  • General Health & Medical Sciences (AREA)
  • Toxicology (AREA)
  • Artificial Intelligence (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Quality & Reliability (AREA)
  • Credit Cards Or The Like (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Length Measuring Devices By Optical Means (AREA)
  • Length Measuring Devices With Unspecified Measuring Means (AREA)
  • Character Discrimination (AREA)
  • Error Detection And Correction (AREA)

Description

WERKWIJZE EN INRICHTING VOOR HET DECODEREN VAN BARCODES
Op steeds grotere schaal wordt op velerlei terreinen gebruik gemaakt van barcodes, bijvoorbeeld in supermarkten maar ook voor voorraadbeheer en dergelijke. Het behulp van barcodes wordt voorraadbeheersing verbeterd, wordt de doorvoersnelheid vergroot en kunnen nauwkeurigere specificaties van uitgeleverde goederen aan de afnemer, zoals de consument, worden geleverd.
Het komt echter nog regelmatig voor, dat een barcode niet bij de eerste lezing door een scanapparaat wordt gedecodeerd. Dit kan bijvoorbeeld te wijten zijn aan een afwijkende breedte van een streep of spatie, alsmede aan de inhomogeniteit van het papier waarop het streepjespatroon is gedrukt, optredende ruis bijvoorbeeld vanwege omgevingsinvloeden of veroorzaakt door analoge elektronica, thermische ruis, en/of afwijkingen in de gebruikte scanapparatuur.
Bekende scanapparaten, bijvoorbeeld gebruikmakend van laserstraling, van CCD (Charge Coupled Devices) -beeldopnemers en/of gebruikmakend van RF (Radio Frequente)-inductie en werkwijzen voor het decoderen van barcodes, zijn op grote schaal in de octrooiliteratuur beschreven, bijvoorbeeld in de niet vóórgepubliceerde octrooiaanvragen 9400924 en 9401302 van aanvraagster.
De onderhavige uitvinding verschaft een werkwijze voor het decoderen van één of meer streepjescodes, die een aantal tekens, zoals informatietekens, scheidingstekens en dergelijke, omvat, waarbij de tekens één of meer spaties en één of meer streepjes omvatten, waarbij de werkwijze de volgende stappen omvat: - het digitaliseren van elektrische signalen die zijn verkregen vanuit een opnemer, bijvoorbeeld voor het opnemen van gereflecteerde laserstralen; - het afleiden van de breedten van streepjes en spaties uit de digitale signalen; - het bepalen van één of meer tekenwaarden met een graad op basis van de gevonden breedten van de spaties en streepjes binnen het teken of in de onmiddellijke nabijheid daarvan; - het bepalen van één of meer informatiewaarden met een graad uit de tekenwaarden met een graad; en - het selecteren van de meest waarschijnlijke informatiewaarden voor een streepjescode of gedeelte daarvan met behulp van de bepaalde informatiewaarden.
Door de werkwijze volgens de onderhavige uitvinding is in de praktijk aangetoond, dat ook moeilijke streepjespatronen sneller worden herkend. Voorts verschaft de onderhavige uitvinding een inrichting voor het aftasten en decoderen van streepjespatronen.
Verdere voordelen, kenmerken en details van de onderhavige uitvinding zullen worden gedetecteerd aan de hand van de navolgende beschrijving waarbij wordt gerefereerd naar de bijgevoegde tekeningen waarin tonen: figuur 1 een EAN-13 streepjespatroon; figuur 2 een tabel van de gebruikte informatietekens in een EAN-13 symbool; figuur 3 een overzicht van de gebruikte hulptekens in een EAN-13 symbool; figuur 4 een blokschema voor het decoderen van een streepj espatroon; figuur 5 een detail van figuur 4; figuur 6 een voorbeeld van het gebruik van het schema van f iguur 5; figuur 7 een voorbeeld van de verwerking van de gegevens uit figuur 6; figuren 8 t/m 12 voorbeelden van lidmaatschapsfuncties voor diverse onderdelen van een barcode; figuur 13 een schema waarin de ligging van gebieden P, Q, RO en Rx wordt aangegeven; figuur 14 een tabel voor het bepalen van informatietekens op basis van waarden van P en Q; figuur 15 een tabel voor het bepalen van informatietekens op basis van waarden van P, Q en RO; figuur 16 een tabel waarin de mogelijke seriepermutaties worden gegeven voor linker- en rechterhelften van een ΕΆΝ-13 symbool; en figuur 17 een voorbeeld van de inhoud van de relevante registers van de tweede datapijp uit figuur 4.
De onderhavige uitvinding is van toepassing op EAN-13 patronen (zie het Handboek Uniforme Artikel Codering van de stichting UAC), maar kan evenzeer worden toegepast voor EAN-8, UPCA, UPCE, alsmede industriële codes CODE-128, CODE-39, CODABAR, 20F5, etc.
Bij het lezen van barcodes kunnen fouten geïntroduceerd worden als gevolg van diverse oorzaken. Bij het afdrukken van een barcode op een verpakking kunnen afwijkingen optreden, zoals door verschuiving bij het maken van het filmmasker, de vervaardiging van de drukplaten, de druk van de drukplaten op de drager, absorptie van het papier etc. Het kleurcontrast is niet altijd optimaal daar producenten het streepjespatroon zoveel mogelijk proberen te integreren met de verpakking. Er kan vervorming van de verpakking optreden.
Voorts kunnen fouten worden geïntroduceerd door vervorming van de verpakking.
Daarnaast kunnen er tijdens het aftasten ook fouten ontstaan die te wijten zijn aan de optiek, de analoge elektronica, alsmede het digitaliseren van analoge signalen. Tenslotte kunnen omgevingsinvloeden, zoals vuil, vocht of schade aan de verpakking fouten introduceren.
Een groot deel van de fouten bij het lezen van de hierboven genoemde barcodes kan teruggevoerd worden op het verschuiven van grenzen tussen strepen en spaties. Een belangrijk deel van deze fouten zijn systematische fouten die zich openbaren in een vorm die gemiddelde drukverbreding wordt genoemd. Hierbij zijn de herleide breedtes van alle strepen in de barcode een bedrag delta groter dan in een ideale barcode terwijl de breedtes van de spaties hetzelfde bedrag delta kleiner zijn.
Een EAN-13 symbool of streepjespatroon omvat een scheidingsteken met aan weerskanten 6 informatietekens aan de buitenzijden geflankeerd door een randteken (figuur 1). Het symbool is bovendien voorzien van een linker- en een rechtermarge. De linkerhelft omvat 6 informatietekens uit de getallenseries λ en B, terwijl de rechterhelft 6 informatietekens uit de getallenserie C omvat (zie figuur 2). Opvallend is dat de patronen uit getallenserie C precies spiegelbeelden zijn van de patronen uit getallenserie B. Hulptekens en informatietekens zijn opgebouwd uit strepen en spaties, die beide een geheel aantal eenheden of modulen omvatten (zie figuur 3). Een module heeft binnen een symbool een vaste breedte. Onder het symbool staat de voor de mens leesbare voorstelling van het dertiencijferige artikelnummer.
De onderhavige decodeermethode is zowel geschikt voor voorwaarts als achterwaarts decoderen. Aangezien de rechterhelft van een EAN-13 code wanneer gespiegeld, qua opbouw overeen komt met een linkerhelft, is bij deze code sprake van naar binnen lezen, d.w.z. decoderen vanaf een randteken naar het scheidingsteken of naar buiten lezen, d.w.z. vanaf het scheidingsteken naar een randteken. Het signaal HARK geeft met de waarde 1 aan dat van buiten naar binnen en met de waarde 0 dat in omgekeerde richting moet worden gedecodeerd. Of het daarbij om een linker- of een rechterhelft gaat wordt uiteindelijk bepaald aan de hand van de getallenseries van de informatietekens. Het signaal MARK verandert iedere keer van polariteit als de breedte van een streep of spatie is bepaald, zodat beurtelings van buiten naar binnen en omgekeerd wordt gedecodeerd.
Het decodeerproces voor EAN-13 symbolen is opgebouwd uit drie delen (zie ook figuur 4): - het decoderen van informatietekens - het samenstellen van barcodehelften - het samenstellen en selecteren van de meest waarschijnlijke barcode.
Bij het decoderen van ΕΆΝ-13 codes volgens onderhavige uitvinding wordt uitgegaan van zogeheten tijdparen (figuur 5). Een tijdpaar wordt verkregen door de breedtes van een streep en een aangrenzende spatie bij elkaar op te tellen. Voor iedere streep wordt zowel een tijdpaar gevormd met de voorafgaande spatie als een tijdpaar met de opvolgende spatie. In fig. 2 zijn de bij de onderhavige uitvinding gebruikte tijdparen P en Q aangegeven. Het voordeel van deze manier van werken is dat het probleem van de gemiddelde drukverbreding volledig wordt opgelost. De tijdparen worden in een zogeheten datapijp geplaatst. Deze datapijp bestaat uit 15 registers. Telkens als een nieuw tijdpaar berekend is schuift de inhoud van de datapijp één register op om ruimte te maken voor het nieuwe tijdpaar. Daarbij verdwijnt de inhoud van register 14 terwijl het nieuwe tijdpaar in register 0 wordt geplaatst.
VOORBEELD: In figuur 6 wordt geïllustreerd hoe de vulling van de datapijp bij een gegeven streepjespatroon eruit ziet.
Telkens als een nieuw tijdpaar in de datapijp is geplaatst, wordt verondersteld dat er een informatieteken aanwezig is en wordt getracht het teken te decoderen. De breedte en de positie van het informatieteken ligt vast met twee tijdparen. Als HARK de waarde 1 heeft, bepalen de tijdparen in registers 8 en 10 de breedte en als MARK de waarde 0 heeft, bepalen de registers 4 en 6 de breedte. Met deze manier van werken wordt geen enkel informatieteken overgeslagen, immers met de goede polariteit van MARK komen alle informatietekens eens in de genoemde posities van de datapijp terecht.
Het onderhavige informatieteken bevindt zich tussen een randteken en een informatieteken of tussen twee informatietekens of tussen een informatieteken en het scheidingsteken (zie figuur 1). Om het teken bij het samenstellen van een barcodehelft te kunnen plaatsen wordt voor elk informatieteken gecontroleerd of het aan de ene zijde aan een scheidingsteken danwel een informatieteken grenst en of het aan de andere zijde aan een randteken met bijbehorende marge grenst. Om deze controles mogelijk te maken is gekozen voor een datapijp met een lengte van 15 registers. Een andere lengte had echter evenzeer gekund.
De onderhavige decodeermethode heeft een groot dynamisch bereik doordat de breedte van het informatieteken als referentie wordt gebruikt voor het bepalen van de inhoud van het informatieteken en tevens voor de controle van de hulptekens. Een groot dynamisch bereik is met name belangrijk voor een laserscanner, immers een barcode kan diverse afmetingen hebben en kan zich dichtbij de scanner bevinden of op een grotere afstand. Aangezien een informatieteken in een EAN-13 symbool nominaal een vaste afmeting heeft ter grootte van 7 modulen, is deze breedte geschikt om gebruikt te worden als referentie. Een volgende stap in het decodeerproces is dat alle relevante tijdparen worden genormeerd naar deze referentie. Daar het van binnen naar buiten decoderen t.o.v. het in omgekeerde richting decoderen wat de interpretatie van de datapijp betreft feitelijk neerkomt op een spiegeling rond register 7, wordt bij het normeren de spiegeling al dan niet uitgevoerd afhankelijk van MARK.
Als MARK de waarde 1 heeft:
Figure NL9500597AD00071
Als MARK de waarde 0 heeft:
Figure NL9500597AD00081
Hierbij is Tx de inhoud van register x van de datapijp. De variabele Mx kan men interpreteren als het aantal modulen dat tijdpaar x beslaat. Hierbij moet opgemerkt worden dat Tx zowel als Mx in beginsel behoren tot de verzameling van de reële getallen, hoewel voor een implementatie i.h.a. voor gehele of fixed point getallen gekozen zal worden.
VOORBEELD: In figuur 7 wordt voor beide waarden van MARK en een vulling van de datapijp de bijbehorende waarden van Mx gegeven.
Iedere streep of spatie van een informatie- en hulpteken bestaat uit een gehele aantal modulen. In klassieke decodeermethoden worden de Mx getallen afgerond op het dichtstbijzijnde gehele getal. In de onderhavige decodeermethode vindt echter geen discretisatie maar fuzzificatie plaats door het toepassen van lidmaatschapsfuncties per relevante gehele waarde. Zoals gebruikelijk is in de theorie van de vage verzamelingen, leveren de lidmaatschapsfuncties steeds een reëel getal of graad op die groter dan of gelijk aan 0 en kleiner dan of gelijk aan 1 is. Een graad 0 komt overeen met de logische waarde FALSE en 1 komt overeen met TRUE. Uiteraard is een ander bereik mogelijk dat eventueel ook negatieve getallen omvat.
In figuur 8 staan voorbeelden van lidmaatschapsfuncties die worden toegepast op M8 en M9. De gebieden in figuur 13 die corresponderen met M9 en M8 zijn aangegeven met resp. de symbolen P en Q . Zoals men kan afleiden uit de tabel in figuur 2 kunnen P en Q slechts de waarden 2, 3, 4, en 5 hebben. In de onderhavige methode corresponderen deze waarden met een verzameling van F2, F3, F4 en F5 die ieder een eigen lidmaatschapsfunctie hebben. P bevat hiervan een deelverzameling, namelijk die waarden waarvoor de bijbehorende lidmaatschapsfunctie bij een gegeven M9 een graad heeft die groter is dan 0. Op dezelfde wijze bevat Q een deelverzameling die bij een gegeven M8 hoort. De verzamelingen P en Q kunnen leeg zijn danwel één of meer elementen bevatten.
VOORBEELD: In figuur 7 heeft M8 de waarde 1.98 en M9 de waarde 2.41 voor het geval HARK is 0. Het de lidmaatschapsfuncties uit figuur 8 krijgt P de elementen 2 (0.65) en 3 (0.35) en Q het element 2 (1.0), waarbij tussen haakjes de graad is aangegeven.
In figuur 14 wordt voor iedere combinatie van elementen van P en Q de waarde of waarden van het informatiefeken gegeven en tevens tot welke serie het behoort. Uit de tabel blijkt dat voor combinaties met elementen 3 en 4 van P en Q geen eenduidige uitspraak mogelijk is omtrent de waarde van het informatieteken. De keuze wordt in een later stadium gemaakt bij het samenstellen van barcodehelften. Om de benodigde informatie voor die keuze te verschaffen wordt ook de verzameling waarden die hoort bij het gebied dat in figuur 13 met R0 aangegeven is betrokken bij de selectie van het informatieteken. Daartoe is in de onderhavige decodeermethode de verzameling van mogelijk informatietekens uitgebreid van 20 {ΑΟ,ΆΙ,...,A9,B0,B1,...,B9} naar 80 elementen {1A0,2A0,3A0,4A0,1A1,...,4A9,1B0,...,4B9>. Het cijfer links van de serieïndicatie geeft aan uit hoeveel modulen de streep moet bestaan die direct aan het informatieteken grenst. Dit aantal is 1, 2, 3 of 4 modulen.
De verzameling R0 wordt bepaald met lidmaatschapsfuncties van mil zoals bijvoorbeeld de functies F2 t/m F8 weergegeven in figuur 9. De verzameling van mogelijke informatietekens is een deelverzameling van de uitgebreide set van 80 informatietekens. De subset wordt gevonden door het combineren van elementen van P, Q en RO en het opzoeken van de combinaties in tabel in figuur 15. Aan elk informatieteken wordt een graad toegekend die berekend wordt met een FUZZY-AND functie of een algebraïsche produktfunctie van de graden van de bijbehorende elementen van P, Q en RO.
VOORBEELD: In figuur 7 heeft mil de waarde 4.62 voor het geval MARK is 0. Met de lidmaatschapsfuncties uit figuur 9 krijgt RO de elementen 4 (0.30) en 5 (0.70). Samen met de elementen van P en Q uit het bovenstaande voorbeeld geeft dat de volgende mogelijkheden voor het informatieteken: 1B6 (0.46) 1A0 (0.11) 2A0 (0.25)
De tussen haakjes geplaatste graad is berekend met het algebraïsche produkt van de afzonderlijke graden.
Bij het decoderen van een informatieteken wordt steeds op de aanwezigheid van hulptekens gecontroleerd.
Zoals is weergegeven in figuur 3 bestaat het scheidingsteken uit 2 strepen en 3 spaties die elk één module omvatten. De controle gebeurt door de fuzzificatie van M3, M4, M5 en M6 met behulp van een lidmaatschapsfunctie F2 waarvan een voorbeeld is weergegeven in f iguur 10. Bovendien wordt ook M7 gecontroleerd die correspondeert met het gebied dat in figuur 13 aangegeven wordt met het symbool Rx. Net als P en Q gaat het hier om een verzameling die de waarden 2, 3, 4 en 5 kan bevatten. Bijvoorbeeld de lidmaatschapsfuncties van figuur 8 zijn geschikt voor het bepalen van de verzameling Rx en de bijbehorende graden. Het gebied Rx ligt deels in het informatieteken en deels in het scheidingsteken. Eén module ligt in het scheidingsteken en de rest in het informatieteken. Bij een gegeven informatieteken is, zoals blijkt uit figuur 2, het aantal modulen van de buitenste streep bekend. Dit betekent dat per mogelijk informatieteken bekeken wordt of het aan een scheidingsteken grenst. De graad van het hulpteken wordt berekend met een FUZZY-AND functie van de graden die horen bij M3 t/m M6 en de graad van het passende element van Rx.
Een randteken bestaat uit twee strepen en een spatie (zie ook figuur 3). De controle gebeurt net als bij het scheidingsteken door fuzzificatie met behulp van een lidmaatschapsfunctie F2, in dit geval van M12 en M13. In tegenstelling tot het scheidingsteken behoeft geen aanvullende controle uitgevoerd te worden voor een gebied dat een overlap heeft met het informatieteken. Immers het gebied RO is al betrokken bij het decoderen van dat teken. Dat betekent dat de aanwezigheid van het randteken onafhankelijk is van de inhoud van het informatieteken. De graad van het randteken wordt bepaald met een FUZZY-AND functie van de graden behorende bij M12 en M13.
Bij een EAN-13 symbool worden i.h.a. verschillende eisen gesteld aan de linker- en rechtermarge. Aangezien in dit stadium van decoderen nog niet bekend is of een informatieteken deel uitmaakt van een linker- of een rechterhelft van het symbool wordt zowel gecontroleerd op de aanwezigheid van een linker- als van een rechtermarge. Een lidmaatschapsfunctie van M14 zoals bijvoorbeeld Fmarg in figuur 11 bepaalt de aanwezigheid en de bijbehorende graad. Voor de linker- en de rechtermarge kunnen daarbij verschillende functies gehanteerd worden.
Tenslotte wordt bij het decoderen van een informatieteken nog één controle uitgevoerd betreffende de afmetingen van naast elkaar gelegen informatietekens. In het ideale geval zijn de tekens binnen een EAN-13 symbool even breed, immers ze omvatten elk zeven modulen. Praktisch ontstaan er afwijkingen. De genormeerde breedte van een eventueel naastliggend informatieteken wordt gevonden met de optelling van M4 en M6. Met een lidmaatschapsfunctie zoals bijvoorbeeld Finter in figuur 12 wordt bepaald of de onderlinge breedteverhouding klopt en welke graad erbij hoort.
Resumerend kan worden gesteld dat, op het niveau van het decoderen van een informatieteken, bij iedere vulling van de datapijp de volgende informatie wordt bepaald en vervolgens beschikbaar gesteld aan het deel van de decodeermethode waarin helften worden samengesteld:
Een verzameling van mogelijke informatietekens uit de uitgebreide set van 80 tekens, ieder voorzien van een graad.
Per informatieteken de aanwezigheid van een scheidingsteken met bijbehorende graad.
De aanwezigheid van een randteken met graad.
De aanwezigheid van een linkermarge met graad.
De aanwezigheid van een rechtermarge met graad.
De breedteverhouding met een naastliggend informatieteken met graad.
Voor het samenstellen van barcodehelften wordt de aldus verkregen data opnieuw in een datapijp geplaatst (zie ook figuur 4). Deze datapijp bestaat uit 21 registers. Telkens als nieuwe data berekend is schuift de inhoud van de datapijp één register op om ruimte te maken voor de nieuwe data. Daarbij verdwijnt de inhoud van register 20 terwijl de nieuwe informatie in register 0 wordt geplaatst. De datapijp heeft aftakkingen bij de registers 0, 4, 8, 12, 16 en 20, zodat de data beschikbaar komt van zes naast elkaar gelegen informatietekens. Daarbij wordt verondersteld dat deze zes registers tezamen één of meer barcodehelften omvatten.
Net als bij het decoderen van informatietekens geeft ook hier het signaal HARK aan of van binnen naar buiten of in omgekeerde richting gedecodeerd dient te worden. MARK geeft met de waarde 1 aan dat register 0 en met de waarde 0 dat register 20 het informatieteken bevat dat grenst aan het scheidingsteken. Met deze manier van werken wordt geen enkele barcodehelft overgeslagen, immers met de goede polariteit van MARK komen alle helften eens in de genoemde posities van de datapijp terecht.
Bij het samenstellen van barcodehelften wordt gestart vanaf het scheidingsteken. Het is echter even zo goed mogelijk om vanaf het randteken te starten. Zoals in het bovenstaande reeds is vermeld wordt gestart met register 0 als MARK de waarde 1 heeft en als MARK de waarde 0 heeft wordt gestart met register 20. Dit register bevat een verzameling van mogelijke informatietekens. Er wordt uitsluitend gestart met die tekens die een vlag hebben die de aanwezigheid van een scheidingsteken aangeeft. Zoals in het voorgaande is vermeld omvat ieder mogelijk informatieteken naast een cijferwaarde en de serieïndicatie een waarde die aangeeft uit hoeveel modulen de aangrenzende streep in het naastliggende teken moet bestaan. Alle mogelijkheden voor het naastliggende informatieteken die aan deze eis voldoen, terwijl bovendien de onderlinge breedteverhouding goed is, worden geprobeerd. Met dit proces dat typisch een vorm van zogeheten backtracking is, wordt doorgegaan tot ook de mogelijkheden zijn gevonden voor het informatieteken dat zich naast het randteken bevindt. Voor deze laatste informatietekens geldt de beperking dat de naastliggende streep slechts éên module omvat, immers het gaat hier om een streep van het randteken. Daarnaast moet ook het randteken zelf aanwezig zijn.
VOORBEELD: In figuur 17 is de inhoud van de datapijp weergegeven voor de zes aftakkingen. De paden die met het backtrackalgoritme gevonden zijn, zijn met pijlen aangegeven. Een pad start rechts in de figuur met een informatieteken dat gelegen is naast een scheidingsteken (aangegeven met S). Er wordt gestart met de tekens 1B6 en 1A0. Naast deze tekens moet een informatieteken liggen dat een buitenste streep heeft bestaande uit één module. Zowel 1B7 als 1A1 voldoet aan deze eis. Bovendien moet de breedteverhouding van de naast elkaar gelegen informatietekens goed zijn. Dit wordt aangegeven met de vlag 'inter· die een graad groter dan nul moet hebben. De pijlen geven steeds aan welke informatietekens aan deze eisen voldoen en derhalve passen. Het zesde informatieteken moet naast een randteken passen en daarnaast moet dat randteken samen met een marge ook aanwezig zijn. Er worden op deze manier acht mogelijke helften gegenereerd: I *
Figure NL9500597AD00141
Aangezien in dat stadium zes naast elkaar gelegen informatietekens zijn gevonden kan ook de seriepermutatie worden gecontroleerd. Alleen de permutaties die in figuur 16 voorkomen zijn geldig. De tabel geeft aan of het om een linker- of een rechterbarcodehelft gaat. Afhankelijk hiervan wordt ook op de aanwezigheid van een linker- of rechtermarge gecontroleerd. Voor een linkerhelft geeft de tabel bovendien het cijfer dat in een EAN-13 symbool voor de mens leesbaar onder de linkermarge wordt afgedrukt.
De backtrackmethode samen met de overige controles geeft een verzameling van mogelijke barcodehelften. De verzameling kan leeg zijn. Iedere mogelijkheid wordt van een graad voorzien, die wordt berekend met een FUZZY-AND functie van de graden van de afzonderlijke onderdelen. Daarbij krijgen de graden van hulptekens een afwijkend gewicht.
VOORBEELD: Uit de 8 mogelijke helften van het vorige voorbeeld blijven na het controleren van de seriepermutatie met behulp van figuur 16 slechts twee mogelijkheden over:
Figure NL9500597AD00142
Alle mogelijke barcodehelften worden met bijbehorende graden doorgegeven aan het deel van de decodeermethode waarin helften worden samengesteld tot complete barcodes.
Bij het samenstellen van barcodes worden gedurende een bepaalde tijd barcodehelften verzameld. Om de hoeveelheid data te reduceren wordt voor identieke helften het aantal keren bijgehouden dat die helft voorkomt. Daarbij wordt de graad bijgewerkt met een FUZZY-OR van de graad die voor de tot dan toe verzamelde helften gold en de graad van de nieuwe helft. Na het verzamelen worden de linkerhelften met de rechterhelften gecombineerd. Voor een mogelijke barcode moet het controlecijfer, het cijfer in de rechterhelft naast het randteken, overeen komen met een moduloberekening van de overige cijfers. De graad van de barcode wordt berekend met een FUZZY-AND functie van de graden van de linker- en de rechterhelft, hierbij wordt rekening gehouden met het aantal keer dat de helften voor zijn gekomen.
Als de verzameling mogelijke barcodes meer dan één element bevat en er is duidelijk één barcode met een hogere graad dan de anderen dan wordt deze barcode afgegeven als de meest waarschijnlijke code. In andere gevallen kan het aantal keren dat een helft gevonden is of de volgorde waarin de helften gevonden worden, de doorslag bij een keuze geven.
VOORBEELD: Na een bepaalde tijd van verzamelen zijn de volgende barcodehelften gevonden: rechterhelft 678906 met graad 0.80 en 10 maal gevonden linkerhelft 6_009810 met graad 0.15 en 2 maal gevonden linkerhelft 8_712345 met graad 0.95 en 25 maal gevonden rechterhelft 567815 met graad 0.05 en 1 maal gevonden rechterhelft 876906 met graad 0.12 en 3 maal gevonden
Hiermee zijn 8 combinaties mogelijk. Echter slechts twee van de combinaties hebben een correct controlecijfer: 8_712345_678906 met graad 0.76 8_712345_876906 met graad 0.11
Op grond van de graad wordt de eerste code afgegeven.
De lidmaatschapsfuncties vormen een wezenlijk onderdeel van onderhavige uitvinding. De functies kunnen verschillend zijn voor informatietekens en hulptekens en kunnen zelf verschillen per onderdeel van een teken. In de voorbeelden zijn lidmaatschapsfuncties met een trapeziumvorm gebruikt. Een functie met deze vorm kan beschreven worden met vier hoekpunten of een zogenaamd trapeziumviertal. Een dergelijke vorm kan voordelen bieden bij implementatie. Dit sluit echter andere vormen voor de lidmaatschapsfuncties geenszins uit gezien de grote invloed die de keuze heeft op de prestatie van de decodeermethode.
Voor de FUZZY-AND functie zijn ook diverse alternatieven, waaronder het algebraïsch produkt en de minimumfunctie. Soortgelijke functies zijn mogelijk voor de FUZZY-OR. Waar nodig kan een tweede of hogere machtswortel van een graad getrokken worden met als doel de graad een kleinere weging te geven bij de evaluatie van vage logische expressies. Er zijn echter ook andere methoden mogelijk om een weging aan te brengen zoals bijvoorbeeld een gewogen gemiddelde.
De hierboven beschreven decodeerwerkwijze is ook van toepassing op UPCA codes, daar deze codes overeen komen met EAN-13 waarbij de linkerhelft uitsluitend informatietekens uit de Ά serie bevat (zie figuur 2). De methode is van toepassing op UPCE codes. Deze codes komen overeen met een linkerhelft van een EAN-13 code. Er is verschil in het gebruik van seriepermutaties, randtekens en marges. Verder is de methode van toepassing op EAN-8 codes, waarbij het feitelijk gaat om een verkorte uitvoering van EAN-13 codes.
Eerste resultaten met de bovenbeschreven uitvoeringsvorm van de werkwijze volgens de onderhavige uitvinding zijn verkregen met behulp van een computerprogramma en een voor dit doel ontwikkelde printkaart voor een personal computer die op een laserscanner is aangesloten. Uit een groot aantal meetresultaten kan de conclusie worden getrokken, dat voor representatieve situaties voor kassa's in supermarkten, de decodeerwerkwijze volgens de onderhavige uitvinding een hogere mate van in één keer goed lezen heeft. Tevens is gebleken dat in sommige omstandigheden de decodeerwerkwijze volgens de onderhavige uitvinding een goede uitkomst vindt, terwijl dit met het bestaande decodeeralgoritme in het geheel niet mogelijk was, vanwege een slechte afdrukkwaliteit.
Aan het boven, uitgebreid beschreven uitvoeringsvoorbeeld, dienen geen beperkingen te worden ontleend. De gevraagde rechten worden bepaald door de navolgende conclusies, binnen de strekking waarvan velerlei variaties mogelijk zijn, zoals de methode van fuzzificatie, de toepassing van vage logica en vage verzamelingen, de defuzzificatie, alsmede andere decodeeralgoritmen dan die zoals beschreven gebruik maken van tijdparen.

Claims (9)

1. Werkwijze voor decoderen van één of meer streepjescodes, die een aantal tekens, zoals informatietekens, scheidingstekens en dergelijke omvat, waarbij de tekens één of meer spaties en één of meer streepjes omvatten, waarbij de werkwijze de volgende stappen omvat: - het digitaliseren van elektrische signalen die zijn verkregen vanuit een opnemer, bijvoorbeeld voor het opnemen van gereflecteerde laserstralen; - het afleiden van de breedten van streepjes en spaties uit de digitale signalen; - het bepalen van één of meer tekenwaarden met een graad op basis van de gevonden breedten van de spaties en streepjes binnen het teken of in de onmiddellijke nabijheid daarvan; - het bepalen van één of meer informatiewaarden met een graad uit de tekenwaarden met een graad; en - het selecteren van de meest waarschijnlijke informatiewaarden voor een streepjescode of gedeelte daarvan met behulp van de bepaalde informatiewaarden.
2. Werkwijze volgens conclusie 1, waarbij bij het decoderen gebruik wordt gemaakt van tijdparen.
3. Werkwijze volgens conclusie 2, waarbij de tijdparen worden omgezet in informatietekens met een graad.
4. Werkwijze volgens conclusie 1, 2 of 3, waarbij de tekenwaarden worden samengesteld tot streepjescodehelften met een graad.
5. Werkwijze volgens conclusie 4, waarbij streepjescodehelften worden samengevoegd tot gehele streepjescodes met een zekere graad.
6. Werkwijze volgens conclusie 4 of 5, waarbij uit de streepjescode de meest waarschijnlijke streepjescode wordt bepaald, of waarbij uit de streepjescodehelft de meest waarschijnlijke streepjescodehelft wordt bepaald.
7. Werkwijze volgens één van de conclusies 1-6, waarbij de graad wordt bepaald met behulp van een trapeziumvormachtige lidmaatschapsfunctie.
8. Inrichting voor het decoderen van één of meer streepjescodes, omvattende: - opneemmiddelen voor het opnemen van van de streepjescode afkomstige straling; - omzetmiddelen voor het omzetten van het opgenomen signaal in een digitaal signaal; en - verwerkingsmiddelen voor het verwerken van het digitale signaal tot een meest waarschijnlijke streepjescode of streepjescodehelft.
9. Inrichting volgens conclusie 8, voorzien van een datapijp voor tijdparen die zijn verkregen uit de digitale signalen.
NL9500597A 1995-03-28 1995-03-28 Werkwijze en inrichting voor het decoderen van barcodes. NL9500597A (nl)

Priority Applications (7)

Application Number Priority Date Filing Date Title
NL9500597A NL9500597A (nl) 1995-03-28 1995-03-28 Werkwijze en inrichting voor het decoderen van barcodes.
AU50163/96A AU5016396A (en) 1995-03-28 1996-03-28 Method and device for decoding bar codes
AT96906959T ATE180910T1 (de) 1995-03-28 1996-03-28 Verfahren und gerät zur dekodierung van streifenkodes
EP96906959A EP0818019B1 (en) 1995-03-28 1996-03-28 Method and device for decoding bar codes
DE69602735T DE69602735T2 (de) 1995-03-28 1996-03-28 Verfahren und gerät zur dekodierung van streifenkodes
US08/930,038 US5929423A (en) 1995-03-28 1996-03-28 Method and device for decoding bar codes
PCT/NL1996/000131 WO1996030859A1 (en) 1995-03-28 1996-03-28 Method and device for decoding bar codes

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
NL9500597 1995-03-28
NL9500597A NL9500597A (nl) 1995-03-28 1995-03-28 Werkwijze en inrichting voor het decoderen van barcodes.

Publications (1)

Publication Number Publication Date
NL9500597A true NL9500597A (nl) 1996-11-01

Family

ID=19865765

Family Applications (1)

Application Number Title Priority Date Filing Date
NL9500597A NL9500597A (nl) 1995-03-28 1995-03-28 Werkwijze en inrichting voor het decoderen van barcodes.

Country Status (7)

Country Link
US (1) US5929423A (nl)
EP (1) EP0818019B1 (nl)
AT (1) ATE180910T1 (nl)
AU (1) AU5016396A (nl)
DE (1) DE69602735T2 (nl)
NL (1) NL9500597A (nl)
WO (1) WO1996030859A1 (nl)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3077616B2 (ja) * 1997-01-31 2000-08-14 富士通株式会社 バーコード読取方法
ATE196954T1 (de) * 1997-08-01 2000-10-15 Datalogic Spa Verfahren zum abtasten eines strichkodes
US7106888B1 (en) * 1999-05-25 2006-09-12 Silverbrook Research Pty Ltd Signature capture via interface surface
US7350236B1 (en) 1999-05-25 2008-03-25 Silverbrook Research Pty Ltd Method and system for creation and use of a photo album
WO2001031560A1 (fr) * 1999-10-25 2001-05-03 Fujitsu Limited Dispositif et procede de lecture de codes a barres
DE10207057B4 (de) * 2002-02-20 2008-07-31 Schildt, Janko, Dr.med. Anordnung zur Überwachung, für Patienten mit Diabetes mellitus
JP4257131B2 (ja) * 2003-02-21 2009-04-22 富士通株式会社 バーコード読取装置およびバーコード読取方法
AU2006252254B2 (en) * 2006-12-22 2009-03-05 Canon Kabushiki Kaisha Multiple barcode detection
US8196836B2 (en) * 2007-06-28 2012-06-12 Fuji Xerox Co., Ltd. Image processing apparatus, image processing method and computer-readable medium
US9292478B2 (en) * 2008-12-22 2016-03-22 International Business Machines Corporation Visual editor for editing complex expressions

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0066680A1 (en) * 1981-05-18 1982-12-15 International Business Machines Corporation Systematic error correction in bar code scanner
EP0250778A2 (en) * 1986-06-26 1988-01-07 International Business Machines Corporation Method for identifying a bar code label
EP0304146A2 (en) * 1987-06-18 1989-02-22 Spectra-Physics, Inc. (a Delaware corp.) Method of decoding a binary scan signal
EP0439682A2 (en) * 1990-01-05 1991-08-07 Symbol Technologies, Inc. High density two dimensional symbology
US5276316A (en) * 1990-05-02 1994-01-04 Ncr Corporation Method for reconstructing complete bar code signals from partial bar code scans

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3723710A (en) * 1971-06-28 1973-03-27 Ibm Method and device for reading and decoding a high density self-clocking bar code
US4245152A (en) * 1979-10-23 1981-01-13 International Business Machines Corporation Decoding method and system for ETAB bar code
US4855581A (en) * 1988-06-17 1989-08-08 Microscan Systems Incorporated Decoding of barcodes by preprocessing scan data
JP2886545B2 (ja) * 1989-03-03 1999-04-26 富士通株式会社 マージン認識方法及びバーコード読取り装置
US5329105A (en) * 1992-08-10 1994-07-12 United Parcel Service Of America, Inc. Method and apparatus for determining the width of elements of bar code symbols
US5412196A (en) * 1994-04-01 1995-05-02 United Parcel Service Of America, Inc. Method and apparatus for decoding bar code images using multi-order feature vectors
US5773807A (en) * 1995-07-28 1998-06-30 Symbol Technologies, Inc. Arrangement for and method of minimizing reading errors in bar code symbol readers

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0066680A1 (en) * 1981-05-18 1982-12-15 International Business Machines Corporation Systematic error correction in bar code scanner
EP0250778A2 (en) * 1986-06-26 1988-01-07 International Business Machines Corporation Method for identifying a bar code label
EP0304146A2 (en) * 1987-06-18 1989-02-22 Spectra-Physics, Inc. (a Delaware corp.) Method of decoding a binary scan signal
EP0439682A2 (en) * 1990-01-05 1991-08-07 Symbol Technologies, Inc. High density two dimensional symbology
US5276316A (en) * 1990-05-02 1994-01-04 Ncr Corporation Method for reconstructing complete bar code signals from partial bar code scans

Also Published As

Publication number Publication date
DE69602735T2 (de) 1999-10-07
AU5016396A (en) 1996-10-16
US5929423A (en) 1999-07-27
ATE180910T1 (de) 1999-06-15
WO1996030859A1 (en) 1996-10-03
EP0818019B1 (en) 1999-06-02
EP0818019A1 (en) 1998-01-14
DE69602735D1 (de) 1999-07-08

Similar Documents

Publication Publication Date Title
US10699089B2 (en) Decoding barcodes
US9996780B2 (en) Specific bar code and forming method of the same
US5969326A (en) Method and apparatus of autodiscriminating in symbol reader employing prioritized and updated table of symbologies
CN107092849B (zh) 用于使用多个数据源来读取光学标记的方法和设备
US4879456A (en) Method of decoding a binary scan signal
NL9500597A (nl) Werkwijze en inrichting voor het decoderen van barcodes.
US4414468A (en) Systematic error correction in bar code scanner
EP0072910B1 (en) Decoding method for multicharacter labels
JPH07200712A (ja) バーコード読み取りの方法および装置
CA2267892C (en) Method and apparatus for decoding bar code symbols using ratio analysis of module size
KR20090035529A (ko) 광학식 심볼 및 그것이 부착된 물품 및 광학식 심볼을 물품에 부착하는 방법, 및 광학식 인식 코드 인식 방법
EP0502440B1 (en) Bar-code reading apparatus and method
US5525787A (en) Symbol information reading apparatus
CN110603400B (zh) 用于确定标记是否真实的方法和计算装置
JP4154871B2 (ja) バーコード読取方法およびバーコード読取装置
RU2457537C2 (ru) Двухкомпонентный штрихкод
CN105512595B (zh) 条码修正方法和装置
US7734112B1 (en) Method and system for identifying an object in an electronically acquired image
JP7269335B2 (ja) 光学コード認識用イメージセンサ
JPH07105305A (ja) バーコード
GB1604063A (en) Method and apparatus for reading and decoding a high density linear bar code
DE102019217980A1 (de) Verfahren und vorrichtung zum dekodieren von unter-aufgelösten symbolen
JP3504366B2 (ja) シンボル情報読み取り装置
EP0359301A1 (en) Method of recognizing a pattern in a field having a multi-valent amplitude, and device for performing such a method
WO2012035552A2 (en) Generating a code system using haar wavelets

Legal Events

Date Code Title Description
A1B A search report has been drawn up
BV The patent application has lapsed