## VietOCR

### OPIS

VietOCR jest nakładką GUI w Javie dla Silnika Tesseract OCR, zapewnia wsparcie rozpoznawania znaków dla popularnych formatów obrazu i obrazów wielostronicowych. Program posiada mechanizm przetwarzania wtórnego, który pomaga poprawiać błędy napotykane regularnie w procesie rozpoznawania znaków OCR, zwiększając tym samym stopień dokładności, który ma wpływ na ostateczny wynik. Program może również działać jako aplikacja w konsoli, wykonując polecenia bezpośrednio z linii poleceń.

Przetwarzanie wsadowe jest już dostępne. Program przeszukuje obserwowany folder celem znalezienia nowych plików z obrazami i automatycznie przetwarza je przez silnik OCR, następnie wysyła wyniki procesu do folderu wyjściowego.

### WYMAGANIA SYSTEMOWE

Java Runtime Environment 8 or later. On Windows, Microsoft Visual C++ v14 Redistributable Package is also required.

### INSTALACJA

Tesseract Windows executable is bundled with the program. Additional language data packs for Tesseract, whose names start with ISO639-3 codes, should be placed into the `tessdata` subdirectory.

Dla Linuksa, Tesseract i jego pakiety językowe są w Graficznym (ogólnodostępnym) repozytorium. Mogą być zainstalowane przy użyciu Menedżera pakietów Synaptic lub poniższego polecenia:

> `sudo apt-get install tesseract-ocr tesseract-ocr-eng tesseract-ocr-vie`

The files will be placed in `/usr/bin` and `/usr/share/tesseract-ocr/tessdata`, respectively. On the other hand, if Tesseract is built and installed from the source, they will be placed in `/usr/local/bin` and `/usr/local/share/tessdata`. You can also let VietOCR know the location of `tessdata` via the environment variable `TESSDATA_PREFIX`:

> `export TESSDATA_PREFIX=/usr/local/share/`

Dla innych platform zasięgnij wiedzy na stronie Tesseract Wiki .

VietOCR również umożliwia ściąganie i instalowanie wybranych pakietów językowych poprzez element menu Pobierz pakiet językowy. W zależności od lokalizacji folderu `tessdata` może będzie wymagane uruchomienie programu jako root albo admin by było możliwe zainstalowanie ściągniętych danych do folderu, zwłaszcza jeśli jest to wewnątrz katalogu systemowego takiego jak `/usr` w Linuksie lub `C:\Program Files` w Windows.

Scanning support on Windows is provided via the Windows Image Acquisition Library v2.0.

W systemie Linux, skanowanie wymaga instalacji pakietów SANE

> `sudo apt-get install libsane sane sane-utils libsane-extras xsane`

PDF support is possible via PDFBox.

Funkcjonalność sprawdzania pisowni jest dostępna poprzez Hunspell, którego pliki słownika (`.aff` `.dic`) powinny być umieszczone w folderze `dict` programu VietOCR. `user.dic` jest plikiem z kodowaniem UTF-8, który zawiera listę słów, po jednym słowie na linię.

W systemie Linux, Hunspell wraz ze słownikami może być zainstalowany za pomocą Menedżera pakietów Synaptic lub polecenia `apt`, jak poniżej:

> `sudo apt-get install hunspell hunspell-en-us`

### INSTRUKCJA

Aby uruchomić program:

> `java -jar VietOCR.jar`

Uwaga: Jeżeli wystąpi wyjątek "out-of-memory", uruchom plik skryptowy `ocr` w zamian użycia .jar.

Dane dla języka wietnamskiego zostały wygenerowane dla czcionek: Times New Roman, Arial, Verdana i Courier New. Dlatego, rozpoznawanie powinno mieć lepsze rezultaty dla obrazów posiadających podobne glify. OCRowane obrazy, które mają glify wyglądające inaczej niż obsługiwane czcionki, zwykle będą wymagały treningu Tesseract do utworzenia innego pakietu językowego specyficznego dla tych krojów czcionek. Dane językowe dla niektórych fontów VNI i TCVN3 (ABC) zostały również dołączone do ostatnich wersji.

