Things about pattern recognition OGD
Pattern recognition ● Simplify the input ● Extract features ● Process ● Learn? ● Output results
Binarization ● From 256^3 to 0..1 ● Thresholding ● Otsu ● Adaptive mean ● Many others
Simple features ● Runlength → fragile ● Projections → more robust ● Background vs foreground
Complex features ● Haar features → face detection in camera ● Wavelengths
Knowledge ● The program needs to “know” about things ● Learning ● Or just program it?
Machine learning ● Bayes ● SVM's ● Neural networks ● Loads of other things ● Your algorithm here?
Just program? ● Often best way to get started ● Understand the problem ● Get to know some of the features
The hard part ● Getting data ● Analyzing it ● Extracting features ● Lots of boring code ● Lots of manual labor
Wow I'm really smart ● Average brain better than supercomputer ● Massively parallel computer ● Still most of it not understood ● But it is simple for the smallest parts
Demo ● Modern dutch license plates ● How to detect and read
What do you see?
Dutch license plate ● Rectangular ● Mostly yellow ● Fixed ratio height-width ● Contains characters/numbbers ● Little blue thingy ● Usually a car around it
OpenCV
My IDE
Just yellowish pixels
Postprocessing Connected components ● Filter out components that are too small ● Calculate ratio of components ● Filter out anything that does not match ratio
No more garbage!
Working on the plate itself ● We now know where the plate is ● Extract it from original source ● Preprocessing ● Extract coco's ● Resize to 25x25 ● Store coco's
Manual processing ● Sort the stored images
Simple pixel comparison ● Works great ● Picture is the feature ● Simplest learning by example
Possible improvements ● Better plate detection ● Handling dirty plates ● Definitely some refactoring ;)
Credits & License ● Content by License: ● OpenOffice.org template by Raphaël Hertzog License: GPL-2+ ● Background image by Alexis Younes “ayo” License: GPL-2+