View metadata, citation and similar papers at core.ac.uk brought to you by CORE

provided by DSpace at VSB Technical University of Ostrava

VŠB – TECHNICKÁ UNIVERZITA OSTRAVA Fakulta elektrotechniky a informatiky Katedra informatiky

Zpracování zvukového signálu na po číta či

Processing Sound Signal on Computer

2010 Tereza Moudrá „Prohlašuji, že jsem tuto bakalá řskou práci vypracovala samostatn ě. Uvedla jsem všechny literární prameny a publikace, ze kterých jsem čerpala.“

V Ostrav ě ……………. Podpis Pod ěkování

Na tomto míst ě bych cht ěla pod ěkovat vedoucímu své bakalá řské práce panu doc. Ing. Li čevovi, CSc. za rady a p řipomínky k obsahu a form ě zpracování. Abstrakt

Ve své práci se zabývám problematikou optického rozpoznávání znak ů. Výsledná aplikace se skládá ze dvou částí. V první části je vy řešen p řevod textu z obrázku na normální text a ve druhé části je tento text p řeveden do audio formy. Aplikace využívá pro p řevod na text freeware program Asprise OCR a pro zvukovou část používá aplikaci z bakalá řské práce p. Brettšnajdra. Řešení p ředkládané bakalá řské práce je rozd ěleno do n ěkolika úkon ů v rámci jednoho celku tak, aby tato aplikace mohla sloužit zejména slabozrakým lidem, kte ří kv ůli svému postižení nemohou plnohodnotn ě získávat textové informace. Dále se tato bakalá řská práce zabývá formátem .jpeg a okrajov ě seznamuje čtená ře s prácí s grafickým uživatelským rozhraním v Jav ě. Klí čová slova

Optické rozpoznání znak ů, OCR, JPEG, JPG, Java, Asprise OCR Abstract

In my thesis I deal with problems of optical character recognition. The final application consists of two parts. The first part is solved by the transfer of text from an image file to a normal text and in the second part the text is converted into audio form. The application uses freeware Asprise OCR for conversion to a text and for audio section it uses an application from the Bachelor thesis of Mr. Brettšnajdr. Solution of this thesis is divided into several tasks within a single unit so that this particular application could serve especially visually impaired people who cannot efficiently obtain text information due to their disability. This thesis also deals with jpeg format and marginally introduces the work with the graphical user interface in Java. Keywords

Optical character recognition, OCR, JPEG, JPG, Java, Asprise OCR

Seznam použitých symbol ů a zkratek

OCR - Optical Character Recognition JPEG - Joint Photographics Experts Group GUI - Graphical User Interface HTML - HyperText Markup Language PDF - Portable Document Format Obsah

1. ÚVOD...... 1

2. OPTICKÉ ROZPOZNÁVÁNÍ ZNAK Ů...... 2 2.1 VYSV ĚTLENÍ POJMU OPTICKÉHO ROZPOZNÁVÁNÍ ZNAK Ů...... 2 2.2 HISTORIE A VYUŽITÍ OCR ...... 2 2.3 PRINCIP OCR ...... 2 2.3.1 Digitalizace dokumentu...... 3 2.3.2 Obrazové úpravy ...... 3 2.3.3 Rozd ělení dokumentu na bloky...... 3 2.3.4 Rozpoznání blok ů ...... 4 2.3.5 Lexikální postprocessing...... 4 2.3.6 Uložení ve zvoleném formátu ...... 4 2.4 METODY OCR ...... 4 2.4.1 Porovnání matic ...... 4 2.4.2 Extrakce p říznak ů...... 5 2.5 OCR FONTY ...... 6 2.5.1 OCR-A ...... 7 2.5.2 OCR-B ...... 8 3. GRAFICKÉ FORMÁTY ...... 9 3.1 JPEG...... 9 3.2 BEZEZTRÁTOVÉ KOMPRIMA ČNÍ METODY ...... 9 3.3 ZTRÁTOVÉ KOMPRIMA ČNÍ METODY ...... 10 3.4 METODY KOMPRESE ...... 10 4. VOLBA SOFTWAROVÝCH PROST ŘEDK Ů ...... 11 4.1 GRAFICKÉ UŽIVATELSKÉ ROZHRANÍ - GUI ...... 11 5. APLIKACE PRO P ŘEVOD POMOCÍ OCR ...... 14 5.1 INSTALACE OCR...... 14 5.2 VYUŽITÍ OCR ...... 14 5.2.1 Rozpoznávání znak ů z obrázku...... 14 5.2.2 Rozpoznávání znak ů z části obrázku ...... 15 5.2.3 Explicitní nastavení nativní knihovny...... 15 6. NÁVRH A REALIZACE APLIKACE ...... 16 6.1 VOLBA SOFTWAROVÝCH PROST ŘEDK Ů ...... 16 6.2 VOLBA TYPU APLIKACE ...... 16 6.3 KOREKTURA ...... 17 6.4 ZVUK ...... 18 6.5 DATOVÉ TOKY ...... 18 6.6 ARCHITEKTURA APLIKACE ...... 20 6.7 DOPL ŇUJÍCÍ FUNKCE ...... 22 6.8 TESTOVÁNÍ ...... 22 6.9 GRAFICKÉ UŽIVATELSKÉ ROZHRANÍ ...... 25 7. ZÁV ĚR ...... 27

Seznam obrázk ů

[1] Roz člen ění bod ů 5 [2] Transformace znaku 6 [3] Geometrický zp ůsob rozložení a popsání znaku 6 [4] ukázka fontu OCR-A 7 [5] ukázka fontu OCR-A Extended 8 [6] ukázka fontu OCR-B 8 [7] Schéma datových tok ů 19 [8] Architektura aplikace 21 [9] Test 1 23 [10] Test 2 23 [11] Test 3 24 [12] Hlavní okno 25 [13] Jízdní řád 26 [14] Vyhledání spoje 26 1. Úvod

Dnešní doba klade stále v ětší d ůraz na automatizaci ve všech r ůzných odv ětvích. Automatizace zrychluje a zjednodušuje celý proces, což je v moderní dob ě velmi žádoucí. Tuto automatizaci obstarává často informa ční a výpo četní technika. Jedním z mnoha podobor ů, snažících se o automatizaci je i tzv. optické rozpoznávání znak ů neboli OCR (Optical Character Recognition). Tento podobor se zabývá problematikou rozpoznávání textu z obrazu a jeho různými metodami.

OCR m ůžeme využít i v b ěžném život ě. Lidé, kte ří trpí lehkou zrakovou vadou, toto optické rozpoznávání jist ě pln ě využijí. Nabízí jim totiž komfort v podob ě poskytnutí hodnotných informací, kterých nejsou schopni jiným zp ůsobem dosáhnout. Jedná se o textové informace, které jsou špatn ě čitelné. Tito lidé mají poškozený zrak do té míry, že jim čtení d ělá obtížné problémy a lušt ěním textu si ješt ě více namáhají už tak dost namáhané o či.

Cílem této bakalá řské práce bylo vyvinout aplikaci, která by pomohla práv ě těmto lidem trpícím špatným zrakem a umožnit jim kvalitn ější p řísun textových informací. Umožnit jim tak, aby si mohli p řečíst jakoukoli knihu, či jízdní řád. Aplikace je implementována v jazyce Java, nebo ť umož ňuje nezávislost platformy a dovoluje tvorbu desktopové i mobilní aplikace.

