Niedawno natknąłem się na Tesseract i OpenCV . Wygląda na to, że Tesseract to pełnoprawny silnik OCR, a OpenCV może być używany jako platforma do tworzenia aplikacji / usługi OCR.
Próbowałem użyć Tesseract na niektórych moich obrazach i jego dokładność wydaje się przyzwoita. Później natknąłem się na bardzo prosty samouczek dotyczący używania OpenCV do wykonywania OCR w Pythonie i byłem pod wrażeniem. W ciągu kilku minut skończyłem szkolenie systemu i jego dokładność była dobra. Ale oczywiście takie podejście oznacza, że muszę intensywnie trenować swój system przy użyciu dużego zestawu treningowego.
Moje konkretne pytania są następujące:
- Jak wybrać między Tesseract a użyciem OpenCV do zbudowania niestandardowej aplikacji OCR?
- Dostępne są zestawy danych szkoleniowych dla Tesseract dla różnych języków. Czy OpenCV ma coś podobnego, abym nie musiał zaczynać od podstaw, aby osiągnąć OCR?
- Który z nich jest lepszy w przypadku niedoszłej komercyjnej aplikacji?
Jakieś sugestie?
OCR accuracy tests
a znajdziesz kilka wykresów. Mówiąc o aplikacjach mobilnych, większość z nich używa tesseract. Ale jeśli zechcesz pobrać niektóre z nich, zobaczysz, że wyniki są nieco inne niż obietnice. Zwykle robią demo wideo w dokładnie kontrolowanym środowisku i umieszczają je na youtube, ale na wolności, jeśli zeskanujesz stronę / przepis / kartę / cokolwiek, otrzymasz zabawne wyniki.Odpowiedzi:
Tesseract to silnik OCR. Jest używany, opracowany i finansowany przez Google specjalnie do odczytywania tekstu z obrazów, wykonywania podstawowej segmentacji dokumentu i operowania na określonych wejściach obrazu (pojedyncze słowo, wiersz, akapit, strona, ograniczone słowniki itp.).
Z drugiej strony OpenCV to biblioteka widzenia komputerowego, która zawiera funkcje, które pozwalają na wyodrębnianie niektórych cech i klasyfikację danych. Możesz stworzyć prosty moduł do segmentowania liter i klasyfikator, który wykonuje podstawowe OCR, ale nie jest to bardzo dobry silnik OCR (wcześniej zrobiłem go w Pythonie od zera. Jest naprawdę niedokładny dla danych wejściowych, które odbiegają od danych treningowych).
Jeśli chcesz uzyskać podstawową wiedzę o tym, jak trudne jest OCR, wypróbuj OpenCV. Tesseract służy do prawdziwego OCR.
źródło
0
jako8
(w sumie 20,00 $). Przyznaję, że cyfra była trudna do odszyfrowania, ale nie byłem pewien, co jeszcze można zrobić, aby dostosować Tesseract do takich sytuacji, a może wprowadzić komponent do nauki, jeśli będę miał aktywną bazę użytkowników.Jestem autorem wspomnianego samouczka rozpoznawania cyfr i powiedziałbym, że nie zastąpi to tesseraktu.
Tesseract to naprawdę dobry silnik OCR, może być najlepszym silnikiem OCR OpenSource.
Samouczek, o którym wspomniałeś, jest tylko próbą zrozumienia najprostszego działania OCR.
Tak więc, jeśli szukasz aplikacji OCR, polecam użycie OpenCV do wstępnego przetworzenia obrazu, a następnie zastosowanie silnika tesseract.
źródło
Te dwie możliwości mogą się uzupełniać. Jeśli czytasz artykuł o OpenCV: https://github.com/tesseract-ocr/docs/blob/master/tesseracticdar2007.pdf
Podkreśla, że „Ponieważ firma HP niezależnie opracowała technologię analizy układu strony, która była używana w produktach (a zatem nie została wydana na potrzeby oprogramowania open source), Tesseract nigdy nie potrzebował własnej analizy układu strony. Dlatego Tesseract zakłada, że jego dane wejściowe są zdefiniowano opcjonalne regiony tekstu wielokątnego. "
Tego typu zadanie może zostać wykonane przez OpenCV, a wynikowy obraz przekazać Tesseract. Próbkę tego typu kodu znajdziesz w repozytorium Git: https://github.com/Itseez/opencv_contrib/tree/master/modules/text/samples Przykłady używają interfejsów API Tesseract do konwersji obrazu na tekst.
źródło
OpenCV to biblioteka CV , używana do analizy i ogólnego przetwarzania obrazów. Tesseract to biblioteka OCR , która jest wyspecjalizowanym podzbiorem CV poświęconym wyodrębnianiu tekstu z obrazów.
Z OpenCV.org
Z Tesseract Github :
źródło