Child pages
  • Aplikacja WYCINANKI
Skip to end of metadata
Go to start of metadata

Szczegółowy opis procedury zaznaczania obszaru znaku, binaryzacji i czyszczenia z zakłóceń za pomocą Aplikacji  „Wycinanki”

 http://wlt.synat.pcss.pl/cutouts/ 

1.  Opis aplikacji

Aplikacja wspomaga przygotowanie poprawnego materiału uczącego dla systemu automatycznego rozpoznawania znaków (ang. OCR). Pod pojęciem poprawnego materiału uczącego rozumiemy zestaw kształtów (obszarów) wyizolowanych z dokumentu źródłowego, składających się na czcionkę użytą do druku danego dokumentu. Poprawny materiał uczący posiada następujące cechy:

  1. Wyizolowany obszar zawiera pełny kształt pojedynczego znaku, nie powinien on zawierać zabrudzeń i fragmentów innych znaków. Należy również pamiętać, że znaki diakrytyczne (np. akcenty czy ogonki) są integralną częścią właściwego znaku.

  2. Wyizolowany kształt powinien możliwie wiernie odzwierciedlać cechy czcionki użytej do druku.

  3. Z wyizolowanym obszarem w formie graficznej skojarzony jest odpowiadający mu znak wprowadzony z klawiatury komputera lub klawiatury wirtualnej.

  4. Wyizolowany kształt oznaczony jest jako poprawny lub błędnie wydrukowany.

2.  Proces przygotowania materiału uczącego

W ramach aplikacji proces przygotowania materiału uczącego został podzielony na następujące kroki:

  1. Poprawne zaznaczenie obszaru zawierającego pełny kształt znaku (porównaj cecha 1) powinno bazować na podpowiedzi aplikacji lub samodzielnie zaznaczonym obszarze. Jeżeli zaproponowany przez aplikację obszar jest nieprawidłowy i nie zostanie wykorzystany przez użytkownika, należy go usunąć. Aplikacja przejdzie wówczas do kolejnej podpowiedzi (krok nr 1).

  2. Dobranie stopnia (progu) binaryzacji, który możliwie wiernie wyizoluje kształt znaku (porównaj cecha 2). W tym kroku aplikacja zaproponuje początkowe ustawienie binaryzacji, które w razie potrzeby powinno zostać skorygowane przez użytkownika.

  3. Wymazanie elementów, które nie należą do oryginalnego kształtu litery (porównaj cecha 1) za pomocą „pędzla”.

  4. Wprowadzenie znaku, któremu odpowiada wyizolowany kształt (porównaj cecha 3).

  5. Zapisanie kształtu lub oznaczenie go jako niepoprawnie wydrukowanego (porównaj cecha 4).

Po kroku nr 5 następuje powrót do kroku nr 1, aż do momentu przetworzenia wszystkich znaków w dokumencie.

3.  Przykłady

Poszczególne kroki oraz zalecenia są szczegółowo omówione na poniższych przykładach.

3.1  Krok 1: Zaznaczenie obszaru z kształtem znaku diakrytycznego.

Obszar zaproponowany przez aplikację nie zawiera znaku diakrytycznego będącego częścią opracowywanej litery. W takiej sytuacji należy rozszerzyć obszar, aby obejmował cały kształt litery.


 
 

3.2  Krok 1: Połączenie sąsiadujących obszarów.

Podpowiedź aplikacji jest błędna, ponieważ znak V został podzielony na dwa nakładające się obszary:

 

Należy rozszerzyć jeden z nich w taki sposób, by obejmował cały kształt znaku, natomiast drugi odrzucić.


Poniżej pokazano dwa obszary zaproponowane przez aplikację oraz trzeci obszar wynikowy.

  
 

3.3  Krok 1: Błędny obszar nie zawierający znaku

Obszar zaproponowany przez aplikację może nie zawierać znaku. W takim przypadku należy usunąć (odrzucić) zaproponowany obszar. Poniżej znajdują się przykłady obszarów zawierających kolejno zabrudzenie, fragment grafiki ozdobnej oraz fragment obramowania tabeli.

  

 

3.4  Krok 2: Dobór stopnia (progu) binaryzacji

Dobranie stopnia (progu) binaryzacji w kroku 2 kontroluje się przyciskami + oraz - lub suwakiem:


Proces binaryzacji to konwersja z obrazu wielokolorowego (czy też odcieni szarości) do postaci czarno–białej (dwukolorowej). Korygując stopień binaryzacji, należy dążyć do tego aby wyizolowany kształt znaku odzwierciedlał jego właściwy charakter (por. cecha 2). Poniżej pokazano jak dobór stopnia binaryzacji wpływa na to jak wygląda wynikowy kształt (czarno–biały) znaku L. Od prawej: oryginalny obszar (obraz w odcieniach szarości) oraz wyniki procesu binaryzacji dla rosnących wartości stopnia binaryzacji.


   