Na základ ě zadání své bakalá řské práce se nejprve seznamuji s technologií optického rozpoznávání, a to v kapitole Optické rozpoznávání znak ů, kde rozebírám jednotlivé pojmy spjaté s tímto tématem. Dále také popisuji metody a principy rozpoznávání a také seznamuji s fonty písma, které jsou vhodné pro dokonalejší rozpoznávání. Dalším bodem v zadání bylo nastudování grafického formátu JPEG. Toto studium popisuji v kapitole Grafické formáty, kde je konkrétní formát popsán spole čně i s technikami jeho komprimace. V kapitole Volba softwarových prost ředk ů je popsán programovací jazyk, který jsem použila pro svou aplikaci a dále také základy práce s grafickým uživatelským prost ředím. Následující kapitola podrobn ěji popisuje funkce softwaru, který jsem pro svou práci využila. Poslední kapitolou je Návrh a realizace programu, kde detailn ěji vysv ětluji svou volbu jednotlivých softwar ů, programovacího jazyka a také dále popisuji více do hloubky jednotlivé funkce své aplikace.

1 2. Optické rozpoznávání znak ů

2.1 Vysv ětlení pojmu optického rozpoznávání znak ů Optické rozpoznávání znak ů je často ozna čováno jako OCR, což je zkratka anglického pojmenování Optical Character Recognition. Jedná se o proces, kdy se text nej čast ěji v tišt ěné podob ě p řevádí do po číta čov ě zpracovatelné podoby. P ředlohou m ůže být strojem ale i rukou psaný text. OCR je obvykle sou částí složit ějšího procesu, jehož úkolem je p řevod dokumentu z papírové podoby do digitálního formátu a následné rozpoznání znak ů. Digitalizaci lze provést prost řednictvím skeneru nebo digitálních fotoaparát ů. Mnohdy bývá OCR program p římo sou částí skener ů. Celý postup procesu je popsán níže.

2.2 Historie a využití OCR Historii OCR m ůžeme datovat do doby kolem roku 1950. V polovin ě 50. let 20. století se OCR systémy staly komer čně dostupné. První opravdové OCR programy byly instalovány ve firm ě Reader’s Digest roku 1954. Tyto první systémy se užívaly pro p řevod ru čně psaných záznam ů. První verze OCR programu byly charakterizovány jednoduchým rozpoznáváním znak ů. Časem se za čaly rozvíjet a na trh se dostávaly programy s větší fontovou zásobou. V polovin ě 60. let a po čátku 70. se za čaly objevovat systémy, které dokázaly rozpoznat strojov ě tišt ěné i ru čně psané texty. V této dob ě vznikal známý systém IMB 1287, firma Toshiba vyvinula první automatický t řídi č dopis ů podle poštovních čísel a v roce 1966 byl vytvo řen Americký standart OCR znakové sady (OCR-A), který byl navržen tak, aby se dosáhlo co nejvyšší kvality optického rozpoznávání a zárove ň byl dob ře čitelný. Časem se vyvinul i Evropský font (OCR-B), který byl mnohem lépe čiteln ější. V roce 1970 se za čínaly vyvíjet programy, které dovedli rozpoznat i mén ě kvalitní dokumenty.

Hlavním využitím OCR systém ů je rozhodn ě digitalizace dat a tedy i usnadn ění práce. S OCR systémy se ale často setkáváme i v běžném život ě a ani o tom nemusíme v ědět. Nap říklad čtení kreditních karet se provádí na základ ě rozpoznání znak ů napsaných na kart ě nebo t řeba čtením čárových kód ů na výrobcích také využíváme OCR metody.

2.3 Princip OCR Převod dokumentu do digitální podoby se skládá z několika částí. Postupn ě si všechny popíšeme.

2 2.3.1 Digitalizace dokumentu Jestliže máme list papíru, ze kterého chceme text převést, nejprve musíme dokument digitalizovat. Prost ředky, které k tomu používáme, jsou scannery nebo digitální fotoaparáty. Důležitými parametry pro výslednou kvalitu, a tudíž i pro úsp ěšnost správného p řevodu, je rozlišení a barevná hloubka. Minimum pro rozlišení je 300 DPI a u barevné hloubky posta čí odstíny šedé. Jestliže bude v dokumentu i barevný obrázek, musí být nastavena v ětší barevná hloubka. Spln ěním t ěchto parametr ů zaru číme vyšší pravd ěpodobnost, že p řevod znak ů prob ěhne v po řádku. Jestliže bychom m ěli ale rozlišení p říliš malé, obrysy písmen by se mohly zkreslovat nebo také splývat, lépe řečeno tedy dotýkat, a OCR program by jej poté nebyl schopný p řečíst.

2.3.2 Obrazové úpravy Dalším krokem je úprava obrazu. M ůže se stát, že se naskenuje stránka trochu na k řivo. Toto se stává v ětšinou, když se skenuje kniha po dvoustranách. Program by poté nebyl schopný text rozlišit, a proto se musí obraz narovnat pomocí algoritm ů geometrické korekce. N ěkteré OCR programy toto řeší automaticky. Jestliže se skenuje celá kniha po dvoustránkách, je lepší je roz řezat na jednotlivé.

Další úpravou m ůže být o řez stránky, kdy se o řežou okraje, nebo ť nejsou pot řeba a zbyte čně by zpomalovaly proces a zabíraly místo na disku. Pokud je však podmínkou nechat výsledný text ve stejném formátu jako originál, není vhodné o řez aplikovat, protože by výstupem byl jen holý text. O řez stránky je výhodný zejména, jestliže se zpracovává v ětší množství textu, nebo ť jsou vyšší nároky na diskovou kapacitu a také v dalších fázích procesu se nám práce výrazn ě urychlí.

Další úpravou je binarizace, což je p řevod obrazu na černobílý, čímž se v ětšina šumu ztratí. Zárove ň ale dochází ke ztrát ě informací a obrazy znak ů se stávají ostré a zubaté.

Dalšími úpravami je nap říklad zm ěna jasu, kontrastu, sytosti, sv ětlosti barev a tak dále.

2.3.3 Rozd ělení dokumentu na bloky Blok p ředstavuje odstavec, tabulku nebo obrázek. Má tvar obdélníku nebo útvaru, složeného z více obdélník ů. Program pracuje s myšlenkou, že blok je odd ělen od svého okolí prázdným místem, a proto dokáže snadno rozd ělit celý dokument na jednotlivé bloky. Jestliže se v textu objeví i obrázek, stane se z něj samostatný blok. Na rozdíl však od textových bloků se již dále nezpracovává, pop řípad ě jen zm ění barvu (z barevné na černobílou, pokud jsme zadávali

3 barevnou hloubku jako odstíny šedé). P ři hledání blok ů by však mohlo dojít k problému, že každý řádek nakonec skon čí jako samostatný blok. Tento problém však řeší skute čnost, že řádky jsou od sebe vzdáleny menší mezerou než jednotlivé bloky.

2.3.4 Rozpoznání blok ů V tomto kroku následuje rozpoznávání v jednotlivých blocích. Každý blok je rozd ělen na horizontální pásy. Tyto pásy se mohou částe čně p řekrývat. Následn ě se rozpoznávají jednotlivé znaky. Tyto znaky se poté porovnávají se vzory znaků, a jestliže znak se vzorem souhlasí, zapíše se hodnota p řiřazená ke konkrétnímu vzoru. Je d ůležité zadat informaci o jazyku dokumentu, aby OCR program v ěděl, který jazyk pro p řevod použít.

2.3.5 Lexikální postprocessing Jedná se o proces, kdy probíhá korekce p řevedeného textu. Proces probíhá automaticky. Když však program narazí na n ějaké špatn ě rozpoznatelné slovo nebo na slovo, které v ůbec nezná, nechá rozhodnout uživatele. Jemu se zobrazí pokus o p řevod textu i vý řez originálního dokumentu, kde se p říslušné slovo nachází. Jestliže program nezná uživatelem zadané slovo, uloží si jej do pam ěti. Program se m ůže tedy i p řiu čit novým slov ům. Program se snaží zkontrolovat i souslednost slov a je obdobou korekce pravopisu nap říklad v Microsoft Word. Vždy je ale lepší kone čný text zkontrolovat manuáln ě, nebo ť se vždy m ůže stát, že program nep řeloží n ějaké znaky správn ě.

