SE519145C2 - Förfarande och anordning för registrering av information - Google Patents

Förfarande och anordning för registrering av information

Info

Publication number
SE519145C2
SE519145C2 SE0002062A SE0002062A SE519145C2 SE 519145 C2 SE519145 C2 SE 519145C2 SE 0002062 A SE0002062 A SE 0002062A SE 0002062 A SE0002062 A SE 0002062A SE 519145 C2 SE519145 C2 SE 519145C2
Authority
SE
Sweden
Prior art keywords
bar code
images
image
reading device
displacements
Prior art date
Application number
SE0002062A
Other languages
English (en)
Other versions
SE0002062L (sv
SE0002062D0 (sv
Inventor
Markus Andreasson
Staffan Solen
Original Assignee
C Technologies Ab
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 C Technologies Ab filed Critical C Technologies Ab
Priority to SE0002062A priority Critical patent/SE519145C2/sv
Publication of SE0002062D0 publication Critical patent/SE0002062D0/sv
Priority to EP01937094.9A priority patent/EP1303830B1/en
Priority to PCT/SE2001/001216 priority patent/WO2001093183A1/en
Priority to AU2001262860A priority patent/AU2001262860A1/en
Priority to US09/872,400 priority patent/US20020021835A1/en
Publication of SE0002062L publication Critical patent/SE0002062L/sv
Publication of SE519145C2 publication Critical patent/SE519145C2/sv

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/1491Methods for optical code recognition the method including quality enhancement steps the method including a reconstruction step, e.g. stitching two pieces of bar code together to derive the full bar code
    • 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
    • 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/1408Methods for optical code recognition the method being specifically adapted for the type of code
    • G06K7/14172D bar codes
    • 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/1439Methods for optical code recognition including a method step for retrieval of the optical code
    • G06K7/1452Methods for optical code recognition including a method step for retrieval of the optical code detecting bar code edges

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Toxicology (AREA)
  • Electromagnetism (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Image Input (AREA)
  • Manufacturing Optical Record Carriers (AREA)
  • Image Processing (AREA)

Description

, 1:: n I v nu nu. :o GII"II g.
I " ° " ' I z sin n o 00 ' °' °' ° ' " av» v. www 0 :u 1... a- s: z: . . ,, , , . . p o n n is :u nu -0 H 2 att göra nästa läsning långsammare, eftersom en långsam inläsning intuitivt uppfattas som noggrannare. Använ- dandet av punktsensorn som streckkodsläsare är således förknippat med en del problem, vilket gör dess använd- barhet begränsad.
En andra känd metod är att utnyttja en avlång sen- sor. Den kan bestå av en rad sidoordnade CCD-pixlar (CCD=Charge Coupled Device). Dessa upptar ljus från en yta, som belyses av en rad lysdioder. Denna sensor rörs inte över streckkoden, utan hålles stilla över densamma, varvid alla streck i koden registreras samtidigt.
En nackdel med den avlånga sensorn, förutom dess högre pris, är att den inte kan registrera streckkoder med godtycklig längd. För varje sensor av denna typ finns en viss maximal streckkodslängd, som beror av antalet pixlar i sensorn och av tillhörande optik. Den avlånga sensorn kan dessutom endast med svårighet utnyttjas för inläsning av streckkoder på icke plana underlag.
En tredje känd metod att registrera en streckkod är att använda en streckkodsläsare med en svepande laser.
Streckkodsläsaren innehåller då mekaniskt rörlig optik, som sveper en laserstråle över en streckkod. Mottaget ljus projiceras på en punktsensor.
Nackdelen med denna typ av streckkodsläsare är fram- för allt ett högt pris. Den rörliga optiken är emellertid även mycket känslig för stötar, vilket begränsar denna streckkodsläsares användbarhet.
Sammanfattning av uppfinningen _ Ett ändamål med föreliggande uppfinning är att helt eller delvis avhjälpa ovannämnda problem.
Detta ändamål uppnås med ett förfarande för regist- rering av en streckkod enligt patentkrav 1, en läsanord- ning för registrering av en streckkod enligt patentkrav 13, samt ett lagringsmedium enligt patentkrav 16.
Enligt en första aspekt av uppfinningen uppnås ovan- nämnda ändamål närmare bestämt med ett förfarande för re- » ; : , ,. 10 15 20 25 30 35 519 145 3 gistrering av en streckkod, som består av ett flertal pa- rallella streck med varierande bredd. Förfarandet inne- fattar stegen att: a) en läsanordning tar en följd tvådimensionella bilder av streckkoden vid förflyttning av läsanordningen över densamma; b) streckkodens kanter i åtminstone en delmängd av bilderna detekteras; c) för åtminstone en delmängd av de detekterade bil- dernas kanter bestäms möjliga förskjutningar i förhål- lande till en föregående bilds kanter; d) den mest sannolika följden av förskjutningar för följden av bilder bestäms; och e) streckkoden rekonstrueras medelst nämnda följd av bilder och nämnda mest sannolika följd av förskjutningar.
Med ett sådant förfarande kan en streckkod tolkas mycket tillförlitligt. Läsanordningen kan röras över streckkoden på ett godtyckligt sätt så länge hela streck- koden registreras. Hastigheten hos rörelsen kan variera från stillastående och ända upp till den hastighet där två på varandra följande bilder inte längre överlappar varandra. Streckkoder av godtycklig längd kan registre- ras. Läsanordningen kan realiseras till mycket låg kost- nad. Enbart genom att tillföra ny mjukvara till en läs- penna av den typ som beskrivs i sökandens patent SE, 509 327, C2, och som utnyttjas för att registrera text, kan en läsanordning för tolkning av streckkoder realiseras.
Den som för andra ändamål redan äger en sådan läspenna kan således till mycket låg kostnad åstadkomma en streck- kodsläsare som fungerar i enlighet med det uppfinnings- enliga förfarandet.
Enligt en föredragen utföringsform detekteras i nämnda steg b) kanterna med utgångspunkt från svärtnings- nivån i pixelelement i ett band över bilden, vilket band är väsentligen vinkelrätt mot utbredningsriktningen hos streckkodens streck. Detta innebär mer tillförlitlig de- tektering av streckkoden. n n - , ,, lO 15 20 25 30 35 519 145 4 Företrädesvis innefattar steg b) följande steg: bl) för åtminstone en delmängd av bilderna, som fö- reställer delar av streckkoden, skapas ett histogram, som motsvarar svärtningsnivàn i nämnda pixelelement längs nämnda band; och b2) nämnda histogram differentieras sä att en serie kantkoordinater ástadkommes, vilka beskriver var längs nämnda band i bilden kanterna hos streckkodens streck är lokaliserade. Detta innebär mer tillförlitlig detektering av streckkoden.
Enligt en föredragen utföringsform skapas differen- tierade histogram för ett flertal band, som löper över en bild i olika vinklar, varvid det band vilkets differen- tierade histogram har högst toppar utväljs som det band som är väsentligen vinkelrätt gentemot utbredningsrikt- ningen hos streckkodens streck. Detta gör att streckkoden kan detekteras även om läsanordningen roteras under rö- relsens gäng.
Lämpligen genereras differentierade histogram för fler band i bildföljdens första bild än i efterföljande bilder. Detta möjliggör snabbare databehandling för ef- terföljande bilder.
En kantkoordinat kan företrädesvis bestämmas mera noggrant genom att maximera en approximerande funktion, såsom en andragradsfunktion, vilken löper genom de punk- ter, som bildar motsvarande topp i nämnda differentierade histogram. Detta medger en mer exakt detektering av streckkodens kanter.
Företrädesvis bestäms i steg c) möjliga förskjut- ningar genom att antaga en sådan förskjutning att tvà kantkoordinater, som tillhör efter varandra följande bil- der, överensstämmer och dä avgöra huruvida övriga kant- koordinater i bilderna överensstämmer. Detta medger snabb och exakt detektering av tänkbara förskjutningar.
Den mest sannolika följden av förskjutningar bestäms företrädesvis med ett kriterium baserat pà làg accelera- > I I | »u 10 15 20 25- 30 35 519 145 5 tion hos läsanordningen. Detta medger tillförlitlig de- tektering av streckkoden.
Företrädesvis bestäms i steg d) för de bilder, i vilka kanter har detekterats, felfunktioner för åtmin- stone en delmängd av de tänkbara förskjutningarna gent- emot en föregående bilds förskjutningar. Detta gör att en mest sannolik förskjutning kan bestämmas.
En sådan felfunktion, ek kan företrädesvis beräknas som: ek= maxíek-l, (vk-vk-l) (ak-ak-fl] , varvid: föregående bilds förskjutnings felfunktion, ek-1 vbl läsanordningens hastighet då föregående bild togs om föregående bilds förskjutning är giltig, vk =läsanordningens hastighet då aktuell bild togs om aktuell bilds förskjutning är giltig, abl = läsanordningens acceleration då föregående bild togs om föregående bilds förskjutning är giltig, ak =läsanordningens acceleration då aktuell bild togs om aktuell bilds förskjutning är giltig.
En sådan felfunktion har visat sig mycket tillför- litlig.
Lämpligen väljs för den sista bilden i bildföljden den förskjutning gentemot föregående bilds förskjutningar som har lägst felfunktion som mest sannolika förskjut- ning. Detta innebär mer tillförlitlig detektering av streckkoden.
Företrädesvis utväljs sedan för varje bild den för- skjutning med avseende på efterföljande bilds mest san- nolika förskjutning som har lägst felfunktion, som mest sannolika förskjutning. Även detta innebär mer tillför- litlig detektering av streckkoden.
Enligt en andra aspekt av föreliggande uppfinning avser denna närmare bestämt en läsanordning för registre- ring av en streckkod, som består av ett flertal paral- lella streck med varierande bredd. Läsanordningen inne- lO 15 20 25 30 35 519 145 6 fattar medel för att ta en följd tvådimensionella bilder av streckkoden vid förflyttning av läsanordningen över densamma, medel för att detektera streckkodens kanter i åtminstone en delmängd av bilderna, medel för att be- stämma möjliga förskjutningar i förhållande till en före- gående bilds kanter för åtminstone en delmängd av de de- tekterade bildernas kanter, medel för att bestämma den mest sannolika följden av förskjutningar för följden av bilder, och medel för att rekonstruera streckkoden med- elst nämnda följd av bilder och nämnda mest sannolika följd av förskjutningar.
Läsanordningen innebär motsvarande fördelar som ovan visade förfarande och kan varieras på motsvarande sätt.
Allmänt ingår då i läsanordningen medel för utförande av de i förfarandet visade stegen.
Enligt en föredragen utföringsform kan läsanord- ningen ingå i en läspenna. Läsanordningen kan då åstad- kommas genom tillägg av mjukvara till en sådan läspenna som är visad i sökandens patent SE, 509 327, C2.
Läsanordningen kan även vara integrerad i en elek- tronisk utrustning av annat slag såsom en mobiltelefon.
Läsanordningen kan då utnyttjas exempelvis för att regi- strera ett telefonnummer.
Enligt en tredje aspekt av föreliggande uppfinning avser denna närmare bestämt ett digitalt lagringsmedium innefattande ett datorprogram för registrering av en streckkod, som består av ett flertal parallella streck med varierande bredd. Programmet innefattar instruktioner för att: a)med en läsanordning ta en följd tvådimensionella bilder av streckkoden vid förflyttning av läsanordningen över densamma; b) detektera streckkodens kanter i åtminstone en delmängd av bilderna; c) bestämma möjliga förskjutningar i förhållande till en föregående bilds kanter för åtminstone en del- mängd av de detekterade bildernas kanter; - v - ..u« nu nova 10 15 20 25 30 35 519 145 7 d) bestämma den mest sannolika följden av förskjut- ningar för följden av bilder; och e) rekonstruera streckkoden medelst nämnda följd av bilder och nämnda mest sannolika följd av förskjutningar.
Detta datorprogram innebär motsvarande fördelar som ovan visade förfarande och kan varieras pà motsvarande sätt. Allmänt ingår då i datorprogrammet instruktioner för utförande av de i förfarandet visade stegen.
Kort figurbeskrivning Fig 1 visar en läsanordning i vilken ett förfarande enligt föreliggande uppfinning kan tillämpas.
Fig 2a- 2c visar ett förfarande enligt föreliggande uppfinning.
Fig 3 visar schematiskt en bild som föreställer en streckkod.
Fig 4a visar en bild av en streckkod.
Fig 4b- 4c visar histogram för olika band över streckkodsbilden i fig 4a.
Fig Sa- Sb visar differentierade histogram motsva- rande histogrammen i fig 4c respektive 4b.
Fig 5c visar en förstorad detalj ur histogrammet i fig 5a.
Fig 6a- 6d visar hur tänkbara förskjutningar mellan tvà efter varandra kommande bilder bestäms.
Fig 7 visar ett diagram av en sekvens av möjliga förskjutningar mellan en följd av bilder.
Fig 8a och fig 8b visar ett exempel pà inläsning av en streckkod.
Beskrivning av föredragna utföringsformer Fig 1 visar en läsanordning i vilken ett förfarande enligt föreliggande uppfinning kan tillämpas.
Läsanordningen 100 kan företrädesvis likna den typ som beskrivs i sökandens patent SE, 509 327, C2, vilket patents beskrivning skall anses ingà i föreliggande ansö- 10 15 20 25 30 35 519 145 8 kan genom denna referens. Denna läsanordning används emellertid för registrering av text.
Läsanordningen 100 enligt uppfinningen har då ett hölje 101, som liknar en vanlig överstrykningspenna. Läs- anordningen 100 kan i en föredragen utföringsform även utnyttjas för inläsning av text. Läsanordningen 100 kan även integreras med annan utrustning, exempelvis mobil- telefoner, PDAer, digitalkameror etc.
I höljets ena kortända återfinns ett fönster 102, som skall ligga an mot eller hållas pà kort avstånd från det underlag från vilket avläsning är ämnat att ske.
Fönstrets 102 bredd och höjd överensstämmer väsentligen med den yta som låsanordningen 100 avbildar då en bild tas. Fönstret 102 bildar en spetsig vinkel mot längdaxeln hos läsanordningens hölje, så att läsanordningens 100 an- vändare styrs till att hålla låsanordningen 100 i en viss förutbestämd vinkel mot underlaget. Fönstret 102 är något indraget i höljet 101 för att inte nötas mot underlaget då läsanordningen 100 används.
Höljet inrymmer i huvudsak en optikdel 103, en elek- tronikdel 104 och en strömförsörjningsdel 105.
Optikdelen 103 innefattar en lysdiod 106, ett lins- system 107 och en ljuskänslig sensor 108, vilken utgör ett gränssnitt mot elektronikdelen 104. Lysdioden 106 har till uppgift att belysa den del av underlaget som skall avbildas, dvs den del som finns under fönstret 102. En diffusor 109 är monterad framför lysdioden 106 för att sprida ljuset. Linssystemets 107 uppgift är att projicera en bild av den del av underlaget som befinner sig under fönstret 103 pà den ljuskänsliga sensorn 108. Den ljus- känsliga sensorn är företrädesvis en tvàdimensionell CCD- sensor med inbyggd A/D-omvandlare.
Strömförsörjningsenheten 105 innefattar ett batteri 112, som är monterat i höljet 101.
Elektronikenheten 104 innefattar en processor och dataminnen för behandling av bilder som registrerats av den ljuskänsliga sensorn 108. En läsanordning enligt upp- 10 15 20 25 30 35 519 145 9 finningen innefattar medel för utförande av de för- farandesteg som kommer att beskrivas senare. Dessa medel utgörs lämpligen av nämnda processor och minnen försedda med ändamålsenlig mjukvara. En del av eller hela regi- streringsförfarandet kan även tänkas utföras medelst en ASIC-krets.
Det uppfinningsenliga lagringsmediet kan utgöras av ett av ovannämnda minnen i läsanordningen, men kan även vara ett annat lagringsmedium, såsom en diskett eller en hårddisk kopplad till en server.
Elektronikenheten 104 innefattar även en sändanord- ning för översändning av information, exempelvis till en persondator. Denna kan vara av typen IR-sändare, eller en korthàlls radiosändare, exempelvis enligt BLUETOOTH-stan- darden.
Fig 2a- 2c visar som ett flödesschema ett förfarande enligt föreliggande uppfinning. Den ovan beskrivna läs- anordningen tar med jämna mellanrum bilder av det under- lag över vilket den förs. I en föredragen utföringsform är bildfrekvensen 50 Éz. Den process, i vilken förelig- gande uppfinnings förfarande utövas, mottar således en jämn ström av bilder. Bilderna kan lagras i ett minne i läsanordningen. Inläsningen av samtliga bilder kan såle- des ske först, varefter bilderna tolkas enligt före- liggande uppfinning. Tolkningen kan enligt uppfinningen även påbörjas så fort den första bilden tagits.
Läsanordningen kan utnyttjas för andra ändamål än inläsning av streckkoder, exempelvis kan text, siffror och andra typer av symboler läsas in. Då den process, ge- nom vilken förfarandet enligt uppfinningen utövas mottar 201 (se fig 2a) en bild kontrolleras 202 om den mottagna bilden är en streckkod.
Denna kontroll utförs mot ett uppsatt kriterium. Ex- empelvis kan man identifiera de pixelelement som finns i streckens kanter, dvs svart färgade pixlar, som har en vitfärgad grannpixel pà sin högra eller vänstra sida, al- ternativt över eller under. Därefter beräknas, såväl i 10 15 20 25 30 35 5 19 14 5 " " 10 vertikal som horisontell led, den sammanlagda längden hos sammanhängande rader/kolumner, med en längd större än ett, av sàdana kantpixelelement. Om kvoten mellan den sammanlagda längden sett i vertikal led (kolumner) och den sammanlagda längden i horisontell led (rader) över- stiger ett visst värde visar bilden sannolikt en streck- kod. Detta förfarande för att känna igen en streckkod kan även tänkas utnyttjas separat i andra tillämpningar än i förfarandet enligt föreliggande uppfinning.
Om den tagna bilden inte beskriver en streckkod skall den behandlas 203 pà annat sätt. Detta kan exempel- vis innebära att textregistrering sker enligt vad som är känt genom sökandens patent SE, 509 327, C2. Om den tagna bilden beskriver en streckkod skall den behandlas som den första bilden i en följd av bilder, som beskriver streck- koden.
Först skapas då ett antal histogram 204 (se fig 4b, 4c), vilka beskriver pixelementens svärtningsnivà längs ett antal band 401, 402, etc (se fig 4a), med viss bredd, vilka band löper över bilden 403 i olika vinklar. Före- trädesvis skär banden ett omrâde nära bildens centrum.
Ett band 402 som löper vinkelrätt mot streckkodens streck i bilden 403 kommer att resultera i ett histogram där det sammanlagda värdet av svärtningsgraden hos pixelementen längs bandets bredd ändras plötsligt (se fig 4d) där ban- det löper över kanten på ett streck. I ett histogram mot- svarande ett band 401 som löper mera snett över streck- koden kommer däremot det sammanlagda värdet av svärt- ningsgraden (i en gràskala) hos pixelementen över bandets bredd ändras långsammare (se fig 4b), eftersom pixelele- ment längs bandets bredd kan ligga pá ömse sidor om kan- ten av ett streck. Med histogram skall här allmänt för- stàs en logisk struktur, såsom exempelvis en vektor, som beskriver svärtningsgraden i olika positioner utefter bandets längd. Histogrammet behöver ju normalt inte skri- vas ut som sådant, utan visas här endast i beskrivande syfte. 10 15 20 25 30 35 :nu mo: n nn :n nn :n n; o n nn on on n; o o nn n on ;onn n o. on oo oo o n :nu o c nnn uno non no nn nn' on nno o n n n n n no o nn o o nu n n o n n n n n nn no n nn nn ll Åter med hänvisning till fig 2a differentieras 205 de ovan skapade histogrammen, dvs utifrân varje histogram skapas ett nytt histogram, som beskriver nivàskillnaden mellan tvà intilliggande punkter i det tidigare skapade histogrammet. I fig 5a och 5b visas differentierade his- togram motsvarande de i fig 4c respektive 4b.
Med ett kriterium som tar hänsyn till höjden hos topparna i dessa differentierade histogram utväljs 206, àter med hänvisning till fig 2a, det differentierade his- togram som motsvarar det mest vinkelräta bandet över streckkoden. Exempelvis kan dà summan av kvadraten pà det differentierade histogrammets värden utefter bandet be- räknas. Det mest vinkelräta bandet ger de högsta topparna och därmed det högsta värdet pä kvadratsumman. Alterna- tivt kan summan av absolutvärden över en viss nivà beräk- nas. Topparna utgör en grov uppskattning av kanternas po- sition i bandet.
För att mer exakt bestämma kantens position i det utvalda bandet utförs en interpolering 207 av topparna i det utvalda histogrammet. I fig 5c visas en förstoring av en detalj i det differentierade histogrammet i fig 5a, närmare bestämt en topp, som representerar en övergång från vitt till svart. Såsom framgår i fig 5c består denna topp av tre efter varandra följande staplar 501, 502, 503. En andragradsapproximation 504 av dessa staplar görs, och maximat hos denna andragradsapproximation be- räknas. Streckets kant kan nu antas ligga mycket nära detta maxima och är alltså bestämt pà sub-pixelnivä, dvs med högre upplösning än pixlarnas upplösning. Genom att utföra sådana interpoleringar pà alla toppar i det valda differentierade histogrammet erhålls en kantkoordinatupp- sättning där kanternas läge längs det valda bandet är mycket exakt bestämda. Med kanter avses allmänt över- gångar från svart till vitt och vice versa, andra färger kan dock naturligtvis förekomma.
Kantkoordinatuppsättningen kan göras som en upp- /neduppsättning där samtliga kanter finns med eller som 10 15 20 25 30 35 ' räta. ouo -oo o o oo oo oo :o so oo o o o oo oo oo oo o o oo o oo ooo oo o oo oo oo oo o o oooo o o oooo ooo oooo oo oo ooo oo ooo o oo o o o oo o oo o o oo o o o o o o o o o oo oo oo oo oo ooooo 12 separata upp- (vitt till svart) och neduppsättningar (svart till vitt). Kanternas position i den första bilden är sålunda bestämda.
Med hänvisning till fig 2b mottas 208 därefter nästa bild. På liknande sätt som med den första bilden skapas 209 histogram av pixlarnas svärtningsnivà i band över bilden. För bilder som efterföljer den första bilden är det emellertid normalt inte nödvändigt att skapa histo- gram för ett stort antal band i olika vinklar över bil- den. Om bildfrekvensen är 50 Hz har endast 20 ms för- flutit sedan den föregående bilden togs, varför det kan antas att läsanordningens vinkel vis-á-vis underlaget inte har ändrats i någon större utsträckning. Därför ska- pas endast histogram för tre olika band, ett i den vinkel som i föregående bild befanns vara väsentligen vinkelrät mot utbredningsriktningen hos streckkodens streck, samt två band vinklade exempelvis +2° och -2° (ett varv =360¶ i förhållande till detta band. Detta ger snabbare data- behandling för bilder som efterföljer den första bilden.
Dessa tre histogram differentieras 210 och det his- togram som har högst toppar utväljs som det mest vinkel- På samma sätt som för den första bilden utförs en interpolering 211, för att bestämma läget hos kanterna på streckkodens streck i bandet på sub-pixelnivå.
Därefter bestäms 212 tänkbara förskjutningar för en senare bild 605 (fig 6, motsvarar bild 7 i fig 8a) i för- hållande till föregående bild 606 (bild 6 i fig 8a), vil- ket visas med hänvisning till fig 6a- 6d. Detta gär till så att kantkoordinatuppsättningarna, här visade som streck uppåt och nedåt längs en axel, hos de båda bil- derna jämförs. Exempelvis kan den uppkoordinat 601 (över- gång från vitt till svart) i den föregående bilden 606 som ligger längst till höger sättas som en referenspunkt. 603, 604, jande bilden ger då förslag på förskjutningar A1, A2, A3, Uppåtkoordinaterna 602, etc hos den efterföl- A4 åt höger för läsanordningen. För vart och ett av dessa förslag avgörs om nedkoordinater och övriga uppkoordi- 10 15 20 25 30 35 A n »n n n: :n :n :nu n n nn n nn nn n n n n nn nnnn n nn nn nn nn n n nnnø n n onnn n n v o nnn ln nn Inn nn nnn l on n n n nn n nn n I nu n n n n n n n n n nn nn nn en nn nnnn 13 nater sammanfaller. Om så är fallet är denna förskjutning tänkbar.
I fig 6a antas den av den senare bildens uppätkoor- dinater som ligger längst till vänster överensstämma med den föregående bildens 606 uppàtkoordinat längst till hö- ger, vilket ger en förskjutning (eller offset) Al. Då överensstämmer även den nedàtkoordinat som ligger längst till höger i den föregående bilden 606 med den nedåtkoor- dinat som ligger längst till vänster i den senare bilden 605. lapp, vars storlek bestäms av förskjutningen. Al är där- Inga andra koordinater ligger inom bildernas över- för en tänkbar förskjutning.
I fig 6b antas den av den senare bildens uppätkoor- dinater som ligger näst längst till vänster överensstämma med den föregående bildens 606 uppàtkoordinat längst till höger, vilket ger förskjutningen A2. Då överensstämmer även de två nedåtkoordinater som ligger längst till höger i den föregående bildens 606 med de två nedåtkoordinater som ligger längst till vänster i den senare bilden 605.
Samtidigt överensstämmer de två uppätkoordinater som lig- ger längst till höger i den föregående bilden 606 med de två uppätkoordinater som ligger längst till vänster i den senare bilden 605. A2 är därför en tänkbar förskjutning.
I fig 6c antas den av den senare bildens uppätkoor- dinater som ligger tredje längst till vänster överens- stämma med den föregående bildens 606 uppàtkoordinat längst till höger, vilket ger förskjutningen A3. Dä över- ensstämmer även de tre nedåtkoordinater som ligger längst till höger i den föregående bilden 606 med de tre nedåt- koordinater som ligger längst till vänster i den senare bilden 605. Samtidigt överensstämmer de tre uppàtkoordi- nater som ligger längst till höger i den föregående bil- den 606 med de tre uppätkoordinater som ligger längst till vänster i den senare bilden 605. A3 är därför en tänkbar förskjutning.
I fig 6d antas den av den senare bildens uppàtkoor- dinater som ligger fjärde längst till vänster överens- 10 15 20 25 30 35 519 145 14 stämma med den föregående bildens 606 uppåtkoordinat längst till höger, vilket ger förskjutningen A4. Här finns emellertid konflikter mellan flera av de övriga ko- ordinaterna i de olika bilderna. Exempelvis har den upp- åtkoordinat som ligger näst längst till höger i den före- gående bilden 606 ingen motsvarighet i den senare bilden.
A4 är således inte en tänkbar förskjutning.
Diagrammen i fig 6a- 6d visas endast i beskrivande syfte, i det uppfinningsenliga förfarandet behandlas bil- dernas data som koordinatuppsättningar. Då adderas en viss förskjutning till de koordinater som motsvarar den senare bilden. Om förskjutningen är tänkbar eller ej be- stäms enligt ett visst kriterium. Exempelvis kan kvadrat- summan hos avvikelser inom par av upp- och nedkoordinater hos de överlappande delarna av respektive bild beräknas (exempelvis skillnaden mellan koordinatvärdet hos den lägsta uppkoordinaten i den överlappande delen av den första bilden och koordinatvärdet hos den lägsta uppkoor- dinaten i den överlappande delen av den senare bilden).
Om kvadratsumman hos dessa avvikelser understiger ett visst värde antas förskjutningen vara möjlig.
För att kunna detektera även rörelser frän vänster till höger kan även motsvarande förfarande utföras där exempelvis uppåtkoordinaten längst till vänster i den fö- regående bilden utnyttjas som referenspunkt.
För de flesta par av bilder i följden som avbildar streckkoden är det sannolikt att fler än en tänkbar för- skjutning kommer att hittas. Det fastställs 213 av pro- cessen huruvida tänkbara förskjutningar med hänsyn till föregående bild finns. Om inga tänkbara förskjutningar finns innebär detta att registreringen av streckkoden har avslutats och att slutbehandling skall ske enligt vad som kommer att beskrivas senare i samband med fig 2c.
Om däremot giltiga förskjutningar finns bestäms 214 för var och en av dessa en felfunktion med avseende på var och en av föregående bilds förskjutningar. Detta vi- sas i fig 7. Mellan den första bilden 701 och den andra 10 15 20 25 30 35 519 145 15 bilden 702 finns en uppsättning 703 tänkbara förskjut- ningar, i detta fall en åt höger, som ger ett förskjut- ningsvärde över tidsaxeln och en åt vänster, som ger en förskjutning under axeln, dvs negativ förskjutning. Även mellan den andra bilden 702 och den tredje bilden 704 finns en uppsättning 705 tänkbara förskjutningar, som in- nefattar två värden. Dessa är emellertid båda positiva, vilket motsvarar rörelser åt höger med läsanordningen i olika hastigheter. För samtliga förskjutningar mellan fö- regående och efterkommande bilder i följden bestäms, som nämnt, felfunktioner vis-á-vis samtliga förskjutningar i den föregående uppsättningen förskjutningar. Exempelvis bestäms för den största förskjutningen 706, mellan den andra 702 och den tredje 704 bilden, felfunktioner gent- emot de två tänkbara förskjutningarna 707, 708 mellan den första 701 och den andra 702 bilden.
Felfunktionen ek kan företrädesvis skrivas: ek=max[ek-l, (vk-vk-l) (ak-akfll, varvid: ek¿ föregående bilds förskjutnings felfunktion, vk¿ = läsanordningens hastighet då föregående bild togs om föregående bilds förskjutning är giltig, -vk =läsanordningens hastighet då aktuell bild togs om aktuell bilds förskjutning är giltig, akj = läsanordningens acceleration då föregående bild togs om föregående bilds förskjutning är giltig, och ak =läsanordningens acceleration då aktuell bild togs om aktuell bilds förskjutning är giltig.
Om skillnaden i den hastighet som krävs för att fö- regående bilds förskjutning skall vara giltig och den hastighet som krävs för att den aktuella bildens för- skjutning (och den föregående bildens förskjutning) skall vara giltig är stor och dessutom motsvarande skillnad i acceleration är stor, ges ett stort fel, eftersom detta är en för läsanordningen osannolik rörelse. Även om skillnaderna i hastighet och acceleration är små kommer 10 15 20 25 30 35 .519 145 16 emellertid ett stort fel att ges om den föregående för- skjutningen hade ett stort fel, eftersom detta fel då propagerar i max-funktionen. Hastighet mäts här i antal pixlar (heltal eller reellt tal) vinkelrätt mot streck- kodens streck mellan två tagna bilder.
För varje tänkbar förskjutning i en bild utväljs (fig 2b, 215) den förskjutning hos föregående bild som har lägst felfunktion som mest sannolika föregående för- skjutning. För den största tänkbara förskjutningen 706 mellan den andra 702 och den tredje 704 bilden, väljs ex- empelvis den positiva förskjutningen 707 (dvs åt höger) mellan den första 701 och den andra 702 bilden som den mest sannolika föregående förskjutningen.
Därefter upprepas processen, åter med hänvisning till fig 2b, när nästa bild mottas 208.
Då processen konstaterar 216 att inga tänkbara för- skjutningar gentemot föregående bild finns för en inkom- men bild slutbehandlas den inscannade streckkoden, såsom kommer att beskrivas närmare med hänvisning till fig 2c.
För den sista bilden som hade tänkbara förskjut- ningar till föregående bild och som därmed var den sista bilden som beskrev streckkoden konstateras 217 vilken förskjutning gentemot föregående bilds förskjutningar som hade lägst felfunktion. Denna förskjutning (710 i fig 7) antas vara den mest sannolika förskjutningen mellan den näst sista och den sista bilden. Eftersom varje tänkbar förskjutning för varje bild har en mest sannolik före- gående förskjutning kan nu en kedja av mest sannolika förskjutningar för hela bildföljden skapas 218.
Denna kedja (709 i fig 7) av mest sannolika för- skjutningar bildar en uppsättning förskjutningar som tillsammans med kantkoordinaterna i varje bild kan ut- nyttjas för att återskapa kantkoordinaterna för hela streckkoden till en global kantkoordinatuppsättning.
Denna globala uppsättning kantkoordinater beskriver streckkodens utseende under förutsättning att hela streckkoden avbildats. Därmed kan kantkoordinatuppsätt- lO 15 20 25 30 35 519 145 17 ningen utnyttjas för att extrahera 220 informationsinne- hållet i streckkoden, pà i sig väl kända sätt.
Ett exempel på förfarandet visas i fig 8a och 8b. En streckkod 801, i detta fall enligt EAN-13-standarden re- gistreras. Streckkodens symbolvärde, dvs den information som skall extraheras är strängen ”733l4240lOO72”. Tolv bilder av streckkoden tas då en låsanordning rörs över streckkoden 801. Läget för den första och den sjunde bil- den är indikerade i fig 8a. Av dessa tolv bilder skapas V kantkoordinatuppsåttningar 802, 803, etc. Dessa är visade som diagram i fig 8a. Då förskjutningar A2, A3, etc, mel- lan föregående och efterföljande bilder bestämts, såsom visas i fig 8b, kan en global kantkoordinatuppsättning 804 för hela streckkoden skapas. Den globala kantkoordi- natuppsättningen 804 utnyttjas sedan för att extrahera informationsinnehållet 805 i streckkoden. Detta sker på liknande sätt som i kända streckkodsläsare.
Förfarandet enligt uppfinningen kan allmänt be- skrivas med följande steg: a) att läsanordningen tar en följd tvådimensionella bilder av streckkoden vid förflyttning av läsanordningen ' över densamma; b)att streckkodens kanter i åtminstone en delmängd av bilderna detekteras; c)att möjliga förskjutningar i förhållande till en föregående bilds kanter bestäms för åtminstone en del- mängd av de detekterade bildernas kanter; d)att den mest sannolika följden av förskjutningar för följden av bilder bestäms; och e)att streckkoden rekonstrueras medelst nämnda följd av bilder och nämnda mest sannolika följd av förskjut- ningar.
Uppfinningen begränsas ej av ovan beskrivna ut- föringsformer, utan kan varieras på ett flertal sätt inom ramen för de bifogade patentkraven.

Claims (17)

10 15 20 25 30 35 519 145 18 PATENTKRAV
1. Förfarande för registrering av en streckkod, som består av ett flertal parallella streck med varierande bredd, a) en läsanordning tar en följd tvådimensionella k ä n n e t e c k n a t av stegen att: bilder av streckkoden vid förflyttning av läsanordningen över densamma; b) streckkodens kanter i åtminstone en delmängd av bilderna detekteras; c) för åtminstone en delmängd av de detekterade bil- dernas kanter bestäms möjliga förskjutningar i för- hållande till en föregående bilds kanter; d) den mest sannolika följden av förskjutningar för följden av bilder bestäms; och e) streckkoden rekonstrueras medelst nämnda följd av bilder och nämnda mest sannolika följd av förskjutningar.
2. Förfarande för registrering av en streckkod en- ligt krav 1, vid vilket i nämnda steg b) kanterna detek- teras med utgångspunkt från svärtningsnivån i pixelele- ment i ett band över bilden, vilket band år väsentligen vinkelrätt mot utbredningsriktningen hos streckkodens streck.
3. Förfarande för registrering av en streckkod en- ligt krav 1 eller 2, vid vilket steg b) innefattar föl- jande steg: bl) för åtminstone en delmängd av bilderna, som fö- reställer delar av streckkoden, skapas ett histogram, som motsvarar svärtningsnivån i nämnda pixelelement längs nämnda band; och b2) nämnda histogram differentieras så att en serie kantkoordinater åstadkommes, vilka beskriver var längs nämnda band i bilden kanterna hos streckkodens streck är lokaliserade.
4. Förfarande för registrering av en streckkod en- ligt krav 3, vid vilket differentierade histogram skapas för ett flertal band, som löper över en bild i olika 10 15 20 25 30 35 519 145 19 och vid vilket det band vilkets differentierade histogram har högst toppar utväljs som det band som är vinklar, väsentligen vinkelrätt gentemot utbredningsriktningen hos streckkodens streck.
5. Förfarande för registrering av en streckkod en- ligt krav 4, vid vilket differentierade histogram genere- ras för fler band i bildföljdens första bild än i efter- följande bilder.
6. Förfarande för registrering av en streckkod en- ligt något av krav 3, 4 eller 5, vid vilket en kantkoor- dinat bestäms mera noggrant genom att maximera en approx- imerande funktion som löper genom de punkter, som bildar motsvarande topp i nämnda differentierade histogram.
7. Förfarande för registrering av en streckkod en- ligt något av föregående krav, vid vilket i steg c) möj- liga förskjutningar bestäms genom att anta en sådan för- skjutning att två kantkoordinater överensstämmer och av- göra huruvida övriga kantkoordinater överensstämmer.
8. Förfarande för registrering av en streckkod en- ligt något av föregående krav, vid vilket i steg d) nämn- da mest sannolika följd av förskjutningar bestäms med ett ' kriterium baserat på låg acceleration hos läsanordningen.
9. Förfarande för registrering av en streckkod en- ligt något av föregående krav, vid vilket i steg d) för de bilder, bestäms för åtminstone en delmängd av de tänkbara för- i vilka kanter har detekterats, felfunktioner skjutningarna gentemot en föregående bilds förskjut- ningar.
10. Förfarande för registrering av en streckkod en- ligt krav 9, vid vilket nämnda felfunktion ek beräknas SOm: ekflnaxleks, (vk-vk-l) (ak-ak-fll, varvid ek¿ = föregående bilds förskjutnings felfunktion, vßl = läsanordningens hastighet då föregående bild togs om föregående bilds förskjutning är giltig, 10 15 20 25 30 35 519 145 20 vk =läsanordningens hastighet då aktuell bild togs om aktuell bilds förskjutning är giltig, abl = läsanordningens acceleration då föregående bild togs om föregående bilds förskjutning är giltig, ak =läsanordningens acceleration då aktuell bild togs om aktuell bilds förskjutning år giltig.
11. ll. Förfarande för registrering av en streckkod en- ligt krav 9 eller 10, vid vilket för den sista bilden i bildföljden den förskjutning gentemot föregående bilds förskjutningar som har lägst felfunktion väljs som mest sannolika förskjutning.
12. Förfarande för registrering av en streckkod en- ligt krav ll, vid vilket för varje bild föregående den sista bilden utväljs den förskjutning med avseende på ef- terföljande bilds mest sannolika förskjutning som har lägst felfunktion, som mest sannolika förskjutning.
13. Läsanordning för registrering av en streckkod, som består av ett flertal parallella streck med varier- ande bredd, läsanordningen innefattar medel för att ta en följd k å n n e t e c k n a t av att tvàdimensionella bilder av streckkoden vid förflyttning av läsanordningen över densamma, medel för att detektera streckkodens kanter i åtminstone en delmängd av bilderna, medel för att bestämma möjliga förskjutningar i för- hållande till en föregående bilds kanter för åtminstone en delmängd av de detekterade bildernas kanter, medel för att bestämma den mest sannolika följden av förskjutningar för följden av bilder, och medel för att rekonstruera streckkoden medelst nämnda följd av bilder och nämnda mest sannolika följd av förskjutningar.
14. Läsanordning för registrering av en streckkod enligt krav 13, vid vilken läsanordningen ingår i en läs- penna.
15. Läsanordning för registrering av en streckkod enligt krav 13, vid vilken läsanordningen är integrerad i en mobiltelefon. 10 15 20 25 30 35 519 1 45 . a' ssïï..s"s " 21
16. Digitalt lagringsmedium innefattande ett dator- program för registrering av en streckkod, som består av ett flertal parallella streck med varierande bredd, k ä n n e t e c k n a t av att programmet innefattar in- struktioner för stegen att: a)med en läsanordning ta en följd tvådimensionella bilder av streckkoden vid förflyttning av läsanordningen över densamma; b) streckkodens kanter i àtminstone en delmängd av bilderna detekteras; c) för åtminstone en delmängd av de detekterade bil- dernas kanter bestäms möjliga förskjutningar i förhål- lande till en föregående bilds kanter; d) den mest sannolika följden av förskjutningar för följden av bilder bestäms; och e) streckkoden rekonstrueras medelst nämnda följd av bilder och nämnda mest sannolika följd av förskjutningar.
17. Förfarande för registrering av en streckkod, k ä n n e t e c k n a_t av stegen att: - en läsanordning tar en följd tvàdimensionella bil- der av streckkoden vid förflyttning av läsanordningen “ över densamma; - för åtminstone en delmängd av bilderna bestäms möjliga förskjutningar i förhållande till en föregående bild; - den mest sannolika följden av förskjutningar för följden av bilder bestäms; och - streckkoden rekonstrueras medelst nämnda följd av bilder och nämnda mest sannolika följd av förskjutningar.
SE0002062A 2000-06-02 2000-06-02 Förfarande och anordning för registrering av information SE519145C2 (sv)

