OCR

Instalowanie Tesseract OCR w systemie Linux

Instalowanie Tesseract OCR w systemie Linux
Tesseract OCR (Optical Character Recognition) to darmowy silnik typu open source i program wiersza poleceń do wyodrębniania tekstu z obrazów przy użyciu technologii i algorytmów optycznego rozpoznawania znaków. Projekt jest wspierany przez Google i na dzień dzisiejszy jest uważany za najlepszy dostępny silnik OCR typu open source. Może wykrywać i wyodrębniać tekst w wielu językach z dużą dokładnością.

Instalowanie Tesseract OCR w systemie Linux

Tesseract OCR jest domyślnie dostępny w większości dystrybucji Linuksa. Możesz zainstalować go w Ubuntu za pomocą poniższego polecenia:

$ sudo apt install tesseract-ocr

Dostępne są szczegółowe instrukcje dla innych dystrybucji tutaj. Mimo że Tesseract OCR jest domyślnie dostępny w repozytoriach wielu dystrybucji Linuksa, zaleca się zainstalowanie najnowszej wersji z powyższego linku w celu zwiększenia dokładności i parsowania.

Instalowanie wsparcia dla dodatkowych języków w Tesseract OCR

Tesseract OCR obejmuje obsługę wykrywania tekstu w ponad 100 językach. Jednak wsparcie dla wykrywania tekstu w języku angielskim otrzymujesz tylko przy domyślnej instalacji w Ubuntu. Aby dodać obsługę parsowania dodatkowych języków w Ubuntu, uruchom polecenie w następującym formacie:

$ sudo apt install tesseract-ocr-hin

Powyższe polecenie doda obsługę języka hindi do Tesseract OCR. Czasami możesz uzyskać lepszą dokładność i wyniki, instalując obsługę skryptów językowych. Na przykład zainstalowanie i używanie pakietu tesseract dla skryptu Devanagari „tesseract-ocr-script-deva” dało mi znacznie dokładniejsze wyniki niż użycie pakietu „tesseract-ocr-hin”.

W Ubuntu możesz znaleźć poprawne nazwy pakietów dla wszystkich języków i skryptów, uruchamiając poniższe polecenie:

$ apt-cache szukaj tesseract-

Po zidentyfikowaniu poprawnej nazwy pakietu do zainstalowania, zastąp ciąg „tesseract-ocr-hin” w pierwszym poleceniu określonym powyżej.

Używanie Tesseract OCR do wyodrębniania tekstu z obrazów

Weźmy przykład obrazu pokazanego poniżej (zaczerpnięty ze strony Wikipedia dla Linuxa):

Aby wyodrębnić tekst z powyższego obrazu, musisz uruchomić polecenie w następującym formacie:

$ przechwytywanie teseraktu.wyjście png -l eng

Uruchomienie powyższego polecenia daje następujące dane wyjściowe:

W powyższym poleceniu „przechwytuj.png” odnosi się do obrazu, z którego chcesz wyodrębnić tekst. Przechwycone dane wyjściowe są następnie przechowywane w „wyjściu.txt”. Możesz zmienić język, zastępując argument „eng” własnym wyborem. Aby zobaczyć wszystkie poprawne języki, uruchom poniższe polecenie:

$ tesseract --list-langs

Wyświetli kody skrótów dla wszystkich języków obsługiwanych przez Tesseract OCR w twoim systemie. Domyślnie wyświetla tylko „eng” jako dane wyjściowe. Jeśli jednak zainstalujesz pakiety dla dodatkowych języków, jak wyjaśniono powyżej, to polecenie wyświetli więcej języków, których możesz użyć do wykrywania tekstu (jak 3-literowe kody języków ISO 639).

Jeśli obraz zawiera tekst w wielu językach, najpierw zdefiniuj język podstawowy, a następnie dodatkowe języki oddzielone znakami plus.

$ przechwycenie teseraktu.wyjście png -l eng+fra

Jeśli chcesz zapisać dane wyjściowe jako przeszukiwalny plik PDF, uruchom polecenie w następującym formacie:

$ przechwycenie teseraktu.wyjście png -l eng pdf

Pamiętaj, że przeszukiwalny plik PDF nie zawiera żadnego edytowalnego tekstu. Zawiera oryginalny obraz, z dodatkową warstwą zawierającą rozpoznany tekst nałożony na obraz. Więc chociaż będziesz mógł dokładnie wyszukiwać tekst w pliku PDF za pomocą dowolnego czytnika PDF, nie będziesz mógł edytować tekstu.