2.3.6 Uložení ve zvoleném formátu Existuje mnoho formát ů, které m ůžeme použít jako výstupní formát. Nej čast ějšími formáty jsou: HTML, PDF, Microsoft Word, Open Document a jiné.

2.4 Metody OCR Existují dva základní druhy rozpoznávání. T ěmi jsou porovnávání matic a extrakce p říznak ů. Z těchto dvou možností, jak rozeznat znaky, je porovnávání matic jednodušší a b ěžn ější. Tyto metody se provádí ve fázi, kdy je již celý dokument obrazov ě upravený a roz člen ěný na jednotlivé bloky i řádky. Informace o metodách OCR jsem čerpala z internetových článk ů viz. [1] a [ 2].

2.4.1 Porovnání matic Jejím úkolem je rozložení každého znaku do rastrové matice. Tato matice se poté bod po bodu porovnává se vzory. Vybrán je znak, který nejvíce odpovídá porovnání matice se vzorem.

4 Tato metoda je snadno implementovatelná, avšak je velmi citlivá na jakýkoli šum v předloze, nebo ť sebemenší te čku považuje za sou část znaku.

2.4.2 Extrakce p říznak ů Jedná se o metodu, kde neplatí striktní porovnávání s předepsaným vzorem. Také se m ůže nazývat inteligentní rozpoznávání znak ů (Intelligent Character Recognition - ICR) nebo topologická funkce analýzy (Topological Feature Analysis). Tato metoda má mnoho verzí, které se od sebe odlišují mírou použité „inteligence“, což má za následek vyšší či nižší výkonnost. Na rozdíl od p ředchozí metody, je tato všestrann ější a využívá se tehdy, jestliže jsou znaky mén ě předvídatelné. Techniku extrakce symbolu lze rozd ělit do t ří hlavních skupin: − roz člen ění bod ů − transformace a sériová expanze − strukturální analýza

Roz člen ění bod ů Tento typ techniky je založen na statickém rozložení bod ů. Tyto charakteristické rysy jsou tolerantní k pok řivení znaku nebo variabilit ě stylu.

Obrázek 1 Roz člen ění bod ů

Transformace a sériová expanze Tato technika využívá Fourier ův, Haar ův či Walsh ův transforma ční postup. Znak je transformován do k řivky charakterizující nejd ůležit ější rysy daného znaku. Má vysokou citlivost na šum postihující okraje znaku. P říkladem jsou t řeba chybné mezery v symbolu.

5

Obrázek 2 Transformace znaku

Strukturální analýza Tato technika rozebírá a popisuje každý znak geometricky a topologicky. Každý symbol je rozebrán na ur čující části a ty jsou topologicky porovnávány s originálem. Tato technika velice toleruje šum i variabilitu styl ů, avšak není jednoduše implementovatelná.

Obrázek 3 Geometrický zp ůsob rozložení a popsání znaku 2.5 OCR fonty Na za čátku rozvoje optického rozpoznávání znak ů bylo zapot řebí vytvo ření jednotného typu písma, které by každý po číta č snadno rozpoznal. Po číta čová editace textu totiž nabízela a dosud nabízí velké množství r ůzných typ ů písma, takzvaných font ů. OCR program by tedy musel mít kompletní databázi všech font ů, což by bylo náro čné na pam ěť a tém ěř i nemožné, nebo ť se

6 stále vyvíjely další a další fonty. Vzniklo tedy n ěkolik font ů, ur čených p římo pro optické rozpoznávání znak ů. Nejznám ějšími fonty jsou OCR-A a OCR-B.

2.5.1 OCR-A Byl standardizován institucí American National Standards Institute (ANSI) jako X3.4-1977. Pozd ěji byl p řejmenován na ISO 1073-1:1976. K dispozici je i n ěmecký standard pro OCR-A, nazýván DIN 66008. Všechny tyto normy jsou chrán ěny autorským právem.

O vývoj OCR-A se zasloužila organizace American Type Founders a OCR-A se stal jedním z prvních typ ů písma pro optické rozpoznávání, které spl ňovalo kritéria stanovená americkými úřady pro normalizaci. Vzhled písma je jednoduchý, takže jej lze snadno p řečíst strojov ě, ale je mnohem obtížn ější pro lidské oko. Má silné tahy, je neproporcionální a mezi jednotlivými znaky jsou mezery v rozmezí 0,23 cm – 0,46 cm.

Přestože technologie optického rozpoznávání znak ů dosp ěla do bodu, kdy tyto jednoduché fonty již nejsou nutné, OCR-A z ůstává stále v provozu. N ěkteré spole čnosti dosud využívají tyto fonty nap říklad pro číslo ú čtu. Navíc, n ěkte ří lidé stále dávají p řednost tomuto fontu pro sv ůj jedine čný styl.

Dalším typem je OCR-A Extended. Jak už z názvu vyplývá, jde o rozší řenou verzi OCR-A. Tento font je sou částí základních font ů pro Microsoft Word 2007.

Obrázek 4 ukázka fontu OCR-A

7

Obrázek 5 ukázka fontu OCR-A Extended

2.5.2 OCR-B Je to sada neproporciálních písmen, vyvinutých v roce 1968 Adrianem Frutigerem pro Monotype podle pokyn ů výrobce European Computer Manufacture’s Association standard. Jeho hlavní funkcí bylo usnadn ění operací optického rozpoznávání znak ů. Font OCR-B byl standardizován v roce 1973. Zahrnuje všechny ASCII znaky a jiné symboly, které se mohou vyskytovat v bankovnictví. Od OCR-A se liší zejména ve vzhledu. Čtení OCR-B je pro lidské oko snadn ější a má mén ě „technický“ vzhled.

Obrázek 6 ukázka fontu OCR-B

8 3. Grafické formáty

Výsledná aplikace pracuje s grafickými soubory. Tato kapitola detailn ěji popisuje jeden z grafických formát ů.

3.1 JPEG Tato zkratka znamená Joint Photographics Experts Group a jedná se o standardní metodu pro komprimaci po číta čových obrázk ů s kompresí ve fotorealistické podob ě. Stejným názvem je ale ozna čován i p římo formát souboru, který tuto metodu používá. Nejrozší řen ějšími p říponami jsou .jpg, .jpeg, .jpe. Avšak skute čný název typu souboru je JFIF (JPEG File Interchange Format), nebo ť JPEG je název metody, která pouze p ředepisuje zp ůsob ztrátové i bezeztrátové komprese rastrových obrázk ů. Stupe ň kvality komprimace se definuje pomocí Q-faktoru (Quality factor), u kterého platí, že čím nižší Q-faktor je možné na obrázek aplikovat, tím vyšší bude komprima ční pom ěr, avšak cenou v ětších ztrát. Postupem času však název JPEG zlidov ěl a nyní se používá jak pro ozna čení komprima ční metody, tak i jako formát, který tuto metodu využívá. Jako formát se používá nej čast ěji pro p řenášení a ukládání fotografií na internetu, nebo ť má relativn ě malou velikost. U JPEGu je možné dosáhnout komprima čního pom ěru 1:50 až 1:100 p ři zanedbatelné ztrát ě informace. JPEG není a ani nikdy nebyl ur čen pro ukládání obrázk ů obsahujících malé množství barev, kontrastní barevné p řechody, ostré hrany nebo písmo. JPEG byl vyvinut zejména pro ukládání fotografií, naskenovaných dokument ů či rentgenových a ultrazvukových snímk ů. Podrobn ější informace lze najít v literatu ře [3].

3.2 Bezeztrátové komprima ční metody Jsou to metody, kdy ukládaný rastrový obraz není v žádném p řípad ě zm ěněn natolik, aby došlo ke ztrát ě informace. M ění se pouze celkový po čet barev u formát ů nepodporující plnobarevné režimy. N ěkteré grafické formáty nenabízí žádnou komprima ční metodu. Příkladem m ůže být nap říklad PBM, PGM, PPM, PAM. Jiné využívají pouze jednoduché kódování RLE nebo metody LZ77 a LZW (GIF a PNG).

S rozvojem po číta čové grafiky za čaly po číta če více využívat zpracování fotografií, jejich archivaci nebo prezentaci. Velkého významu nabýval i Internet, kde se postupem doby stále více využívaly rastrové grafické soubory, které m ěly mnohdy p řed svou komprimací obrovskou velikost. Za čaly se tedy hledat zp ůsoby, jak tyto soubory zmenšit. Již po čátkem osmdesátých let

9 minulého století se proto za čaly hledat vhodné algoritmy ur čené speciáln ě pro ukládání plnobarevných rastrových obrázk ů.

3.3 Ztrátové komprima ční metody Tyto metody vycházejí z jednoduchého principu. Informaci, která je sice v obrázku prokazateln ě p řítomna, ale člov ěk ji m ůže postrádat, je možné selektivn ě odstranit a dosáhnout tak výrazného komprima čního pom ěru. S JPEGem m ůžeme dosáhnout stavu, kdy je jeden pixel v komprimovaném obrázku popsán pouze jedním bitem, zatímco p ůvodní obrázek má 24 bit ů na pixel.

Algoritmus ztrátové komprese se rozd ěluje do dvou d ůležitých částí: transformace původních dat a potla čení r ůzn ě d ůležitých dat. Transformace využívá n ěkteré z transforma čních metod (DCT, FFT, DWT). Tyto transformace p řevedou p ůvodní data do jiných domén. V ětšina informací je pak uchována v mnohem menším objemu než p ůvodn ě. Potla čení n ěkterých dat poté rozhoduje o tom, jaká data mohou být potla čena nebo dokonce úpln ě odstran ěna. P ři kompresi se tedy posuzuje, které frekvence v obrazu jsou d ůležité, aby člov ěk na obrázku vid ěl to, co na n ěm vid ět má.

3.4 Metody komprese Hlavním d ůvodem, pro č komprimovat soubory, je zmenšení jejich objemu, ale p řitom musí být zachovány veškeré informace, které se nacházejí u p ůvodních údaj ů. Musí však také ale platit zákon zachování informace. Základní myšlenkou komprese je odstran ění redundance ze souboru. Existují dva typy komprimace - bezeztrátová a ztrátová komprese.

Do kategorie bezeztrátové komprese pat ří nap říklad metoda RLE - Run Length Encoding. Jedná se o nejjednodušší metodu, která je založena na p ředpokladu, že obrázek se skládá z oblastí, které jsou vypln ěny ur čitou charakteristickou barvou. Pixely, následující po sob ě a mající stejnou barvu, jsou tedy zakódovány kombinací po četnosti znaku a samotného znaku. Další metodou bezeztrátové komprese je LZW - Lempel-Ziv a Welch či Huffmanovo kódování, jehož hlavní myšlenkou je vytvo ření prefixového kódu minimální délky ze statistiky komprimovaného textu.

Do kategorie ztrátové komprese se řadí algoritmus DCT. Tento algoritmus funguje na principu kosinusové transformace a kvantizaci kmitočtových koeficient ů. Podrobn ější informace o metodách komprese lze získat v knize uvedené v použité literatu ře viz. [4].

10 4. Volba softwarových prost ředk ů

Pro tuto aplikaci jsem si vybrala programovací jazyk Java. Je to programovací jazyk vyvinutý firmou Sun Microsystems. Jde o objektov ě orientovaný jazyk vycházející z programovacího jazyka ++. Java odstra ňuje nedostatky tohoto jazyka a navíc p řidává plno dalších užite čných vlastností. Nap říklad již nepracuje s ukazateli, ale namísto toho s referencemi. Dále je implementován mechanismus vláken, lze tedy spustit více úloh v rámci jednoho programu sou časn ě. Java také pracuje s výjimkami, což zaru čuje odchycení i zpracování runtime chyb. K dispozici jsou obsáhlé knihovny, pomocí nichž lze pracovat nap říklad s textem, s komprimovanými soubory, lze komunikovat s SQL databázemi či vytvá řet grafické uživatelské rozhraní. Tento jazyk lze také samoz řejm ě dále rozši řovat pomocí plugin ů. Výhodou Javy je také její hardwarová nezávislost, jelikož je p řekládána do speciálního mezikódu – tzv. bytecode, který je na konkrétním počíta či nebo za řízení p řekládán do nativního kódu. Javovský program, napsaný na PC pod opera čním systémem Windows, lze tedy spustit i na PC s Linuxem.

JRE je zkratka z anglického názvu Java Runtime Environment, která ozna čuje prost ředí pro běh program ů v Jav ě. Toto prost ředí zahrnuje interpret Javy a standardní knihovny. JDK je Java Development Kit a obsahuje JRE, p řeklada č a další vývojové nástroje. Java má n ěkolik verzí a jsou jimi: − Java SE – Standard Edition − Java EE – Enterprise Edition − Java ME – Micro Edition Java EE rozši řuje Java SE a je ur čena pro psaní webových aplikací. Oproti tomu Java ME je ur čena speciáln ě pro psaní aplikací do mobilních za řízení, jako jsou telefony či PDA. Více informací o tomto programovacím jazyce lze nalézt v literatu ře [5].

4.1 Grafické uživatelské rozhraní - GUI První verzí grafiky v Jav ě byla knihovna nazvaná Abstract Windowing Toolkit (AWT). Vyskytovala se již v JDK 1.0. Hlavní myšlenkou AWT knihovny bylo, že každá komponenta měla sv ůj nativní prot ějšek v systému. I když se jednalo o platformov ě nezávislé rozhraní, přenositelnost byla problematická, jelikož existovaly rozdílné vlastnosti nativní úrovn ě GUI.

11 AWT knihovny tvo ří následující balíky java.awt, java.awt.event, java.awt.image, java.awt.datatransfer.

Pozd ěji, a to ve verzi 1.2, vývojá ři Javy vyvinuli novou grafickou knihovnu nazvanou Java Foundation Classes (JFC), znám ější však pod názvem SWING. Tato knihovna jen nepatrn ě vycházela z p ůvodní koncepce knihovny AWT, ale její základní vlastnosti byly vytvo řeny zcela nov ě. Knihovna SWING je kompletn ě implementována v Jav ě, což znamená, že GUI není vytvo řenou na nativních komponentech a je tedy zcela platformov ě nezávislá. SWING nabízí možnost využití d ědi čnosti a kompozice. Jednotlivé komponenty využívají objektové vlastnosti Javy. Také se velmi dbá na odd ělení funkcionality od vzhledu, tzv. look & feel.

Další GUI knihovnou je Standard Widget Toolkit neboli SWT. Tato knihovna m ěla za úkol odstra ňovat nedostatky SWING, a to zejména problémy s nároky na rychlosti procesoru a pam ěť . Avšak ve výsledku nedochází k tém ěř žádnému snížení a je zhruba stejn ě náro čná jako SWING.

Základním prvkem grafického uživatelského rozhraní jsou komponenty. Jsou to jednotlivé prvky, se kterými m ůžeme pracovat. Jde nap říklad o textové pole, label, tla čítko, tabulka, menu a mnoho dalšího. Komponenty lze spojovat pomocí Listu, což je soubor komponent, které nelze překrýt. Existuje i jiný soubor komponent, ten se nazývá kontejner. P říkladem je t řeba Frame, Panel, či MenuBar.

