Implementacja Java OCR [zamknięta]

160

To przede wszystkim ciekawostka, ale czy są jakieś implementacje OCR w czystej Javie? Jestem ciekawy, jak by to działało wyłącznie w Javie, a OCR ogólnie mnie interesuje, więc chciałbym zobaczyć, jak jest zaimplementowany w języku, który dobrze rozumiem. Oczywiście wymagałoby to implementacji typu open source, ale nadal interesują mnie rozwiązania autorskie, bo w takim przypadku mógłbym przynajmniej sprawdzić wydajność.

Widziałem kilka, których można używać w Javie (jak Asprise ), ale nie wygląda na to, że są to implementacje w czystej Javie ... czy są jakieś?

szczur
źródło
@Robik Po pierwsze, skoro już przy tym jesteś, powinieneś też usunąć niepotrzebne podziękowania itp. Po drugie, nie powinieneś edytować w takim założeniu, zwłaszcza jeśli OP jest nadal aktywny i możesz po prostu skomentować - chociaż prawdopodobnie tak będzie prawda w tym przypadku ... @ rat Dla wyjaśnienia, czy miałeś na myśli niespodziankę?
Tobias Kienzler,
Jeśli nie szukasz podejścia czysto Java, być może zbudowanie mostu JNI (takiego jak Tess4J ) ma sens. Mam wrażenie, że biblioteki OCR są lepiej reprezentowane w świecie C ++ (OCRAD, GOCR, Cuneiform - zobacz wszystkie tutaj ).
dma_k
@rat - Masz rację - Asprise OCR SDK dla języka Java nie jest oparty na języku Java. W rzeczywistości za kulisami używany jest kod natywny, ponieważ OCR jest procesem bardzo kosztownym obliczeniowo.
Asprise Support

Odpowiedzi:

81

Polecam wypróbowanie projektu Java OCR na sourceforge.net. Pierwotnie go opracowałem i publikuję na blogu .

Odkąd umieściłem go na sourceforge, jego funkcjonalność została znacznie rozszerzona i ulepszona dzięki wspaniałej pracy badacza / programisty wolontariusza.

Spróbuj, a jeśli Ci się nie spodoba, zawsze możesz to poprawić!

Ron
źródło
18
@Ron Też przyjrzałem się projektowi. Nie znalazłem wersji demonstracyjnej, a GUI wykonuje różne operacje graficzne, ale nie ma instrukcji, jak uruchomić faktyczne rozpoznawanie znaków.
James P.
1
@Ron, kiedy podążam za linkiem do Twojego bloga, widzę pustą stronę.
neoneye
3
@Ron, gdzie mogę uzyskać dokumentację, dodatkowy blog lub tutorial.
altsyset
1
jak zaimportować java ocr w eclipse?
Faisal Ashraf
2
Cześć, czy są do tego jakieś samouczki?
The Well
10

Przetestowaliśmy kilka silników OCR z Javą, takich jak Tesseract, Asprise, Abbyy itp. W naszej analizie Abbyy dała najlepsze wyniki.

Niebieskie niebo
źródło
1
Java API czy implementacje Java ..?
Ewoks
Ani, ale istnieje wersja wiersza poleceń, z którą można rozmawiać za pomocą ProcessBuilder.
Aaron Digulla
1
Ani Tesseract, ani Abbyy nie są oparte na Javie. Po prostu mają interfejsy API dla języka Java.
krispy,
10

Jeśli szukasz bardzo rozszerzalnej opcji lub masz konkretną domenę problemową, możesz rozważyć zmianę własnej za pomocą Java Object Oriented Neural Engine . Kolejna referencja JOONE .

Użyłem go z powodzeniem w osobistym projekcie, aby zidentyfikować list z obrazu takiego jak ten. Wszystkie źródła komponentu OCR mojej aplikacji można znaleźć tutaj na github .

davetapley
źródło
1
Ooh, dzięki za przykład. Pobrałem go i planuję dostosować go do własnych potrzeb!
Amanda S,
Czy możesz mi pokazać, jak skompilować?
RadijatoR,
Obawiam się, że projekt nie jest już utrzymywany @RadijatoR, więc nie mogę udzielić żadnej porady.
davetapley
4
Większość linków jest martwa.
Erik
5

Istnieje wiele bibliotek OCR. Jednak z mojego doświadczenia wynika, że ​​główne implementacje komercyjne, ABBYY, Omnipage i ReadIris, znacznie przewyższają open-source lub inne pomniejsze implementacje. Te biblioteki komercyjne nie są przeznaczone głównie do pracy z Javą, chociaż oczywiście jest to możliwe.

Oczywiście, jeśli chcesz nauczyć się kodu, implementacje open-source załatwią sprawę.

Joshua Fox
źródło