RU2792743C1 - Identification of writing systems used in documents - Google Patents

Identification of writing systems used in documents Download PDF

Info

Publication number
RU2792743C1
RU2792743C1 RU2021134180A RU2021134180A RU2792743C1 RU 2792743 C1 RU2792743 C1 RU 2792743C1 RU 2021134180 A RU2021134180 A RU 2021134180A RU 2021134180 A RU2021134180 A RU 2021134180A RU 2792743 C1 RU2792743 C1 RU 2792743C1
Authority
RU
Russia
Prior art keywords
image
probability vector
fragments
probability
aggregated
Prior art date
Application number
RU2021134180A
Other languages
Russian (ru)
Inventor
Иван Германович Загайнов
Станислав Владимирович Семёнов
Дмитрий Сергеевич Солнцев
Алексей Иванович Калюжный
Original Assignee
АБИ Девелопмент Инк.
Filing date
Publication date
Application filed by АБИ Девелопмент Инк. filed Critical АБИ Девелопмент Инк.
Priority to US17/534,704 priority Critical patent/US20230162520A1/en
Application granted granted Critical
Publication of RU2792743C1 publication Critical patent/RU2792743C1/en

Links

Images

Abstract

FIELD: computer systems.
SUBSTANCE: present invention relates primarily to computer systems and, in particular, to systems and methods for identifying writing systems used in documents. The technical result consists in increasing the efficiency of optical character recognition by applying a neural network to image fragments, reducing each image fragment to the size of the input layer of the network, in order to reduce the requirements for computing resources. The technical result is achieved due to the following. The method includes: obtaining an image of a document; splitting the image into fragments; generating probability vectors by the means of a neural network containing a plurality of numerical elements, and each numerical element reflects the probability of an image fragment containing text associated with the corresponding writing system; calculating an aggregated probability vector, each numeric element of the aggregated probability vector reflecting a probability of an image containing text associated with a writing system; and given the determination that the maximum numerical element of the aggregated probability vector exceeds a certain threshold value, it is concluded that the document image contains one or more characters associated with the corresponding writing system.
EFFECT: increase in the efficiency of optical character recognition by applying a neural network to image fragments.
20 cl, 5 dwg

Description

ОБЛАСТЬ ТЕХНИКИFIELD OF TECHNOLOGY

[0001] Настоящее изобретение относится главным образом к компьютерным системам и, в частности, к системам и способам идентификации систем письма, используемых в документах.[0001] The present invention relates primarily to computer systems and, in particular, to systems and methods for identifying writing systems used in documents.

ПРЕДПОСЫЛКИ СОЗДАНИЯ ИЗОБРЕТЕНИЯBACKGROUND OF THE INVENTION

[0002] Система письма - это метод визуального представления вербального общения, основанный на скрипте и наборе правил, регулирующих его использование. Системы письма можно разделить на широкие категории, такие как алфавиты, слоговые алфавиты или логографии, хотя некоторые системы письма могут иметь атрибуты более чем одной категории. В алфавитах каждый символ представляет соответствующие звуки речи. В абджадах гласные не указываются. В абджадах или алфавитно-слоговых алфавитах каждый символ представляет пару гласной и согласной. В слоговых азбуках каждый символ представляет слог или мору. В логографиях каждый символ представляет семантическую единицу, например морфему. Некоторые системы письма также включают в себя специальный набор символов, известный как пунктуация, который используется для облегчения интерпретации и выражения нюансов значения сообщения.[0002] A writing system is a method of visualizing verbal communication based on a script and a set of rules governing its use. Writing systems can be divided into broad categories such as alphabets, syllabics, or logographies, although some writing systems may have attributes from more than one category. In alphabets, each character represents the corresponding speech sounds. Abjads do not include vowels. In abjads or alphasyllabic alphabets, each character represents a pair of vowel and consonant. In syllabaries, each character represents a syllable or mora. In logographs, each character represents a semantic unit, such as a morpheme. Some writing systems also include a special set of characters known as punctuation, which is used to make it easier to interpret and express the nuances of a message's meaning.

РАСКРЫТИЕ ИЗОБРЕТЕНИЯDISCLOSURE OF THE INVENTION

[0003] В соответствии с одним или несколькими аспектами настоящего изобретения, указанный в примере способ идентификации системы письма, используемой в документе, включает в себя: получение компьютерной системой изображения документа; разбиение изображения документа на множество фрагментов изображения; генерирование множества векторов вероятности посредством нейронной сети, обрабатывающей множество фрагментов изображения, причем каждый вектор вероятности из множества векторов вероятности создается путем обработки соответствующих фрагментов изображения и содержит множество числовых элементов, и причем каждый числовой элемент из множества числовых элементов отражает вероятность фрагмента изображения, содержащего текст, связанный с системой письма, которая идентифицируется посредством индекса числового элемента в соответствующем векторе вероятности; вычисление агрегированного вектора вероятности путем агрегирования множества векторов вероятности, причем каждый числовой элемент агрегированного вектора вероятности отражает вероятность изображения, содержащего текст, связанный с системой письма, которая идентифицируется посредством индекса числового элемента в пределах агрегированного вектора вероятности; и с учетом определения того, что максимальный числовой элемент агрегированного вектора вероятности превышает предварительно определенное пороговое значение, делается вывод о том, что изображение документа содержит один или несколько символов, связанных с системой письма, которая идентифицируется посредством индекса максимального числового элемента в пределах агрегированного вектора вероятности.[0003] In accordance with one or more aspects of the present invention, an exemplary method for identifying a writing system used in a document includes: obtaining by a computer system an image of the document; splitting the document image into a plurality of image fragments; generating a plurality of probability vectors by means of a neural network processing a plurality of image fragments, wherein each probability vector of the plurality of probability vectors is created by processing the corresponding fragments of the image and contains a plurality of numerical elements, and each numerical element of the plurality of numerical elements reflects the probability of an image fragment containing text, associated with a writing system that is identified by the index of the numeric element in the corresponding probability vector; calculating an aggregated probability vector by aggregating a plurality of probability vectors, each numeric element of the aggregated probability vector reflecting a probability of an image containing text associated with a writing system, which is identified by an index of the numeric element within the aggregated probability vector; and given the determination that the maximum numeric element of the aggregated probability vector exceeds a predetermined threshold value, it is concluded that the document image contains one or more characters associated with the writing system identified by the index of the maximum numeric element within the aggregated probability vector .

[0004] В соответствии с одним или несколькими аспектами настоящего изобретения, указанная в примере система содержит запоминающее устройство и процессор, соединенный с запоминающим устройством. Процессор настроен для: получения изображения документа; разбиения изображения документа на множество фрагментов изображения; генерирования множества векторов вероятности посредством нейронной сети, обрабатывающей множество фрагментов изображения, причем каждый вектор вероятности из множества векторов вероятности создается путем обработки соответствующих фрагментов изображения и содержит множество числовых элементов, причем каждый числовой элемент из множества числовых элементов отражает вероятность фрагмента изображения, содержащего текст, связанный с системой письма, которая идентифицируется посредством индекса числового элемента в соответствующем векторе вероятности; вычисления агрегированного вектора вероятности путем агрегирования множества векторов вероятности, причем каждый числовой элемент агрегированного вектора вероятности отражает вероятность изображения, содержащего текст, связанный с системой письма, которая идентифицируется посредством индекса числового элемента в пределах агрегированного вектора вероятности; и с учетом определения того, что максимальный числовой элемент агрегированного вектора вероятности превышает предварительно определенное пороговое значение, делается вывод о том, что изображение документа содержит один или несколько символов, связанных с системой письма, которая идентифицируется посредством индекса максимального числового элемента в пределах агрегированного вектора вероятности.[0004] In accordance with one or more aspects of the present invention, the exemplary system comprises a storage device and a processor coupled to the storage device. The processor is configured to: receive an image of the document; splitting the document image into a plurality of image fragments; generating a plurality of probability vectors by means of a neural network processing a plurality of image tiles, each probability vector of the plurality of probability vectors being generated by processing the respective image fragments and containing a plurality of numeric elements, each numeric element of the plurality of numeric elements reflecting the probability of the image fragment containing the text associated with a writing system that is identified by the index of the numeric element in the corresponding probability vector; calculating an aggregated probability vector by aggregating a plurality of probability vectors, each numeric element of the aggregated probability vector reflecting a probability of an image containing text associated with a writing system, which is identified by an index of the numeric element within the aggregated probability vector; and given the determination that the maximum numeric element of the aggregated probability vector exceeds a predetermined threshold, it is concluded that the document image contains one or more characters associated with the writing system identified by the index of the maximum numeric element within the aggregated probability vector .

[0005] В соответствии с одним или несколькими аспектами настоящего изобретения, указанный в примере машиночитаемый энергонезависимый носитель данных содержит исполняемые команды, которые при исполнении компьютерной системой заставляют компьютерную систему выполнять следующие операции: получение изображения документа; разбиение изображения документа на множество фрагментов изображения; генерирование множества векторов вероятности посредством нейронной сети, обрабатывающей множество фрагментов изображения, причем каждый вектор вероятности из множества векторов вероятности создается путем обработки соответствующих фрагментов изображения и содержит множество числовых элементов, и причем каждый числовой элемент из множества числовых элементов отражает вероятность фрагмента изображения, содержащего текст, связанный с системой письма, которая идентифицируется посредством индекса числового элемента в соответствующем векторе вероятности; вычисление агрегированного вектора вероятности путем агрегирования множества векторов вероятности, причем каждый числовой элемент агрегированного вектора вероятности отражает вероятность изображения, содержащего текст, связанный с системой письма, которая идентифицируется посредством индекса числового элемента в пределах агрегированного вектора вероятности; и с учетом определения того, что максимальный числовой элемент агрегированного вектора вероятности превышает предварительно определенное пороговое значение, делается вывод о том, что изображение документа содержит один или несколько символов, связанных с системой письма, которая идентифицируется посредством индекса максимального числового элемента в пределах агрегированного вектора вероятности.[0005] In accordance with one or more aspects of the present invention, the exemplary computer-readable non-volatile storage medium contains executable instructions that, when executed by a computer system, cause the computer system to perform the following operations: obtaining an image of a document; splitting the document image into a plurality of image fragments; generating a plurality of probability vectors by means of a neural network processing a plurality of image fragments, wherein each probability vector of the plurality of probability vectors is created by processing the corresponding fragments of the image and contains a plurality of numerical elements, and each numerical element of the plurality of numerical elements reflects the probability of an image fragment containing text, associated with a writing system that is identified by the index of the numeric element in the corresponding probability vector; calculating an aggregated probability vector by aggregating a plurality of probability vectors, each numeric element of the aggregated probability vector reflecting a probability of an image containing text associated with a writing system, which is identified by an index of the numeric element within the aggregated probability vector; and given the determination that the maximum numeric element of the aggregated probability vector exceeds a predetermined threshold value, it is concluded that the document image contains one or more characters associated with the writing system identified by the index of the maximum numeric element within the aggregated probability vector .

КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙBRIEF DESCRIPTION OF THE DRAWINGS

[0006] Настоящее изобретение проиллюстрировано посредством примеров, а не посредством ограничения, и его можно более полно понять с помощью ссылок на следующее подробное описание при рассмотрении в связи с фигурами, на которых:[0006] The present invention is illustrated by way of examples and not by way of limitation, and can be more fully understood by referring to the following detailed description when considered in connection with the figures, in which:

[0007] Фиг. 1 отражает блок-схему указанного в примере способа идентификации системы письма, используемой в документе, в соответствии с одним или несколькими аспектами настоящего изобретения;[0007] FIG. 1 is a flow chart of an exemplary method for identifying a writing system used in a document, in accordance with one or more aspects of the present invention;

[0008] Фиг. 2 отражает блок-схему другого указанного в примере способа идентификации системы письма, используемой в документе, в соответствии с одним или несколькими аспектами настоящего изобретения;[0008] FIG. 2 is a flow chart of another exemplary method for identifying a writing system used in a document, in accordance with one or more aspects of the present invention;

[0009] Фиг. 3 отражает блок-схему еще одного указанного в примере способа идентификации системы письма, используемой в документе, в соответствии с одним или несколькими аспектами настоящего изобретения;[0009] FIG. 3 is a flow diagram of yet another exemplary method for identifying a writing system used in a document, in accordance with one or more aspects of the present invention;

[00010] Фиг. 4 схематически отражает пример архитектуры нейронной сети, которая может использоваться системами и способами в рамках настоящего изобретения;[00010] FIG. 4 schematically depicts an example of a neural network architecture that can be used by systems and methods within the scope of the present invention;

[00011] Фиг. 5 отражает схему компонентов указанной в примере компьютерной системы, которая может использоваться для реализации способов, указанных в настоящем документе.[00011] FIG. 5 depicts a diagram of the components of an exemplary computer system that may be used to implement the methods described herein.

ПОДРОБНОЕ ОПИСАНИЕDETAILED DESCRIPTION

[00012] В настоящем документе описаны методы и системы для идентификации систем письма, используемых в изображениях документов. Системы и способы в рамках настоящего изобретения обрабатывают изображения с указателями на различных носителях (например, печатные или рукописные бумажные документы, баннеры, плакаты, знаки, рекламные щиты и/или другие физические объекты, содержащие видимые графемы на одной или нескольких поверхностях). «Графема» здесь относится к элементарной единице алфавита. Графема может быть представлена, например, логограммой, означающей слово или морфему, слоговым символом, означающим слог, или буквенными символами, означающими фонему.[00012] This document describes methods and systems for identifying writing systems used in document images. The systems and methods within the scope of the present invention process indexed images on various media (eg, printed or handwritten paper documents, banners, posters, signs, billboards, and/or other physical objects containing visible graphemes on one or more surfaces). "Grapheme" here refers to the elementary unit of the alphabet. A grapheme can be represented, for example, by a logogram meaning a word or a morpheme, a syllabic symbol meaning a syllable, or letter symbols meaning a phoneme.

[00013] Системы и способы настоящего изобретения могут распознавать несколько систем письма, включая, например, латинский/кириллический алфавиты, корейский алфавит, китайскую/японскую логографии и/или арабский абджад. В некоторых вариантах осуществления идентификация системы письма, используемой в документе, является предварительным условием для выполнения оптического распознавания символов (OCR) изображения документа. В пояснительном примере описанные здесь системы и способы могут использоваться для определения значений одного или нескольких параметров мобильных приложений OCR, включая систему письма и/или ориентацию изображения.[00013] The systems and methods of the present invention can recognize multiple writing systems, including, for example, Latin/Cyrillic alphabets, Korean alphabet, Chinese/Japanese logography, and/or Arabic Abjad. In some embodiments, identifying the writing system used in a document is a prerequisite for performing optical character recognition (OCR) on an image of the document. In an illustrative example, the systems and methods described herein may be used to determine values for one or more OCR mobile application parameters, including writing system and/or image orientation.

[00014] Указанный в примере способ идентификации системы письма, используемый для входного изображения, предусматривает разбиение исходного изображения на заранее определенное количество прямоугольных фрагментов (например, на регулярную сетку 3 x 3, состоящую из девяти прямоугольных фрагментов, регулярную сетку 4 x 4, состоящую из 16 прямоугольных фрагментов, регулярную сетку 5 x 5, состоящую из 25 прямоугольных фрагментов и т. д.). После сжатия до предварительно определенного размера (например, 224 x 224 пикселя) прямоугольные фрагменты передаются в нейронную сеть, которая применяет набор функциональных преобразований ко множеству входных данных (например, пикселям изображения), а затем использует преобразованные данные для распознавания образов. Нейронная сеть создает числовой вектор, который включает в себя N+1 значений (где N - количество систем письма, распознаваемых нейронной сетью), так что i-ые элементы вектора отражают вероятность фрагмента изображения, на котором представлены символы i-ой системы письма, а последний элемент вектора отражает вероятность того, что на фрагменте изображения нет распознаваемых символов. Все векторы, созданные нейронной сетью для набора фрагментов входного изображения, после этого складываются вместе, а затем полученный вектор нормализуется. Если максимальное значение среди всех элементов полученного нормализованного вектора превышает заранее определенное пороговое значение, делается вывод о том, что изображение содержит символы системы письма, идентифицированной индексом максимального элемента вектора. В противном случае выдаются две системы письма, набравшие два наибольших значения.[00014] The method of identifying the writing system used for the input image in the example involves dividing the original image into a predetermined number of rectangular fragments (for example, into a regular 3 x 3 grid consisting of nine rectangular fragments, a regular 4 x 4 grid consisting of 16 rectangular tiles, a regular 5 x 5 grid of 25 rectangular tiles, etc.). After being compressed to a predetermined size (e.g. 224 x 224 pixels), the rectangular tiles are passed to a neural network that applies a set of functional transformations to a set of input data (e.g. image pixels) and then uses the transformed data for pattern recognition. The neural network creates a numeric vector that includes N+1 values (where N is the number of writing systems recognized by the neural network), so that the i-th elements of the vector reflect the probability of the image fragment that contains the characters of the i-th writing system, and the last element of the vector reflects the probability that there are no recognizable characters on the image fragment. All vectors created by the neural network for the set of input image fragments are then added together, and then the resulting vector is normalized. If the maximum value among all elements of the resulting normalized vector exceeds a predetermined threshold value, it is concluded that the image contains the characters of the writing system identified by the index of the vector's maximum element. Otherwise, the two writing systems with the two highest scores are returned.

[00015] Таким образом, система и способы настоящего изобретения повышают эффективность оптического распознавания символов, применяя нейронную сеть к фрагментам изображения, а не ко всему изображению, и уменьшая каждый фрагмент изображения до размера входного слоя сети, что приводит к значительному снижению требований к вычислительным ресурсам, используемым нейронной сетью, по сравнению с базовым сценарием передачи всего изображения в нейронную сеть.[00015] Thus, the system and methods of the present invention improve the performance of optical character recognition by applying a neural network to image fragments rather than the entire image, and reducing each image fragment to the size of the input layer of the network, resulting in a significant reduction in computational resource requirements. used by the neural network compared to the basic scenario of passing the entire image to the neural network.

[00016] Системы и способы, описанные в настоящем документе, могут быть реализованы с помощью аппаратных средств (например, универсальных и/или специальных устройств обработки и/или других устройств и соответствующих схем), программного обеспечения (например, команд, исполняемых устройством обработки) или их сочетания. Различные аспекты вышеуказанных способов и систем подробно описаны в настоящем документе ниже в качестве примеров, а не в качестве ограничения.[00016] The systems and methods described herein may be implemented using hardware (e.g., general purpose and/or special processing devices and/or other devices and associated circuitry), software (e.g., instructions executed by the processing device) or their combinations. Various aspects of the above methods and systems are described in detail herein below by way of example and not limitation.

[00017] Фиг. 1 отражает блок-схему указанного в примере способа 100 идентификации системы письма, используемой в документе, в соответствии с одним или несколькими аспектами настоящего изобретения. Способ 100 и/или каждая из его отдельных функций, программ, подпрограмм или операций могут выполняться одним или несколькими процессорами компьютерной системы (в частности, компьютерной системы 700, изображенной на Фиг. 5), реализующей способ. В некоторых вариантах осуществления способ 100 может выполняться с помощью одного потока обработки. В альтернативном варианте осуществления способ 100 может выполняться двумя или несколькими потоками обработки, каждый из которых выполняет одну или несколько отдельных функций, программ, подпрограмм или операций, относящихся к данному способу. В пояснительном примере потоки обработки, реализующие способ 100, могут быть синхронизированы (например, с использованием семафоров, критических секций и/или других механизмов синхронизации потоков). В альтернативном варианте осуществления потоки обработки, реализующие способ 100, могут выполняться асинхронно по отношению друг к другу. Поэтому, несмотря на то, что на Фиг. 1 и в связанных с ним описаниях операции способа 100 выполняются в определенном порядке, в различных вариантах осуществления данного способа как минимум некоторые из описанных операций могут выполняться параллельно и/или в произвольно выбранном порядке.[00017] FIG. 1 depicts a flow diagram of an exemplary method 100 for identifying a writing system used in a document, in accordance with one or more aspects of the present invention. Method 100 and/or each of its individual functions, programs, subroutines, or operations may be executed by one or more processors of a computer system (in particular, computer system 700 depicted in FIG. 5) implementing the method. In some embodiments, method 100 may be performed with a single processing thread. In an alternative embodiment, method 100 may be executed by two or more processing threads, each of which performs one or more separate functions, programs, subroutines, or operations related to the method. In an illustrative example, the processing threads implementing method 100 may be synchronized (eg, using semaphores, critical sections, and/or other thread synchronization mechanisms). In an alternative embodiment, the processing threads implementing method 100 may execute asynchronously with respect to each other. Therefore, although in FIG. 1 and in its associated descriptions, the operations of method 100 are performed in a specific order, in various embodiments of the method, at least some of the described operations may be performed in parallel and/or in an arbitrary order.

[00018] На этапе операции 110 компьютерная система, реализующая данный способ, получает входное изображение документа. В некоторых вариантах осуществления перед передачей для реализации способа 100 входное изображение документа может быть предварительно обработано, например, посредством обрезки исходного изображения, масштабирования исходного изображения и/или преобразования исходного изображения в полутоновое или черно-белое изображение.[00018] In step 110, the computer system implementing the method obtains an input document image. In some embodiments, prior to transmission to method 100, the input document image may be pre-processed, such as by cropping the original image, scaling the original image, and/or converting the original image to a grayscale or black and white image.

[00019] На этапе операции 120 компьютерная система разбивает исходное изображение на заранее определенное количество прямоугольных фрагментов, применяя прямоугольную сетку. Необходимое количество фрагментов может быть вычислено предположительно для обеспечения желаемого баланса между вычислительной сложностью и точностью результата. В пояснительном примере исходное изображение может быть разбито на регулярную сетку 3 x 3, состоящую из девяти прямоугольных фрагментов. В других примерах могут использоваться различные другие сетки. Получившиеся прямоугольные фрагменты сжимаются до предварительно определенного размера (например, 224 x 224 пикселя), который может быть вычислен предположительно, обеспечивая желаемый баланс между вычислительной сложностью и точностью результата. В некоторых вариантах осуществления фрагменты могут быть дополнительно предварительно обработаны, например, путем нормализации яркости пикселя, чтобы привести ее к заранее определенному диапазону, например (-1, 1).[00019] In step 120, the computer system partitions the original image into a predetermined number of rectangular tiles using a rectangular grid. The required number of fragments can be calculated tentatively to provide the desired balance between computational complexity and accuracy of the result. In an illustrative example, the original image may be divided into a regular 3 x 3 grid consisting of nine rectangular tiles. In other examples, various other grids may be used. The resulting rectangular tiles are compressed to a predetermined size (eg, 224 x 224 pixels) that can be predicted to provide the desired balance between computational complexity and result precision. In some embodiments, the fragments may be further pre-processed, such as by normalizing the brightness of a pixel, to bring it to a predetermined range, such as (-1, 1).

[00020] На этапе операции 130 компьютерная система последовательно передает предварительно обработанные фрагменты изображения в нейронную сеть, которая создает числовой вектор, включающий в себя N+1 значений (где N - количество систем письма, распознаваемых нейронной сетью), так что каждый элемент вектора отражает вероятность того, что фрагмент изображения отражает символы системы письма, идентифицированной индексом элемента вектора (т. е. i-ые элементы вектора отражают вероятность фрагмента изображения, на котором представлены символы i-ой системы письма). Последний элемент вектора отражает вероятность того, что на фрагменте изображения нет распознаваемых символов. Таким образом, для каждого фрагмента входного изображения нейронная сеть будет создавать соответствующий вектор вероятностей фрагмента изображения, содержащего символы соответствующей системы письма.[00020] At step 130, the computer system sequentially feeds the pre-processed image fragments to the neural network, which creates a numeric vector including N+1 values (where N is the number of writing systems recognized by the neural network), so that each element of the vector reflects the probability that the image fragment reflects the characters of the writing system identified by the vector element index (i.e., the i-th elements of the vector reflect the probability of the image fragment that represents the characters of the i-th writing system). The last element of the vector reflects the probability that there are no recognizable characters on the image fragment. Thus, for each fragment of the input image, the neural network will create the corresponding probability vector of the fragment of the image containing the characters of the corresponding writing system.

[00021] В некоторых вариантах осуществления нейронная сеть может быть представлена сверточной нейронной сетью, соответствующей определенной архитектуре, как более подробно описано путем ссылки на Фиг. 4.[00021] In some embodiments, the implementation of the neural network may be represented by a convolutional neural network corresponding to a certain architecture, as described in more detail by reference to FIG. 4.

[00022] В некоторых вариантах осуществления может быть введен классификатор второго уровня, который принимает карту пространственных характеристик, созданную нейронной сетью на этапе операции 130, и обучается идентифицировать систему письма на основе карты пространственных характеристик.[00022] In some embodiments, a second level classifier may be introduced that receives the spatial feature map generated by the neural network in step 130 and learns to identify the writing system based on the spatial feature map.

[00023] В некоторых вариантах осуществления нейронная сеть на этапе операции 130 и/или классификатор второго уровня могут быть обучены выполнять классификацию по нескольким признакам, которая выдаст две или более системы письма с соответствующими символами, присутствующими во входном изображении документа.[00023] In some embodiments, the neural network at step 130 and/or the second level classifier can be trained to perform a multi-feature classification that will produce two or more writing systems with corresponding characters present in the input document image.

[00024] На этапе операции 140 компьютерная система агрегирует векторы, созданные нейронной сетью для набора фрагментов входного изображения, так что получившийся вектор имеет размерность N+1, а i-ый компонент получившегося вектора является суммой i-ых компонентов всех векторов, созданных нейронной сетью для набора фрагментов входного изображения: [00024] In step 140, the computer system aggregates the vectors generated by the neural network for the set of input image tiles such that the resulting vector has dimension N+1 and the i-th component of the resulting vector is the sum of the i-th components of all vectors generated by the neural network for a set of input image fragments:

[00025]

Figure 00000001
[00025]
Figure 00000001

[00026] где

Figure 00000002
- j-ый компонент вектора суммы, а[00026] where
Figure 00000002
is the j-th component of the sum vector, and

[00027]

Figure 00000003
- j-ый компонент вектора вероятности, созданного нейронной сетью для i-го фрагмента изображения.[00027]
Figure 00000003
- j-th component of the probability vector created by the neural network for the i-th fragment of the image.

[00028] Получившийся вектор затем может быть нормализован, например, путем деления каждого элемента вектора на квадратный корень из нормы L2 вектора:[00028] The resulting vector can then be normalized, for example, by dividing each element of the vector by the square root of the L2 norm of the vector:

[00029]

Figure 00000004
[00029]
Figure 00000004

[00030] где

Figure 00000005
- i-ый компонент нормализованного получившегося вектора,[00030] where
Figure 00000005
- i-th component of the normalized resulting vector,

[00031]

Figure 00000006
- i-ый элемент вектора, а[00031]
Figure 00000006
- i-th element of the vector, and

[00032]

Figure 00000007
- норма L2 вектора.[00032]
Figure 00000007
is the L2 norm of the vector.

[00033] С учетом определения на этапе операции 150 того, что

Figure 00000008
(т. е. максимальное значение среди всех элементов получившегося нормализованного вектора) превышает заранее определенное пороговое значение, компьютерная система на этапе операции 160 делает вывод о том, что изображение содержит символы системы письма, идентифицированной индексом максимального (max) элемента вектора. В противном случае, если максимальное значение ниже или равно заранее определенному пороговому значению, заранее определенное количество K (например, две) систем письма-кандидатов, набравших K наибольших значений, возвращается на этап операции 170, и способ завершается. Предварительно определенное пороговое значение может быть вычислено предположительно в качестве обеспечения желаемой точности распознавания.[00033] Given the determination at operation 150 that
Figure 00000008
(i.e., the maximum value among all elements of the resulting normalized vector) exceeds a predetermined threshold value, the computer system concludes at step 160 that the image contains the characters of the writing system identified by the index of the maximum (max) element of the vector. Otherwise, if the maximum value is less than or equal to the predetermined threshold value, the predetermined number K (eg, two) of the highest K writing system candidates returns to step 170 and the method ends. A predetermined threshold value may be calculated as a guess as to provide the desired recognition accuracy.

[00034] Как отмечалось выше в настоящем документе, количество фрагментов, на которые разбивается исходное изображение, может быть произвольным и может зависеть от типа и/или других известных параметров входного документа. В некоторых вариантах осуществления способ 100 может быть адаптирован для обработки входных документов, которые содержат текстовые фрагменты с шрифтами разных размеров (например, заголовки, обычный текст, нижние и верхние индексы и т. д.). Чтобы сеть давала надежный ответ в отношении данного фрагмента изображения, этот фрагмент должен содержать несколько строк текста (т. е. содержать достаточное количество графем), при уменьшении фрагмента до размера входного слоя сети (например, 224 x 224) текст должен оставаться достаточно большим, чтобы можно было идентифицировать систему письма. Это соображение можно использовать для определения диапазона размеров шрифта, который будет использоваться для обучения нейронной сети.[00034] As noted above in this document, the number of fragments into which the original image is divided may be arbitrary and may depend on the type and / or other known parameters of the input document. In some embodiments, method 100 can be adapted to process input documents that contain text chunks in different font sizes (eg, headings, plain text, subscripts, superscripts, etc.). In order for the network to give a reliable answer for a given image fragment, this fragment must contain several lines of text (i.e. contain a sufficient number of graphemes), while reducing the fragment to the size of the network input layer (for example, 224 x 224), the text must remain large enough, so that the writing system can be identified. This consideration can be used to determine the range of font sizes that will be used to train the neural network.

[00035] Обучение нейронной сети может включать в себя активацию нейронной сети в отношении каждого введенного значения в наборе обучающих данных. Значение функции потерь может быть вычислено на основе наблюдаемых выходных данных определенного уровня нейронной сети и желаемых выходных данных, указанных в наборе обучающих данных. Ошибка может быть передана обратно на предыдущие слои нейронной сети, в которых веса ребер и/или другие параметры сети могут быть скорректированы соответствующим образом. Этот процесс может повторяться до тех пор, пока значение функции потерь не стабилизируется вблизи определенного значения или не станет ниже заранее определенного порогового значения.[00035] Training the neural network may include activating the neural network for each input value in the training data set. The value of the loss function can be computed based on the observed output of a certain layer of the neural network and the desired output given in the training dataset. The error can be passed back to the previous layers of the neural network, in which the edge weights and/or other network parameters can be adjusted accordingly. This process may be repeated until the value of the loss function stabilizes around a certain value or falls below a predetermined threshold.

[00036] Для того, чтобы обученная сеть могла выдавать надежные результаты для произвольных размеров шрифтов, включая размеры шрифтов, выходящие за пределы диапазона размеров шрифта, на котором была обучена нейронная сеть, способ 100 может быть модифицирован для использования масштабированных фрагментов изображения. Чтобы обеспечить возможность обработки широкого диапазона размеров шрифта, нейронная сеть может быть обучена выдавать новую категорию изображений, соответствующую тексту, который слишком мал для точного распознавания системы письма.[00036] In order for the trained network to produce reliable results for arbitrary font sizes, including font sizes outside the font size range on which the neural network was trained, method 100 can be modified to use scaled image tiles. To be able to handle a wide range of font sizes, the neural network can be trained to produce a new category of images corresponding to text that is too small to accurately recognize the writing system.

[00037] Таким образом, после обработки исходного изображения, уменьшенного до размера, соответствующего размеру входного слоя сети, нейронная сеть может получать несколько фрагментов изображения, которые могут быть созданы, например, путем применения заранее заданной сетки (например, регулярной сетки 2 x 2, состоящей из четырех прямоугольных фрагментов) к исходному изображению. Сетка может рекурсивно применяться к фрагментам изображения, которые были охарактеризованы сетью как содержащие текст, который слишком мал для обеспечения точного распознавания, до тех пор, пока все фрагменты не будут содержать достаточно большие символы, которые позволили бы нейронной сети распознать систему письма, или до тех пор, пока не будет достигнут предварительно определенный минимальный размер фрагмента изображения.[00037] Thus, after processing the original image, reduced to a size corresponding to the size of the input layer of the network, the neural network can receive several fragments of the image, which can be created, for example, by applying a predefined grid (for example, a regular 2 x 2 grid, consisting of four rectangular fragments) to the original image. The grid can be recursively applied to image fragments that have been characterized by the network as containing text that is too small to provide accurate recognition, until all fragments contain characters large enough to allow the neural network to recognize the writing system, or until until a predetermined minimum image fragment size is reached.

[00038] Фиг. 2 отражает блок-схему указанного в примере способа 200 идентификации системы письма, используемой в документе, в соответствии с одним или несколькими аспектами настоящего изобретения. Способ 200 и/или каждая из его отдельных функций, программ, подпрограмм или операций могут выполняться одним или несколькими процессорами компьютерной системы (в частности, компьютерной системы 700, изображенной на Фиг. 5), реализующей способ. В некоторых вариантах осуществления способ 200 может выполняться с помощью одного потока обработки. В альтернативном варианте осуществления способ 200 может выполняться двумя или несколькими потоками обработки, каждый из которых выполняет одну или несколько отдельных функций, программ, подпрограмм или операций, относящихся к данному способу. В пояснительном примере потоки обработки, реализующие способ 200, могут быть синхронизированы (например, с использованием семафоров, критических секций и/или других механизмов синхронизации потоков). В альтернативном варианте осуществления потоки обработки, реализующие способ 200, могут выполняться асинхронно по отношению друг к другу. Поэтому, несмотря на то, что на Фиг. 2 и в связанных с ним описаниях, операции способа 200 выполняются в определенном порядке, в различных вариантах осуществления данного способа как минимум некоторые из описанных операций могут выполняться параллельно и/или в произвольно выбранном порядке.[00038] FIG. 2 depicts a flowchart of an exemplary method 200 for identifying a writing system used in a document, in accordance with one or more aspects of the present invention. The method 200 and/or each of its individual functions, programs, subroutines, or operations may be executed by one or more processors of the computer system (in particular, computer system 700 depicted in FIG. 5) implementing the method. In some embodiments, method 200 may be performed with a single processing thread. In an alternative embodiment, method 200 may be executed by two or more processing threads, each of which performs one or more separate functions, programs, subroutines, or operations related to the method. In an illustrative example, the processing threads implementing method 200 may be synchronized (eg, using semaphores, critical sections, and/or other thread synchronization mechanisms). In an alternative embodiment, the processing threads implementing method 200 may execute asynchronously with respect to each other. Therefore, although in FIG. 2 and associated descriptions, the steps of method 200 are performed in a specific order, in various embodiments of the method, at least some of the described steps may be performed in parallel and/or in an arbitrary order.

