Ontwikkeling van algoritmen voor rolnummerherkenning

Cédric Verstraeten
Stel, morgen bestel je bij je favoriete webshop een nieuwe smartphone. Enkele dagen later wordt het pakketje bij je thuis geleverd. Dolenthousiast maak je het open, maar wat blijkt? Het bevat helemaal geen smartphone, maar wel een haardroger. Ergens liep iets mis bij de afhandeling van je bestelling. Teleurgesteld meld je het probleem bij de klantendienst, en na veel geduld te hebben geoefend, krijg je uiteindelijk toch nog je nieuwe telefoon in handen. Vroeg of laat krijgt elke handelaar met dit soort misverstanden te kampen.

Ontwikkeling van algoritmen voor rolnummerherkenning

Stel, morgen bestel je bij je favoriete webshop een nieuwe smartphone. Enkele dagen later wordt het pakketje bij je thuis geleverd. Dolenthousiast maak je het open, maar wat blijkt? Het bevat helemaal geen smartphone, maar wel een haardroger. Ergens liep iets mis bij de afhandeling van je bestelling. Teleurgesteld meld je het probleem bij de klantendienst, en na veel geduld te hebben geoefend, krijg je uiteindelijk toch nog je nieuwe telefoon in handen. Vroeg of laat krijgt elke handelaar met dit soort misverstanden te kampen. Het oplossen ervan kost tijd en geld, en misschien nog belangrijker: het imago van het bedrijf lijdt eronder. Daarom moet men op zoek gaan naar manieren om deze problemen te vermijden. Bij grote bedrijven, zoals de staalreus ArcelorMittal, is het eigenlijk niet anders. Als grootste staalfabrikant ter wereld vervaardigt het bedrijf een belangrijke grondstof voor de productie van auto’s, keukenapparatuur, meubilair enzovoort. Een klant die zulke afgewerkte producten maakt, plaatst een bestelling bij ArcelorMittal, net zoals jij dat doet bij een webshop. Het staal wordt dan geproduceerd en naar de klant getransporteerd. En net als bij een webshop loopt dat helaas weleens mis en ontvangt de klant iets heel anders dan wat hij bestelde, met heel wat rompslomp tot gevolg.  Of het nu over een kleine webshop gaat of over een internationale staalreus, de verkoper heeft typisch een voorraad producten klaarliggen, die hij aan zijn klanten wil leveren. Hij heeft dan ook een manier nodig om zijn producten en bestellingen makkelijk te identificeren. Zowel bij een postpakketje met een gsm als bij een rol staal van vijf ton ligt de oplossing voor de hand: een etiket met daarop een bestelnummer. Vaak worden bestellingen echter met de hand verwerkt. Menselijke fouten bij het aflezen van de etiketten komen dan ook vaak voor. Zo gaat het ook bij de Gentse vestiging van ArcelorMittal. De rollen staal liggen er opgeslagen in magazijnen, waarin ze worden getransporteerd door kranen. Telkens een rol moet worden verplaatst, kijkt de kraanbestuurder het nummer op het etiket na. Niemand is perfect, dus zo nu en dan wordt de foute rol opgepikt, doorheen het magazijn verplaatst en uiteindelijk naar de verkeerde klant verzonden. Om zulke fouten te vermijden, beschikt ArcelorMittal ook over automatische kranen. Die zijn in staat om zonder menselijke tussenkomst de rollen doorheen het magazijn te verplaatsen. Hoe gaat dat nu in zijn werk? Op zo’n automatische kraan zit een camera, die beelden maakt van de opgepikte rol. Oorspronkelijk gebruikte men die beelden enkel om fouten op te sporen, bijvoorbeeld bij defecte kranen. Het etiket met het rolnummer wordt echter mee gefilmd, zodat men een computersysteem is gaan ontwikkelen om het nummer volautomatisch uit te lezen. Om dit mogelijk te maken, maakt men gebruik van een tak van de informatica die beeldverwerking wordt genoemd. Iedereen heeft vast weleens een foto bewerkt op zijn computer. De bewerkingen die je gebruikt bij het photoshoppen zijn eigenlijk pure wiskunde: pixels, de gekleurde puntjes waaruit een foto bestaat, worden vertaald naar getalwaarden en op allerlei manieren verwerkt. Ook het automatisch uitlezen van het nummer van een rol staal gebeurt op die manier: de camera op de kraan levert digitale beelden en het computersysteem verwerkt die om er nuttige informatie uit te halen. Om het rolnummer uit te lezen, voert het twee stappen uit. Eerst bepaalt het systeem waar op het beeld het etiket precies te vinden is. Door op zoek te gaan naar de gekende eigenschappen van het etiket, kan het afleiden waar het waarschijnlijk voorkomt. Zo is het etiket bijvoorbeeld steeds rechthoekig. Verder bestaat het uit zwarte tekst op een witte achtergrond; aan de hand van beeldverwerkingstechnieken kan het systeem zulke sterke overgangen duidelijk detecteren. Ook zijn de cijfers op het etiket allemaal even groot en hebben ze min of meer vaste plaatsen. Door die informatie nuttig te gebruiken, vindt het systeem de positie van het etiket, en hoeft het enkel nog dat deel van het beeld verder te bekijken. De tweede stap laat zich raden: eens het systeem het etiket heeft gevonden, moet het nog uitvissen welke cijfers erop staan. Dankzij optical character recognition of OCR kan de computer tekst herkennen op beelden. Men gebruikt deze technologie bijvoorbeeld bij flitscamera’s om nummerplaten te lezen, maar ook om historische werken digitaal beschikbaar te maken. In het geval van ArcelorMittal gaat het OCR-programma Tesseract op zoek naar cijfervormen op het etiket, en vertaalt het die naar het cijfer dat er het meest op lijkt. Tot slot vergelijkt het systeem het uitgelezen nummer met het nummer van de rol die de kraan moest oppikken. Komen beide nummers niet overeen, dan zijn ergens twee rollen verwisseld. In dat geval moet een medewerker van ArcelorMittal nog steeds optreden, maar krijgt de klant tenminste geen verkeerd product toegestuurd. Doordat de camerabeelden niet allemaal even duidelijk zijn, kan het systeem helaas niet altijd het rolnummer uitlezen. Toch herkent de eerste versie al meteen zo’n tweederde van de nummers, wat een multinational als ArcelorMittal een hele besparing kan opleveren.  Nu nog wachten tot webshops ook zo’n systeem in gebruik nemen, zodat jij ook meteen je telefoon in handen hebt.

