Jak wybrać pomiędzy Tesseract i OpenCV?

Ostatnio natknąłem się na Tesseract i OpenCV. Wygląda na to, że Tesseract jest pełnoprawnym silnikiem OCR, A OpenCV może być używany jako framework do tworzenia aplikacji/usługi OCR.

Próbowałem użyć Tesseract na niektórych moich zdjęciach i jego dokładność wydaje się przyzwoita. Później natknąłem się na bardzo prosty tutorial o używaniu OpenCV do wykonywania OCR za pomocą Pythona i byłem pod wrażeniem. W kilka minut skończyłem szkolenie systemu i jego dokładność była dobra. Ale z oczywiście, biorąc to podejście oznacza, że muszę trenować mój system intensywnie za pomocą dużego zestawu treningowego.

Moje konkretne pytania są następujące:

  • Jak wybrać pomiędzy Tesseract a OpenCV do budowy niestandardowej aplikacji OCR?
  • dostępne są zestawy danych szkoleniowych dla Tesseract dla różnych języków. Czy OpenCV ma coś podobnego, żebym nie musiał zaczynać od podstaw, aby osiągnąć OCR?
  • który jest lepszy do reklamy podanie?

Jakieś sugestie?

Uwaga: mam 24 godziny na polu widzenia komputerowego, ale jestem gotów poświęcić czas i wysiłek, aby poznać wstępne wymagania.

Author: Community, 2012-07-15

4 answers

  • Tesseract jest silnikiem OCR. Jest używany, pracował i finansowany przez Google specjalnie do odczytu tekstu z obrazów, wykonywania podstawowej segmentacji dokumentów i operowania na określonych wejściach obrazu (pojedyncze słowo, linia, akapit, strona, ograniczone słowniki itp.).

  • Z drugiej strony, OpenCV jest biblioteką wizji komputerowej, która zawiera funkcje, które pozwalają na wyodrębnianie funkcji i klasyfikację danych. Możesz utworzyć prosty Segmenter liter i klasyfikator, który wykonuje podstawowe OCR, ale nie jest to bardzo dobry silnik OCR (zrobiłem go wcześniej w Pythonie od podstaw. To naprawdę niedokładne dane wejściowe, które odbiegają od danych treningowych).

Jeśli chcesz zrozumieć, jak trudne jest OCR, spróbuj OpenCV. Tesseract jest dla prawdziwego OCR.

 65
Author: Blender,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-10-21 22:05:42

Jestem autorem tego poradnika rozpoznawania cyfr, o którym wspomniałeś, i powiedziałbym, że nie jest to sposób na zastąpienie tesseractu.

Tesseract to naprawdę dobry silnik OCR, może być najlepszym opensource ' owym silnikiem OCR.

Tutorial, o którym wspomniałeś, to tylko próba zrozumienia najprostszej pracy OCR.

Więc, jeśli szukasz aplikacji OCR, polecam użyć OpenCV do wstępnego przetwarzania obrazu, a następnie zastosować silnik tesseract.

 60
Author: Abid Rahman K,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-07-15 06:21:17

Te dwa mogą być komplementarne. Jeśli czytasz artykuł o OpenCV http://tesseract-ocr.googlecode.com/svn/trunk/doc/tesseracticdar2007.pdf

Podkreśla, że " ponieważ firma HP opracowała niezależnie technologię analizy układu strony, która była używana w produktach, (a zatem nie została wydana na open-source) Tesseract nigdy nie potrzebowała własnej analizy układu strony. Tesseract zakłada zatem, że jego wejście jest obrazem binarnym z opcjonalnymi wielokątnymi regionami tekstu zdefiniowany."

Tego typu zadanie może być wykonane przez OpenCV, a wynikowy obraz przekazany do Tesseract. Możesz znaleźć przykład tego typu kodu w Git repo: https://github.com/Itseez/opencv_contrib/tree/master/modules/text/samples Próbki wykorzystują interfejsy API Tesseract do konwersji obrazu na tekst.

 7
Author: user2957542,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-11-13 01:50:15

OpenCV jest biblioteką dla CV, używaną do analizy i przetwarzania obrazów w ogóle. Tesseract jest biblioteką OCR, która jest wyspecjalizowanym podzbiorem CV przeznaczonym do wydobywania tekstu z obrazów.

Z OpenCV.org

.....używane do wykrywania i rozpoznawania twarzy, identyfikacji obiektów, klasyfikowania ludzkich działań w filmach, śledzenia ruchów kamer, śledzenia poruszających się obiektów, wyodrębniania modeli 3D obiektów, produkcji chmur punktów 3D z kamer stereo, ściegu obrazy razem w celu uzyskania obrazu o wysokiej rozdzielczości całej sceny, Znajdź podobne obrazy z bazy danych obrazów, Usuń czerwone oczy ze zdjęć wykonanych za pomocą lampy błyskowej, śledź ruchy oczu, rozpoznaj scenerię i ustalaj znaczniki, aby nałożyć je na rzeczywistość rozszerzoną itp]}

From Tesseract Github :

.....może być używany bezpośrednio lub (dla programistów) za pomocą interfejsu API do wyodrębniania tekstu pisanego, odręcznego lub drukowanego z obrazów. Obsługuje szeroką gamę języki.

 0
Author: Aniruddha Varma,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-09-26 03:25:50