[00039] На этапе операции 210 компьютерная система, реализующая данный способ, получает входное изображение документа. В некоторых вариантах осуществления перед передачей для реализации способа 200 входное изображение документа может быть предварительно обработано, например, посредством обрезки исходного изображения, масштабирования исходного изображения и/или преобразования исходного изображения в полутоновое или черно-белое изображение.[00039] In step 210, the computer system implementing the method obtains an input document image. In some embodiments, prior to transmission to method 200, the input document image may be pre-processed, such as by cropping the original image, scaling the original image, and/or converting the original image to a grayscale or black and white image.

[00040] На этапе операции 220 компьютерная система разбивает исходное изображение на заранее определенное количество прямоугольных фрагментов, применяя прямоугольную сетку, как более подробно описано выше в настоящем документе. Получившиеся прямоугольные фрагменты сжимаются до предварительно определенного размера (например, 224 x 224 пикселя), который может быть вычислен предположительно, обеспечивая желаемый баланс между вычислительной сложностью и точностью результата. В некоторых вариантах осуществления фрагменты могут быть дополнительно предварительно обработаны, например, путем нормализации яркости пикселя, чтобы привести ее к заранее определенному диапазону, например (-1, 1).[00040] In step 220, the computer system partitions the original image into a predetermined number of rectangular tiles using a rectangular grid, as described in more detail hereinbefore. The resulting rectangular tiles are compressed to a predetermined size (eg, 224 x 224 pixels) that can be predicted to provide the desired balance between computational complexity and result precision. In some embodiments, the fragments may be further pre-processed, such as by normalizing the brightness of a pixel, to bring it to a predetermined range, such as (-1, 1).

[00041] На этапе операции 230 компьютерная система последовательно передает предварительно обработанные фрагменты изображения в нейронную сеть, которая создает для каждого фрагмента входного изображения соответствующий вектор вероятностей фрагмента изображения, содержащего символы соответствующей системы письма, как более подробно описано выше в настоящем документе. В некоторых вариантах осуществления нейронная сеть может быть представлена сверточной нейронной сетью, соответствующей определенной архитектуре, как более подробно описано путем ссылки на Фиг. 4.[00041] At step 230, the computer system sequentially feeds the pre-processed sub-images to the neural network, which creates, for each input image sub-tile, a corresponding sub-image probability vector containing the characters of the corresponding writing system, as described in more detail hereinbefore. In some embodiments, the implementation of the neural network may be represented by a convolutional neural network corresponding to a certain architecture, as described in more detail by reference to FIG. 4.

[00042] С учетом определения на этапе операции 240 того, что нейронная сеть не классифицировала фрагменты изображения как содержащие текст, который слишком мал для обеспечения точного распознавания, или что достигнут заранее определенный минимальный размер фрагмента изображения, обработка продолжается в блоке 260; в противном случае способ переходит к операции 250.[00042] Given the determination at step 240 that the neural network has not classified image tiles as containing text that is too small to provide accurate recognition, or that a predetermined minimum image tiles size has been reached, processing continues at block 260; otherwise, the method proceeds to operation 250.

[00043] На этапе операции 250 компьютерная система дополнительно разбивает на несколько субфрагментов фрагменты изображения, которые сеть охарактеризовала как содержащие текст, который слишком мал для обеспечения точного распознавания, и способ возвращается к блоку 230.[00043] At step 250, the computer system further sub-segments the image fragments that the network has characterized as containing text that is too small to provide accurate recognition, and the method returns to block 230.

[00044] На этапе операции 260 компьютерная система агрегирует векторы, созданные нейронной сетью для набора фрагментов входного изображения, так что получившийся вектор имеет размерность N+1, а i-ый компонент получившегося вектора является суммой i-ых компонентов всех векторов, созданных нейронной сетью для набора фрагментов входного изображения. Получившейся вектор затем может быть нормализован, как более подробно описано выше в настоящем документе.[00044] In step 260, the computer system aggregates the vectors generated by the neural network for the set of input image tiles such that the resulting vector has dimension N+1 and the i-th component of the resulting vector is the sum of the i-th components of all vectors generated by the neural network for a set of input image fragments. The resulting vector can then be normalized, as described in more detail above in this document.

[00045] С учетом определения на этапе операции 270 того, что максимальное значение среди всех элементов нормализованного получившегося вектора превышает заранее определенное пороговое значение, компьютерная система на этапе операции 280 делает вывод о том, что изображение содержит символы системы письма, идентифицированной индексом максимального элемента вектора. В противном случае, если максимальное значение ниже или равно заранее определенному пороговому значению, заранее определенное количество K систем письма-кандидатов, набравших K наибольших значений, возвращается на этап операции 290, и способ завершается.[00045] Given the determination at step 270 that the maximum value among all elements of the normalized resulting vector exceeds a predetermined threshold value, the computer system at step 280 concludes that the image contains characters of the writing system identified by the index of the maximum element of the vector . Otherwise, if the maximum value is less than or equal to the predetermined threshold value, the predetermined number K of candidate writing systems that scored the highest K values returns to step 290 and the method ends.

[00046] В некоторых вариантах осуществления в целях сокращения времени обработки только подмножество всех фрагментов изображения (например, «интересующие области» (ROI)) может подаваться в нейронную сеть для дальнейшей обработки. Чтобы повысить общую эффективность способа, выбранные фрагменты изображения не обязательно могут покрывать все изображение и/или могут быть выбраны в заранее определенном порядке, например, в шахматном порядке. В другом пояснительном примере нейронная сеть для идентификации системы письма может работать на полном наборе фрагментов изображения.[00046] In some embodiments, in order to reduce processing time, only a subset of all image fragments (eg, "regions of interest" (ROI)) may be fed into the neural network for further processing. In order to increase the overall efficiency of the method, the selected sub-images may not necessarily cover the entire image and/or may be selected in a predetermined order, such as a checkerboard pattern. In another illustrative example, a neural network for identifying a writing system may operate on a complete set of image tiles.

[00047] Набор обучающих данных, используемый для обучения нейронной сети идентификации интересующей области, может впоследствии состоять, по меньшей мере, из подмножества всех фрагментов изображения и их соответствующих значений точности вывода, демонстрируемых нейронной сетью идентификации системы письма. Затем фрагменты изображения могут быть отсортированы в порядке, обратном точности вывода, выполняемого нейронной сетью идентификации системы письма. Затем можно выбрать заранее определенное количество фрагментов изображения, соответствующее наибольшей точности логического вывода, выполняемого для этих фрагментов нейронной сетью идентификации системы письма, и использовать для обучения нейронной сети идентификации интересующей области.[00047] The training dataset used to train the area of interest identification neural network may subsequently consist of at least a subset of all image tiles and their respective inference accuracy values exhibited by the writing system identification neural network. The image fragments can then be sorted in the reverse order of the accuracy of the output performed by the writing system's identification neural network. A predetermined number of image tiles can then be selected, corresponding to the highest precision of the inference performed on those tiles by the writing system identification neural network, and used to train the area of interest identification neural network.

[00048] В другом пояснительном примере может быть реализован планомерный подход эталонных данных, включающий в себя сохранение в структуре данных сегментации (например, тепловой карте) соответствующих вероятностей для каждого сегмента, которые были получены классификатором. Затем структура данных сегментации может использоваться для обучения нейронной сети идентификации системы письма путем выбора заранее определенного количества (например, N) лучших фрагментов (например, путем выбора M суперпикселей максимального размера из тепловой карты) для запуска классификатора. Для повышения эффективности тепловая карта может быть отсортирована путем подсчета, который демонстрирует вычислительную сложность O(N), где N - количество суперпикселей в тепловой карте. Затем классификатор может быть повторно обучен для обеспечения точного соответствия этим выбранным фрагментам, что может быть достигнуто путем взвешивания функции потерь для каждого фрагмента. После выбора заранее определенного количества фрагментов (интересующих областей) повторно обученный классификатор может быть запущен на них, чтобы получить заранее определенное количество вероятностей, которые могут быть агрегированы, как описано в настоящем документе выше.[00048] In another illustrative example, a planned reference data approach can be implemented, including storing in a segmentation data structure (eg, a heat map) the respective probabilities for each segment that were obtained by the classifier. The segmentation data structure can then be used to train a neural network to identify the writing system by selecting a predetermined number (eg, N) of the best tiles (eg, by selecting M maximum size superpixels from a heatmap) to run the classifier. To improve efficiency, the heatmap can be sorted by counting, which exhibits a computational complexity of O(N), where N is the number of superpixels in the heatmap. The classifier can then be retrained to match exactly those selected chunks, which can be achieved by weighting the loss function for each chunk. After selecting a predetermined number of fragments (areas of interest), a retrained classifier may be run on them to obtain a predetermined number of probabilities which may be aggregated as described herein above.

[00049] В некоторых вариантах осуществления нейронная сеть идентификации интересующей области может быть обучена обрабатывать широкий диапазон размеров шрифта. Нейронная сеть идентификации системы письма может быть обучена идентифицировать систему письма для документов, использующих заранее определенный диапазон размера шрифта (например, размеры шрифта от X до 2X). Затем нейронная сеть идентификации системы письма может быть запущена на фрагментах изображений различных масштабов. Набор обучающих данных, используемый для обучения нейронной сети идентификации интересующей области, может впоследствии состоять из подмножества всех фрагментов изображения и их соответствующих значений точности вывода, демонстрируемых нейронной сетью идентификации системы письма.[00049] In some embodiments, an area of interest identification neural network can be trained to handle a wide range of font sizes. A writing system identification neural network can be trained to identify a writing system for documents using a predetermined font size range (eg, font sizes from X to 2X). The writing system identification neural network can then be run on image fragments of different scales. The training dataset used to train the region-of-interest identification neural network may subsequently consist of a subset of all image tiles and their respective inference accuracy values exhibited by the writing system identification neural network.

