data mining seminar
DESCRIPTION
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. - PowerPoint PPT PresentationTRANSCRIPT
Data Mining seminar
Machine Learning Methods for
Optical Character Recognition
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
1.Ekstrakcija regiona sa karakterima sa slike
2.Segmentacija slike na tekst i pozadinu
3.Ciscenje slike
4.Segmentacija karaktera
5.Normalizacija velicine karaktera
6.Feature detection
7.Klasifikacija
8.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