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-ocrDostę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-hinPowyż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 engUruchomienie 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-langsWyś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+fraJeśli chcesz zapisać dane wyjściowe jako przeszukiwalny plik PDF, uruchom polecenie w następującym formacie:
$ przechwycenie teseraktu.wyjście png -l eng pdfPamię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 pdfDla 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ł.tekstProces 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ł.pdfZaró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.