Jak widać w przykładzie, zwiększając stopień (poziom) binaryzacji udało się usunąć poziome zniekształcenia (szumy) obszaru. Z kolei zbyt duża wartość stopnia binaryzacji może doprowadzić do „zamazania” kształtu. Zatem w powyższym przykładzie poprawny jest drugi stopień binaryzacji.


Następny przykład pokazuje jak za pomocą doboru stopnia binaryzacji można wyizolować kształt znaku, usuwając przy tym kształty nienależące do znaku. Ponownie przedstawiono oryginalny obszar oraz zwiększane wartości stopnia binaryzacji.

 
   

Uwaga.

Celem doboru stopnia binaryzacji jest wyizolowanie możliwie wiernie kształtu znaku w formie czarno–białej. Nie zawsze możliwe jest przy tym wymazanie kształtów innego pochodzenia, szczególnie jeśli cechują się tym samym odcieniem.

 

3.5  Krok 3: Wymazanie sąsiadującego znaku

W sytuacji, gdy prostokątny obszar nie może objąć pojedynczego znaku (zobacz ilustracja poniżej), należy usunąć fragmenty należące np. do innych znaków, za pomocą „pędzla”. Poniższy przykład ilustruje oryginalny obszar oraz kolejne etapy wymazywania niechcianego fragmentu.

 
     
 

Uwaga 1.

Narzędzie wymazywania kształtów nie powinno być używane do uzyskiwania „idealnego” kształtu (porównaj zalecenia do kroku 2).


3.6  Krok 5: Znaki błędnie wydrukowane.

Z uwagi na charakter dokumentów, na podstawie których przygotowywany jest materiał uczący, możliwa jest sytuacja, gdy pojedyncze znaki (lub większe fragmenty tekstu) będą błędnie wydrukowane. W takich przypadkach niemożliwe jest wyizolowanie kształtu wiernie reprezentującego dany znak. Należy zatem oznaczyć dany kształt w kroku 5 jako błąd drukarski (zobacz cecha 4) i pomimo błędu, o ile to możliwe, należy wpisać jaki znak reprezentuje dany kształt.

 

Poniżej znajdują się przykłady kształtów, które powinny być oznaczone jako błąd drukarski. Podano obszar oryginalny oraz kształt zbinaryzowany (czarno–biały):

1. Niedobita czcionka dla znaku a:

  

2. Niedobita czcionka dla znaku A:
 

3. Niedobita czcionka dla znaku S. Pokazano, jak zwiększanie stopnia (progu) binaryzacji doprowadza do zamazania kształtu oryginalnego znaku.
   

Uwaga 1.

 W przypadku, gdy błąd drukarski jest znaczny, może nie być pewności jaki znak reprezentuje dany kształt. Należy wówczas w kroku 4 wprowadzić znak rozpoznany na podstawie szerszego kontekstu, np. wyrazu. Przykładem jest powyższy znak S w wyrazie Sądy.

 
Uwaga 2.

 W przypadku niektórych błędów drukarskich, kształt znaku jest zniekształcony, jednakże nadal poprawny. Jako ilustrację przedstawiono poniższy przykład znaku a, które pomimo zabrudzeń nadal stanowi poprawny kształt:

 



Opisy konkretnych przypadków napotkanych podczas pracy z aplikacją Wycinanki

1. Zmiana stopnia binaryzacji

Czy w takim przypadku jak na ilustracji poniżej należy zaznaczyć znaki ręcznie?

 

Nie, takie znaki należy pominąć, należy unikać używania opcji “Zmiany stopnia binaryzacji” podczas identyfikacji znaku.

W takim przypadku jak zaznaczony kółkiem na powyższym obrazku, dwa wciśnięcia plusa powodują wypełnienie białej kropki czarnym kolorem i wtedy można wyregulować binaryzację. W większości przypadków regulacja binaryzacji nie będzie potrzebna. Na przykład w takim przypadku jak poniżej nie należy zmieniać stopnia binaryzacji, ponieważ w literce przed binaryzacją wyraźna jest biała dziura.

 

2. Błędy drukarskie 

 Czy poniższy przypadek należy traktować jako błąd drukarski czy jeszcze nie?

Niestety nie da się podać żadnych liczbowych danych (np. % ubytku znaku), które klasyfikują przypadek jako błąd. W tym przypadku nie jest to błąd drukarski. Oznaczenie błędu drukarskiego powstało, żeby wskazać znaki, które są wręcz nieczytelne, a o tym jaki to znak dowiadujemy się np. z kontekstu. 

 

Powyższe przykłady liter “y” oraz “w” należy oznaczyć jako błąd drukarski, mimo że zostały rozpoznane przez system poprawnie.


