Minimalna hardverska konfiguracija potrebna
za korišćenje programa za prepoznavanja teksta:
-
PC računar baziran na procesoru klase Intel
Pentium 100 ili jačem,
-
najmanje 16 megabajta RAM memorije,
-
floppy disk jedinica od 3,5" ili 5,25" inča,
-
hard disk sa oko 5 MB slobodnog prostora (program
za prepoznavanje teksta zauzima 1.5 MB prostora na hard disku, a ostali
prostor je potreban za smeštanje slika koje se obrađuju).
Program zahteva da na računaru bude instaliran
operativni sistem Microsoft Windows 95 ili noviji.
Program OCR je namenjen prepoznavanju ćiričnih
slova iz slika u bitmap formatu. Ova verzija programa nije za komercijalnu
upotrebu. Program je rađen kao prateći materijal magistarskog rada "Obučavanje
neuronskih mreža za prepoznavanje ćiričnih slova". Program je razvijan
u programskom jeziku Delphi 4 ali je naknadno kompajliranje izvršeno u
programskom jeziku Delphi 5. Prepoznavanje slova vrši neuronska mreža sa
backpropagation algoritmom obučavanja.
Program algoritamskim metodama određuje
granice pojedinih slova, slike pojedinačnih slova se propuštaju korz neuronsku
mrežu koja vrši identifikaciju slova.
NAČIN RADA PROGRAMA
-
Učitavanje slike predstavlja prvi korak u
algoritmu prepoznavanja. Sa diska se učitava unapred pripremljena slika
u bitmap formatu.
-
Izdvajanje slova iz slike – da bi mogli da
prepoznamo slovo, moramo ga izdvojiti od ostatka slike. Slova se izdvajaju
jedno po jedno, odgovarajućim redosledom (sleva na desno i od gore prema
dole), na isti način kao što to čini čovek koji čita tekst. Izdvajanje
slova iz slike je podeljeno u dve operacije.
-
Traženje naredne tačke. Ova procedura analizira
sliku i pronalazi koordinate tačke koja pripada sledećem slovu. Za prvo
slovo procedura počinje pretragu iz gornjeg levog ugla slike (0,0); za
svako sledeće slovo procedura počinje pretragu iz gornjeg desnog ugla poslednjeg
prepoznatog slova. Kada se dođe do slova koje se nalazi na kraju reda,
očitava se donja koordinata poslednjeg slova Y2 i pretraživanje počinje
iz koordinate (0,Y2+1).
-
Određivanje najmanjeg pravougaonika u kome
se nalazi celo slovo: da bi smo mogli izdvojiti pojedinačna slova iz skenirane
slike, potrebno je utvrditi koje sve tačke pripadaju datom slovu. Kada
se prethodnom procedurom dobiju koordinate jedne od tačaka koja pripadaju
sledećem slovu, potrebno je odrediti koji je najmanji pravougaonik koji
obuhvata sve tačke datog slova. U ovom programu se najmanji pravougaonik
određuje metodom koncentričnih krugova. Oko nađene tačke se ispituju tačke
koje okružuju nađenu tačku. Zatim se krugovi povećavaju dok se ne dobiju
prazne linije sa sve četiri strane. Ova metoda se može primeniti ako su
sva slova iz “jednog dela” tj nemaju apostrofe kao latinična slova (Š,
Č, Ć, Ž). Jedan od mogućih načina izdvajanja slova je da “obilazimo” oko
nađene tačke slova, sve dok ne dođemo u situaciju da se sa sve četiri strane
nalaze neobojene tačke.
-
Nedostatak ove metode je što nije efikasna,
ukoliko se primenjuje na simbolima koja sadrže apostrofe, kao što je slučaj
sa latiničnim slovima. Takođe, ova metoda ne može da razdvoji slepljena
slova a problemi se mogu javiti i kod ukošenih slova.
-
Skaliranje se vrši da bi program bio nezavisan
od veličine slova. Skaliranjem se sva slova, bez obzira na veličinu, svode
na matricu 12x12 kakva je korišćena prilikom obučavanja NM.
-
Dovođenjem slova standardne veličine na ulaz
neuronske mreže, na izlazu se dobija trideset realnih brojeva u intervalu
[0,1] koji predstavljaju verovatnoću slova sa ulaza. Odabira se slovo sa
najvećom verovatnoćom. Ukoliko je slovo na ulazu korektno prepoznato, na
izlazu bi trebalo da se pojavi niz od dvadeset devet brojeva približnih
nuli i jedan broj približan jedinici sa odgovarajućom tolerancijom greške.
Njegova pozicija predstavlja redni broj slova u azbuci.
-
U sledećem koraku se ispituje da li je verovatnoća
slova veća od granice tolerancije. Ukoliko jeste, slovo se dodaje prepoznatim
slovima, a ukoliko nije pojavljuje se ekran na kome se prikazuje problematično
slovi i omogućava korisniku da ručno upiše “problematično” slovo, koje
se zatim pridružuje ostalim prepoznatim slovima.
-
Postupak se ponavlja sve dok se ne dođe do
poslednjeg slova na slici.
Prvobitno je zamišljeno da se izdvojeno slovo
posle skaliranja stanji (pre propuštanja kroz NM), da sve linije slova
budu debljine od jednog piksela, ali se kasnije odustalo od primene procedure
stanjivanja, jer se stanjivanjem gubi važan deo informacija koje je slovo
nosilo pre stanjivanja slike.
Program dozvoljava promenu praga osetljivosti
na greške prilikom prepoznavanja teksta. Inicijalna vrednost je 0.50, ali
se osetljivost na greške može menjati u intervalu od 0.30 do 0.90. Ukoliko
je vrednost ovog parametra veća, program će tačnije prepoznavati slova,
ali će zato češće prijavljivati “problematična” slova.
Ukoliko program prilikom prepoznavanja
teksta naiđe na slovo kod koga je verovatnoća slova manja od željene, prepoznavanje
se zaustavlja i pojavljuje se ekran na kome korisnik može ručno uneti “problematično”
slovo. Program u gornjem desnom uglu prikazuje uvećanu sliku problematičnog
slova i predlaže slovo sa najvećom verovatnoćom. Verovatnoću predloženog
slova možemo videti u gornjem desnom uglu ekrana. Slovo koje program predloži
veće je od ostalih slova koja se nalaze na prikazanim tasterima u levoj
polovini ekrana. Ukoliko je program dobro pretpostavio slovo, dovoljno
je pritisnuti dugme Ok i program će slovo ubaciti u prepoznati tekst, a
zatim nastaviti sa prepoznavanjem. Ukoliko je program pogrešno prepoznao
slovo, korisnik može pomoću miša da odabere to “problematično” slovo. Ako
korisnik želi, može “problematično” slovo da memoriše i kasnije da pokrene
program za obučavanje. Nakon obučavanja, mreža će uspešno prepoznavati
i takva slova. U desnom delu ekrana, ispod slike se nalazi polje u kome
se prikazuje poslednji red prepoznatog teksta da bi korisnik mogao lakše
identifikovati slovo u zavisnosti od prethodnih slova.
Najčešći razlog zbog čega program zaustavlja
prepoznavanje je ukoliko naiđe na spojena slova. Takva “slova” program
ne može da obradi pošto je predviđena obrada samo pojedinačnih slova. Takva
“slova” se lako uočavaju prilikom prepoznavanja jer imaju malu verovatnoću.
U tom slučaju je potrebno iz leve polovine prozora mišem odabrati oba slova
koja su prikazana u gornjem desnom delu ekrana.
Prepoznati tekst možemo memorisati na disku
odabiranjem opcije Snimi. Nakon odabiranja opcije Snimi, pojavljuje se
dijalog polje prikazano. U polje se upisuje ime fajla pod kojim želimo
da tekst snimimo na disk.
 |
 |
 |