[00050] Фиг. 3 отражает блок-схему указанного в примере способа 300 идентификации системы письма, используемой в документе, в соответствии с одним или несколькими аспектами настоящего изобретения. Способ 300 и/или каждая из его отдельных функций, программ, подпрограмм или операций могут выполняться одним или несколькими процессорами компьютерной системы (в частности, компьютерной системы 700, изображенной на Фиг. 5), реализующей способ. В некоторых вариантах осуществления способ 300 может выполняться с помощью одного потока обработки. В альтернативном варианте осуществления способ 300 может выполняться двумя или несколькими потоками обработки, каждый из которых выполняет одну или несколько отдельных функций, программ, подпрограмм или операций, относящихся к данному способу. В пояснительном примере потоки обработки, реализующие способ 300, могут быть синхронизированы (например, с использованием семафоров, критических секций и/или других механизмов синхронизации потоков). В альтернативном варианте осуществления потоки обработки, реализующие способ 300, могут выполняться асинхронно по отношению друг к другу. Поэтому, несмотря на то, что на Фиг. 3 и в связанных с ним описаниях операции способа 300 выполняются в определенном порядке, в различных вариантах осуществления данного способа как минимум некоторые из описанных операций могут выполняться параллельно и/или в произвольно выбранном порядке.[00050] FIG. 3 depicts a flow chart of an exemplary method 300 for identifying a writing system used in a document, in accordance with one or more aspects of the present invention. The method 300 and/or each of its individual functions, programs, subroutines, or operations may be executed by one or more processors of the computer system (in particular, computer system 700 depicted in FIG. 5) implementing the method. In some embodiments, method 300 may be performed with a single processing thread. In an alternative embodiment, method 300 may be executed by two or more processing threads, each of which performs one or more separate functions, programs, subroutines, or operations related to the method. In an illustrative example, the processing threads implementing method 300 may be synchronized (eg, using semaphores, critical sections, and/or other thread synchronization mechanisms). In an alternative embodiment, the processing threads implementing method 300 may execute asynchronously with respect to each other. Therefore, although in FIG. 3 and in its associated descriptions, the operations of method 300 are performed in a specific order, in various embodiments of the method, at least some of the described operations may be performed in parallel and/or in an arbitrary order.

[00051] На этапе операции 310 компьютерная система, реализующая данный способ, получает входное изображение документа. В некоторых вариантах осуществления перед передачей для реализации способа 300 изображение входного документа может быть предварительно обработано, как более подробно описано выше в настоящем документе.[00051] At step 310, the computer system implementing the method obtains an input document image. In some embodiments, the image of the input document may be pre-processed before being transmitted to the implementation of method 300, as described in more detail hereinbefore.

[00052] На этапе операции 320 компьютерная система разбивает исходное изображение на заранее определенное количество прямоугольных фрагментов, применяя прямоугольную сетку, как более подробно описано выше в настоящем документе.[00052] At step 320, the computer system partitions the original image into a predetermined number of rectangular tiles using a rectangular grid, as described in more detail hereinbefore.

[00053] На этапе операции 330 компьютерная система идентифицирует среди всех фрагментов изображения интересующие области (ROI). В некоторых вариантах осуществления идентификация интересующей области может выполняться специализированной нейронной сетью идентификации интересующей области, которая может идентифицировать подмножество, включающее заранее определенное количество фрагментов изображения, как более подробно описано выше в настоящем документе.[00053] At step 330, the computer system identifies regions of interest (ROI) among all image fragments. In some embodiments, region of interest identification may be performed by a dedicated region of interest identification neural network that may identify a subset including a predetermined number of image tiles, as described in more detail hereinbefore.

[00054] На этапе операции 340 компьютерная система последовательно передает предварительно обработанные фрагменты изображения в нейронную сеть, которая создает для каждого предварительно обработанного фрагмента входного изображения соответствующий вектор вероятностей фрагмента изображения, содержащего символы соответствующей системы письма, как более подробно описано выше в настоящем документе. В некоторых вариантах осуществления нейронная сеть может быть представлена сверточной нейронной сетью, соответствующей определенной архитектуре, как более подробно описано путем ссылки на Фиг. 4.[00054] At step 340, the computer system sequentially feeds the pre-processed sub-images to the neural network, which creates, for each pre-processed input image sub-tile, a corresponding sub-image probability vector containing the characters of the corresponding writing system, as described in more detail hereinbefore. In some embodiments, the implementation of the neural network may be represented by a convolutional neural network corresponding to a certain architecture, as described in more detail by reference to FIG. 4.

[00055] На этапе операции 350 компьютерная система агрегирует векторы, созданные нейронной сетью для набора фрагментов входного изображения, так что получившийся вектор имеет размерность N+1, а i-ый компонент получившегося вектора является суммой i-ых компонентов всех векторов, созданных нейронной сетью для набора фрагментов входного изображения. Получившейся вектор затем может быть нормализован, как более подробно описано выше в настоящем документе.[00055] In step 350, the computer system aggregates the vectors generated by the neural network for the set of input image tiles such that the resulting vector has dimension N+1 and the i-th component of the resulting vector is the sum of the i-th components of all vectors generated by the neural network for a set of input image fragments. The resulting vector can then be normalized, as described in more detail above in this document.

[00056] С учетом определения на этапе операции 360 того, что максимальное значение среди всех элементов нормализованного получившегося вектора превышает заранее определенное пороговое значение, компьютерная система на этапе операции 370 делает вывод о том, что изображение содержит символы системы письма, идентифицированной индексом максимального элемента вектора. В противном случае, если максимальное значение ниже или равно заранее определенному пороговому значению, заранее определенное количество K систем письма-кандидатов, набравших K наибольших значений, возвращается на этап операции 380, и способ завершается.[00056] Given the determination at step 360 that the maximum value among all elements of the normalized resulting vector exceeds a predetermined threshold value, the computer system at step 370 concludes that the image contains characters of the writing system identified by the index of the maximum element of the vector . Otherwise, if the maximum value is less than or equal to the predetermined threshold value, the predetermined number K of candidate writing systems that scored the highest K values returns to step 380 and the method ends.

[00057] Кроме того, в некоторых вариантах осуществления нейронная сеть идентификации системы письма может использоваться для идентификации как системы письма, так и пространственной ориентации входного изображения. Соответственно, нейронная сеть может быть модифицирована для включения дополнительного вывода, который будет давать значение, описывающее пространственную ориентацию входного изображения. В пояснительном примере значение может отражать одну из четырех возможных ориентаций: нормальную, повернутую на 90 градусов по или против часовой стрелки, повернутую на 180 градусов, повернутую на 270 градусов по или против часовой стрелки и т. д. Подобно идентификации системы письма пространственная ориентация может быть определена в отношении набора фрагментов входного изображения, а затем агрегирована по всем фрагментам, чтобы определить пространственную ориентацию входного изображения. В некоторых вариантах осуществления пространственная ориентация изображения может быть идентифицирована классификатором второго уровня, который принимает карту пространственных характеристик, созданную нейронной сетью на этапе операции 130, и обучается идентифицировать пространственную ориентацию входного изображения.[00057] In addition, in some embodiments, a writing system identification neural network may be used to identify both the writing system and the spatial orientation of an input image. Accordingly, the neural network can be modified to include additional output that will produce a value describing the spatial orientation of the input image. In an illustrative example, a value can reflect one of four possible orientations: normal, rotated 90 degrees clockwise or counterclockwise, rotated 180 degrees, rotated 270 degrees clockwise or counterclockwise, and so on. Similar to identifying a writing system, spatial orientation can be determined with respect to a set of input image tiles and then aggregated over all tiles to determine the spatial orientation of the input image. In some embodiments, the spatial orientation of an image can be identified by a second level classifier that receives the spatial feature map generated by the neural network in step 130 and learns to identify the spatial orientation of the input image.

[00058] Подобно наборам данных, которые используются для обучения нейронных сетей идентификации системы письма, набор данных для обучения сети распознаванию ориентации изображения может состоять из реальных и/или синтезированных изображений. Такой набор обучающих данных может включать в себя изображения, которые имеют разную пространственную ориентацию, так что ориентация изображения распределяется либо равномерно, либо на основе частоты появления изображений документа, имеющих различную ориентацию, в данном объеме документов.[00058] Similar to the data sets that are used to train writing system identification neural networks, the data set for training the network to recognize image orientation may consist of real and/or synthesized images. Such a training data set may include images that have different spatial orientations such that the image orientation is distributed either uniformly or based on the frequency of occurrence of document images having different orientations in a given volume of documents.

[00059] Как отмечено выше в настоящем документе, нейронная сеть, реализованная в соответствии с аспектами настоящего изобретения, может включать несколько слоев разных типов. В пояснительном примере входное изображение может быть получено входным слоем и впоследствии обработано серией слоев, включая сверточные слои, слои объединения, слои блока линейной ректификации (ReLU) и/или полностью связанные слои, каждый из который может выполнять определенную операцию по распознаванию текста во входном изображении. Выходные данные слоя могут передаваться в качестве входных данных для одного или нескольких последующих слоев. Обработка исходного изображения сверточной нейронной сетью может итерационно применять каждый последующий слой до тех пор, пока каждый слой не выполнит свою соответствующую операцию.[00059] As noted above herein, a neural network implemented in accordance with aspects of the present invention may include multiple layers of different types. In an illustrative example, an input image may be acquired by an input layer and subsequently processed by a series of layers, including convolutional layers, merging layers, linear rectification unit (ReLU) layers, and/or fully connected layers, each of which may perform a specific OCR operation on the input image. . The output of a layer can be passed as input to one or more subsequent layers. Processing the original image by a convolutional neural network can iteratively apply each successive layer until each layer has performed its respective operation.

[00060] В некоторых вариантах осуществления сверточная нейронная сеть может включать в себя чередующиеся сверточные слои и слои объединения. Каждый сверточный слой может выполнять операцию свертки, которая включает обработку каждого пикселя фрагмента входного изображения с помощью одного или нескольких фильтров (матриц свертки) и запись результата в соответствующую позицию выходного массива. Один или несколько фильтров свертки могут быть разработаны для обнаружения определенной характеристики изображения путем обработки входного изображения и получения соответствующей карты характеристик.[00060] In some embodiments, a convolutional neural network may include interleaved convolutional and pooling layers. Each convolution layer can perform a convolution operation, which involves processing each pixel of the input image fragment with one or more filters (convolution matrices) and writing the result to the corresponding position in the output array. One or more convolution filters can be designed to detect a particular feature of an image by processing the input image and producing a corresponding feature map.

[00061] Выходные данные сверточного слоя могут передаваться в слой ReLU, который может применять нелинейное преобразование (например, функцию активации, которая заменяет отрицательные числа на ноль) для обработки выходных данных сверточного слоя. Выходные данные слоя ReLU могут передаваться на слой объединения, который может выполнять операцию субдискретизации для уменьшения разрешения и размера карты характеристик. Выходные данные слоя объединения могут передаваться на следующий сверточный слой.[00061] The output of the convolutional layer may be passed to the ReLU layer, which may apply a non-linear transformation (eg, an activation function that replaces negative numbers with zero) to process the output of the convolutional layer. The output of the ReLU layer may be passed to the pooling layer, which may perform a downsampling operation to reduce the resolution and size of the feature map. The output of the pooling layer can be passed to the next convolutional layer.

[00062] В некоторых вариантах осуществления нейронные сети для идентификации системы письма, реализованные в соответствии с аспектами настоящего изобретения, могут быть совместимы с архитектурой MobileNet, которая представляет собой семейство нейронных сетей машинного зрения общего назначения, разработанных для мобильных устройств, чтобы выполнять классификацию изображений, обнаружение и/или другие подобные задачи. В пояснительном примере нейронная сеть для идентификации системы письма может следовать архитектуре MobileNetv2, как схематично показано на Фиг. 4. Как показано на Фиг. 4, пример нейронной сети 400 может включать в себя два вида блоков. Блок 402 - это остаточный блок с шагом единицы. Блок 404 - это блок с шагом два.[00062] In some embodiments, writing system identification neural networks implemented in accordance with aspects of the present invention may be compatible with the MobileNet architecture, which is a family of general purpose machine vision neural networks designed for mobile devices to perform image classification, detection and/or other similar tasks. In an illustrative example, a neural network for writing system identification may follow the MobileNetv2 architecture, as schematically shown in FIG. 4. As shown in FIG. 4, an example neural network 400 may include two kinds of blocks. Block 402 is a one-step residual block. Block 404 is a step two block.