Obrazy, dla których ma być przeprowadzony proces rozpoznawania znaków OCR powinny być zeskanowane w rozdzielczości co najmniej w rozdzielczości 200 DPI (punktów na cal) do 400 DPI w trybie monochromatycznym (czarno-białym) lub w skali szarości. Skanowanie w wyższych rozdzielczościach nie musi skutkować większą dokładnością rozpoznawania znaków, które obecnie wynosi 97% dla języka wietnamskiego, a następne wydanie Tesseract może poprawić to jeszcze bardziej. Mimo to, wciąż aktualne wyniki, zależą w dużym stopniu od jakości zeskanowanego obrazu. Typowe ustawienia skanowania to 300 DPI i 1 bpp (bit na piksel) obraz czarno-biały lub 8-bitowa skala szarości w formacie nieskompresowany TIFF lub PNG.

Tryb Zrzutu Ekranu zapewnia lepsze rezultaty dla obrazów niskiej rozdzielczości takich jak wydruki z ekranów, poprzez przeskalowanie ich do rozdzielczości 300 DPI.

In addition to the built-in text postprocessing algorithm, you can add your own custom text replacement scheme via a UTF-8-encoded tab-delimited text file named `x.DangAmbigs.txt`, where x is the ISO639-3 language code. Both plain and Regex text replacements are supported.

By zmodifikować zachowanie silnika Tesseract możesz wpisać startowe i bieżące parametry kontrolne w pliki konfiguracyjne - odpowiednio: `tessdata/configs/tess_configs` oraz `tess_configvars`.

Niektóre wbudowane narzędzia są przewidziane do łączenia kilku obrazów lub plików PDF w jeden celem przygotowania do operacji OCR, lub dzielenia plików TIFF lub PDF zawierających zbyt wiele stron (co może powodować błędy „out-of-memory") na mniejsze,

### PRZETWARZANIE WTÓRNE

Błędy rozpoznawania generalnie mogą być zakwalifikowane w trzy kategorie. Wiele błędów związane są z wielkością liter — na przykład: hOa, nhắC — które mogą być łatwo poprawione przez popularne edytory tekstu obsługujące Unicode. Wiele innych błędów, są rezultatem procesu OCR, takie jak brak znaków diakrytycznych, niepoprawne litery o podobnym kształcie itp. — huu – hưu, mang – marg, h0a – hoa, la – 1a, uhìu - nhìn. To też może być łatwo poprawione poprzez programy sprawdzające pisownie. Wbudowana funkcja Przetwarzania wtórnego może pomóc poprawić wiele wyżej wymienionych błędów.

Ostatnią kategorią błędów najtrudniejszą do wykrycia, są błędy semantyczne, co oznacza, że słowa stanowią poprawny termin w słowniku, ale są niepoprawne w danym kontekście — np., kat – kąt, vân – vấn. Te błędy wymagają od edytora by przeczytał tekst i ręcznie je poprawił, stosownie do oryginalnego obrazu.

Podążając dalej, poniżej są instrukcje jak poprawić pierwsze dwie kategorie błędów używając wbudowanych funkcji:

1. Grupuj linie. Linie muszą być pogrupowane w akapity, do których należą. Jak są OCR-owane każda linia staje się odseparowanym 1-liniowym ustępem. Użyj funkcji Usuń podziały wiersza spod menu Format. Zwróć uwagę, że operacja ta może być niepotrzebna dla wierszy.
2. Wybierz Zmień wielkość liter, także spod menu Format i wybierz Zdanie wielką aby została poprawiona większość błędów związanych z wielkością liter. Zlokalizuj i popraw resztę z pozostałych błędów użycia małych i wielkich liter.
3. Skoryguj literówki za pomocą zintegrowanego Sprawdzania pisowni.

Większość pospolitych błędów, może być wyeliminowana przez powyższe procesy. Pozostałych, semantycznych błędów jest niewiele i o ile jest taka potrzeba to wymagają ręki człowieka, który chociażby przeczyta i wykona najistotniejsze poprawki by dokument był jak oryginalny zeskanowany i wolny od błędów.

Jeśli masz jakieś problemy lub pytania, proszę zgłosić je na forum VietOCR .