2011-09-03 14 views
15

Piszę aplikację do skanowania numerów z obrazu.Tesseract myli dwa numery

Liczby używają czcionki OCR-B i mogą również zawierać znaki + i >.

To jest moje źródło:

source image

Skany wykorzystujące tesseract nie były bardzo dobre, nawet gdy ograniczenie zestaw znaków do wymienionych znaków. Ponieważ nie znalazłem żadnych plików szkoleniowych OCRB dla Tesseract, postanowiłem sam je trenować.

stworzyłem this training image i zrobił z niego plik skrzynki. Plik skrzynki jest prawidłowy, wszystkie litery są poprawnie dopasowane.

Potem zrobiłem wszystkie kroki described here tworzyć inne niezbędne pliki.

Korzystając z nowo wyszkolonego zestawu tessdata OCR-B, uzyskuję całkiem dobre wyniki na obrazie źródłowym, z jednym małym błędem: Wszystkie 1 s są mylone z 8 s i na odwrót. Polecenie używane do przetwarzania obrazu był

$ tesseract esr2c.tif ocrb-esr2c -l ocrb 

i wyjście na obrazie źródłowym był

0800000001456> 8 00000195731208 8 01050008 023+ 08 0301226> 20

Jeśli zamienić wszystkie 1 s i porównać go z obrazem źródłowym, wynik będzie poprawny (z wyjątkiem dwóch ostatnich liter, które mogę zignorować).

Jak to się mogło stać? Czy popełniłem jakiś błąd w procesie szkolenia? Jak mogę to naprawić?

+0

nie ma wpływu bezpieczeństwa na publikowanie tych danych tutaj? –

+0

@andrew not really. tylko stary, nieważny rachunek bez żadnych danych osobowych w referencyjnym id. –

+0

@DaniloBargen: Jeśli to możliwe, czy możesz udostępnić dane treningowe dla czcionki OCRB? –

Odpowiedz

6

Jest wielce prawdopodobne, że gdzieś w pliku skrzynki ma nieprawidłowe wartości (znaki) na 1 i 8. można zweryfikować za pomocą jTessBoxEditor program. Jeśli tak, popraw, ponownie wygeneruj plik danych językowych i spróbuj ponownie.

+0

Nie mogę uruchomić jTessBoxEditor (niektóre problemy z biblioteką obrazów), ale sprawdziłem plik skrzynki z [OwlBoxer] (http://code.google.com/p/owlboxer/) (faktycznie przetworzyłem plik używając tego narzędzia) i wszystko wygląda poprawnie. –

+0

Właśnie sprawdziłem plik pola przy pomocy tesseractTrainer.py i nadal nie znalazłem żadnych błędów. –

+0

Czy możesz zamieścić link do pliku skrzynki? Którą wersję Tesseract szkolisz? – nguyenq

2

Po trzystopniowej edycji OCR rozszerzono czcionkę 2.04. Działa bardzo dobrze i pokazuje ponad 90 Dokładność przy rozmiarze czcionki 14.

Obraz treningowy powinien być wysoki Obraz kontrastowy. Użyj edytora obrazów "GIMP" i wykonaj następujące czynności: Menu Kolory-> Informacje-> Histgram- Odczyt std wartość odchylenia kolory-> Threshould -> Napisz "Std wartość odchylenia" jako wartość Threshould Zapisz obraz Użyj go do treningu.

Sprawdź i edytować plik za pomocą skrzynki „qt-box-redaktor 1.06.exe” .To jest bardzo łatwy w użyciu. Sprawdź wszystkie pola i znaki w nim. Jest to bardzo ważne. Gdzieś w twoim pudełku plik ma niepoprawne znaki dla 1 i 8.

Uruchom inne cmdsy.

+0

Już rozwiązałem problem (patrz komentarz dotyczący innej odpowiedzi). Kolejność pól była błędna w jTessBoxEditor. W każdym razie dzięki. –

+0

Trenowałem tesseract 3.02 dla OCR-B .. Powraca on jak 100% dokładność na tym samym zestawie treningowym. Ale kiedy sprawdzam na prawdziwych zdjęciach, jest prawie zerowa dokładność. Czy to działa dla was? – Masri