[00063] Каждый из блоков 402, 404 включает в себя три слоя: слой точечной свертки 412A-412B, который отвечает за создание новых характеристик посредством вычисления линейных комбинаций входных каналов; глубокий (глубинный) сверточный слой 414A-414B, который выполняет облегченную фильтрацию путем применения одного сверточного фильтра на входной канал; и второй сверточный слой 416A-416B без нелинейности. Когда начальная и конечная карты характеристик имеют одинаковые размеры (когда шаг свертки по глубине равен единице, а входные и выходные каналы равны), добавляется остаточное соединение 418, чтобы способствовать градиентному потоку во время обратного распространения.[00063] Each of blocks 402, 404 includes three layers: a point convolution layer 412A-412B, which is responsible for creating new features by computing linear combinations of input channels; a deep convolutional layer 414A-414B that performs lightweight filtering by applying one convolutional filter per input channel; and a second convolutional layer 416A-416B with no non-linearity. When the start and end feature maps are the same size (when the depth convolution step is one and the input and output channels are equal), a residual connection 418 is added to promote gradient flow during backpropagation.

[00064] В другом пояснительном примере нейронная сеть для идентификации системы письма может следовать архитектуре MobileNetv3, все блоки которой являются узкими местами (bottleneck) с механизмами сжатия и возбуждения. Нейронная сеть может иметь четыре общих слоя для выделения характеристик, за которыми следуют три ветви: ветвь идентификации системы письма, ветвь идентификации пространственной ориентации и ветвь кластеризации размера текста. Последняя может использоваться для постобработки и выбора соединений для выполнения дальнейшей классификации масштабированного текста. Каждая ветвь может включать заранее определенное количество блоков (например, три или четыре).[00064] In another illustrative example, a neural network for identifying a writing system may follow the MobileNetv3 architecture, all blocks of which are bottlenecks with compression and excitation mechanisms. A neural network can have four general layers for feature extraction, followed by three branches: a writing system identification branch, a spatial orientation identification branch, and a text size clustering branch. The latter can be used for post-processing and selection of connections to perform further classification of scaled text. Each branch may include a predetermined number of blocks (for example, three or four).

[00065] Несмотря на то, что Фиг. 4 и соответствующее описание поясняют конкретное количество и типы слоев примерной архитектуры сверточной нейронной сети, сверточные нейронные сети, используемые в различных альтернативных вариантах осуществления, могут включать в себя любое подходящее количество сверточных слоев, слоев ReLU, слоев объединения и/или любых других слоев. Порядок слоев, количество слоев, количество фильтров и/или любой другой параметр сверточных нейронных сетей можно регулировать (например, на основе эмпирических данных).[00065] Although FIG. 4 and the accompanying description explain the specific number and types of layers of an exemplary convolutional neural network architecture, the convolutional neural networks used in various alternative embodiments may include any suitable number of convolutional layers, ReLU layers, pooling layers, and/or any other layers. The order of the layers, the number of layers, the number of filters, and/or any other parameter of the convolutional neural networks can be adjusted (eg, based on empirical data).

[00066] Нейронные сети, используемые системами и способами в рамках настоящего изобретения, могут быть обучены на основании обучающих наборов данных, включая реальные и/или синтезированные изображения текста. К синтезированным изображениям могут применяться различные способы увеличения изображения для достижения «фотореалистичного» качества изображения. Каждое изображение может включать в себя несколько строк текста на определенном языке, которые отображаются с использованием заданного размера шрифта. Язык, используемый в изображении, определяет систему письма, которая используется в качестве метки, связанной с фрагментом изображения при обучении нейронной сети.[00066] Neural networks used by systems and methods within the framework of the present invention can be trained based on training data sets, including real and/or synthesized images of text. Various image enhancement methods can be applied to synthesized images to achieve "photorealistic" image quality. Each image can include multiple lines of text in a particular language, which are displayed using a given font size. The language used in the image determines the writing system that is used as the label associated with the image fragment when training the neural network.

[00067] Фиг. 5 отражает схему компонентов указанной в примере компьютерной системы, которая может использоваться для реализации способов, указанных в настоящем документе. Компьютерная система 700 может быть подключена к другой компьютерной системе в локальной сети, интрасети, экстрасети или сети Интернет. Компьютерная система 700 может работать в качестве сервера или клиентской компьютерной системы в сетевой среде «клиент-сервер», либо в качестве одноранговой компьютерной системы в одноранговой (или распределенной) сетевой среде. Компьютерная система 700 может представлять собой персональный компьютер (ПК), планшет, телевизионную приставку (STB), карманный персональный компьютер (КПК), мобильный телефон или любую компьютерную систему, способную выполнять набор команд (последовательных или иных), определяющих операции, которые должны быть выполнены такой компьютерной системой. Кроме того, несмотря на наглядное изображение только одной вычислительной системы термин «компьютерная система» должен также включать любую совокупность компьютерных систем, которые индивидуально или совместно выполняют набор (или несколько наборов) команд для реализации любого одного или нескольких способов, указанных в настоящем документе.[00067] FIG. 5 depicts a diagram of the components of an exemplary computer system that may be used to implement the methods described herein. Computer system 700 may be connected to another computer system on a local area network, an intranet, an extranet, or the Internet. Computer system 700 may operate as a server or client computer system in a client-server network environment, or as a peer-to-peer computer system in a peer-to-peer (or distributed) network environment. Computer system 700 may be a personal computer (PC), a tablet, a set top box (STB), a personal digital assistant (PDA), a mobile phone, or any computer system capable of executing a set of instructions (serial or otherwise) that specifies operations to be performed. performed by such a computer system. Furthermore, while illustrative of only one computer system, the term "computer system" should also include any collection of computer systems that individually or collectively execute a set (or multiple sets) of instructions to implement any one or more of the methods described herein.

[00068] Приведенная в качестве примера компьютерная система 700 включает процессор 702, основное запоминающее устройство (память) 704 (например, постоянное запоминающее устройство (ПЗУ), динамическое запоминающее устройство с произвольной выборкой (ДЗУПВ)) и устройство хранения данных 718, которые взаимодействуют друг с другом по шине 730. [00068] An exemplary computer system 700 includes a processor 702, main memory (memory) 704 (e.g., read only memory (ROM), dynamic random access memory (DRAM)) and storage device 718 that interact with each other. with a friend on the 730 bus.

[00069] Процессор 702 может представлять собой одно или несколько устройств обработки общего назначения, таких как микропроцессор, центральный процессор и т. п. Точнее говоря, процессор 702 может быть микропроцессором для вычисления сложных наборов команд (CISC), микропроцессором для вычисления сокращенных наборов команд (RISC), микропроцессором с очень длинным командным словом (VLIW), процессором, реализующим другие наборы команд, или процессором, реализующим сочетание наборов команд. Процессор 702 также может представлять собой одно или несколько устройств обработки специального назначения, таких как специализированная интегральная схема (ASIC), программируемая пользователем вентильная матрица (FPGA), процессор цифровой обработки сигнала (DSP), сетевой процессор и т. п. Процессор 702 сконфигурирован для выполнения команд 726 для реализации описанных в настоящем документе способов. [00069] The processor 702 may be one or more general purpose processing devices such as a microprocessor, a central processing unit, and the like. More specifically, the processor 702 may be a complex instruction set computing (CISC) microprocessor, a reduced instruction set computing microprocessor (RISC), a microprocessor with a very long instruction word (VLIW), a processor that implements other instruction sets, or a processor that implements a combination of instruction sets. The processor 702 may also be one or more special purpose processing devices such as an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), a digital signal processor (DSP), a network processor, and the like. The processor 702 is configured to executing commands 726 to implement the methods described herein.

[00070] Компьютерная система 700 может дополнительно включать в себя устройство сетевого интерфейса 722, устройство визуального отображения (видео дисплей) 710, устройство буквенно-цифрового ввода 712 (например, клавиатуру) и сенсорное устройство ввода 714.[00070] The computer system 700 may further include a network interface device 722, a visual display device (video display) 710, an alphanumeric input device 712 (e.g., a keyboard), and a touch input device 714.

[00071] Устройство хранения данных 718 может включать в себя машиночитаемый носитель данных 724, на котором хранится один или несколько наборов команд/инструкций 726, реализующих любой один или несколько способов или функций, описанных в настоящем документе. Команды 726 также могут находиться, полностью или по меньшей мере частично, в основном запоминающем устройстве 704 и/или в процессоре 702 во время их выполнения компьютерной системой 700, основным запоминающим устройством 704 и процессором 702, также представляющими собой машиночитаемый носитель данных. Команды 726 могут дополнительно передаваться или приниматься по сети 716 через устройство сетевого интерфейса 722.[00071] Storage device 718 may include a computer-readable storage medium 724 that stores one or more sets of commands/instructions 726 that implement any one or more of the methods or functions described herein. Instructions 726 may also reside, in whole or at least in part, in main storage 704 and/or processor 702 while they are executed by computer system 700, main storage 704, and processor 702, also a computer-readable storage medium. Commands 726 may optionally be transmitted or received over network 716 via network interface device 722.

[00072] В пояснительном примере команды 726 могут включать в себя команды способов 100, 200 и/или 300 для идентификации системы письма, используемой в документе, реализованные в соответствии с одним или несколькими аспектами настоящего изобретения. Хотя машиночитаемый носитель 724 показан в примере на Фиг. 5 как один носитель, термин «машиночитаемый носитель данных» следует понимать как включающий в себя один или несколько носителей (например, централизованную или распределенную базу данных и/или соответствующие кэши и серверы), которые хранят один или несколько наборов команд. Термин «машиночитаемый носитель данных» также должен включать в себя любой носитель, который способен хранить, кодировать или нести набор команд для исполнения машиной и обеспечивает, чтобы машина выполняла любой один способ или несколько способов по настоящему изобретению. Термин «машиночитаемый носитель данных», соответственно, включает, помимо прочего, твердотельные запоминающие устройства, оптические и магнитные носители.[00072] In an illustrative example, instructions 726 may include instructions for methods 100, 200, and/or 300 for identifying a writing system used in a document, implemented in accordance with one or more aspects of the present invention. Although the computer readable medium 724 is shown in the example of FIG. 5 as a single medium, the term "machine-readable storage medium" should be understood to include one or more media (eg, a centralized or distributed database and/or associated caches and servers) that store one or more instruction sets. The term "machine-readable medium" should also include any medium that is capable of storing, encoding, or carrying a set of instructions for execution by a machine and causing the machine to perform any one or more of the methods of the present invention. The term "computer-readable storage medium" accordingly includes, but is not limited to, solid-state storage devices, optical and magnetic media.

[00073] Описанные в настоящем документе способы, компоненты и характеристики могут быть реализованы дискретными аппаратными компонентами или могут быть интегрированы в функциональность других аппаратных компонентов, таких как микросхемы ASIC, FPGA, DSP или аналогичные устройства. Кроме того, способы, компоненты и характеристики могут быть реализованы программно-аппаратными модулями или функциональными схемами в аппаратных устройствах. Также способы, компоненты и характеристики могут быть реализованы в любой комбинации аппаратных устройств и программных компонентов или только в программном обеспечении.[00073] The methods, components, and characteristics described herein may be implemented as discrete hardware components, or may be integrated into the functionality of other hardware components such as ASICs, FPGAs, DSPs, or similar devices. In addition, the methods, components, and characteristics may be implemented as firmware modules or functional circuits in hardware devices. Also, the methods, components, and characteristics may be implemented in any combination of hardware devices and software components, or only in software.

