Как получить блок текста по той же координате оси X [Google Cloud Vision API]

#android #machine-learning #ocr #google-cloud-vision

#Android #машинное обучение #распознавание текста #google-cloud-vision

Вопрос:

Итак, я пытаюсь реализовать личный проект на Android, где вы можете сканировать различные квитанции из торговых центров. Я хочу создать модуль, который немного помогает пользователям вводить данные вручную, автоматизируя как можно больше действий. Ситуация такова:

  1. Я хотел бы получить общую сумму квитанции, зная, что в качестве стандарта ее можно найти в строке, подобной этой: TOTAL……….. 33.9 Валюта. Как я могу на самом деле получить блоки, которые находятся на одной оси с блоком, содержащим «Total»?

  2. То же самое относится к каждому отдельному продукту, я хотел бы взять значения каждого отдельного товара в корзине и его стоимость и поместить это в текст редактирования в Android, чтобы пользователь мог выполнить окончательное повторное касание.

Пример получения:

Квитанция о покупке от Mega Image

Комментарии:

1. К сожалению, он не поддерживает мой язык. Таким образом, результаты не совсем точны :/

Ответ №1:

Это похоже на идею проекта, а не на вопросы кодирования.

Я предлагаю угадать блоки по относительному расположению ограничивающих рамок.

Однако это сложная исследовательская задача. Возможно, Vision API откроет какую-нибудь функцию для клиентов, позволяющую напрямую понимать квитанции.

Ответ №2:

Чтобы получить текст построчно, вам необходимо настроить пользовательскую логику, которая обрабатывала бы строки на основе символов, возвращаемых Google Vision API, что может выполняться в соответствии со следующими шагами:

  1. Создайте коллекцию всех символов, возвращаемых в TextAnnotation
  2. Выполните итерацию по коллекции и создайте строку, string основанную на проверке координаты X первого символа, которая givenSymbol.BoundingBox.Vertices[2].X сопоставляется с координатами X всех других символов.
  3. Реализуйте проверки для пропуска уже обработанных слов и подумайте о реализации смещения X, которое проверяло бы, достаточно ли близка данная координата X к той, с которой вы проверяете, чтобы учесть слегка наклоненный вводимый текст.