Důležitým parametrem p ři tvorb ě GUI je pozice jednotlivých prvk ů. Java poskytuje t řídu, která umož ňuje uspo řádat komponenty obsažené v kontejneru do podoby, p ři které není nutné zadávat absolutní pozici komponent. K tomu složí schémata Layout Managers. Existuje n ěkolik základních typ ů: − FlowLayout – rozmíst ění komponent do řady za sebou, − GridLayout – umíst ění komponenty do m řížky, − BorderLayout – rozmíst ění komponent na základ ě sv ětových stran (north, south, west, east, center). Jednotlivé typy Layout Managers lze samoz řejm ě libovoln ě kombinovat k dosažení požadovaného vzhledu.

Nejd ůležit ější částí tvorby grafického uživatelského rozhraní není ani tak vzhled aplikace, ale spíše reakce jednotlivých prvk ů na požadavky uživatele. Interakce mezi uživatelem a vizuálními prvky je vy řešena pomocí událostí (events). Události fungují na základ ě zaslání informace o zm ěně stavu zdrojového objektu všem objekt ům, které o to požádají. T ěmto

12 objekt ům se říká Listeners (poslucha či). K tomu, aby se mohl objekt stát poslucha čem pro příslušnou zprávu, sta čí definovat metodu, která bude na zprávu o události reagovat. Tyto metody jsou poté sdruženy do rozhraní, které je potomkem rozhraní java.util.EventListener. GUI nabízí již existující t řídy zpráv a jim odpovídající rozhraní pro poslucha če: − ActionEvent – nastane p ři zm ěně stavu komponenty (nap ř. stisk tla čítka), − KeyEvent – p ři zm ěně stisku klávesy, − MouseEvent – p ři zm ěně stavu myši, − WindowsEvent – p ři práci s oknem. Java obsahuje také t řídu java.awt.Graphics, která umož ňuje práci s kreslením základních grafických prvk ů, jako jsou úse čka, obdélník, kružnice, výpis textu v grafickém režimu a vykreslování rastrového obrazu. Pro použití této t řídy je nutné vytvo řit její instanci příkazem : panel.getGraphics();

Grafický kontext lze p řiřadit každé komponent ě, avšak nej čast ěji se pro grafický výstup využívá komponenta java.awt.Canvas.

Java podporuje práci s rastrovými obrázky formátu GIF, JPEG a PNG. K jejich zpracování lze využít speciální t řídy java.awt.Image. Jde však pouze o abstraktní t řídu, a proto musíme k na čtení obrázku využít t řídu public abstract class Toolkit, která vytvo ří propojení mezi komponentami a jejich implementací.

Image myImage; myImage = Toolkit.getDefaultToolkit().getImage("picture.jpeg");

13 5. Aplikace pro p řevod pomocí OCR

Výsledná aplikace využívá pro p řevod pomocí metody OCR voln ě stažitelný program, který se nazývá Asprise OCR.

5.1 Instalace OCR Nutností, pro úsp ěšné rozb ěhnutí této aplikace, je mít nainstalovanou Javu verze 1.2 nebo vyšší. Abychom m ěli p řístup k balí čku com.asprise.util.ocr a tedy i jeho metodám, musíme nastavit aspriseOCR.jar jako classpath. To m ůžeme u činit p římo ve vývojovém prost ředí NetBeans p řidáním do vytvá řeného projektu pod položkou Properties -> Libraries -> Compile. Dále také pot řebujeme nativní knihovnu AspriseOCR.dll. Tento soubor vložíme do systémového adresá ře C:/Windows/System32.

5.2 Využití OCR Před samotným použitím musíme nejprve importovat balíček aplikace Asprise OCR p římo do našeho projektu. To za řídíme pomocí kódu:

import com.asprise.util.ocr.OCR

Poté vytvo říme prom ěnnou typu BufferedImage a vložíme do ní obrázek na lokálním disku.

BufferedImage image = ImageIO.read(new File("ocr.jpeg"));

Když máme na čtený obrázek, m ůžeme p řistoupit k samotnému rozpoznávání. Vytvo říme si tedy prom ěnnou typu String, do které vložíme výsledek volané metody. Ke knihovn ě Asprise OCR a jejím metodám p řistoupíme následovn ě:

String s = new OCR().recognizeAll(image);

Z aplikace Asprise OCR lze využít několik typ ů metod. Jednotlivé metody jsou popsány níže.

5.2.1 Rozpoznávání znak ů z obrázku Tato metoda rozpozná pouze písmena a číslice, čárové kódy jsou zde p řehlíženy. Implementuje se následujícím zp ůsobem:

String s = new OCR().recognizeCharacters(image);

14 5.2.2 Rozpoznávání znak ů z části obrázku Tato metoda rozpozná pouze znaky, které jsou obsaženy v části obrázku, kterou jsme definovali. Dá se říci, že p ři této metod ě využíváme „virtuáln ě o říznutý“ obrázek. Této metody lze efektivn ě využít nap říklad tehdy, jestliže rozpoznáváme skenovanou knihu a všechny strany mají stejn ě velký okraj, který nemusí program procházet a zbyte čně ztrácet čas. Implementace vypadá následovn ě:

BufferedImage image = ImageIO.read(file); image = image.getSubimage(0, 0, 200, 100); String s = new OCR().recognizeEverything(image);

5.2.3 Explicitní nastavení nativní knihovny Pomocí této metody lze nastavit explicitn ě cestu k místu uložení nativní knihovny. Jestliže nastavíme knihovnu touto cestou, p ředchozí nastavení nebude bráno v potaz.

OCR.setLibraryPath("C:/tmp/AspriseOCR.dll");

Další metody se týkají pouze rozpoznávání čárových kód ů, a proto zde již nebudou uvád ěny, nebo ť má práce se zabývá pouze rozpoznáváním znak ů.

15 6. Návrh a realizace aplikace

Má bakalá řská práce se zabývá OCR problematikou a výsledkem mé studie by m ěla vzejít funk ční aplikace, která by umož ňovala p řeklad obrázku na text a následné p řevedení do zvukové podoby. P řevedení obrazu na text zprost ředkovává aplikace AspriseOCR, lépe řečeno tedy pouze knihovna tohoto produktu. Tento software ale umí pracovat pouze s texty bez diakritiky mimo písmena s čárkou, a proto ke správnému p řekladu českého textu je zapot řebí ješt ě dodate čná korektura. Tuto kontrolu m ůžeme provést strojov ě nebo jen manuáln ě tak, že vlastnoru čně p řepíšeme špatn ě p řevedené znaky. Další částí mé aplikace je p řečtení textu po číta čem. Využila jsem bakalá řské práce p. Brettšnajdra, zabývající se syntézou zvukového signálu a jeho zdrojový kód jsem zakomponovala do své aplikace. Díky tomu tedy lze převedený text převést do zvukové podoby.

6.1 Volba softwarových prost ředk ů Pro svou práci jsem zvolila již hotový software pro rozpoznávání znak ů, nebo ť vývoj této techniky by bylo zna čně rozsáhlé. Existuje mnoho produkt ů, které se zabývají prácí s OCR problematikou. Avšak mnohé z nich jsou pouze komer ční a mnoho z t ěch, které nejsou placené, jsou místo toho velmi složité na implementaci do vlastní aplikace nebo jsou napsány v jiném programovacím jazyce, než je Java.

Proto jsem využila programu AspriseOCR. Tento program je voln ě k dispozici na internetu http://asprise.com jako freeware. Program nabízí knihovnu metod, které umož ňují rozpoznávat znaky. Jeho nejv ětší p ředností a také i d ůvod, pro č jsem si tento program vybrala, spo čívá v tom, že je vytvo řen pomocí programovacího jazyku Java a nabízí podrobnou dokumentaci ke své knihovn ě a tudíž i snadnou implementaci do vlastní Java aplikace. Samotná instalace spo čívá jen v n ěkolik jednoduchých krocích. viz 5.1.