[00074] В приведенном выше описании изложены многочисленные подробности. Однако специалисту в данной области, который сможет пользоваться преимуществами настоящего изобретения, будет очевидно, что аспекты настоящего изобретения могут быть реализованы без таких конкретных деталей. В некоторых случаях известные структуры и устройства показаны в виде блок-схемы без подробностей, чтобы не затруднять понимание предмета настоящего изобретения. [00074] Numerous details have been set forth in the above description. However, a person skilled in the art, who will be able to enjoy the benefits of the present invention, it will be obvious that aspects of the present invention can be implemented without such specific details. In some instances, well-known structures and devices are shown in block diagram form without detail so as not to obscure the subject matter of the present invention.

[00075] Некоторые части подробного описания представлены в виде алгоритмов и символьных представлений операций с битами данных в запоминающем устройстве компьютера. Такие алгоритмические описания и представления являются средствами, используемыми специалистами в области обработки данных с целью наиболее эффективной передачи содержания своей работы другим специалистам в данной области. Как в рамках настоящего документа, так и в целом алгоритм понимается как самосогласованная последовательность операций, приводящая к желаемому результату. Эти операции - это этапы, требующие физических манипуляций с физическими величинами. Обычно, хотя и не обязательно, такие величины принимают форму электрических или магнитных сигналов, которые можно хранить, передавать, комбинировать, сравнивать или использовать иным образом. Иногда, в основном по соображениям общепринятой практики, удобно называть такие сигналы битами, значениями, элементами, графемами, знаками, терминами, числами и т. п.[00075] Some portions of the detailed description are presented as algorithms and symbolic representations of operations on data bits in computer storage. Such algorithmic descriptions and representations are tools used by data scientists to most effectively convey the content of their work to others in the field. Both within the framework of this document and in general, an algorithm is understood as a self-consistent sequence of operations leading to the desired result. These operations are stages that require physical manipulations with physical quantities. Typically, though not necessarily, such quantities take the form of electrical or magnetic signals that can be stored, transmitted, combined, compared, or otherwise used. Sometimes, mainly for reasons of common practice, it is convenient to refer to such signals as bits, values, elements, graphemes, signs, terms, numbers, etc.

[00076] Однако следует помнить, что все такие и подобные термины должны быть связаны с соответствующими физическими величинами и являются лишь удобными обозначениями, применяемыми к таким величинам. Если специально не указано иное, как очевидно из последующего обсуждения, следует понимать, что во всем описании изобретения обсуждения, использующие такие термины, как «определение», «вычисление», «расчет», «подсчет», «получение», «идентификация», «модификация» и т. п., относятся к действиям и процессам вычислительной системы или аналогичного электронного вычислительного устройства, которое использует и преобразует данные, представленные в виде физических (например, электронных) величин в регистрах и памяти вычислительной системы, в иные данные, аналогично представленные в виде физических величин в памяти или регистрах вычислительной системы или иных подобных устройствах хранения, передачи или отображения информации.[00076] However, it should be remembered that all such and similar terms are to be associated with the corresponding physical quantities and are only convenient designations applied to such quantities. Unless specifically stated otherwise, as is evident from the following discussion, it should be understood that throughout the description of the invention, discussions using terms such as "definition", "calculation", "calculation", "counting", "obtaining", "identifying" , "modification", etc., refers to the actions and processes of a computer system or similar electronic computing device that uses and converts data represented in the form of physical (for example, electronic) quantities in the registers and memory of a computer system into other data, similarly represented in the form of physical quantities in the memory or registers of a computer system or other similar devices for storing, transmitting or displaying information.

[00077] Настоящее изобретение также относится к устройству для выполнения операций, описанных в настоящем документе. Данное устройство может быть специально сконструировано для требуемых целей, или оно может состоять из компьютера общего назначения, избирательно активируемого или реконфигурируемого компьютерной программой, хранящейся в компьютере. Такая компьютерная программа может храниться на машиночитаемом носителе данных, таком как любой тип диска, включая дискеты, оптические диски, компакт-диски и магнитно-оптические диски, постоянные запоминающие устройства (ПЗУ), оперативные запоминающие устройства (ОЗУ), ППЗУ, ЭСППЗУ, магнитные или оптические платы или любой тип носителя, подходящий для хранения электронных команд.[00077] The present invention also relates to a device for performing the operations described herein. This device may be specially designed for the required purpose, or it may consist of a general purpose computer selectively activated or reconfigured by a computer program stored in the computer. Such a computer program may be stored on a computer-readable storage medium such as any type of disk, including floppy disks, optical disks, compact disks and magnetic optical disks, read-only memory (ROM), random access memory (RAM), PROM, EEPROM, magnetic or optical boards or any type of media suitable for storing electronic commands.

[00078] Следует понимать, что приведенное выше описание служит для наглядности и не носит ограничительный характер. Многие иные варианты осуществления будут очевидны специалистам в данной области после прочтения и понимания приведенного выше описания. Поэтому область применения изобретения должна определяться со ссылкой на прилагаемую формулу изобретения наряду с полным объемом эквивалентов, на которые распространяется такая формула.[00078] It should be understood that the above description is for illustrative purposes and is not restrictive. Many other embodiments will be apparent to those skilled in the art upon reading and understanding the above description. Therefore, the scope of the invention must be determined with reference to the appended claims along with the full scope of the equivalents to which such claims apply.

Claims (52)

