2012-08-26 6 views
21

Próbuję wyodrębnić dane z rachunków i rachunków za pomocą Tessaract, używam wersji tesseract 3.02.Tesseract Wyszkolone dane

Korzystam tylko z danych angielskich, Wciąż dokładność wyjściowa wynosi około 60%.

Czy istnieją jakieś wyszkolonych dostępnych danych, które ja po prostu zastąpić w tessdata folderze

+0

tak ja mam najnowsza wersja, Still wyjście nie jest dobre. – nicky

+1

Nie można powiedzieć, jak poprawić dokładność, jeśli nie podano co najmniej jednego (przykładowego) typowego pliku. –

+0

to jest obraz – nicky

Odpowiedz

29

to jest Nicky obraz dostarczany jako „typowy przykład pliku”:

typical example file

patrząc na to bym wyraźnie powiedz: "Zapomnij o tym, nicku! Nie możesz wyszkolić Tesseract, aby rozpoznał 100% tekstu z tego typu obrazu!"

Jednak można szkolić się zrobić lepsze zdjęcia z iPhone 3GS (to urządzenie, które zostało wykorzystane do przykładowych zdjęć) z takiego rodzaju wpływy. Oto kilka wskazówek:

  • Nie należy używać ciemnego tła. Zamiast tego użyj białego.
  • Nie pozwól, aby papier paragon się rozpadł. Wyprostuj to.
  • Nie umieszczaj paragonu luźno na nierównym podłożu. Zamocuj go na płaskiej powierzchni:
    • Umieść je na białej kartce papieru i nałóż na niego płytę z szybą.
    • Można też użyć kleju i przykleić go płasko na białej kartce papieru bez żadnych zagięć lub narożników.
  • Nie należy używać niskiej rozdzielczości, takiej jak tylko 640x480 pikseli (jak na przykładowym obrazku). Użyj wyższej, na przykład 1280 x 960 pikseli.
  • Nie należy używać standardowej ekspozycji. Ustaw aparat, aby używał bardzo wysokiego kontrastu. Chcesz, aby litery były czarne, a białe tło było naprawdę białe (nie potrzebujesz szarości na zdjęciu ...)
  • Postaraj się, aby każdy znak czcionki o rozmiarze 10-12 pt. 24-30 pikseli wysokości (to znaczy, aby obraz miał około 300 dpi dla 100% zoomu).

Powiedział, że coś następującego polecenia ImageMagick prawdopodobnie zwiększy szybkość rozpoznawania tesseract poprzez pewnego stopnia:

convert        \ 
    http://i.stack.imgur.com/q3Ad4.jpg \ 
    -colorspace gray     \ 
    -rotate 90       \ 
    -crop 260x540+110+75 +repage  \ 
    -scale 166%       \ 
    -normalize       \ 
    -colors 32       \ 
    out1 .png 

To daje następujące dane wyjściowe:

ImageMagick optimization for OCR

Możesz nawet dodać coś takiego, jak -threshold 30%jako ostatnia opcja linii poleceń do powyższego polecenia, aby uzyskać w ten sposób:

enter image description here

(Powinieneś grać trochę z pewnymi zmianami do wartości 30% dostosować wynik ...Nie mam na to czasu.)

2

Możesz uzyskać znacznie czystszy obraz przetworzony przed użyciem Tesseract do OCR tekstu. Spróbuj użyć techniki Background Surface Thresholding (BST), a nie innych prostych metod progowania. Możesz znaleźć biały dokument na temat here.

Jest to implementacja BST do OpenCV, że działa całkiem dobrze https://stackoverflow.com/a/22127181/3475075