Konfiguracija
neuronske mreže
|
Program ANN je upotrebljen
za obučavanje neuronske mreže koja se koristi u programu za prepoznavanje
ćirilčnih slova (OCR).
Troslojna neuronska mreža sa backpropagation
algoritmom obučavanja.
Broj neurona na ulaznom sloju (broj ulaza):
12x12 = 144
Broj neurona na srednjem sloju: 35
Broj neurona na izlaznom sloju (broj izlaza):
30
Broj primera kojima se mreža obučava:
1590 (30 slova u više varijanti)
Obučavanje je vršeno na trening skupu od
1590 slova. Da bi se dobio toliko veliki skup ulazno-izlaznih podataka,
napisan je program koji automatski izdvaja slovo po slovo sa slike i pravi
fajlove u odgovarajućem formatu za obučavanje mreže. Za obučavanje ove
mreže korišćeni su fontovi: Arial, Times New Roman i Courier New. Slova
su pisana u oblicima normalno (Normal), ukošeno (Italic), i podebljano
(Bold). Takođe su upotrebljene tri veličine fonta koje su zatim skaliranjem
svedene na veličinu 12x12. Za sve tipove slova su korišćena velika
i mala slova.
Pri obučavanju su upotrebljene metode obučavanja
Random i Force learn.
Vreme potrebno za obučavanje mreže iznosi
02:12:53 sati bez prekida na računaru Celeron 333. Da bi se mreža obučila,
bilo je potrebno 667 iteracija. Maksimalna greška je iznosila 0.098874
a prosečna greška je iznosila 0.00573.
 |
 |
 |
Primena programa za
prepoznavanje teksta
|
Programi za prepoznavanje teksta su značajni iz razloga
što postoji veliki broj tekstova (informacija, znanja) koji su zapisani
na papiru (knjige, poslovni dokumenti, fakture, priznanice, računi, itd.).
Prebacivanje ovih informacija u digitalni oblik zahteva veliki ljudski
rad. Prebacivanjem informacija koje su zapisane na papiru u digitalni oblik,
ostvarujemo brojne prednosti kao na primer:
-
lako pretraživanje podataka,
-
lako umnožavanje,
-
lako prenošenje,
-
jednostavnu modifikaciju,
-
uštedu prostora (na malom prostoru se mogu smestiti
velike količine informacija),
-
računske operacije nad podacima (ukoliko su u pitanju
brojčane vrednosti).
Današnji programi za prepoznavanje teksta, iako imaju
visoku tačnost prilikom prepoznavanja teksta (preko 99%), još uvek ne mogu
da garantuju 100% sigurnost prilikom konvertovanja informacija. Kada se
postigne veća sigurnost konvertovane informacije, programi za prepoznavanje
teksta će naći brojne primene u privredi i svakodnevnom životu.
Download!!!
OCR V1.1 (OCR.ZIP 356Kb)
http://www.ptt.rs/korisnici/i/l/ilicv/~ilicv/OCR.ZIP