Строковые данные из Google Cloud Vision API OCR - PullRequest
0 голосов
/ 04 июня 2018

Я отсканировал PDF-документы (на основе изображений) банковских выписок.Google vision API способен довольно точно определять текст, но он возвращает блоки текста, и мне нужен построчный текст (банковские операции).Есть идеи, как это сделать?

1 Ответ

0 голосов
/ 30 января 2019

Я использовал Google Vision API - DOCUMENT_TEXT_DETECTION для получения построчных данных.Возвращаемые данные имеют следующую структуру: Структура может измениться для разных API.

{
   'description': 'Some Text',
   'coordinates': [ P1, P2, P3, P4]
}

Подход, который я использовал, вычислял среднюю точку всех слов.

{
   'description': 'Some Text',
   'center': { x: (P1.x + P2.x + P3.x + P4.x)/4, 
               y: (P1.y + P2.y + P3.y + P4.y)/4 }
}

Теперь я отсортировал эти слова по координатам их центров.По оси X и Y.Но для сортировки по Y-координатам вам понадобится некоторая переменная допуска Y.

Например,

word_1.center.y = 15
word_2.center.y = 18
word_3.center.y = 28

Теперь вам нужно решить, какая разница в значении Y-координаты необходимаизменить строки (зависит от размера шрифта, используемого в документе).

(word_2.center.y - word_1.center.y) < Y-Tolerance # True ~ In same line
(word_3.center.y - word_2.center.y) < Y-Tolerance # False ~ In different line

После того, как вы получите список слов в той же строке.Сортируйте их в соответствии с их координатами X.

Пожалуйста, обращайтесь в случае любого другого запроса.

...