6.2 Volba typu aplikace Mým zadáním bakalá řské práce bylo vytvo ření aplikace pro mobilní za řízení. Mobilní aplikace se vyvíjí pomocí jazyka Java Micro Edition (Java ME). Tato edice je velmi zjednodušenou verzí klasické Javy pro desktopové aplikace (Java Standard Edition - Java SE) a mnoho pomocných t říd a knihoven, které bychom ve standardní edici našli, je zde zcela vypušt ěno. D ůvodem absence mnohých t říd a knihoven je fakt, že výkon a kapacita mobilních

16 za řízení jsou zna čně omezeny. Tudíž nem ůžeme o čekávat, že aplikace, které fungují ve standardní edici, budou fungovat i ve verzi pro mobilní za řízení, jelikož mnohé z nich využívají dopl ňkové knihovny či t řídy, které Java pro mobilní za řízení nepodporuje. P řestože zadáním bakalá řské práce bylo vypracovat mobilní aplikaci, musela jsem se uchýlit k desktopové aplikaci. D ůvodem této volby bylo zjišt ění, že se na trhu v této chvíli nenachází žádná vhodná OCR aplikace bez poplatk ů, kterou by bylo možno implementovat do mobilních aplikací. Poda řilo se mi najít pouze OCR aplikace, které nebyly vyvinuty speciáln ě pro mobilní za řízení a tudíž ani nebyly tímto typem za řízení podporovány. P říkladem je využitá aplikace Asprise OCR.

Implementovat nelze ani aplikaci p. Brettšnajdra pro p řevod na zvuk, jelikož využívá knihovny, které v mobilních aplikacích nelze používat. P ři d ůkladném prohledání nabídky dostupných aplikací zabývajících se p řevodem textu na zvuk, jsem shledala veškeré aplikace za nevhodné ze stejného d ůvodu jako OCR aplikace.

6.3 Korektura Jak již bylo zmín ěno výše, metoda OCR umí pracovat pouze s anglicky psaným textem. Tudíž špatn ě rozpoznává český text s diakritikou. Kv ůli tomuto d ůvodu byla naimplementována metoda provád ějící korekturu. Tato strojová korektura se provádí velice jednoduchým zp ůsobem. Aplikace p řevádí nerozpoznatelné znaky, v našem p řípad ě tedy znaky s diakritikou do unikátního kódu a tedy je velice snadné poté tyto kódy nahradit pat řičnými znaky. Nejprve jsem si tedy vypsala veškeré znaky české abecedy, uložila je ve formátu .jpg a poté p řevedla na text pomocí své aplikace. Tím vznikla p řekladová tabulka, díky které jsem dále byla schopná přiřadit pat řičnému kódu jeho znak. Aplikace si umí poradit s písmeny s čárkou, ale znaky s há čky nerozezná. Místo nich do textu vloží speciální kódy viz.tabulka 1.

znak znak rozpoznaný aplikací ě \code(011b) š \code(0161) č \code(010d) ř \code(01d0) ů \code(016f) ř \code(012d) ě \code(0115) Tabulka 1 ukázka p řekladové tabulky

17 Jakmile je strojová korektura hotová, nejlepší volbou je ješt ě kone čná manuální kontrola, kdy je možné v textu p řepisovat špatné znaky a porovnávat nesrovnalosti s originální p ředlohou.

Jelikož je tato aplikace v ěnována zejména lidem postiženým zrakovou vadou, součástí aplikace je i seznam zkratek, které by se v textu eventuáln ě mohly objevit. P ři čtení by d ělalo zna čné problémy pochopení významu jednotlivých zkratek, jelikož by byly p řečteny písmeno po písmenu. P říkladem je t řeba zkratka PC. Každý by ji p řečetl [pí sí], avšak program by p řečetl jen [p c], což by bylo pro n ěkoho, kdo špatn ě vidí, velmi nesrozumitelné. Jestliže by se jednalo ješt ě o mnohem složit ější a delší slovo, bylo by to velmi matoucí. Proto aplikace využívá textového souboru, ve kterém jsou uloženy zkratky a jejich pravý význam. P ři korektu ře pak aplikace automaticky tyto zkratky nahradí a v textu se již objeví celá slova. V našem p řípad ě by tedy program p řevedl zkratku PC na slovo po číta č. Seznam je ukládán do textového souboru, aby jej bylo možno dopl ňovat o nová sloví čka.

6.4 Zvuk Aplikace má p ředevším sloužit lidem, kte ří špatn ě vidí text, a tudíž se jim s obtížemi čtou jednotlivá písmena. Pomocí této aplikace na čteme obraz, jímž m ůže být nap říklad vyfocená stránka knihy či časopisu, poté jej p řevedeme na text a ten necháme t ěmto lidem p řečíst. Zvukovou část zajiš ťuje kód p. Brettšnajdra, který se ve své bakalá řské práci zajímal o syntézu řeči v českém jazyce. Jeho zdrojový kód obsahuje analyzátor i syntetizátor elementárních jednotek řeči. Tato bakalá řská práce obsahuje mnohem více funkcí, avšak já využívám pouze ozvu čení textu. Podrobn ější informace ohledn ě principu této práce naleznete zde [7].

6.5 Datové toky Zdrojem získání dat m ůže být digitální fotoaparát, mobilní telefon vybavený digitálním fotoaparátem či skener. Výsledný soubor v tomto kroku je uložen ve formátu .jpeg nebo .jpg (pop řípad ě .bmp) viz obr. 6.1. první bod. Ve druhém bod ě se získaný soubor p řevádí pomocí OCR metody na text, než však dojde k uložení ve formátu .txt, musí prob ěhnout dodate čná kontrola textu a oprava p řípadných chyb. Korektura je znázorn ěna na schématu v bod ě 3. Ve čtvrtém bod ě vzniká již kompletn ě p řevedený text a m ůže dojít k uložení na lokální disk. Bod 5 znázor ňuje další cestu textového souboru, a to do aplikace JCSpeak, kterou vytvo řil p. Brettšnajdr v rámci své bakalá řské práce. Do aplikace JCSpeak lze vkládat i oby čejný textový soubor, který jsme si vytvo řili jiným zp ůsobem, než je p řevod pomocí OCR metody (bod 6). Program JCSpeak nejprve zpracuje text k p řevodu do audio formy a poté jej následn ě provede (bod 7). Výsledkem je p řečtení p řevedeného či nahraného textu (bod 8).

18

Obrázek 7 Schéma datových tok ů

19 6.6 Architektura aplikace Celý proces probíhá v n ěkolika krocích. Spušt ěním aplikace se nám otev ře okno s nabídkou na čtení obrazového či textového souboru.

Jestliže došlo k na čtení obrázku, dalším krokem je vykreslení fotografie do okna. Obraz je automaticky zmenšen na velikost náhledu. Jestliže došlo ke zmenšení, zobrazí se nám nabídka pro dodate čné zv ětšování a zmenšování obrazu.

Následným krokem je p řevod obrazu na text díky optického rozpoznávání za pomocí freeware Asprise OCR.

Aplikace Asprise OCR nezná český jazyk, tudíž znaky s čárkami a há čky nerozezná. Proto je dalším krokem automatická korekce, která p řevede špatn ě rozpoznané znaky na korektní. Je umožn ěna i dodate čná ru ční korektura p řepnutím textu do stavu editace. Výsledný text lze uložit do textového souboru formátu .txt.

Další možností je daný text nechat p řečíst. Lze p řečíst celý text, jen ozna čený text nebo nechat aplikaci p řečíst text v ětu po v ětě s možností vždy se vrátit k předchozí v ětě. Ke „ čtecí“ fázi se lze dostat i tím zp ůsobem, že na za čátku na čteme textový soubor. Ten se nám rovnou uloží do pole, vyhrazeného pro text a následn ě tedy m ůžeme text p řevést do audio formy se stejnými možnostmi jako p ři čtení textu p řevedeného z obrázku.

20

Obrázek 8 Architektura aplikace