Bibliografie

[1] ArcelorMittal, “Sterke speler in de regio,” s.d. http://www.arcelormittal.com/gent/prg/selfware.pl?id_sitemap=1.[2] ArcelorMittal, “Zo maakt ArcelorMittal Gent staal” http://www.arcelormittal.com/gent/repository/Publicaties/ZomaaktArcelor… alGentstaal.pdf.[3] Cossilys,http://www.cossilys21.com/.[4] ArcelorMittal, “Big Brother in de warmwalserij,” Big Brother in de warmwalserij, 2010 http://www.arcelormittal.com/gent/prg/selfware.pl?id_sitemap=960.[5] M. Slembrouck, “Multicamera bewegingsgestuurde computerinterface,” 2011 http://aleph.ugent.be/F/L9BDFBMBH9HK63KBS7IKVKRF8CKLL23FG8 XMC791RDK2SU5R3T-03314?func=full-set- set&set_number=000803&set_entry=000001&format=999.[6] R.C. Gonzalez and R.E. Woods, Digital image processing, Upper Saddle River, N.J.: Prentice Hall, 2008.[7] MPEG-4http://en.wikipedia.org/wiki/MPEG-4.[8] B. Lovell, “Thresholding Techniques,” 2003.[9] A. Greensted, “Otsu Thresholding,” Otsu Thresholding (Java implementation) http://www.labbookpages.co.uk/software/imgProc/otsuThreshold.html.[10] P.C. Rossin, “Image Filtering & Convolution,” (s.d.) http://www.cse.lehigh.edu/~spletzer/rip_f06/lectures/lec003_Filtering.p…] A. C. Bovik, The Essential Guide to Image Processing, 2009.[12] Mean filter, s.d. http://homepages.inf.ed.ac.uk/rbf/HIPR2/mean.htm. [13]Guassian filter, s.d. http://homepages.inf.ed.ac.uk/rbf/HIPR2/gsmooth.htm. [14]Median Filter, s.d. http://homepages.inf.ed.ac.uk/rbf/HIPR2/median.htm.[15] M.A. Oliveira, N.J. Leite, A multiscale directional operator and morphological tools for reconnecting broken ridges in fingerprint images, Pattern Recognition, Volume 41, Issue 1, January 2008, Pages 367-377, ISSN 0031-3203[16] Canny, John, "A Computational Approach to Edge Detection," Pattern Analy- sis and Machine Intelligence, IEEE Transactions on, vol.PAMI-8, no.6, pp.679,698, Nov. 1986[17] N. Neeta, J. Gaurav, G. Ashish, and J. Anshul, “Dynamic Thresholding Based Edge Detection,” 2008.[18] Edge Detection, http://www1.idc.ac.il/toky/imageProc- 08/lectures/06_edgeX4.pdf.[19] Salt and pepper noise, http://en.wikipedia.org/wiki/File:Noise_salt_and_pepper.png.[20] Wenshuo Gao; Xiaoguang Zhang; Lei Yang; Huizhong Liu, "An improved Sobel edge detection," Computer Science and Information Technology (ICCSIT), 2010 3rd IEEE International Conference on , vol.5, no., pp.67,71, 9-11 July 2010[21] Canny, John, "A Computational Approach to Edge Detection," Pattern Analy- sis and Machine Intelligence, IEEE Transactions on, vol.PAMI-8, no.6, pp.679,698, Nov. 1986[22] CSE473/573 Fall 2010 Lecture Charts: Image Pre-preprocessing http://www.cse.buffalo.edu/courses/cse573/peter/lec/04.html.[23] Gunn, S.R., "Edge detection error in the discrete Laplacian of Gaussi- an," Image Processing, 1998. ICIP 98. Proceedings. 1998 International Conference on , vol.2, no., pp.515,519 vol.2, 4-7 Oct 1998[24] G.T. Shrivakshan and D.C. Chandrasekar, “A Comparison of various Edge Detection Techniques used in Image Processing,” 2012 http://ijcsi.org/papers/IJCSI-9-5-1-269-276.pdf.[25] P. Veelaert, “Hough Transform.”[26] Satoshi Suzuki, KeiichiA be, Topological structural analysis of digitized binaryimages by border following, Computer Vision, Graphics, and Image Processing, Volume 30, Issue 1, April 1985, Pages 32-46, ISSN 0734-189X[27] M. Jitendra, “Contour and Texture Analysis for Image Segmentation,” 2001 http://www.eng.utah.edu/~bresee/compvision/files/MalikBLS.pdf.[28] Fu Chang; Chun-Jen Chen, "A component-labeling algorithm using contour tracing technique," Document Analysis and Recognition, 2003. Proceedings. Se- venth International Conference on , vol., no., pp.741,745, 3-6 Aug. 2003[29] A. Talal Sleut, “A Chain Code Approach for Recognizing Basic Shapes.” [30]VXL http://vxl.sourceforge.net/.[31] TargetJr http://www.targetjr.org/.[32] VXL http://sourceforge.net/p/vxl/git/ci/master/tree/core/vxl_copyright.h.10…] VXL (Book) http://public.kitware.com/vxl/doc/release/books/core/book.html. [34]VXL (repository) http://sourceforge.net/projects/vxl/.[35] LTI http://ltilib.sourceforge.net/doc/homepage/index.shtml.[36] LTI Aachen University http://www.rwth-aachen.de/.[37] LTI (documentatie) http://ltilib.sourceforge.net/doc/html/index.shtml.[38] OpenCV website http://opencv.org/.[39] G.R. Bradski and A. Kaehler, Learning OpenCV: computer vision with the OpenCV library, Sebastopol, CA: O’Reilly, 2008.[40] Emgu CV website http://www.emgu.com/wiki/index.php/Main_Page.[41] D. Karatzas, S. Robles Mestre, F. Nourbakhsh, and J. Mas, “ICDAR 2011 Ro- bust Reading Competiti,” 2011 http://www.cvc.uab.es/icdar2011competition/images/Report_RobustReading_ Challenge1_final.pdf.[42] S.M. Hanif and L. Prevost, “Texture based text detection in natural scene im- ages,” (s.d.) http://ceur-ws.org/Vol-415/paper2.pdf.[43] Yuan, Q.; Tan, C.L., "Text extraction from gray scale document images using edge information," Document Analysis and Recognition, 2001. Proceedings. Sixth International Conference on , vol., no., pp.302,306, 2001[44] M. Alata and M. Al-Shabi, “Text detection and character recognition using fuzzy image processing,” 2006 http://iris.elf.stuba.sk/JEEEC/data/pdf/5_106- 3.pdf.[45] M. Pietikäinen and O. Okun, “Text extraction from grey scale page images by simple edge detectors,” (s.d.) http://www.ee.oulu.fi/mvg/files/pdf/pdf_148.pdf.[46] A. Dutta, “Gradient based Approach for Text Detection in Video Frames” http://www.comp.nus.edu.sg/~tancl/publications/c2009/ICSIP2009-3.pdf.[47] R. Stoop, Algoritmen II.[48] C. Patel, A. Patel, and D. Patel, “Optical Character Recognition by Open Source OCR Tool Tesseract: A Case Study,” 2012 http://research.ijcaonline.org/volume55/number10/pxc3882784.pdf.[49] R. Smith, “An Overview of the Tesseract OCR Engine” http://research.google.com/pubs/archive/33418.pdf.[50] N. White, “Training Tesseract for Ancient Greek OCR,” 2013 http://www.eutypon.gr/eutypon/pdf/e2012-29/e29-a01.pdf.[51] Google, “Tesseract Official Website” https://code.google.com/p/tesseract-ocr/.[52] “Tesseract OCR Chopper” http://pp19dd.com/tesseract-ocr-chopper/.[53] C. Verstraeten, “Rolnummerherkenning C# applicatie” https://github.com/cedricve/label-recognition-emgucv.[54] Cognex website http://www.cognex.com/.107[55] R. Laganière, OpenCV 2 computer vision application programming cookbook over 50 recipes to master this library of programming functions for real-time computer vi- sion, Birmingham, UK: Packt Pub., 2011 http://site.ebrary.com/id/10477260. Last accessed on February 22, 2013.[56] ArcelorMittal, “Van GPS naar DGPS in het plakkenpark,” s.d. http://www.arcelormittal.com/gent/prg/selfware.pl?id_sitemap=101&langua… NL.[57] L. Wang and J. Bai, “Threshold selection by clustering gray levels of boundary,” 2003[58] R. Stoop, Algoritmen I.[59] Shivakumara, P.; Trung Quy Phan; Tan, C.L., "A Gradient Difference Based Technique for Video Text Detection," Document Analysis and Recognition, 2009. ICDAR '09. 10th International Conference on , vol., no., pp.156,160, 26-29 July 2009[60] Trung Quy Phan; Shivakumara, P.; Tan, C.L., "A Laplacian Method for Video Text Detection," Document Analysis and Recognition, 2009. ICDAR '09. 10th In- ternational Conference on , vol., no., pp.66,70, 26-29 July 2009[61] R. Velázquez, E. Pissaloux, and P. Le Polotec, “Towards a local spatial repre- sentation system for mobility assistance of the blind”

 

Universiteit of Hogeschool
Master of Science in de industriële wetenschappen: informatica
Publicatiejaar
2013
Kernwoorden
@cedricve_me
Share this on: