Wstępne przetwarzanie dokumentów PDF za pomocą Amazon Textract: wykrywanie i usuwanie elementów wizualnych

Węzeł źródłowy: 1204412

Ekstrakt z amazonki to w pełni zarządzana usługa uczenia maszynowego (ML), która automatycznie wyodrębnia drukowany tekst, pismo odręczne i inne dane ze skanowanych dokumentów, wykraczająca poza proste optyczne rozpoznawanie znaków (OCR) w celu identyfikacji, zrozumienia i wyodrębnienia danych z formularzy i tabel. Amazon Textract może wykrywać tekst w różnych dokumentach, w tym w raportach finansowych, dokumentacji medycznej i formularzach podatkowych.

W wielu przypadkach musisz wyodrębnić i przeanalizować dokumenty z różnymi elementami wizualnymi, takimi jak logo, zdjęcia i wykresy. Te wizualizacje zawierają osadzony tekst, który zawija dane wyjściowe Amazon Textract lub nie jest wymagany w dalszym procesie. Na przykład wiele formularzy lub dokumentów dotyczących wyceny nieruchomości zawiera zdjęcia domów lub trendy cen historycznych. Informacje te nie są potrzebne w dalszych procesach i musisz je usunąć przed użyciem Amazon Textract do analizy dokumentu. W tym poście ilustrujemy dwie skuteczne metody usuwania tych wizualizacji w ramach wstępnego przetwarzania.

Omówienie rozwiązania

W tym poście jako przykładu używamy pliku PDF, który zawiera logo i wykres. Używamy dwóch różnych typów procesów, aby konwertować i wykrywać te wizualizacje, a następnie je redagować.

W pierwszej metodzie używamy inteligentnego wykrywacza krawędzi z biblioteki OpenCV do wykrywania krawędzi wizualizacji. W przypadku drugiej metody piszemy niestandardowy analizator stężenia pikseli, który wykrywa lokalizację tych wizualizacji.

Możesz wyodrębnić te wizualizacje do dalszego przetwarzania i łatwo zmodyfikować kod, aby pasował do twojego przypadku użycia.

Pliki PDF z możliwością wyszukiwania to natywne pliki PDF generowane zwykle przez inne aplikacje, takie jak procesory tekstu, wirtualne drukarki PDF i natywne edytory. Te typy plików PDF zachowują metadane, tekst i informacje o obrazie w dokumencie. Możesz łatwo korzystać z bibliotek, takich jak PyMuPDF / fitz aby poruszać się po strukturze PDF i identyfikować obrazy i tekst. W tym poście skupiamy się na dokumentach, których nie można przeszukiwać lub opartych na obrazach.

Opcja 1: Wykrywanie wizualizacji za pomocą detektora krawędzi OpenCV

W tym podejściu konwertujemy plik PDF do formatu PNG, a następnie skalujemy dokument w skali szarości z rozszerzeniem OpenCV-Python biblioteki i użyj Canny Edge Detector, aby wykryć wizualne lokalizacje. Możesz wykonać szczegółowe kroki poniżej notatnik.

  1. Przekonwertuj dokument na skalę szarości.

  1. Zastosuj algorytm Canny Edge, aby wykryć kontury w dokumencie Canny-Edged.
  2. Zidentyfikuj kontury prostokątne z odpowiednimi wymiarami.

Możesz dalej dostroić i zoptymalizować kilka parametrów, aby zwiększyć dokładność wykrywania w zależności od przypadku użycia:

  • Minimalna wysokość i szerokość - Te parametry określają minimalne progi wysokości i szerokości dla wykrywania wizualnego. Jest wyrażony w procentach rozmiaru strony.
  • Wyściółka - Po wykryciu konturu prostokąta definiujemy dodatkowy obszar wypełnienia, aby mieć pewną elastyczność w zakresie całkowitego obszaru redagowanej strony. Jest to przydatne w przypadkach, gdy teksty w wizualizacjach nie znajdują się wewnątrz wyraźnie oddzielonych prostokątnych obszarów.

Zalety i wady

Takie podejście ma następujące zalety:

  • Spełnia większość przypadków użycia
  • Jest łatwy do wdrożenia i szybki w uruchomieniu
  • Jego optymalne parametry dają dobre rezultaty