1. Способ идентификации системы письма, включающий:1. A method for identifying a writing system, including: получение изображения документа компьютерной системой;obtaining an image of the document by the computer system; разбиение изображения документа на множество фрагментов изображения;splitting the document image into a plurality of image fragments; генерирование множества векторов вероятности посредством нейронной сети, обрабатывающей множество фрагментов изображения, причем каждый вектор вероятности из множества векторов вероятности создается путем обработки соответствующих фрагментов изображения и содержит множество числовых элементов, при этом каждый числовой элемент из множества числовых элементов отражает вероятность фрагмента изображения, содержащего текст, связанный с системой письма, которая идентифицируется посредством индекса числового элемента в соответствующем векторе вероятности;generating a plurality of probability vectors by means of a neural network processing a plurality of image fragments, wherein each probability vector of the plurality of probability vectors is created by processing the corresponding fragments of the image and contains a plurality of numeric elements, wherein each numeric element of the plurality of numeric elements reflects the probability of an image fragment containing text, associated with the writing system, which is identified by the index of the numeric element in the corresponding probability vector; вычисление агрегированного вектора вероятности путем агрегирования множества векторов вероятности, причем каждый числовой элемент агрегированного вектора вероятности отражает вероятность изображения, содержащего текст, связанный с системой письма, которая идентифицируется посредством индекса числового элемента в пределах агрегированного вектора вероятности; иcalculating an aggregated probability vector by aggregating a plurality of probability vectors, each numeric element of the aggregated probability vector reflecting a probability of an image containing text associated with a writing system, which is identified by an index of the numeric element within the aggregated probability vector; And с учетом определения того, что максимальный числовой элемент агрегированного вектора вероятности превышает предварительно определенное пороговое значение, делается вывод о том, что изображение документа содержит один или несколько символов, связанных с системой письма, которая идентифицируется посредством индекса максимального числового элемента в пределах агрегированного вектора вероятности.given the determination that the maximum numeric element of the aggregated probability vector exceeds a predetermined threshold value, it is concluded that the document image contains one or more characters associated with the writing system, which is identified by the index of the maximum numeric element within the aggregated probability vector. 2. Способ по п. 1, дополнительно включающий:2. The method of claim 1, further comprising: с учетом определения того, что максимальный числовой элемент агрегированного вектора вероятности меньше или равен предварительно определенному пороговому значению, делается вывод о том, что изображение документа содержит один или несколько символов, связанных с одной из следующих систем: первая система письма, которая идентифицируется посредством первого индекса максимального числового элемента в пределах агрегированного вектора вероятности, или вторая система письма, которая идентифицируется посредством второго индекса следующего наибольшего числового элемента в пределах агрегированного вектора вероятности.given the determination that the maximum numerical element of the aggregated probability vector is less than or equal to a predetermined threshold value, it is concluded that the document image contains one or more characters associated with one of the following systems: the first writing system, which is identified by the first index the maximum numeric element within the aggregated probability vector, or a second writing system that is identified by the second index of the next largest numeric element within the aggregated probability vector. 3. Способ по п. 1, дополнительно включающий:3. The method of claim 1, further comprising: идентификацию среди множества фрагментов изображения множества интересующих областей (ROI).identifying a plurality of regions of interest (ROI) among the plurality of image fragments. 4. Способ по п. 1, дополнительно включающий:4. The method of claim 1, further comprising: нормализацию агрегированного вектора вероятности.normalization of the aggregated probability vector. 5. Способ по п. 1, причем каждый фрагмент изображения из множества фрагментов изображения представляет собой прямоугольный фрагмент изображения предварительно определенного размера.5. The method of claim. 1, wherein each sub-image of the plurality of sub-images is a rectangular sub-image of a predetermined size. 6. Способ по п. 1, дополнительно включающий:6. The method of claim 1, further comprising: рекурсивное разбиение на соответствующие субфрагменты изображения одного или нескольких фрагментов изображения, которые характеризуются нейронной сетью как содержащие текст, имеющий размер текста меньше минимального порогового размера.recursively splitting into corresponding image sub-fragments of one or more image fragments, which are characterized by the neural network as containing text having a text size less than the minimum threshold size. 7. Способ по п. 1, дополнительно включающий:7. The method according to p. 1, further comprising: предварительную обработку изображения документа.pre-processing of the document image. 8. Способ по п. 1, при котором разбиение изображения документа на множество фрагментов изображения дополнительно включает в себя:8. The method of claim. 1, wherein splitting the document image into a plurality of image fragments further includes: преобразование каждого фрагмента изображения из множества фрагментов изображения до предварительно определенного размера.converting each sub-image of the plurality of sub-images to a predetermined size. 9. Способ по п. 1, дополнительно включающий:9. The method of claim 1, further comprising: определение пространственной ориентации изображения документа с помощью нейронной сети, обрабатывающей множество фрагментов изображения.determining the spatial orientation of the document image using a neural network that processes a plurality of image fragments. 10. Способ по п. 1, дополнительно включающий:10. The method according to p. 1, further comprising: идентификацию на основе заранее определенного порядка подмножества множества фрагментов изображения, которые должны быть переданы в нейронную сеть.identifying, based on a predetermined order, a subset of the plurality of image fragments to be transmitted to the neural network. 11. Система для идентификации системы письма, включающая:11. A system for identifying a writing system, including: запоминающее устройство;Memory device; процессор, соединенный с запоминающим устройством, причем процессор выполнен с возможностью выполнения таких действий, как:a processor coupled to the storage device, the processor being configured to perform actions such as: получение изображения документа;getting an image of the document; разбиение изображения документа на множество фрагментов изображения;splitting the document image into a plurality of image fragments; генерирование множества векторов вероятности посредством нейронной сети, обрабатывающей множество фрагментов изображения, причем каждый вектор вероятности из множества векторов вероятности создается путем обработки соответствующих фрагментов изображения и содержит множество числовых элементов, при этом каждый числовой элемент из множества числовых элементов отражает вероятность фрагмента изображения, содержащего текст, связанный с системой письма, которая идентифицируется посредством индекса числового элемента в соответствующем векторе вероятности;generating a plurality of probability vectors by means of a neural network processing a plurality of image fragments, wherein each probability vector of the plurality of probability vectors is created by processing the corresponding fragments of the image and contains a plurality of numeric elements, wherein each numeric element of the plurality of numeric elements reflects the probability of an image fragment containing text, associated with the writing system, which is identified by the index of the numeric element in the corresponding probability vector; вычисление агрегированного вектора вероятности путем агрегирования множества векторов вероятности, причем каждый числовой элемент агрегированного вектора вероятности отражает вероятность изображения, содержащего текст, связанный с системой письма, которая идентифицируется посредством индекса числового элемента в пределах агрегированного вектора вероятности; иcalculating an aggregated probability vector by aggregating a plurality of probability vectors, each numeric element of the aggregated probability vector reflecting a probability of an image containing text associated with a writing system, which is identified by an index of the numeric element within the aggregated probability vector; And с учетом определения того, что максимальный числовой элемент агрегированного вектора вероятности превышает предварительно определенное пороговое значение, делается вывод о том, что изображение документа содержит один или несколько символов, связанных с системой письма, которая идентифицируется посредством индекса максимального числового элемента в пределах агрегированного вектора вероятности.given the determination that the maximum numeric element of the aggregated probability vector exceeds a predetermined threshold value, it is concluded that the document image contains one or more characters associated with the writing system, which is identified by the index of the maximum numeric element within the aggregated probability vector. 12. Система по п. 11, в которой процессор дополнительно выполнен с возможностью:12. The system of claim 11, wherein the processor is further configured to: с учетом определения того, что максимальный числовой элемент агрегированного вектора вероятности меньше или равен предварительно определенному пороговому значению, делается вывод о том, что изображение документа содержит один или несколько символов, связанных с одной из следующих систем: первая система письма, которая идентифицируется посредством первого индекса максимального числового элемента в пределах агрегированного вектора вероятности, или вторая система письма, которая идентифицируется посредством второго индекса следующего наибольшего числового элемента в пределах агрегированного вектора вероятности.given the determination that the maximum numerical element of the aggregated probability vector is less than or equal to a predetermined threshold value, it is concluded that the document image contains one or more characters associated with one of the following systems: the first writing system, which is identified by the first index the maximum numeric element within the aggregated probability vector, or a second writing system that is identified by the second index of the next largest numeric element within the aggregated probability vector. 13. Система по п. 11, в которой каждый фрагмент изображения из множества фрагментов изображения представляет собой прямоугольный фрагмент изображения предварительно определенного размера.13. The system of claim. 11, wherein each sub-image of the plurality of sub-images is a rectangular sub-image of a predetermined size. 14. Система по п. 11, в которой процессор дополнительно выполнен с возможностью выполнять:14. The system of claim 11, wherein the processor is further configured to perform: рекурсивное разбиение на соответствующие субфрагменты изображения одного или нескольких фрагментов изображения, которые характеризуются нейронной сетью как содержащие текст, имеющий размер текста меньше минимального порогового размера.recursively splitting into corresponding image sub-fragments of one or more image fragments, which are characterized by the neural network as containing text having a text size less than the minimum threshold size. 15. Система по п. 11, в которой разбиение изображения документа на множество фрагментов изображения дополнительно включает в себя:15. The system of claim 11, wherein splitting the document image into a plurality of image fragments further includes: преобразование каждого фрагмента изображения из множества фрагментов изображения до предварительно определенного размера.converting each sub-image of the plurality of sub-images to a predetermined size. 16. Система по п. 11, в которой процессор дополнительно выполнен с возможностью выполнять:16. The system of claim 11, wherein the processor is further configured to perform: определение пространственной ориентации изображения документа с помощью нейронной сети, обрабатывающей множество фрагментов изображения.determining the spatial orientation of the document image using a neural network that processes a plurality of image fragments. 17. Машиночитаемый энергонезависимый носитель данных, включающий в себя исполняемые команды, которые при выполнении вычислительной системой обеспечивают выполнение вычислительной системой следующих операций:17. A machine-readable non-volatile data carrier, including executable instructions that, when executed by a computing system, ensure that the computing system performs the following operations: получение изображения документа;getting an image of the document; разбиение изображения документа на множество фрагментов изображения;splitting the document image into a plurality of image fragments; генерирование множества векторов вероятности посредством нейронной сети, обрабатывающей множество фрагментов изображения, причем каждый вектор вероятности из множества векторов вероятности создается путем обработки соответствующих фрагментов изображения и содержит множество числовых элементов, при этом каждый числовой элемент из множества числовых элементов отражает вероятность фрагмента изображения, содержащего текст, связанный с системой письма, которая идентифицируется посредством индекса числового элемента в соответствующем векторе вероятности;generating a plurality of probability vectors by means of a neural network processing a plurality of image fragments, wherein each probability vector of the plurality of probability vectors is created by processing the corresponding fragments of the image and contains a plurality of numeric elements, wherein each numeric element of the plurality of numeric elements reflects the probability of an image fragment containing text, associated with the writing system, which is identified by the index of the numeric element in the corresponding probability vector; вычисление агрегированного вектора вероятности путем агрегирования множества векторов вероятности, причем каждый числовой элемент агрегированного вектора вероятности отражает вероятность изображения, содержащего текст, связанный с системой письма, которая идентифицируется посредством индекса числового элемента в пределах агрегированного вектора вероятности; иcalculating an aggregated probability vector by aggregating a plurality of probability vectors, each numeric element of the aggregated probability vector reflecting a probability of an image containing text associated with a writing system, which is identified by an index of the numeric element within the aggregated probability vector; And с учетом определения того, что максимальный числовой элемент агрегированного вектора вероятности превышает предварительно определенное пороговое значение, делается вывод о том, что изображение документа содержит один или несколько символов, связанных с системой письма, которая идентифицируется посредством индекса максимального числового элемента в пределах агрегированного вектора вероятности.given the determination that the maximum numeric element of the aggregated probability vector exceeds a predetermined threshold value, it is concluded that the document image contains one or more characters associated with the writing system, which is identified by the index of the maximum numeric element within the aggregated probability vector. 18. Носитель данных по п. 17, дополнительно включающий в себя исполняемые команды, которые при выполнении вычислительной системой обеспечивают выполнение следующих операций:18. The storage medium of claim 17, further including executable instructions that, when executed by the computing system, perform the following operations: с учетом определения того, что максимальный числовой элемент агрегированного вектора вероятности меньше или равен предварительно определенному пороговому значению, делается вывод о том, что изображение документа содержит один или несколько символов, связанных с одной из следующих систем: первая система письма, которая идентифицируется посредством первого индекса максимального числового элемента в пределах агрегированного вектора вероятности, или вторая система письма, которая идентифицируется посредством второго индекса следующего наибольшего числового элемента в пределах агрегированного вектора вероятности.given the determination that the maximum numerical element of the aggregated probability vector is less than or equal to a predetermined threshold value, it is concluded that the document image contains one or more characters associated with one of the following systems: the first writing system, which is identified by the first index the maximum numeric element within the aggregated probability vector, or a second writing system that is identified by the second index of the next largest numeric element within the aggregated probability vector. 19. Носитель данных по п. 17, в котором разбиение изображения документа на множество фрагментов изображения дополнительно включает в себя:19. The storage medium of claim 17, wherein splitting the document image into a plurality of image fragments further includes: преобразование каждого фрагмента изображения из множества фрагментов изображения до предварительно определенного размера.converting each sub-image of the plurality of sub-images to a predetermined size. 20. Носитель данных по п. 17, дополнительно включающий в себя исполняемые команды, которые при выполнении вычислительной системой обеспечивают выполнение следующих действий:20. The storage medium of claim 17, further including executable instructions that, when executed by the computing system, perform the following actions: определение пространственной ориентации изображения документа с помощью нейронной сети, обрабатывающей множество фрагментов изображения.determining the spatial orientation of the document image using a neural network that processes a plurality of image fragments.
RU2021134180A 2021-11-23 2021-11-23 Identification of writing systems used in documents RU2792743C1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US17/534,704 US20230162520A1 (en) 2021-11-23 2021-11-24 Identifying writing systems utilized in documents

Publications (1)

Publication Number Publication Date
RU2792743C1 true RU2792743C1 (en) 2023-03-23

Family

ID=

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2643465C2 (en) * 2013-06-18 2018-02-01 Общество с ограниченной ответственностью "Аби Девелопмент" Devices and methods using a hierarchially ordered data structure containing unparametric symbols for converting document images to electronic documents
US9934430B2 (en) * 2013-06-09 2018-04-03 Apple Inc. Multi-script handwriting recognition using a universal recognizer
RU2703270C1 (en) * 2018-10-31 2019-10-16 Общество с ограниченной ответственностью "Аби Продакшн" Optical character recognition using specialized confidence functions, implemented on the basis of neural networks
RU2757713C1 (en) * 2020-11-24 2021-10-20 АБИ Девелопмент Инк. Handwriting recognition using neural networks

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9934430B2 (en) * 2013-06-09 2018-04-03 Apple Inc. Multi-script handwriting recognition using a universal recognizer
RU2643465C2 (en) * 2013-06-18 2018-02-01 Общество с ограниченной ответственностью "Аби Девелопмент" Devices and methods using a hierarchially ordered data structure containing unparametric symbols for converting document images to electronic documents
RU2703270C1 (en) * 2018-10-31 2019-10-16 Общество с ограниченной ответственностью "Аби Продакшн" Optical character recognition using specialized confidence functions, implemented on the basis of neural networks
RU2757713C1 (en) * 2020-11-24 2021-10-20 АБИ Девелопмент Инк. Handwriting recognition using neural networks

Similar Documents

Publication Publication Date Title
RU2691214C1 (en) Text recognition using artificial intelligence
Rahman et al. A new benchmark on american sign language recognition using convolutional neural network
RU2661750C1 (en) Symbols recognition with the use of artificial intelligence
CN111160343B (en) Off-line mathematical formula symbol identification method based on Self-Attention
Mithe et al. Optical character recognition
RU2757713C1 (en) Handwriting recognition using neural networks
RU2693916C1 (en) Character recognition using a hierarchical classification
Balaha et al. Automatic recognition of handwritten Arabic characters: a comprehensive review
RU2707147C1 (en) Neural network training by means of specialized loss functions
RU2768211C1 (en) Optical character recognition by means of combination of neural network models
Malik et al. An efficient segmentation technique for Urdu optical character recognizer (OCR)
Karunarathne et al. Recognizing ancient sinhala inscription characters using neural network technologies
Hamida et al. Handwritten computer science words vocabulary recognition using concatenated convolutional neural networks
Parikshith et al. Handwritten character recognition of kannada language using convolutional neural networks and transfer learning
Gupta et al. Machine learning tensor flow based platform for recognition of hand written text
Al Ghamdi A novel approach to printed Arabic optical character recognition
Hemanth et al. CNN-RNN BASED HANDWRITTEN TEXT RECOGNITION.
US11715288B2 (en) Optical character recognition using specialized confidence functions
RU2792743C1 (en) Identification of writing systems used in documents
CN113837157B (en) Topic type identification method, system and storage medium
Ganai et al. A novel holistic unconstrained handwritten urdu recognition system using convolutional neural networks
US20230162520A1 (en) Identifying writing systems utilized in documents
Dharsini et al. Devanagri character image recognition and conversion into text using long short term memory
Nasien et al. Off-line handwritten Korean letter using principle component analysis and back propagation neural network
RU2764705C1 (en) Extraction of multiple documents from a single image