Priority Applications (5)

Application Number Priority Date Filing Date Title
SE0002062A SE519145C2 (sv) 2000-06-02 2000-06-02 Förfarande och anordning för registrering av information
EP01937094.9A EP1303830B1 (en) 2000-06-02 2001-05-31 Method and device for recording of information
PCT/SE2001/001216 WO2001093183A1 (en) 2000-06-02 2001-05-31 Method and device for recording of information
AU2001262860A AU2001262860A1 (en) 2000-06-02 2001-05-31 Method and device for recording of information
US09/872,400 US20020021835A1 (en) 2000-06-02 2001-06-01 Method and device for recording of information

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
SE0002062A SE519145C2 (sv) 2000-06-02 2000-06-02 Förfarande och anordning för registrering av information

Publications (3)

Publication Number Publication Date
SE0002062D0 SE0002062D0 (sv) 2000-06-02
SE0002062L SE0002062L (sv) 2001-12-03
SE519145C2 true SE519145C2 (sv) 2003-01-21

Family

ID=20279940

Family Applications (1)

Application Number Title Priority Date Filing Date
SE0002062A SE519145C2 (sv) 2000-06-02 2000-06-02 Förfarande och anordning för registrering av information

Country Status (4)

Country Link
EP (1) EP1303830B1 (sv)
AU (1) AU2001262860A1 (sv)
SE (1) SE519145C2 (sv)
WO (1) WO2001093183A1 (sv)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SE0301143D0 (sv) 2003-04-17 2003-04-17 C Technologies Ab Sätt och anordning för inläsning av data

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4949391A (en) * 1986-09-26 1990-08-14 Everex Ti Corporation Adaptive image acquisition system
US5155343A (en) * 1990-03-28 1992-10-13 Chandler Donald G Omnidirectional bar code reader with method and apparatus for detecting and scanning a bar code symbol
US5979763A (en) * 1995-10-13 1999-11-09 Metanetics Corporation Sub-pixel dataform reader with dynamic noise margins
SE509327C2 (sv) 1996-11-01 1999-01-11 C Technologies Ab Sätt och anordning för registrering av tecken med hjälp av en penna