Jednak podejście to ma następujące wady:

  • W przypadku wizualizacji bez ramki ograniczającej lub otaczających krawędzi wydajność może się różnić w zależności od typu wizualizacji
  • Jeśli blok tekstu znajduje się wewnątrz dużych obwiedni, cały blok tekstu można uznać za wizualizację i można go usunąć za pomocą tej logiki

Opcja 2: Analiza koncentracji pikseli

Drugie podejście wdrażamy analizując piksele obrazu. Zwykłe akapity tekstu zachowują w swoich wierszach sygnaturę koncentracji. Możemy mierzyć i analizować gęstość pikseli, aby zidentyfikować obszary z gęstościami pikseli, które nie są podobne do reszty dokumentu. Możesz wykonać szczegółowe kroki poniżej notatnik.

  1. Przekonwertuj dokument na skalę szarości.
  2. Zamień szare obszary na białe.
  3. Zwiń piksele w poziomie, aby obliczyć stężenie czarnych pikseli.
  4. Podziel dokument na poziome paski lub segmenty, aby zidentyfikować te, które nie są pełnym tekstem (rozciągają się na całą stronę).

  1. W przypadku wszystkich poziomych segmentów, które nie są pełnym tekstem, zidentyfikuj obszary tekstowe i obszary będące obrazami. Odbywa się to poprzez odfiltrowanie sekcji przy użyciu minimalnych i maksymalnych progów stężenia czarnych pikseli.
  2. Usuń obszary zidentyfikowane jako niepełny tekst.

Możesz dostroić następujące parametry, aby zoptymalizować dokładność identyfikowania obszarów nietekstowych:

  • Progi segmentów poziomych nietekstowych - Zdefiniuj minimalne i maksymalne progi stężenia czarnych pikseli używane do wykrywania nietekstowych poziomych segmentów na stronie.
  • Progi segmentów pionowych nietekstowych - Zdefiniuj minimalne i maksymalne progi stężenia czarnych pikseli używane do wykrywania nietekstowych pionowych segmentów na stronie.
  • Rozmiar okna - Kontroluje sposób podziału strony na segmenty poziome i pionowe do analizy (X_WINDOW, Y_WINDOW). Jest zdefiniowany w liczbie pikseli.
  • Minimalny obszar widzenia - Definiuje najmniejszy obszar, który można uznać za wizualizację do usunięcia. Jest zdefiniowany w pikselach.
  • Próg szarości - Próg dla odcieni szarości do usunięcia.

Zalety i wady

To podejście jest wysoce konfigurowalne. Ma jednak następujące wady:

  • Optymalne parametry wymagają więcej czasu i pozwalają lepiej zrozumieć rozwiązanie
  • Jeśli dokument nie jest idealnie poprawiony (zdjęcie zrobione aparatem pod kątem), ta metoda może się nie powieść.

Wnioski

W tym poście pokazaliśmy, jak można wdrożyć dwa podejścia do redagowania wizualizacji z różnych dokumentów. Oba podejścia są łatwe do wdrożenia. Możesz uzyskać wysokiej jakości wyniki i dostosować każdą metodę do swojego przypadku użycia.

Aby dowiedzieć się więcej o różnych technikach Amazon Textract, odwiedź publiczność Repozytorium GitHub próbek AWS.


O autorach

 Yuan Jiang jest architektem rozwiązań Sr ze specjalizacją w uczeniu maszynowym. Jest członkiem programu Amazon Computer Vision Hero i społeczności terenowej Amazon Machine Learning Technical Field.

Victor Red jest architektem rozwiązań dla partnerów Sr z naciskiem na konwersacyjną sztuczną inteligencję. Jest także członkiem programu Amazon Computer Vision Hero.

Luis Pineda jest architektem rozwiązań w zakresie zarządzania partnerami Sr. Jest także członkiem programu Amazon Computer Vision Hero.

Miguela Romero Calvo jest Data Scientist z AWS Machine Learning Solution Lab.

Źródło: https://aws.amazon.com/blogs/machine-learning/process-text-and-images-in-pdf-documents-with-amazon-textract/

Znak czasu:

Więcej z Blog dotyczący uczenia maszynowego AWS