Na poniższej ilustracji widnieje słowo "rachuukowości", program rozpoznał drugie "u" prawidłowo - jako "n". Czy należy zaznaczyć, że to poprawne, bo program rozpoznał słowo z kontekstu, czy jednak, że niepoprawne, bo potem program może rozpoznawać  "u" jako "n"?

Zależy nam na poprawnym rozpoznawaniu znaków, jeżeli na obrazie widnieje “u”, to rozpoznanie także należy poprawić na “u”. 


Czy takie “dodatki” w obrębie znaków należy usunąć ręcznie czy pozostawić? 

Ręczna modyfikacja jest kluczowa przede wszystkim w sytuacji gdy znaki sąsiednie nachodzą na dany wzorzec. 


Czy takie “i” traktować jako poprawne, czy to jest błąd drukarski?

  

 Powyższe “i” powinno być traktowane jako poprawne. 


Czy to jest “i” czy uszkodzone “j”?

Jest to litera “j”, która powinna być oznaczona jako błąd drukarski.


Poniżej zamieszczono kilka przykładów występujących w korygowanych tekstach. Pod ilustracją czerwonym kolorem oznaczono błędy drukarskie

 

n, k, i, k, r, d, p, e, s, i, z, a, a, w, m, w, ś, p


Co należy wpisać jako poprawny znak w poniższych przypadkach?

 Są to osobne znaki długie s i u oraz długie s i ł, jednak należy być czujnym, ponieważ w niektórych miejscach występują ligatury. Trzeci obrazek prezentuje zwykłe ż. 


Co należy zrobić w przypadkach tak szczątkowych liter jak poniżej? Nie zawsze udaje się wyciągnąć znaczenie z kontekstu słowa.

 

Jeżeli uda się wyciągnąć znaczenie słowa z kontekstu, należy wpisać odpowiedni znak i zaznaczyć błąd drukarski.  

 

Czy w poniższym przypadku należy uznać obszar za błędny czy oznaczyć go ręcznie jako “y”? Czy należy zastosować binaryzację? Jak należy postąpić jeśli program oznacza tylko maleńki fragment litery - pominąć taki znak?

 

 Literę należy zaznaczyć jako “y”, ale również jako błąd drukarski. Można nieco zbinaryzować znak w takim przypadku. Zbinaryzowany kawałek nie przypomina niczego.


Czy to jest poprawny znak czy błąd drukarski? 

To jest poprawny znak - łacińska mała litera Z z daszkiem. 

  

 Czy to jest błąd drukarski czy może znak specjalny?  

 

Jest to litera s z błędem drukarskim. Wynika to z kontekstu słowa: czasie.

  

Czy w tekście pisanym kursywą kropki muszą być również oznaczone jako kursywa? Czy nie ma to znaczenia?

W przypadku kropek nie ma to znaczenia. 

3. Dzielenie wyrazów

miękki (opcjonalny) łącznik, miękki dywiz, soft hyphen, U+00AD

Poniżej znajduje się kilka linków oraz test przygotowany do zilustrowania metody stosowanej w ABBYY FineReader.

miękki (opcjonalny) łącznik (U+00AD), który pozostaje ukryty, gdy znajduje się w środku wiersza, jest natomiast widoczny, gdy przypada na koniec wiersza (za Wikipedią):

http://pl.wikipedia.org/wiki/Dywiz