Also Published As

Publication number Publication date
WO2001093183A1 (en) 2001-12-06
EP1303830A1 (en) 2003-04-23
SE0002062L (sv) 2001-12-03
EP1303830B1 (en) 2013-07-24
SE0002062D0 (sv) 2000-06-02
AU2001262860A1 (en) 2001-12-11

Similar Documents

Publication Publication Date Title
US11455482B2 (en) Systems and methods for decoding two-dimensional matrix symbols with incomplete or absent fixed patterns
CN104732183B (zh) 一种基于图像采样线灰度信息分析的一维条码识别方法
AU752626B2 (en) Recording of information
CN100380393C (zh) 复杂背景下qr码图像符号区域的精确定位方法
Wan et al. 2D-CTC for scene text recognition
EP3258422A1 (en) Character segmentation and recognition method
US20050199729A1 (en) Reconstruction of virtual raster
KR20010033610A (ko) 기록 방법 및 장치
EP1553522A2 (en) Determining positions of images of a stroke
CN1862560A (zh) 一种基于定位图形的可快速定位的二维条码系统
JP6860355B2 (ja) 改善されたマトリックス記号エラー修正方法
WO2005059819A1 (en) Method, apparatus, computer program and storage medium for recording a movement of a user unit
US20020021835A1 (en) Method and device for recording of information
Brisinello et al. Review on text detection methods on scene images
SE519145C2 (sv) Förfarande och anordning för registrering av information
KR101911912B1 (ko) 에지 및 히스토그램을 이용한 물체 검출 방법 및 장치
JP2007334478A (ja) 画像処理装置及び画像処理方法
CN103778398A (zh) 图像模糊度估计方法
Sawaki et al. Character recognition in bookshelf images by automatic template selection
JP4107280B2 (ja) イメージセンサ及び情報コード読取装置
JP4462322B2 (ja) 画像処理装置、画像形成装置、及びプログラム
Devi et al. Offline handwritten writer independent Tamil character recognition
JPH0993402A (ja) 読み取り位置検出方法とそれを用いたハンドスキャナ
JP5107100B2 (ja) 文字認識方法、文字認識装置及び文字認識プログラム
Sazaklis Geometric methods for optical character recognition

Legal Events

Date Code Title Description
NUG Patent has lapsed