WOJSKOWA AKADEMIA TECHNICZNA



Podobne dokumenty
Baza danych. Program: Access 2007

Skanowanie OCR w aplikacji Kancelaria Komornika. Instrukcja dla użytkownika

1. Dockbar, CMS + wyszukiwarka aplikacji Dodawanie portletów Widok zawartości stron... 3

enova Systemowe Kolorowanie list

Instrukcja obsługi Platformy B2B

Instrukcja wprowadzania graficznych harmonogramów pracy w SZOI Wg stanu na r.

Grafika komputerowa. Dla DSI II

Analiza i przetwarzanie obrazów

I. Interfejs użytkownika.

Instrukcja użytkownika aplikacji modernizowanego Systemu Informacji Oświatowej PRACA NA WIELU BAZACH DANYCH

Tworzenie i edycja dokumentów w aplikacji Word.

OBSŁUGA PRACY DYPLOMOWEJ W APD PRZEZ STUDENTA

INSTRUKCJA PROGRAMOWANIA KASY FISKALNEJ I-ERGOS 3050 PRZY POMOCY PROGRAMU PLU MANAGER I-ERGOS.

WORDPRESS INSTRUKCJA OBSŁUGI

WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM. NetBeans. Wykonał: Jacek Ventzke informatyka sem.

Co to jest arkusz kalkulacyjny?

Dodawanie grafiki i obiektów

INSTRUKCJA OBSŁUGI PROGRAMU IRF DLA BIURA RACHUNKOWEGO Program Rachmistrz/Rewizor. Strona0

Podręcznik użytkownika programu. Ceremonia 3.1

Instrukcja użytkownika NAUCZYCIELA AKADEMICKIEGO SYSTEMU ARCHIWIZACJI PRAC

TWORZENIE DANYCH DO DRUKU W PROGRAMIE MICROSOFT POWERPOINT 2013

Scenariusz lekcji. Scenariusz lekcji. opisać działanie narzędzi przybornika. korzystać z Edytora postaci programu Logomocja;

INSTRUKCJA OBSŁUGI PROGRAMU IRF DLA BIURA RACHUNKOWEGO. Program Symfonia. Strona0

WOJEWÓDZTWO PODKARPACKIE

Formatowanie warunkowe

P R Z E T W A R Z A N I E S Y G N A Ł Ó W B I O M E T R Y C Z N Y C H

Pokaz slajdów na stronie internetowej

Operacje na Wielu Arkuszach

Instrukcja Użytkownika (Nauczyciel Akademicki) Akademickiego Systemu Archiwizacji Prac

Ćwiczenie 1 - Arkusze kalkulacyjne

Spis treści 1. Wstęp Logowanie Główny interfejs aplikacji Ogólny opis interfejsu Poruszanie się po mapie...

Instrukcja użytkownika systemu medycznego. Pracownik medyczny Lekarz ZDLR

Instrukcja obsługi. Generatora CSV

Prawdopodobieństwo czerwonych = = 0.33

Ewidencja Opłat za Korzystanie ze Środowiska

Projektowanie Skinów w programie Taboret2

Instrukcja użytkownika WYKŁADOWCY AKADEMICKIEGO SYSTEMU ARCHIWIZACJI PRAC

3S TeleCloud - Aplikacje Instrukcja użytkowania usługi 3S SMS SYSTEM

DOKUMENTY I GRAFIKI. Zarządzanie zawartością Tworzenie folderu Dodawanie dokumentu / grafiki Wersje plików... 7

Podstawy technologii WWW

Instrukcja aktualizacji programu FAKTURY i Rachunki 2013

Rozdział ten zawiera informacje o sposobie konfiguracji i działania Modułu OPC.

INSTRUKCJA OBSŁUGI KREATORA SKŁADANIA WNIOSKÓW

Instrukcja użytkownika ARSoft-WZ3

1. Logowanie do systemu

Laboratorium - Narzędzie linii uruchamiania w systemie Windows Vista

Sprawdziany w USOSweb instrukcja dla prowadzących zajęcia.