Kolejnym punktem, na który należy zwrócić uwagę, jest to, że dokładność wykrywania tekstu znacznie wzrasta, jeśli plik obrazu jest wysokiej jakości high. Mając wybór, zawsze używaj bezstratnych formatów plików lub plików PNG. Korzystanie z plików JPG może nie dać najlepszych rezultatów.

Wyodrębnianie tekstu z wielostronicowego pliku PDF

Tesseract OCR natywnie nie obsługuje wyodrębniania tekstu z plików PDF. Możliwe jest jednak wyodrębnienie tekstu z wielostronicowego pliku PDF, konwertując każdą stronę na plik obrazu. Uruchom poniższe polecenie, aby przekonwertować plik PDF na zestaw obrazów:

$pdftoppm -plik png.wyjście pdf

Dla każdej strony pliku PDF otrzymasz odpowiednie „wyjście-1.png”, „wyjście-2.plik png” i tak dalej.

Teraz, aby wyodrębnić tekst z tych obrazów za pomocą jednego polecenia, będziesz musiał użyć „pętli for” w poleceniu bash:

$ dla mnie w *.png; wykonaj tesserakt "$i" "wyjście-$i" -l pol; gotowy;

Uruchomienie powyższego polecenia spowoduje wyodrębnienie tekstu ze wszystkich „.png” znalezione w katalogu roboczym i przechowują rozpoznany tekst w „output-original_filename.txt”. Możesz zmodyfikować środkową część polecenia zgodnie z własnymi potrzebami.

Jeśli chcesz połączyć wszystkie pliki tekstowe zawierające rozpoznany tekst, uruchom poniższe polecenie:

$ kot *.txt > dołączył.tekst

Proces wyodrębniania tekstu z wielostronicowego pliku PDF do przeszukiwalnych plików PDF jest prawie taki sam. Musisz podać dodatkowy argument „pdf” do polecenia:

$ dla mnie w *.png; wykonaj tesseract "$i" "wyjście-$i" -l eng pdf; gotowy;

Jeśli chcesz połączyć wszystkie przeszukiwalne pliki PDF zawierające rozpoznany tekst, uruchom poniższe polecenie:

$ pdfunite *.pdf dołączył.pdf

Zarówno „pdftoppm”, jak i „pdfunite” są domyślnie instalowane w najnowszej stabilnej wersji Ubuntu.

Zalety i wady wyodrębniania tekstu w plikach TXT i przeszukiwalnych plikach PDF

Jeśli wyodrębnisz rozpoznany tekst do plików TXT, otrzymasz edytowalny tekst wyjściowy. Jednak wszelkie formatowanie dokumentu zostanie utracone (pogrubienie, kursywa itd.). Przeszukiwalne pliki PDF zachowają oryginalne formatowanie, ale utracisz możliwości edycji tekstu (nadal możesz kopiować nieprzetworzony tekst). Jeśli otworzysz przeszukiwalny plik PDF w dowolnym edytorze PDF, otrzymasz osadzone obrazy w pliku, a nie nieprzetworzony tekst wyjściowy. Konwersja przeszukiwalnych plików PDF do formatu HTML lub EPUB zapewni również osadzone obrazy.

Wniosek

Tesseract OCR jest obecnie jednym z najczęściej używanych silników OCR. Jest darmowy, open-source i obsługuje ponad sto języków. Korzystając z Tesseract OCR, upewnij się, że używasz obrazów o wysokiej rozdzielczości i popraw kody językowe w argumentach wiersza poleceń, aby poprawić dokładność wykrywania tekstu.

Gry Samouczek Shadow of the Tomb Raider dla systemu Linux
Samouczek Shadow of the Tomb Raider dla systemu Linux
Shadow of the Tomb Raider to dwunasty dodatek do serii Tomb Raider - przygodowej serii gier akcji stworzonej przez Eidos Montreal. Gra została dość do...
Gry Jak zwiększyć FPS w Linuksie??
Jak zwiększyć FPS w Linuksie??
FPS oznacza Klatki na sekundę. Zadaniem FPS jest pomiar liczby klatek na sekundę podczas odtwarzania wideo lub wydajności gier. W prostych słowach lic...
Gry Najlepsze gry w laboratorium aplikacji Oculus
Najlepsze gry w laboratorium aplikacji Oculus
Jeśli jesteś posiadaczem gogli Oculus, musisz wiedzieć o sideloadingu. Sideloading to proces instalowania w zestawie nagłownym treści innych niż sklep...