21 6.7 Dopl ňující funkce Dvěma základními funkcemi je jist ě p řevod z obrazu na text a následné čtení. Sou částí aplikace je ale i režim p řehrávání v ěty po v ětě, což znamená, že m ůžeme p řehrát libovolnou větu, kolikrát budeme chtít a navíc bude v naší plné režii, kdy se která v ěta spustí. Dalším zp ůsobem čtení textu je p řečtení aktuální v ěty. Aktuální v ětu ozna číme tak, že někde do v ěty umístíme kurzor. Číst m ůžeme také jen části v ět či slov. Toho docílíme ozna čením dané části textu a spušt ěním čtení.

Dále je také pamatováno na uživatele, kterým je tato aplikace zejména v ěnována, a tudíž je umožn ěn výb ěr velikosti fontu. Také je možné celou aplikaci ovládat pomocí klávesových zkratek. Veškerý seznam t ěchto zkratek a jejich význam je uveden v p říloze Uživatelský manuál.

Dodate čnou funkcí tohoto programu je elektronický jízdní řád. Tato funkce umož ňuje zjiš ťovat dopravní spoje v rámci Dopravního podniku Ostrava. Aplikace je schopná zpracovávat html stránky nabízející práv ě zmi ňovaný podnik, na kterých jsou jednotlivé dopravní linky. Pomocí regulárních výraz ů se ze stránky získají jednotlivá data, která tato aplikace následn ě zpracovává. Aplikace umož ňuje zobrazení seznamu stanic a jednotlivé časy odjezd ů v závislosti na zvolené stanici. Dále také umož ňuje jednoduché vyhledávání dopravních spoj ů. Vše lze virtuáln ě p řečíst, pop řípad ě zopakovat. Ovládání je umožn ěno i pomocí klávesových zkratek. Html soubor lze na číst p římo z internetové stránky.

6.8 Testování Vylepšenou aplikaci o finální korekci jsem podrobila testování úsp ěšnosti rozpoznávání. První testovaný dokument je tvo řen p římo textem p řevedeným do formátu jpeg. Druhý dokument je již strana textu, vyfocená pomocí fotoaparátu. T řetí ukázka je zhotovena pomocí scanneru.

Prvním testovaným dokumentem je tedy soubor ve formátu .jpeg zhotovený pomocí grafického editoru. Vedle ukázky obrázku je text převeden pomocí mé aplikace viz obr. 9. Úsp ěšnost rozpoznání je 98,99%. Tato ukázka je na stejné bázi jako nap říklad screenshoot vytvo řený z souboru.

Po čet znak ů v textu: 594

Po čet špatn ě p řevedených znak ů: 6

22

Obrázek 9 Test 1

Druhým testovaným dokumentem je soubor ve formátu .jpeg opat řený fotoaparátem s rozlišením 7,1 MPx viz obr. 10. Výsledný obraz je upraven v grafickém editoru a je na n ěj aplikováno barevné vyvážení a nastavení kontrastu a jasu. Úsp ěšnost rozpoznání je: 95,99%.

Po čet znak ů v textu: 299

Po čet špatn ě p řevedených znak ů: 12

Obrázek 10 Test 2

23 Poslední testovaný dokument je vytvo řený pomocí scanneru. Úsp ěšnost rozpoznání je: 97,24%

Po čet znak ů v textu: 1049

Po čet špatn ě p řevedených znak ů: 29

Obrázek 11 Test 3

24 6.9 Grafické uživatelské rozhraní Grafické uživatelské rozhraní aplikace se skládá z hlavního okna (obr. 11), ve kterém je umíst ěno hlavní menu a ovládací panel s rychlými tla čítky. Nejv ětší část okna zabírají dva panely. Levý panel zobrazuje na čtený obrázek či fotografii a v pravém panelu se vypisuje převedený text. Obrázek lze p řiblížit a oddálit spodními tla čítky plus a mínus. Převedený text je možno dále editovat. Dále je také zp řístupn ěna funkce čtení. Existuje n ěkolik zp ůsob ů p řečtení daného textu. A to: funkce v ěta po v ětě, čtení aktuální v ěty (kliknutí kurzoru do v ěty) a čtení celého textu. K t ěmto funkcím lze p řistupovat tla čítky umíst ěnými pod textem.

Obrázek 12 Hlavní okno

Další částí této aplikace je elektronický jízdní řád. Tato funkce je umíst ěna v samostatném okn ě (obr. 12). Toto okno zobrazuje seznam zastávek dané linky a jednotlivé časy odjezd ů v závislosti na zastávce. Lze nastavit opa čný sm ěr jízdy i jízdní řády platné o víkendech. Je možné nahrát i více linek a poté mezi nimi jednotliv ě p řepínat.

25

Obrázek 13 Jízdní řád Dále funkce jízdního řádu obsahuje i jednoduché vyhledávání. Toto vyhledávání se zobrazí v samostatném okn ě, kde se zadávají hodnoty, nutné k vyhledání viz. obr. 13.

Obrázek 14 Vyhledání spoje

26 7. Záv ěr

Prost řednictvím této bakalá řské práce jsem se seznámila s problematikou optického rozpoznávání znak ů, s jeho principem a r ůznými zp ůsoby rozpoznávání. Dále jsem se také okrajov ě seznámila s problémy slabozrakých a snažila se jim vyjít co nejvíce vst říc v implementaci mé aplikace. Mým p ůvodním cílem bylo vyvinout mobilní aplikaci, avšak tento úkol se stal nerealizovatelný, nebo ť sou časná nabídka voln ě stažitelných aplikací pro p řevod metodou OCR nenabízí vhodné aplikace podporující i mobilní za řízení. Proto jsem zvolila implementaci desktopové aplikace, u které jsem se snažila vytvo řit jednoduché a intuitivní grafické uživatelské rozhraní, které by usnad ňovalo komunikaci s mým programem. Použitý software Asprise OCR jsem se snažila vylepšit pro české uživatele, používající český text, přidáním metody, která automaticky doplní špatně rozpoznané znaky za znaky s diakritikou a také dále rozepíše zkrácené tvary pro lepší pochopení.

Je nutné však také uvést nedostatky, které by se mohly p ři používání aplikace vyskytnout. Zvuková stránka aplikace by zasloužila zlepšení v podob ě výkonn ějšího p řeklada če textu na zvuk, nebo ť p ři v ětším množství p řekladu, aplikace danou zát ěž nezvládá. Další vývoj této aplikace by se m ěl tedy ubírat jak ve zdokonalení rozpoznávání, tak i v dalším rozvoji zvukové části. Budoucnost vidím zejména ve verzi pro mobilní za řízení, nebo ť by možnost p řečtení textu byla vždy po ruce. Proto by také bylo vhodné zakoupit kvalitní OCR software, podporující i mobilní za řízení.

27 Literatura

[1] Data identification [online]. 2003 [cit. 2010-03-29]. All about OCR. Dostupné z WWW: .

[2] BROWN, Eric W. Character Recognition by Feature Point Extraction [online]. 1992 [cit. 2010-03-29]. Character Recognition by Feature Point Extraction. Dostupné z WWW: .

[3] TIŠNOVSKÝ, Pavel. Root.cz [online]. 7.12.2006 [cit. 2010-03-29]. JPEG - král rastrových grafických formát ů?. Dostupné z WWW: .

[4] SOBOTA, Bronislav; MILIÁN, Ján. Grafické formáty . České Bud ějovice: Kopp, 1996. 157 s. ISBN 80-85828-58-8.

[5] BOSÁK, Rostislav; FANTA, Martin; PE ŘINA, Martin. Pár kapek Javy [online]. 1999 [cit. 2010-03-29]. Grafické uživatelské rozhraní a Systém zpráv. Dostupné z WWW: .

[6] KISZKA, Bogdan. 1001 tip ů a trik ů pro programování v jazyce Java . Brno: Computer Press, 2003. 519 s. ISBN 80-7226-989-5.