Nazwa kwalifikacji: Tworzenie aplikacji internetowych i baz danych oraz administrowanie bazami Oznaczenie kwalifikacji: E.14 Numer zadania: 01

Instrukcja użytkownika

Defekty Mr Buggy 4. Znane, nieznane i literówki (wybrane)

BAZY DANYCH Panel sterujący

PODRĘCZNIK UŻYTKOWNIKA

Instrukcja obsługi platformy

Platforma e-learningowa

Aby przejść do edycji w tym module należy wybrać zakładkę "Dla Pracowników" -> "Sprawdziany".

Instrukcja obsługi elektronicznego formularza harmonogramu w ZSI SEZAM

POMOC / INSTRUKCJA OBSŁUGI

Zakładanie konta w JSA przez administratora JSA. Rozpocznij

Instrukcja obsługi. Helpdesk. Styczeń 2018

Krok 2: Pierwsze uruchomienie

Generator CABRILLO program Marka SP7DQR (Instrukcja obsługi)

PRODUKCJA BY CTI INSTRUKCJA INSTALACJI I KONFIGURACJI

Tworzenie strony www - jako projektu z Mechaniki i budowy maszyn

Instrukcja zarządzania kontem jednostki samorządu terytorialnego w serwisie internetowym

EXCEL. Diagramy i wykresy w arkuszu lekcja numer 6. Instrukcja. dla Gimnazjum 36 - Ryszard Rogacz Strona 20

5. Bazy danych Base Okno bazy danych

Instrukcja szybkiej obsługi

Wyliczanie Wymienników Węglowodanowych (WW) oraz Wymienników Białkowo-Tłuszczowych (WBT)

INSTRUKCJA OBSŁUGI PROGRAMU IRF DLA BIURA RACHUNKOWEGO Program Comarch Optima. Strona0

,Aplikacja Okazje SMS

PODRĘCZNIK UŻYTKOWNIKA PRACOWNIK SPZOZ

Budowa aplikacji ASP.NET współpracującej z bazą dany do obsługi przesyłania wiadomości

Instrukcja obsługi Konfigurator MLAN-1000

Księgarnia internetowa Lubię to!» Nasza społeczność

INSTRUKCJA INSTALACJI APLIKACJI PROF- EAN 2

Instalacja i obsługa generatora świadectw i arkuszy ocen

Szanowni Państwo. Należy przy tym pamiętać, że zmiana stawek VAT obejmie dwie czynności:

Tematy lekcji informatyki klasa 4a luty/marzec 2013

CalendarGenerator v0.1 - instrukcja obsługi

dolar tylko przed numerem wiersza, a następnie tylko przed literą kolumny.

EXCEL TABELE PRZESTAWNE

CENTRALNA BAZA DANYCH AKT SĄDOWYCH CEL POWSTANIA I ZASADY FUNKCJONOWANIA

SCENARIUSZE ĆWICZEŃ DLA UŻYTKOWNIKÓW WEWNĘTRZNYCH SYSTEMU INFORMATYCZNEGO NAWIKUS

Mobilna Aplikacja Handlowa

MasterEdytor. Podprogram pomocniczy do programu mpfotoalbum 1.2 INSTRUKCJA

MATERIAŁY - udostępnianie materiałów dydaktycznych w sieci SGH

Użytkownik zewnętrzny (UZ) może wykonywać następujące czynności:

Usługi Informatyczne "SZANSA" - Gabriela Ciszyńska-Matuszek ul. Świerkowa 25, Bielsko-Biała

Cash Flow System Instrukcja

instrukcja INSTALACJI APi_proxy

Laboratorium - Narzędzia linii uruchamiania w systemie Windows 7

Projektowanie przy uz yciu motywo w częś c 1: informacje podśtawowe

1. Wstawianie macierzy

Produkcja by CTI. Proces instalacji, ważne informacje oraz konfiguracja

5.5. Wybieranie informacji z bazy

Instrukcja obsługi programu PLOMP PLUS FM

Zajęcia komputerowe klasy I-III- wymagania

Instrukcja użytkownika STUDENTA AKADEMICKIEGO SYSTEMU ARCHIWIZACJI PRAC

