350 likes | 520 Views
Machine Learning Methods for Optical Character Recognition. Data Mining seminar. Sadrzaj prezentacije. Kratak uvod u metode optickog prepoznavanja karaktera Opis data mining i feature extraction metoda koriscenih u radu Opis rada i rezultata Mogucnosti za poboljsanje.
E N D
Machine Learning Methods for Optical Character Recognition Data Mining seminar
Sadrzaj prezentacije • Kratak uvod u metode optickog prepoznavanja karaktera • Opis data mining i feature extraction metoda koriscenih u radu • Opis rada i rezultata • Mogucnosti za poboljsanje
OCR u kratkim crtama • Polje informatike koje se razvija od 1950. godina • Dve oblasti – cisto opticko prepoznavanje i digitalno prepoznavanje • Vrlo dobri rezultati danasnjim metodama – 97% za stampani tekst 70-80% za cist rucno pisani tekst • Prepoznavanje pisanih slova – podrucje istrazivnja
OCR detaljnije • Prevodjenje slika teksta u “machine-editable” format. • Pocetak – pattern recognition i template matching – ogranicene metode • Moderni algoritmi – veliki broj razlicitih tehnika: neuralne mreze, prepoznavanje poteza,... • Svaki OCR algoritam prolazi kroz broj koraka (faza) koje su zajednicke skoro svim modernim algoritmima
Koraci u OCR algoritmu • Ekstrakcija regiona sa karakterima sa slike • Segmentacija slike na tekst i pozadinu • Ciscenje slike • Segmentacija karaktera • Normalizacija velicine karaktera • Feature detection • Klasifikacija • Verifikacija
Ekstrakcija regiona sa karakterima • koriscenjem vec poznatij osobina slike, izdvajaju se delovi dovoljno razliciti od teksta • u slucaju ciste pozadine, proces razdvaja sliku u linije teksta • ponavljanjem se vec dobijene linije razdvajaju na reci • razni metodi su moguci – lokalne furijeove maske, Connect Component Analysis,...
Segmentacija slike • OCR algoritmi retko rade sa grayscale slikama, najcesce koriste binarnu reprezentaciju • cilj ove faze je identifikacija piksela koji pripadaju tekstu i onih koji pripadaju pozadini • najcesce koriscena metoda – tresholding • dobar deo algoritama zamenjuje redosled ovom i prethodnom koraku
Ciscenje slike • posle segmentacije slike, moramo “ocistiti” sav sum • Morfoloski operatori i neighbourhood operatori najpopularniji
Segmentacija karaktera • stariji algoritmi su pokusavali da podele segmentovanu sliku na karaktere • moderniji programi u celosti preskacu ovaj korak • moguce je kombinovati ovaj korak sa samim prepoznavanjem:prvo se prepoznaju laki (karakteristicni) karakteri,zatim se ostatak teksta segmentira na osnovu ovih karaktera
Normalizacija velicine karaktera • korak koristan samo ako nas algoritam zavisi od velicine karaktera • nije bitna samo visina, vec aspect ratio karaktera • kraj preliminarnog procesiranja
Feature Detection • kljucni korak za algoritam • ogroman broj razlicitih feature-a se moze koristiti • detekcija mora biti nezavisna od velicine ili fonta • posebno privlacni feature-i invarijantni na transformacije slike (translaciju, rotaciju, nedostajuci delovi,...) • obicno se detektuje nekoliko feature-a u isto vreme
Feature Detection 2 • mogu se koristiti brojne metode – statisticka korelacija, stanjivanje regiona, transformacije i teksturne maske,... • ukoliko algoritam prolazi kroz korak segmentacije karaktera, najzgodniji feature-i su delovi slova i cifara:Ostre ivice i coskovi, rupe, konkavnosti i sl. • Ukoliko prolazimo kroz ovaj korak pre segmentacije, zgodnije je traziti specificne karaktere nego samo delove • rezultat koraka: Feature vektor koji sadrzi izmerene osobine regiona
Klasifikacija • dodeljujemo regionu karakter koji najvise odgovara feature vektoru toge regiona • pre korisceni strukturni klasifikatori • moderni klasifikatori – statisticki pristup • moguci metodi: Bayesove metode odluke, Nearest Neighbour, stabla odluke, neuralne mreze,... • moderni statisticki klasifikatori imaju visoke stope prepoznavanja – najcesce iznad 97%
Klasifikacija, moguci pristupi • kombinacijom vise klasifikatora moze se dobiti mnogo preciznija klasifikacija • dva moguca pristupa:svi klasifikatori vrse svoju klasifikaciju, pa se finalni output bira medju njihovim rezultatima, ilisvaki klasifikator suzava izbor moguceg outputa, dok na kraju ne zavrsimo sa jednim karakterom. • kombinacija probabilistickih metoda baziranih na recniku i klasifikatora bi mogla dovesti do interesantnih rezultata
Verifikacija • proveravamo da li je dobijeni tekst konzistentan sa ocekivanim (da li dobijene reci postoje u recniku,...)
Data mining, uvod • Data mining – proces (automatski ili delom automatizovan) otkrivanja pravilnosti u podacima • otkrivene pravilnosti moraju biti znacajne, dok je podataka najcesce jako mnogo • korisne pravilnosti nam dozvoljavaju da vrsimo netrivijalna predvidjanja o tim podacima
Data mining 2 • Cetiri u osnovi razlicita stila ucenja: Klasifikacija, gde zelimo da naucimo kako da klasifikujemo podatke na osnovu seta vec klasifikovanih podataka Clustering, gde trazimo grupe primera (podataka) koji su nekako slicni (pripadaju zajedno) Asocijativno ucenje, gde trazimo asocijacije izmedju bilo kojih feature-a, ne samo onih vezanih za klasu Numericka predikcija, gde ne predvidjamo diskretnu klasu, vec neku numericku vrednost
Klasifikacija • Kljucan deo OCR algoritama je klasifikacija karaktera • Posmatramo algoritam kao “supervised” ucenje – svakom feature vektoru je vec dodeljena klasa, pa mozemo oceniti tacnost klasifikatora
Klasifikatori • u radu su koriscena cetiri algoritma za klasifikaciju: NaïveBayes – zasnovan na Bayesovom pravilu uslovne verovatnoce, koji “naivno” pretpostavlja nezavisnost feature-a. Complement NaïveBayes – varijacija multi-nominalnog Naïve Bayes klasifikatora, adaptirana za rad na tekstu SMO – algoritam koji trenira support vektor masinu koristeci linearne modele J48 – pravi pruned C4.5 stablo odlucivanja koristeci “divide and conquer” algoritam.
Evaluacija klasifikatora • svaki klasifikator mora biti treniran i testiran na nekom setu podataka • ogranicena velicina dostupnih podataka • n runs of k-fold crossvalidation – n puta delimo ceo dataset na k poddelova, a zatim svaki od tih k koristimo za treniranje a ostale za testiranje
Opis rada i rezultati • Datasetovi • Rezultati primene algoritama • Zakljucci
Dataset • Za potrebe rada, napisana i koriscena php skripta • Izgenerisane slike svakog karaktera iz 1500 True Type fontova • Zbog velicine i duzine rada sa ovako velikim datasetom, koristen samo podskup od 47 fontova i samo na velika slova. • Od ovih slika, konstruisana 3 seta feature vektora, oznaceni sa dataset 1, dataset 2 i dataset 3 • Svi datasetovi predstavljeni kao redak vektor piksela, sa belim pikselima izostavljenim.
Feature extraction • Prilikom konstrukcije feature vektora za datasetove koriscene feature extraction metode FeatureJ plug-in-a za open-source program za manipulaciju slikama - ImageJ • Kratak opis termina koriscenih za opis datasetova: • Strukturni tenzor je matricna reprezentacija parcijalnog izvoda • Hessian matrica je kvadratna matrica parcijalnih izvoda drugog reda funkcije f(x)
Dataset 1 • Prvi dataset je konstruisan od neizmenjenog rastera slika karaktera • U kasnijim fazama rada koristena je i veca verzija ovako konstruisanog dataseta, sa feature vektorima svih velikih slova iz 238 fontova.
Dataset 2 i 3 • Dataset 2 - Konstruisan od originalnih 47 slika koriscenjem najmanjih karakteristicnih vrednosti karakteristicnog vektora strukturnog tenzora svake slike • Dataset 3 – Konstruisan od originalnih 47 slika koriscenjem najmanjih karakteristicnih vrednosti Hessiana svake slike.
Za samu klasifikaciju koriscena je Weka data mining environment i vec ugradjene verzije algoritama • Zbog prevelikih memorijskih zahteva, radjeno je na vrlo malim datasetovima • Od ovih datasetova izabran je onaj na kome su rezultati bili najbolji, te je uvecan i ponovo klasifikovan.
Rezultati, dataset 1 • Korektno klasifikovano: J48: 67.18% CNB: 70.9% NB: 71.19% SMO: 83.55%
Rezultati, dataset 2 • Korektno klasifikovano: J48: 62.77% CNB: 40.42% NB: 68.08% SMO: 84.04%
Rezultati, dataset 3 • Korektno klasifikovano: J48: 46.56% CNB: 41% NB: 59% SMO: 70.21%
Rezultati, dataset 1, large • Korektno klasifikovano: • J48: 78.57% • NB: 74.55% • SMO: 88.97% • zbog losih rezultata i dugih vremena obrade, globalno najlosiji algoritam, CNB je izbacen u ovom testu
Zaključci • Support vektor masine, uprkos sporo implementiranom algoritmu, pokazuju znacajno bolje rezultate od ostalih algoritama • Sa povecanjem dataseta dobijamo znacajno bolje rezultate za sve algoritme, ali se vreme treniranja klasifikatora produzuje • Greske koje sejavljaju (zajednicke svim algoritmima) pokazuju da su algoritmi korisceni za feature extraction neadekvatni
Mogucnosti za dalji rad • Ozbiljniji i kompleksniji algoritmi za feature extraction bi trebali da eliminisu ceste greske koje se javljaju u svim algoritmima • Povecanje velicine dataseta ocigledno dovodi do boljih rezultata klasifikacije – bilo bi zanimljivo ispitati kada poboljsanja prestaju da budu statisticki znacajna • Posmatranje veceg broja ML algoritama bi dovelo do kompletnije analize rezultata