[7] BRETTŠNAJDR, Antonín. Syntéza zvukového signálu . [s.l.], 2009. 36 s. Bakalá řská práce. Vysoká škola Bá ňská, Fakulta elektrotechniky a informatiky.

28 Seznam p říloh

Příloha A - Obsah CD

Příloha B - Uživatelský manuál

Příloha C - Programátorský manuál

A - Obsah CD Adresá ř Popis /src Zdrojové soubory aplikace /text Textové soubory bakalá řské práce

B - Uživatelský manuál

Využití aplikace Tato aplikace je ur čena zejména lidem zrakov ě postiženým. Není však podmínkou, aby tuto aplikaci využívali pouze tito lidé. Hlavní funkce této aplikace spo čívá v p řevodu obrazu na text pomocí techniky optického rozpoznávání znak ů a následné p řečtení. Dodate čnou funkcí této aplikace je jízdní řád, ve kterém je možno vyhledávat spoje. Celá aplikace je opat řena jednoduchým ovládáním. Uživatel si m ůže také vybrat, zda bude ovládat aplikaci pomocí po číta čové myši či klávesových zkratek.

Instalace a spušt ění aplikace Instalace aplikace je velmi jednoduchá. Spo čívá jen ve dvou krocích.

1. nahrání souboru "AspriseOCR.dll" do složky C:\WINDOWS\system32.

2. spušt ění aplikace pomocí souboru "OCR.jar".

Popis prost ředí Po spušt ění aplikace se objeví hlavní okno viz. obr. 1.1. Toto okno se skládá ze t ří částí. První částí je lišta menu, která nabízí veškeré ovládání aplikace. Pod jednotlivými položkami se ukrývají funkce otev ření obrázku, otev ření textového souboru, uložení textového souboru, samotný p řevod OCR, ale i zvukové ovládání. Menu také umož ňuje spustit jízdní řád či okno s nápov ědou. Pro snadn ější ovládání je pod lištou menu umíst ěn pruh rychlých voleb, kde jsou k dispozici nej čast ěji používaná tla čítka. V pravé části tohoto pruhu se nachází dodate čné ovládání jako je zm ěna velikosti písma, funkce editace či režimu "v ěta po v ětě".

Druhou část okna tvo ří náhled obrázku. Tato část se nachází v levé části okna. Po na čtení obrázku se tento soubor zobrazí v náhledu. Náhled lze zobrazit v p ůvodní či zmenšené velikosti.

Poslední část tvo ří textové pole, ve kterém se zobrazuje p řevedený či na čtený text. Jestliže je povolena volba editace, lze do textového pole zapisovat a upravovat text. Tla čítka

umíst ěna pod textem umož ňují ovládání zvuku. Jednotlivé funkce tla čítek jsou popsány v kapitole Funkce.

Obr. 1.1 Hlavní okno

Další částí aplikace je funkce jízdního řádu. Jízdní řád má své vlastní okno viz. 1.2. Toto okno má také hlavní menu, ve kterém lze najít veškeré ovládání. Nahraný jízdní řád se zobrazí do okna. V levé části je umíst ěn seznam zastávek a prává část obsahuje výpis jednotlivých odjezd ů.

Obr. 1.2 Jízdní řád Pro vyhledání spoje se zobrazí nové okno viz. obr. 1.3. Toto okno je tvo řeno textovými poli pro vypln ění vstupních údaj ů. Po stisku tla čítka Vyhledat se zobrazí ve spodní části výpis všech korektních spoj ů. Tento výpis lze samoz řejm ě nechat p řečíst.

Obr. 1.3 Vyhledání spoje

Funkce

Na čtení obrázku

Obrázek lze na číst pomocí rychlého tla čítka Load image nebo položkou v menu: File -> Load image.

Na čtení textového souboru Textový soubor lze na číst položkou v menu: File -> Load text.

Převedení obrázku na text

K tomuto úkonu lze využít rychlé tla čítko Convert nebo položku v menu: File -> Convert.

Uložení textu

Převedený text lze uložit pomocí tla čítka nebo pomocí položky v menu: Text -> Save as...

Editace textu Text lze editovat pouze tehdy, je-li povolena funkce "Editace". Tuto funkci lze povolit/zakázat pomocí zatržení/odtržení volby Editace, která se nachází v pravé části pruhu pod menu. Jinou možností je najít tuto volbu p římo v menu: Text -> Edit.

Zm ěna fontu Zm ěnit velikost fontu lze pomocí výb ěrového pole Font. Toto pole se nachází v pravé části pod menu.

Přiblížení a oddálení obrázku

Zobrazený obrázek lze zobrazit v p ůvodní velikosti pomocí tla čítka a tla čítkem zase obrázek oddálit.

Ovládání zvuku Zvuk lze ovládat pomocí čty ř tla čítek umíst ěných pod textovým polem.

1 2 3 4 1 a 3 - tato tla čítka jsou p řístupná pouze tehdy, je-li povolena volba v ěta po v ětě. Slouží k p řepínání čtených v ět.

2 - pomocí tohoto tla čítka program p řečte celý text nebo část, která je vyzna čena.

4 - pomocí tohoto tla čítka program p řečte v ětu, do které je umíst ěn kurzor.

Jízdní řád

Spustit tuto funkci lze pomocí položky v menu: Choice -> Jízdní řád nebo ikonou

Nahrání linky Novou linku lze nahrát pomocí položky v menu: Linka -> P řidat linku. Otev ře se okno s nabídkou nahrání linky bu ď ze souboru .html uloženého na lokálním disku nebo p římo stažení html stránky z internetu.

Vyhledání spoje Vyhledání se spustí pomocí položky v menu: Vyhledání. Zobrazí se okno s kolonkami, do kterých je nutno zadat kritéria, podle kterých se bude vyhledávat. Toto tla čítko slouží pro nadiktování dat.

Seznam klávesových zkratek

Klávesová zkratka Popis Ctrl + I Otev ření obrázku Ctrl + T Otev ření textového dokumentu C Převod obrázku na text Ctrl + X Ukon čení aplikace Ctrl + E Editace textu Ctrl + S Uložení textového souboru Ctrl + J Otev ření jízdního řádu + Přiblížení náhledu obrázku - Oddálení náhledu obrázku B Přečtení celého/ části textu M Přečtení v ěty ozna čené kurzorem N Další v ěta V Předchozí v ěta Shift + L Nahrání nové linky O Opa čný sm ěr W Víkend F Otev ře okno pro hledání spojení

C - Programátorská dokumentace

Instalace a spušt ění aplikace Instalace aplikace spo čívá jen ve dvou krocích.

3. nahrání souboru "AspriseOCR.dll" do složky C:\WINDOWS\system32. Tento soubor je nutný pro správný chod aplikace Asprise OCR, nebo ť p ředstavuje nativní knihovnu této aplikace.

4. spušt ění aplikace pomocí souboru "OCR.jar".

Knihovny aplikace Aplikace využívá knihovnu aplikace Asprise OCR - "aspriseOCR.jar" pro využití metody optického rozpoznávání znak ů a knihovny "jdom.jar", "looks-2.2.1.jar" pro práci se zvukem.

Metody

Korekce Funkce kone čné opravy textu je implementována metodou correction(), ve které dochází k nahrazování špatn ě rozpoznaných znak ů a také využívá textového souboru, ve kterém jsou definovány zkratky. Tyto zkratky jsou následn ě nahrazeny celými slovy.

Převedení Pro p řevedení obrazu na text je nutné použít metodu recognition(), ve které je volána metoda knihovny Asprise OCR.

Ozvu čení Přečtení textu se spouští n ěkolika metodami, jelikož existuje více možností jak text přečíst. Ve všech t ěchto metodách se ale využívá metod programu p. Brettšnajdra.

Kompletní popis všech metod, událostí i prom ěnných je ve vygenerovaném JavaDOCu, který je uložen na CD ve složce /text/JavaDOC.