Przewodnik użytkownika (instrukcja) AutoMagicTest

Transkrypt:

WOJSKOWA AKADEMIA TECHNICZNA PROJEKT METODY I ZADANIA ROZPOZNAWANIA WZORCÓW Stopień, imię i nazwisko prowadzącego Stopień, imię i nazwisko słuchacza Grupa szkoleniowa prof. dr hab. inż. Włodzimierz Kwiatkowski inż. Grzegorz Pol I0G1S4 Data wykonania ćwiczenia 09.06.2011 r. SPRAWOZDANIE Z PRACY PROJEKTOWEJ Temat: Webowy program OCR do rozpoznawania znaków oparty na klasyfikatorze minimalno odległościowym.

1. Ogólny opis aplikacji Jako cel zadania projektowego wybrałem stworzenie aplikacji internetowej do rozpoznawania znaków opartej na klasyfikatorze minimalno odległościowym. Powstałą aplikację nazwałem MYOCR i wyposażyłem w system tzw. uczenia się. Jako język realizacji zadania wybrałem PHP wzbogacony o bazę danych mysql, która to była mi potrzebna do zapamiętywania wyników nauki systemu. W dalszej części sprawozdania opiszę poszczególne właściwości stworzonej aplikacji. 2. Opis aplikacji Aplikacja została wyposażona w przyjemny dla oka interfejs graficzny. Został on podzielony na dwie części: Górne menu (zaznaczone czerwoną ramką) Okno podstrony (zaznaczone zieloną ramką) Górne menu zawiera cztery linki, a od ich wciśnięcia zależy jaka podstrona zostanie otworzona w dolnym oknie. Są to: Lista plików Upload plików Pokaż bazę Wyczyśd bazę Domyślnie przy uruchomieniu aplikacji załadowana zostaje podstrona Lista plików. 2

