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.
- Przekonwertuj dokument na skalę szarości.
- Zastosuj algorytm Canny Edge, aby wykryć kontury w dokumencie Canny-Edged.
- 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.
- Przekonwertuj dokument na skalę szarości.
- Zamień szare obszary na białe.
- Zwiń piksele w poziomie, aby obliczyć stężenie czarnych pikseli.
- Podziel dokument na poziome paski lub segmenty, aby zidentyfikować te, które nie są pełnym tekstem (rozciągają się na całą stronę).
- 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.
- 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.