Biblioteki OCR, doświadczenia

0

Próbuje zaimplementować taką funkcjonalność:
-otwiera obraz w dużej rozdzielczości z dpi min. 300,
-wycina z niego obszar z tekstem w formie paragrafu lub tabeli
-zapisuje ten obszar do nowego pliku
-poddaje go obróbce ( wzoruje się na tej pozycji link)
-przekazuje wynik do pliku xls

Zacząłem z tesseractem, wyniki były nie najgorsze ale mam wrażenie, że lepiej sobie radzi z całą stroną niż wycinkami pojedynczego tekstu. Mimo dużej rozdzielczości, odseparowania tekstu, czcionek bez ubytków pikseli efekt wynosi ca. 90%, myli dużo nieoczywistych znaków jak & z kropką. Dużo zależy też od języków, angielski bez problemu, niemiecki ujdzie ale francuski efekt spadł poniżej 50%.

Potem zaimplementowałem easyocr, lepiej sobie radzi z wycinkami tekstu, parę znaków lepiej odczytał, efekt podobny ca. 92% na paragrafach ale na tabelach już gorzej sobie radzi, czas trwania konwersji znacznie się wydłużył, wydajnościowo tesseract wygrywa bezapelacyjnie.

Zastanawiam się czy te rozwiązania OCR nadają się do automatyzacji. Czy da się zakodować „uniwersalny” proces przygotowania i konwersji obrazu aby osiągać wyniki ~98%? Siedzi ktoś może głębiej w tym temacie? Dzięki za pomoc

0

Nie wiem, czy rozwiązania online wchodzą w grę, ale kiedyś próbowałem z Google API, przez jakiś początkowy czas można korzystać za darmo, potem jest płatny od ilości danych (nie wiem, jakie są obecnie ceny i za jaką jednostkę). do Google API podaje się plik z obrazem, a w odpowiedzi otrzymuje się wydzielone napisy wraz ze współrzędnymi ramki, w których dany napis się pojawił.

Jeżeli masz konto na Google, to możesz za darmo uruchomić dostęp do API Google i za darmo sprawdzić, czy OCR od Google nadaje się do Twoich potrzeb.

0

Jakbyś swoją aplikację połączył z Chatem GPT, to może być nieźle.
Wysłałem screenshota do chata.
Screenshot z PDF'a i przydałoby się potestować na normalnych zdjęciach/skanach, ale wygląda obiecująco :)

screenshot-20240602130406.png

1

@andrzejlisek wolałbym jakieś rozwiązanie lokalne bez przekierowywania danych na zewnętrzne API, ale spróbuje na tym samym modelu testowym nawet dla porównania jaki wynik wyrzuci.

@Spine czyli się da skoro chat gpt potrafi, podobnie działa u mnie wsad w formie pdfa, konwertuje to na obrazy png z których wycinam region z danymi i obrabiam. Tylko dane w bazie znikają po 24 godzinach, a jak połączę się z gpt to już tam zostaną bez kontroli 😀

0

@mitowski AFAIR OpenAI przechowuje tylko dane z darmowego ChatGPT, ale to by trzeba doczytać w polityce prywatności.

0

OCR od Google skuteczność 100%, ale nie chciał podzielić się informacją z czego korzysta.

Nie mogę ujawnić prywatnych informacji, takich jak konkretne modele lub algorytmy, których używam. Dzieje się tak, ponieważ te informacje są poufne i stanowią własność firmy Google.

@szatkus1, AFAIR Open AI, nie mogę znaleźć czegoś takiego może wkradła się jakaś literówka?

0
mitowski napisał(a):

@szatkus1, AFAIR Open AI, nie mogę znaleźć czegoś takiego może wkradła się jakaś literówka?

https://chat.openai.com/

0

Dopiero się zorientowałem że AFAIR miało znaczyć 'as far as i remember' 😅

Czytam politykę prywatności OpenAI i @szatkus1 ma racje, ale musi być subskrypcja Team/Enterprise, wychodzi $60 USD miesięcznie (minimum 2 stanowiska x 30 USD)

We don’t use content from our business offerings such as ChatGPT Team, ChatGPT Enterprise, and our API Platform to train our models. Please see our Enterprise Privacy page for information on how we handle business data.

https://openai.com/enterprise-privacy/

We do not train on your business data (data from ChatGPT Team, ChatGPT Enterprise, or our API Platform)
You own your inputs and outputs (where allowed by law)
You control how long your data is retained (ChatGPT Enterprise)

0

Zostawię informacje może komuś się przyda.
Spróbowałem jeszcze raz z tesseractem, zaktualizowałem modele danych do najnowszej wersji, paczka instalacyjna domyślnie zawiera modele sprzed 7 lat ...
Próbowałem wielu konfiguracji oem i psm, ale było jeszcze gorzej. Duży wpływ na wyniki ma rodzaj czcionki (im popularniejsza i bardziej pogrubiona tym lepsza), wysokość tekstu, język i przygotowanie obrazu.

Wstępne przetwarzanie :
usunięcie obramowania >> konwersja na grayscale >> binaryzacja obrazu z użyciem metody Otsu

Testy robiłem na 8 typach czcionek, ilość znaków 200-405 w zależności od języka i struktury, średnia skuteczność wzrosła do:

  • notatka angielski 98,8%
  • notatka polski 98%
  • notatka niemiecki 98,2%
  • notatka francuski 97,9%
  • notatka hiszpański 97%
  • notatka włoski 98,3%
  • tabela angielski 98%
  • tabela 5 języków 92%

100% chyba realne tylko trenując jakiś własny model AI albo korzystając ze wspomnianego wyżej API do OpenAI / Google

0

Używam Tesseract od jakiegoś czasu, obrabiam obraz za pomocą OpenCV na różne sposoby, te różne obrazy odczytuje tesseract. Mam wtedy kilka odczytań które można ze sobą porównać.

Jeżeli coś jest na wszystkich odczytach takie samo zakładam, że jest dobrze, a jeżeli są różnice to je przeglądam

1 użytkowników online, w tym zalogowanych: 0, gości: 1