2.1 Podstrona Lista plików Lista plików jest podstawową podstroną, z której możemy zobaczyd nazwy wgranych do apliakcji plików, podejrzed grafiki (za pomocą linku nazwanego link, sprawdzid wysokośd i szerokośd danej grafiki oraz wybrad czy aplikacja ma podjąd próbę jej rozpoznania czy na jej podstawie nauczyd się kształtów zawartych w grafice liter. 2.2 Podstrona ucz się Po naciśnięciu linku ucz się znajdującego się przy odpowiedniej grafice wyświetli się nam strona, na której to zobaczymy wybrany plik graficzny (w moim przypadku test1.png). Program w tym momencie poprosi nas o przepisanie treści grafiki. Po wpisaniu zdania naciskamy przycisk sprawdź poprawnośd odczytania znaków przez aplikację, co powoduje przejście do następnej podstrony. 3

2.3 Podstrona sprawdzanie poprawności odczytu Na tej stronie aplikacja pierwszy podejmuje działania na grafice, mające w tym przypadku na celu naukę kształtów liter i przedstawienie ich w postaci dwóch wartości. Poniżej przedstawiam wygląd tej podstrony. Podając na poprzedniej stronie tekst, aplikacja już wie, że na grafice znajduje się 17 znaków oraz 3 białe znaki (spacje). Aplikacja za pomocą funkcji imagecolorsforindex oraz po przez wcześniejsze użycie kilku innych funkcji i dwóch pętli for potrafi przeanalizowad każdy piksel grafiki, a następnie badając kolor piksela zadecydowad czy dany jest on tłem czy kawałkiem tekstu. Jak wiemy grafika domyślnie używa kolorów z palety RGB, które to są zapisane szesnastkowo w postaci 6 liczb szesnastkowych (np. kolor czerwony #ff0000). Pierwsze dwa znaki oznaczają nasilenie kolorem czerwonym, następne dwa kolorem zielonym, a ostatnie dwa kolorem niebieskim. Po odpowiedniej zmianie tych liczb na system dziesiętny otrzymuje trzy wartości od 0 do 255. Kolory ciemne mają mniejsze wartości RGB (czarny to 0,0,0), a jasne osiągają większe wartości (biały to 255,255,255). Problem, odróżnienia tła od czcionki rozwiązałem sumując składowe RGB. W przypadku kiedy ich suma przekroczy wartośd 300 to aplikacja potraktuje dany piksel jako tło, inaczej aplikacja będzie uważała, że dany piksel należy do badanego znaku. 4

Dzięki powyższej analizie, aplikacja jest w stanie przetransferowad grafikę do postaci zbliżonej na poniższym rysunku (obrazek przygotowałem specjalnie na potrzeby sprawozdania, w aplikacji analiza przebiega trochę inaczej) znakiem minusa oznaczyłem piksel, który ma sumę składowych RGB powyżej 300, a znakiem X piksele, które mają sumę składowych RGB 300 lub poniżej. Aplikacja gdy znajdzie kolumnę, w której nie występuję żaden X stwierdza, że w tym miejscu kooczy się znak. W przypadku gdy pustych sąsiadujących kolumn będzie więcej niż jedenaście aplikacja stwierdza, że natrafiła na biały znak tzw. spację. Program MYOCR przedstawia każdy znak za pomocą dwóch liczb: wartości A i wartości B. Wartośd A obliczana jest za pomocą funkcji, która analizuje znaki obrócone o 90 stopni. Poniższy rysunek symuluje taką sytuację w przypadku rozpoznawania literki G. 5

Po obróceniu literki aplikacja bada wystąpienia X w wierszu, a następnie sumuje iloczyny, gdzie czynnikami jest nr wiersza (zaczynając od wartości 0) oraz liczba wystąpieo. Dla powyższego przykładu wartośd A wynosi: 4*0 + 12*1 + 16*2 + 9*3 + 6*4... itd. Druga wartośd jest to liczba wierszy podniesiona do kwadratu. W przypadku literki G wartośd B wynosi 20² czyli 400. 2.4 Podstrona nauczono Po zatwierdzeniu wyników z poprzedniej podstrony zostajemy przeniesieni na ostatnią stronę dotyczącą nauki aplikacji, na której to ujrzymy pełen raport z nauki. W przypadku kiedy już wcześniej rozpoznawano dany znak, aplikacja pobiera zapisaną w bazie średnią wartośd z poprzednich pomiarów, mnoży ją razy ilośd odbytych wcześniej rozpoznao, a następnie dodaje nowo zmierzoną wartośd dzieląc otrzymany wynik przez liczbę odbytych wcześniej pomiarów powiększoną o jeden. 6

2.5 Podstrona upload pliku Aplikacja MYOCR została wyposażona w system uploadowania plików. Pozwala on nam na wrzucenie nowych obrazków bez używania klienta FTP. Aplikacja obsługuje jedynie pliki w formacie *.png. Załadowany plik od razu pojawia się w na podstronie Lista plików. 2.6 Podstrona pokaż bazę Aplikację MYOCR wyposażyłem także w podstronę, dzięki której nie musimy wchodzid do aplikacji zarządzającej bazą danych by zobaczyd aktualnie nauczone przez system znaki wraz z ich uśrednionymi wartościami A i B oraz liczbą rozpoznao. Poniższy obrazek przedstawia widok bazy po dwóch naukach grafiki test1.png. 2.7 Podstrona wyczyśd bazę Ponadto użytkownik aplikacji MYOCR ma możliwośd wyczyszczenia bazy z poziomu aplikacji. Służy do tego podstrona wyczyśd bazę. Po kliknięciu na przycisk tak baza zostaje wyczyszczona, a my zostajemy poinformowani o tym fakcie poniższym komunikatem. 7

2.8 Podstrona rozpoznaj Najważniejszą z punktu widzenia zadania jaki ma pełnid aplikacja podstroną jest strona rozpoznaj. Klikając na link rozpoznaj znajdujący się przy wybranej grafice przenosimy się do podstrony, na której aplikacja MYOCR wyświetli wynik rozpoznawania znaków. Wynik rozpoznania wprowadzanego wcześniej zdania przedstawiam poniżej: 8

Jak zauważamy system rozpoznał podane zdanie bezbłędnie. Rozpoznawanie w aplikacji MYOCR jest jak już na początku sprawozdania wspomniałem oparte na klasyfikatorze minimalno odległościowym. Aplikacja znajdując znak w grafice oblicza wspomniane we wcześniejszych podrozdziałach wartości: A i B. Następnie korzystając z bazy danych szuka znaku, który posiada taki zestaw wartości A i B, gdzie odległośd pomiędzy zestawami jest jak najmniejsza. Wzór na odległośd przedstawiam poniżej: 2 d = A X A 2 Y + B X B 2 Y gdzie: X znak zmierzony Y - znak z bazy d odległośd pomiędzy znakami A X - wartośd A znaku zmierzonego A Y - wartośd A znaku z bazy B X - wartośd B znaku zmierzonego B Y - wartośd B znaku z bazy 3. Test Po zbudowaniu aplikacji przeprowadziłem test sprawdzający jak aplikacja, radzi sobie z rozpoznawaniem znaków w momencie gdy posiada w swojej bazie większą ilośd wzorców. Jako grafikę posłużył mi plik png, na którym to umieściłem tekst jednej zwrotki piosenki zespołu Perfect Niepokonani. Obrazek podzieliłem w programie graficznym na dziewięd oddzielnych plików png - każdy przedstawiający dokładnie jedną linijkę. Gdy emocje już opadną Jak po wielkiej bitwie kurz Gdy nie można mocą żadną Wykrzyczanych cofnąć słów Czy w milczeniu białych haniebnych flag Zejść z barykady Czy podobnym być do skały Posypując solą ból Jak posag pychy samotnie stać Następnie nauczyłem aplikację każdej z nich. Program nauczył się 34 znaków (28 małych liter, 6 wielkich liter). Po przeanalizowaniu 194 znaków sprawdziłem jak aplikacja rozpoznaje wspomniane grafiki. Wynik odnotowałem poniżej. Źle rozpoznane znaki zaznaczyłem kolorem czerwonym. Gdy emocje już opadną 9

Jak po wielkiej bitwie kurz Gdy nie można mocą żadną Wykrzyczanych cofnąć słuw Czy w milczeniu białych haniebnych flag Zejść z barykady Czy podobnym być do skały Posypując solą bul Jak posag pychy samotnie stać Jak widad w obu przypadkach, aplikacja źle rozpoznała literę ó i zamiast niej proponowała w rozpoznawaniu literę u. Powodem tego błędu jest jednak błąd bazy danych, a konkretnie jej kodowania. Baza danych nie była w stanie zapisad litery ó, gdyż pojawiał się błąd przy zapisie rekordu. Aplikacja próbując rozpoznad dany znak szukała więc najbardziej podobnego znaku (takiego która ma podobne wartości A i B) i proponowała literę u. Wykaz bazy danych po nauce przedstawiam poniżej. Po zastąpieniu literki ó na o w tekście piosenki, zapisie do formatu graficznego, a nastepnie ponownym przetestowaniu aplikacji, program MYOCR nie pomylił się ani razu podczas rozpoznawania. 10

4. Wnioski Stworzona przeze mnie aplikacja mimo udanie przeprowadzonego testu nie jest doskonała. W przypadku gdy w tekście zaczynają pojawiad się znaki interpunkcyjne w postaci myślnika, podkreślnika, przecinka czy kropki spada poprawnośd odczytu znaków. Wynika to ze niedopracowanego wzoru wyliczającego wartości A i B. W celu poprawy niedociągnięd należałoby dodad jeszcze jedną wartośd określająca dany znak. Wtedy odległośd byłaby mierzona w przestrzeni trójwymiarowej. Napisanie profesjonalnej aplikacji OCR opartej na klasyfikatorze minimalno odległościowym nie jest jednak do kooca dobrym pomysłem. Aplikacja musi przy każdym rozpoznawanym znaku obliczyd odległośd do każdego posiadanego w bazie wzoru znaku, co w przypadku aplikacji posiadającej dużą ilośd wzorów znaków specjalnych staje się procesem czasochłonnym. 11