Do oznaczania dzielenia wyrazów należy użyć znaku ¬  który nie jest miękkim łącznikiem, ale jego wygląd graficzny ułatwi wstawianie właściwego symbolu i zapobiegnie pomyłkom (http://www.fileformat.info/info/unicode/char/ac/index.htm). Podobną metodykę przyjęto w ABBYY Fine Reader. Istnieje możliwość podejrzenia kilku próbek ilustrujących tą metodę, udostępnione są one tutaj - http://www.digitalizacja.pl/ocr/soft_hyphen_test.zip. W pliku DOC otwartym w MS Word (przełączając na podgląd znaków ukrytych) można podejrzeć, jak zamieniane są znaki wygenerowane przez FR na łączniki miękkie (dywizy). Dla przykładu wygenerowano też format PDF, ePUB i TXT. W ePUB i TXT można podejrzeć jak zachowuje się tekst w przypadku nie zastosowania łącznika miękkiego lecz zwykłego. W kilku miejscach FR błędnie rozpoznał łącznik i zastosował zwykły dywiz.


Który ze znaków z wirtualnej klawiatury wybrać w takim przypadku? 

  

 Najlepszym wyborem będzie: Pauza - U+2014. Po najechaniu myszką na ten znak, można podejrzeć czy to jest kod U+2014, bo są tam dwa prawie identyczne. 

4. Gotyk

UWAGA: w dokumentach drukowanych gotykiem domyślnie wciśnięty jest przycisk oznaczający gotyk. W przypadku gdyby w tekście znalazł się tekst drukowany normalną czcionką, należy wyłączyć tę opcję.

 

 

Na stronie: http://pl.wikipedia.org/wiki/D%C5%82ugie_s dostępne są informacje na temat znaku długie s.
 
 Na stronach: http://en.wikipedia.org/wiki/%C3%9F oraz http://pl.wikipedia.org/wiki/%C3%9F dostępne są informacje na temat znaku ß


Jakie znaki zastosować dla cudzysłowów w takim przypadku? Są to cudzysłowy zwykłe czy odwrócone? 
  
 To powinny być standardowe cudzysłowy czyli odpowiednio U+201D oraz U+201E


Przykłady czcionek gotyckich - http://www.digitalizacja.pl/ocr/Gotyk.pdf 

5. Pomijanie znaków 

 Czy w przypadku nagłówków pisanych nietypową czcionką, tak jak na poniższych przykładach, należy pomijać znaki czy rozpoznawać je na podstawie kontekstu?

W takim przypadku można pominąć.  

 

W takim przypadku należy rozpoznać. 

6. Ligatury

Ligatura to czcionka lub font, w których oczko (obraz) zawiera dwie (co najmniej) połączone litery w postaci jednego wspólnego, nowego znaku, np. w połączeniu liter "fi", gdy kropka z litery "i" stanowi jednocześnie kulkę na końcu litery "f". Innym przykładem tak zbudowanego znaku są litery "f" i "l" stojące na wspólnym szeryfie (w tym wypadku stopce).Ligatury są specjalnie tworzonymi znakami pisarskimi dla najczęściej występujących w wyrazach grup liter, które zawierają znaki o kolidującym ze sobą rysunku. Każdy język ma inne pary znaków, które występują najczęściej, dlatego ligatury są elementem charakterystycznym dla każdego z języków. W ogólnodostępnych fontach normą są ligatury języka angielskiego "fi", "fl", "ff". Mimo podobieństwa graficznego bardzo rzadko spotyka się natomiast ligaturę "fj" - prawdopodobnie dlatego, że występuje w języku angielskim jedynie w jednym i to obcym wyrazie ("fjord"). Niektóre polskie fonty mają ligatury "łł" w postaci wspólnego łuku nad obiema literami. Ligaturą jest również znak "&", który powstał przez połączenie liter słowa et (łac. i). Więcej informacji na temat ligatur dostępnych jest na stronie: http://pl.wikipedia.org/wiki/Ligatura_(pismo) 

Jest to przykład nietypowej ligatury, informacje na jej temat można znaleźć na stronach:

Nie ma odpowiedniego kodu Unicode, stosuje się tutaj COMBINING GRAPHEME JOINER (U+034F, http://unicode.org/faq/char_combmark.html#17) w połączeniu ze znakami c i h (<c, CGJ, h>. Ciekawe dostępne są na stronie: http://typophile.com/node/33330. Ponieważ wywodzi się od greckiej litery chi, proponuje się używać znaku zastępczego: U+03A7. Samo Chi nie powinno wystąpić grupie weryfikowanych tekstów.

7. Praktyczne wskazówki usprawniające pracę


W przypadku tekstów drukowanych kursywą, np. takich jak na powyższej ilustracji, należy w oknie weryfikacji znaku zaznaczyć w ten sposób każdą literę odpowiednio wciskając prawidłowy przycisk. Jeśli są to pojedyncze wyrazy, operacja nie jest skomplikowana, jednak w przypadku obszerniejszych tekstów dodatkowe wciskanie kolejnego przycisku może być uciążliwe i czasochłonne. W celu usprawnienia tej czynności wprowadzono skróty klawiaturowe i w przypadku kursywy jest to klawisz z literką i. Wciśnięcie na klawiaturze odpowiedniego klawisza powoduje ten sam efekt co wciśniecie odpowiedniego przycisku na ekranie przy pomocy myszy.

Przydatne materiały

  1. Przykłady czcionek gotyckich - http://www.digitalizacja.pl/ocr/Gotyk.pdf 

  2. Ligatury - http://pl.wikipedia.org/wiki/Ligatura_(pismo)#Unicode 

  3. Pismo gotyckie - http://pl.wikipedia.org/wiki/Pismo_gotyckie 

  4. Latin Extended-A - http://en.wikipedia.org/wiki/Latin_Extended-A

  5. Neografia gotycka : podręcznik pisma neogotyckiego XVI-XX w. Cz. 1
    http://kpbc.umk.pl/dlibra/plain-content?id=49781 

  6. Dywiz - http://pl.wikipedia.org/wiki/Dywiz 

  • No labels