Попередня обробка PDF-документу за допомогою Amazon Textract: виявлення та видалення візуальних зображень

Вихідний вузол: 1204412

Текст Amazon — це повністю керована служба машинного навчання (ML), яка автоматично витягує друкований текст, рукописні та інші дані зі відсканованих документів, які виходять за рамки простого оптичного розпізнавання символів (OCR) для ідентифікації, розуміння та вилучення даних із форм і таблиць. Amazon Textract може виявляти текст у різних документах, включаючи фінансові звіти, медичні записи та податкові форми.

У багатьох випадках використання вам потрібно витягувати та аналізувати документи з різними візуальними елементами, такими як логотипи, фотографії та діаграми. Ці візуальні елементи містять вбудований текст, який згортає вихідний текст Amazon Textract або не потрібен для вашого подальшого процесу. Наприклад, багато форм оцінки нерухомості або документи містять зображення будинків або тенденції історичних цін. Ця інформація не потрібна в подальших процесах, і вам потрібно видалити її, перш ніж використовувати Amazon Textract для аналізу документа. У цій публікації ми проілюструємо два ефективні методи видалення цих візуальних елементів у рамках попередньої обробки.

Огляд рішення

Для цієї публікації ми використовуємо PDF, який містить логотип і діаграму як приклад. Ми використовуємо два різних типи процесів для перетворення та виявлення цих візуальних елементів, а потім їх редагування.

У першому методі ми використовуємо бібліотеку OpenCV Canny edge detektor для виявлення краю візуальних елементів. Для другого методу ми пишемо спеціальний аналізатор концентрації пікселів, щоб визначити розташування цих візуальних елементів.

Ви можете витягти ці візуальні елементи для подальшої обробки та легко змінити код відповідно до вашого випадку використання.

PDF-файли з можливістю пошуку — це власні PDF-файли, які зазвичай генеруються іншими програмами, такими як текстові процесори, віртуальні PDF-принтери та власні редактори. Ці типи PDF-файлів зберігають метадані, текст та інформацію про зображення всередині документа. Ви можете легко використовувати такі бібліотеки, як PyMuPDF/fitz для навігації по структурі PDF і визначення зображень і тексту. У цій публікації ми зосередимося на документах без пошуку або зображень.

Варіант 1: Виявлення візуальних елементів за допомогою детектора країв OpenCV

У цьому підході ми перетворюємо PDF у формат PNG, а потім документ у відтінках сірого за допомогою OpenCV-Python бібліотеку та використовуйте детектор Canny Edge для виявлення візуальних місць. Ви можете виконати докладні дії, описані нижче ноутбук.

  1. Перетворіть документ у відтінки сірого.

  1. Застосуйте алгоритм Canny Edge для виявлення контурів у документі Canny-Edge.
  2. Визначте прямокутні контури з відповідними розмірами.

Ви можете додатково налаштувати та оптимізувати кілька параметрів, щоб підвищити точність виявлення залежно від вашого випадку використання:

  • Мінімальна висота і ширина – Ці параметри визначають мінімальні пороги висоти та ширини для візуального виявлення. Виражається у відсотках від розміру сторінки.
  • Набивання – Коли виявляється контур прямокутника, ми визначаємо додаткову область заповнення, щоб мати певну гнучкість щодо загальної площі сторінки, яку потрібно відредагувати. Це корисно у випадках, коли тексти у візуальних елементах не знаходяться всередині чітко розмежованих прямокутних областей.

Переваги і недоліки

Цей підхід має наступні переваги:

  • Він задовольняє більшість випадків використання
  • Його легко реалізувати і швидко запустити
  • Його оптимальні параметри дають хороші результати

Однак підхід має такі недоліки:

  • Для візуальних елементів без рамки або навколишніх країв продуктивність може відрізнятися залежно від типу візуальних елементів
  • Якщо блок тексту знаходиться всередині великих обмежувальних рамок, весь текстовий блок можна вважати візуальним і видаляти за допомогою цієї логіки.

Варіант 2: аналіз концентрації пікселів

Ми реалізуємо наш другий підхід, аналізуючи пікселі зображення. Абзаци звичайного тексту зберігають у своїх рядках підпис концентрації. Ми можемо вимірювати та аналізувати щільність пікселів, щоб визначити області з щільністю пікселів, які не схожі на решту документа. Ви можете виконати докладні дії, описані нижче ноутбук.

  1. Перетворіть документ у відтінки сірого.
  2. Перетворіть сірі зони на білі.
  3. Згорніть пікселі по горизонталі, щоб обчислити концентрацію чорних пікселів.
  4. Розділіть документ на горизонтальні смуги або сегменти, щоб визначити ті, які не є повним текстом (поширюються на всю сторінку).

  1. Для всіх горизонтальних сегментів, які не є повним текстом, визначте області, які є текстом, і області, які є зображеннями. Це робиться шляхом фільтрації розділів за допомогою мінімального та максимального порогових значень концентрації чорних пікселів.
  2. Видаліть області, визначені як неповний текст.

Ви можете налаштувати такі параметри, щоб оптимізувати точність визначення нетекстових областей:

  • Пороги для безтекстових горизонтальних сегментів – Визначте мінімальні та максимальні пороги концентрації чорних пікселів, які використовуються для виявлення нетекстових горизонтальних сегментів на сторінці.
  • Пороги вертикальних сегментів без тексту – Визначте мінімальні та максимальні пороги концентрації чорних пікселів, які використовуються для виявлення нетекстових вертикальних сегментів на сторінці.
  • Розмір вікна – Контролює, як сторінка поділяється на горизонтальні та вертикальні сегменти для аналізу (X_WINDOW, Y_WINDOW). Він визначається кількістю пікселів.
  • Мінімальна візуальна площа – Визначає найменшу область, яку можна розглядати як візуальний елемент, який потрібно видалити. Він визначається в пікселях.
  • Поріг сірого діапазону – Поріг для відтінків сірого, який потрібно видалити.

Переваги і недоліки

Цей підхід дуже настроюється. Однак він має такі недоліки:

  • Оптимальні параметри займають більше часу і для досягнення більш глибокого розуміння рішення
  • Якщо документ не ідеально виправлений (зображення, зроблене камерою під кутом), цей метод може виявитися невдалим.

Висновок

У цій публікації ми показали, як можна реалізувати два підходи до редагування візуальних елементів із різних документів. Обидва підходи легко реалізувати. Ви можете отримати високоякісні результати та налаштувати будь-який метод відповідно до свого варіанту використання.

Щоб дізнатися більше про різні методи в Amazon Textract, відвідайте громадськість AWS Зразки репо GitHub.


Про авторів

 Юань Цзян є старшим архітектором рішень з фокусом на машинному навчанні. Він є учасником програми Amazon Computer Vision Hero і спільноти Amazon Machine Learning Technical Field.

Віктор Ред є старшим партнером архітектором рішень з фокусом на розмовному штучному інтелекті. Він також є учасником програми Amazon Computer Vision Hero.

Луїс Пінеда є старшим архітектором рішень з управління партнерами. Він також є учасником програми Amazon Computer Vision Hero.

Мігель Ромеро Кальво є дослідником даних з лабораторії рішень машинного навчання AWS.

Джерело: https://aws.amazon.com/blogs/machine-learning/process-text-and-images-in-pdf-documents-with-amazon-text/

Часова мітка:

Більше від Блог машинного навчання AWS