RU2597163C2 - Comparing documents using reliable source - Google Patents
Comparing documents using reliable source Download PDFInfo
- Publication number
- RU2597163C2 RU2597163C2 RU2014144496/08A RU2014144496A RU2597163C2 RU 2597163 C2 RU2597163 C2 RU 2597163C2 RU 2014144496/08 A RU2014144496/08 A RU 2014144496/08A RU 2014144496 A RU2014144496 A RU 2014144496A RU 2597163 C2 RU2597163 C2 RU 2597163C2
- Authority
- RU
- Russia
- Prior art keywords
- document
- image
- documents
- compared
- character recognition
- Prior art date
Links
Images
Landscapes
- Character Discrimination (AREA)
- Processing Or Creating Images (AREA)
- Character Input (AREA)
Abstract
Description
ОБЛАСТЬ ТЕХНИКИFIELD OF TECHNOLOGY
[0001] Настоящее изобретение в целом относится к вычислительным устройствам для обработки электронных документов, а в частности - к сравнению и повышению качества документов.[0001] The present invention generally relates to computing devices for processing electronic documents, and in particular to comparison and improving the quality of documents.
УРОВЕНЬ ТЕХНИКИBACKGROUND
[0002] В документообороте, делопроизводстве и во многих аспектах ведения бизнеса встречается задача сравнения двух или нескольких документов, содержащих текст или другую информацию с целью определения их идентичности или поиска различий между анализируемыми документами. Решение этой задачи часто предполагает продуцирование электронного документа путем сканирования или получение изображения бумажного документа иным образом, а также выполнение оптического распознавания символов (OCR) для получения текста документа. При сравнении документов часто возникают ложные различия, связанные не с фактическим отличием между документами, а с неточностями процедуры распознавания символов.[0002] In document management, paperwork and in many aspects of doing business, the task is to compare two or more documents containing text or other information in order to determine their identity or to find differences between the analyzed documents. The solution to this problem often involves the production of an electronic document by scanning or obtaining an image of a paper document in another way, as well as performing optical character recognition (OCR) to obtain the text of the document. When comparing documents, false differences often arise, associated not with the actual difference between the documents, but with inaccuracies in the character recognition procedure.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙBRIEF DESCRIPTION OF THE DRAWINGS
[0003] Настоящее изобретение иллюстрируется с помощью примеров, а не методом ограничения. Для его полного понимания приведенное ниже описание предпочтительных вариантов реализации следует рассматривать в сочетании с чертежами, на которых:[0003] The present invention is illustrated by way of examples, and not by limitation. For its full understanding, the following description of preferred embodiments should be considered in conjunction with the drawings, in which:
[0004] На Фиг. 1 представлена блок-схема одного из вариантов реализации вычислительного устройства, работающего в соответствии с одним или более аспектами настоящего изобретения;[0004] FIG. 1 is a block diagram of one embodiment of a computing device operating in accordance with one or more aspects of the present invention;
[0005] Фиг. 2 иллюстрирует пример эталонного документа и сравниваемого с ним документа в соответствии с одним или более аспектами настоящего изобретения;[0005] FIG. 2 illustrates an example of a reference document and a comparable document in accordance with one or more aspects of the present invention;
[0006] Фиг. 3 иллюстрирует примеры повышения качества документов в соответствии с одним или более аспектами настоящего изобретения.[0006] FIG. 3 illustrates examples of improving the quality of documents in accordance with one or more aspects of the present invention.
[0007] На Фиг. 4 изображена блок-схема примера, иллюстрирующего способ 400 повышения качества и сравнения документов в соответствии с одним или более аспектами настоящего изобретения;[0007] In FIG. 4 is a flowchart of an example illustrating a method 400 for improving quality and comparing documents in accordance with one or more aspects of the present invention;
[0008] На Фиг. 5 иллюстрируется пример повышения качества и сравнения трех документов в соответствии с одним или более аспектами настоящего изобретения;[0008] In FIG. 5 illustrates an example of improving quality and comparing three documents in accordance with one or more aspects of the present invention;
[0009] На Фиг. 6 изображена более подробная схема иллюстративного примера вычислительного устройства, реализующего методы настоящего изобретения.[0009] In FIG. 6 is a more detailed diagram of an illustrative example of a computing device that implements the methods of the present invention.
ОПИСАНИЕ ПРЕДПОЧТИТЕЛЬНЫХ ВАРИАНТОВ РЕАЛИЗАЦИИDESCRIPTION OF PREFERRED EMBODIMENTS
[00010] Настоящее изобретение относится к способам и системам сравнения документов с использованием эталонного документа. Дальнейшее упоминание термина «документ» в настоящем описании изобретения относится к электронному документу, который можно получить, например, путем оцифровывания бумажного документа, и который содержит электронное изображение бумажного документа. Описанная ниже обработка документов относится к обработке изображений документов. Эталонный документ может представлять собой первоначальную или более раннюю версию документа, и он может считаться достоверным источником, поскольку может содержать высококачественный текстовый слой, практически не имеющий визуальных артефактов, которые негативно влияют на распознавание символов (OCR). Система сравнения документов может использовать эталонный документ для создания специальных словарей и преобразования разметки связанного с ним документа. Каждый эталонный словарь содержит список слов из определенной части документа (например, фрагмента текста или страницы). Для повышения качества процедуры распознавания символов могут использоваться эталонные словари и преобразования разметки. Это может привести к уменьшению количества ложных различий, которые могут возникнуть из-за неточности при распознавании символов, а не из-за фактических различий между документами.[00010] The present invention relates to methods and systems for comparing documents using a reference document. A further reference to the term “document” in the present description of the invention relates to an electronic document, which can be obtained, for example, by digitizing a paper document, and which contains an electronic image of a paper document. The document processing described below relates to image processing of documents. The reference document can be an initial or earlier version of the document, and it can be considered a reliable source, since it can contain a high-quality text layer with almost no visual artifacts that adversely affect character recognition (OCR). The document comparison system can use a reference document to create special dictionaries and convert the markup of a document associated with it. Each reference dictionary contains a list of words from a specific part of the document (for example, a fragment of text or page). Reference dictionaries and markup conversions can be used to improve the quality of character recognition procedures. This can lead to a reduction in the number of false differences that may arise due to inaccuracies in character recognition, and not due to actual differences between documents.
[00011] Система сравнения документов может преобразовать разметку сравниваемого документа, соотнеся ее с разметкой эталонного документа. Сравнение компоновок может включать в себя выбор в каждом документе реперных точек на основе реперов в изображении (например, слов или объектов) и обработку реперных точек для определения преобразования изображения. Затем система сравнения документов может преобразовать (например, с помощью линейного преобразования) соответствующий документ, чтобы исправить искажения и восстановить его разметку.[00011] The document comparison system may convert the markup of the document to be compared, correlating it with the markup of the reference document. Comparison of layouts may include selecting reference points in each document based on reference points in the image (for example, words or objects) and processing reference points to determine image conversion. The document comparison system can then convert (for example, using a linear transformation) the corresponding document to correct distortions and restore its markup.
[00012] В одном из примеров реализации эталонный документ может представлять собой имеющий юридическую силу договор, который был составлен в электронном формате и впоследствии преобразован в формат Portable Document Format (PDF). Сравниваемый документ может представлять собой версию имеющего юридическую силу договора, которая была изменена, напечатана, подписана и отсканирована. Сканирование документа может изменить документ путем введения, например, искажения перспективы. Это искажение может негативно повлиять на распознавание символов и может привести к ошибкам распознавания. Метод настоящего изобретения вводит итеративное сравнение, которое может включать в себя несколько операций распознавания символов и преобразование документа для уменьшения количества ложных различий.[00012] In one example implementation, the reference document may be a legally binding contract that has been compiled in electronic format and subsequently converted to Portable Document Format (PDF). The document to be compared may be a version of a legally binding contract that has been modified, printed, signed and scanned. Scanning a document can change the document by introducing, for example, distortion of perspective. This distortion can adversely affect character recognition and can lead to recognition errors. The method of the present invention introduces an iterative comparison, which may include several character recognition operations and document conversion to reduce false differences.
[00013] Различные аспекты упомянутых выше способов и систем подробно описаны ниже в этом документе с помощью примеров, а не для ограничения.[00013] Various aspects of the above methods and systems are described in detail later in this document by way of examples, and not for limitation.
[00014] На Фиг. 1 изображена блок-схема одного иллюстративного примера вычислительного устройства 100, работающего в соответствии с одним или более аспектами настоящего изобретения. В иллюстративных примерах вычислительное устройство 100 может быть представлено различными вычислительными устройствами, включая планшетный компьютер, смартфон, ноутбук или настольный компьютер.[00014] In FIG. 1 is a block diagram of one illustrative example of a
[00015] Вычислительное устройство 100 может содержать процессор 110, соединенный с системной шиной 120. Другие устройства, подключенные к системной шине 120, могут включать в себя память 130, дисплей 135, клавиатуру 140, оптическое устройство ввода 160 и один или более сетевых интерфейсов 165. Термин «подключенный» в этом документе означает электрическое соединение и/или обмен данными через одно или более интерфейсных устройств, адаптеров и т.п.[00015]
[00016] В различных иллюстративных примерах процессор 110 может быть представлен одним или более устройствами обработки, такими как универсальные и/или специализированные процессоры. Память 130 может представлять собой одно или более энергозависимых устройств памяти (например, микросхемы ОЗУ), одно или более энергонезависимых устройств памяти (например, микросхемы ПЗУ или ЭППЗУ) и/или одно или более устройств памяти (например, оптические или магнитные диски). Оптическое устройство ввода 160 может представлять собой сканер или фотокамеру, предназначенную для улавливания света, отраженного от объектов, расположенных в ее поле зрения. Пример вычислительного устройства, в котором реализованы аспекты настоящего изобретения, будет рассмотрен более подробно ниже в описании Фиг. 6.[00016] In various illustrative examples, the processor 110 may be represented by one or more processing devices, such as universal and / or specialized processors. The
[00017] В памяти 130 могут храниться команды модуля сравнения 190 для выполнения оптического распознавания символов. В некоторых реализациях изобретения модуль сравнения 190 может выполнять методы сравнения и преобразования документов в соответствии с одним или более аспектами настоящего изобретения. В качестве иллюстративного примера модуль сравнения 190 может быть реализован в виде функции, которая вызывается с помощью пользовательского интерфейса другого приложения. Кроме того, модуль сравнения 190 может быть реализован в виде отдельного приложения. В одном из примеров реализации память 130 может хранить несколько отдельных документов, которые затем сравниваются.[00017] In
[00018] На Фиг. 2 иллюстрируется пример эталонного документа 210 и сравниваемого документа 220, которые могут сравниваться друг с другом с помощью модуля сравнения 190, работающего в вычислительном устройстве 100 в соответствии с одним или более аспектами настоящего изобретения. Эталонный документ 210 может содержать графический элемент 212 и текстовый элемент 214, а сравниваемый документ может содержать аналогичные графические и текстовые элементы, которые могли быть искажены при оцифровке документа (например, при сканировании или получении изображения). Эти искажения могут, в частности, представлять собой сдвиг или поворот и/или визуальные артефакты 222: например, редкие черно-белые искажения (такие как т.н. «шум типа salt-and-pepper» или Гауссов шум).[00018] In FIG. 2 illustrates an example of a
[00019] Эталонный документ 210 и сравниваемый документ 220 могут быть похожи друг на друга. Например, сравниваемый документ 220 может быть другой версией (например, более ранней или более поздней версией) эталонного документа 210. Эталонный документ 210 может быть достоверным источником с текстовым слоем и разметкой более высокого качества и с меньшим числом визуальных артефактов 222, чем в сравниваемом документе 210. Визуальные артефакты 222 могут представлять собой шумы (например, «шум типа salt-and-pepper»), искажения, расфокусировку, блики и/или смазы. В одном примере реализации эталонный документ 210 может быть оцифрованным документом с высоким качеством и точностью изображения при минимальном количестве визуальных артефактов. В другом примере реализации эталонный документ 210 может представлять собой документ с фиксированной разметкой (например, в формате PDF или TIFF), преобразованный электронным образом из документа с редактируемой разметкой (например, DOC, ODF, RTF или ТХТ) без оцифровки. Электронная конвертация может включать в себя преобразование векторной графики в растровое изображение (например, пиксели или точки) для последующей цифровой обработки изображений, например, аналогично растеризации или трассировке лучей.[00019]
[00020] Как показано на Фиг. 2, модуль сравнения может проводить анализ документов и процедур OCR для оценки эталонного документа 210 и определения эталонной разметки 230 и эталонных словарей 240А-С. Анализ документа может определить эталонную разметку 230, которая может включать в себя местоположения (например, координаты), параметры и структуру элементов документа, таких как графический элемент 212 и текстовый элемент 214. В структуру элементов могут входить текстовые блоки 232А-С, колонки 234А-В, а также таблицы, верхние и нижние колонтитулы и другие элементы разметки. В одном примере эталонная разметка 230 и эталонные словари 240А-С строятся для каждого изображения документа (например, для каждой страницы эталонного документа).[00020] As shown in FIG. 2, the comparison module may analyze OCR documents and procedures to evaluate
[00021] Эталонные словари 240А-С могут строиться на базе процедуры OCR и/или анализа документа. Эталонные словари 240А-С могут включать в себя список слов, содержащихся в одной или более частях эталонного документа 210, и могут использоваться для повышения качества и/или проверки достоверности результатов оптического распознавания символов в сравниваемом документе 220. Каждый словарь может содержать список слов, который включает слова только из определенной части (например, страницы, фрагмента текста) эталонного документа. Как показано на Фиг. 2, эталонные словари 240А-С могут содержать списки слов из текстовых блоков 232А-С, соответственно. В другом примере реализации эталонный словарь может создаваться для конкретной страницы, колонки, таблицы, абзаца, ячейки или иной части документа.[00021] Reference dictionaries 240A-C may be constructed based on an OCR procedure and / or document analysis. Reference dictionaries 240A-C may include a list of words contained in one or more parts of
[00022] В качестве альтернативы эталонные словари 240А-С могут включать набор символов (например, алфавит, цифры и символы). Набор символов можно получить в результате осуществления процедур OCR и/или анализа документов. Набор символов может быть ограничен только символами, присутствующими в определенной части эталонного документа 210. Это ограничение можно использовать для второй процедуры оптического распознавания изображений документов, которые содержат, например, китайские, японские и/или корейские символы (CJK-символы), потому что ограниченный набор символов может включать только подмножество всех символов, например 200 символов из 40 ООО имеющихся символов. Символы, включенные в ограниченный набор символов, можно закодировать с помощью любой стандартной кодировки текста, такой как Unicode (например, UTF-8, UTF-16), ASCII, японской кодировки Shift-JIS или другой подобной кодировки текста.[00022] Alternatively, the reference dictionaries 240A-C may include a set of characters (eg, alphabet, numbers, and symbols). The character set can be obtained as a result of OCR and / or document analysis. The character set can be limited only by the characters present in a certain part of the
[00023] В одном примере реализации эталонные словари 240А-С могут включать в себя ограниченный список слов и ограниченный набор символов, каждый из которых может быть сформирован на основе определенной части изображения эталонного документа. Их можно использовать для повышения качества последующей (например, второй) процедуры распознавания символов в сравниваемом документе 220.[00023] In one example implementation, the reference dictionaries 240A-C may include a limited list of words and a limited set of characters, each of which can be generated based on a specific part of the image of the reference document. They can be used to improve the quality of the subsequent (eg, second) character recognition procedure in the document 220 being compared.
[00024] На Фиг. 3 приведен пример, иллюстрирующий процедуры повышения качества и сравнения. Пример содержит сравниваемый документ 220, который представлен изображениями 324А-С на различных этапах повышения качества. Процедура повышения качества может предполагать предварительную обработку изображения 350, сравнение 352, преобразование изображения 360 и расчет различия 362.[00024] FIG. 3 is an example illustrating quality improvement and comparison procedures. The example contains a comparable document 220, which is represented by images 324A-C at various stages of improving quality. The quality improvement procedure may involve preprocessing the
[00025] Предварительная обработка изображения 350 может изменить изображение 324А для получения изображения 324В, выполняя один или более этапов цифровой обработки изображения для повышения качества изображения. Она может включать бинаризацию, подавление шумов и/или другие аналогичные методы обработки изображения. Бинаризация может изменить изображение и преобразовать его в бинаризованное изображение (например, двухуровневое изображение), в котором для каждого пикселя, используются только два значения цвета, как правило, черный и белый цвета. Бинаризация изображения может быть произведена для полутоновых изображений или цветных изображений, с использованием определенного алгоритма, например, пороговой бинаризации изображения.[00025]
[00026] Пороговая бинаризация изображения может включать установку пороговых значений для пикселя или группы пикселей и оценку значений пикселей, чтобы определить, какое из двух значений будет назначено этому пикселю. В одном примере реализации для пороговой бинаризации изображения на основе кластеризации можно использовать метод Оцу. Этот алгоритм может вычислить оптимальное пороговое значение, разделяющее несколько классов так, чтобы их совместный разброс (дисперсия внутри класса) был минимальным. Его также можно использовать для выполнения многоуровневого разделения по порогу с использованием метода мульти-Оцу.[00026] Threshold binarization of an image may include setting threshold values for a pixel or group of pixels and evaluating pixel values to determine which of the two values will be assigned to that pixel. In one example implementation, the Otsu method can be used for threshold binarization of an image based on clustering. This algorithm can calculate the optimal threshold value dividing several classes so that their joint spread (dispersion within the class) is minimal. It can also be used to perform multi-level threshold separation using the multi-Otsu method.
[00027] Предварительная обработка изображения 350 также может включать снижение уровня шумов, которое может включать в себя удаление и/или уменьшение визуальных артефактов 222. Снижение уровня шумов может быть выполнено с использованием технологии снижения уровня шумов, такой как линейные или нелинейные сглаживающие фильтры и/или анизотропная диффузия. Некоторые другие методы предварительной обработки изображения могут включать удаление пятен из изображения, фильтрацию текстур, кадрирование полей страницы, выравнивание, изменение ориентации страницы, выпрямление линий, исправление перспективы, удаление смаза от движения, разделение по горизонтали расположенных рядом изображений, разделение отсканированной страницы с несколькими слайдами или визитными карточками на отдельные изображения и/или другие подобные методы.[00027]
[00028] Когда предварительная обработка изображения 350 завершена, вычислительное устройство 100 может произвести анализ для определения разметки и/или текста сравниваемого документа 220. Анализ может быть выполнен в несколько этапов, один этап может включать в себя анализ документа для определения разметки, тогда как другой этап может включать в себя выполнение OCR. На этапе OCR для распознавания текста может использоваться разметка, определенная при анализе документа. В одном примере реализации сначала может быть выполнен анализ документа, а после завершения анализа документа может быть выполнен этап OCR, а в другом примере реализации они могут выполняться параллельно.[00028] When the preliminary processing of the
[00029] Анализ может производиться с помощью любого инструмента анализа документов или методов распознавания символов. В одном из примеров реализации при анализе документов могут выдвигаться гипотезы в отношении разметки исходного документа. Такие гипотезы могут включать одну или более гипотез в отношении классификации и/или атрибутов различных элементов документа, находящихся в одной или более областях документа (например, в прямоугольных блоках). Например, по отношению к определенной области в документе система OCR проверяет следующие гипотезы: область содержит текст; область содержит рисунок; область содержит таблицу; область содержит схему; и область содержит изображение снимка экрана. Далее для получения разметки документа могут использоваться инструменты анализа документов и методы OCR.[00029] The analysis can be performed using any document analysis tool or character recognition method. In one implementation example, hypotheses regarding the markup of the source document may be put forward when analyzing documents. Such hypotheses may include one or more hypotheses regarding the classification and / or attributes of various elements of the document located in one or more areas of the document (for example, in rectangular blocks). For example, in relation to a specific area in a document, the OCR system tests the following hypotheses: the area contains text; the area contains a drawing; the area contains a table; the area contains a diagram; and the area contains a screenshot image. Further, document analysis tools and OCR methods can be used to obtain document markup.
[00030] Вычислительное устройство 100 также может выполнить сравнение 352 сравниваемого документа 220 и эталонного документа 210 (т.е. достоверного источника), чтобы определить соответствующие друг другу изображения (например, соответствующие страницы). Такое сравнение может представлять собой итеративное сравнение, при котором сравниваются разметки и/или текст документов. Сравнение разметок может включать в себя анализ сходства и различий в отношении количества, положения, параметров и/или расположения частей. Например, как показано на Фиг. 3, при сравнении сравниваемого документа 220 и эталонного документа 210 вычислительное устройство может определить, что изображения имеют одинаковое количество графических элементов и текстовых элементов, и что эти элементы имеют схожие параметры и расположение (местонахождение). Оно также может проанализировать расположение и определить, что графические элементы находятся в том же положении по отношению к абзацам, а именно, что они встроены в первый и последний абзацы страницы.[00030]
[00031] Сравнение 352 также может проанализировать текст, полученный после распознавании символов, которое обсуждалось выше, чтобы обнаружить соответствующие изображения документов. Анализ текста может быть основан на методике, определяющей степень сходства между строками символов для каждого изображения документа, например, путем определения количества совпавших строк символов (например, слов), и/или количества строк, которые не совпадают. Термин «соответствующие изображения» может означать, что изображения документа примерно соответствуют без точного совпадения. В одном примере реализации соответствующие изображения могут иметь одинаковое или близкое количество элементов. Эти элементы могут включать слова, текстовые блоки, блоки иллюстраций и т.д. В другом примере реализации соответствующие изображения могут быть представлены изображениями, в которых коэффициент совпадающих (например, соответствующих или связанных) слов превышает определенное значение. Методика определения совпадающих слов может включать расчет и сравнение расстояния редактирования для пар слов, и позволяет определять, например, приближенное соответствие строк или нечеткое соответствие строк.[00031] Comparison 352 can also analyze the text obtained after character recognition, which was discussed above, to detect appropriate images of documents. Text analysis can be based on a technique that determines the degree of similarity between lines of characters for each image in a document, for example, by determining the number of matching lines of characters (e.g. words), and / or the number of lines that do not match. The term “matching images” may mean that the images of a document are approximately consistent without an exact match. In one example implementation, the corresponding images may have the same or similar number of elements. These elements may include words, text blocks, illustration blocks, etc. In another example implementation, the corresponding images may be represented by images in which the coefficient of matching (e.g., matching or related) words exceeds a certain value. The technique for determining matching words can include calculating and comparing the editing distance for pairs of words, and allows you to determine, for example, approximate line matching or fuzzy line matching.
[00032] Значение расстояния редактирования может быть целым числом, которое количественно определяет различие между двумя строками. Значение расстояния редактирования может быть получено путем подсчета минимального количества операций, необходимых для преобразования одной строки символов в другую строку символов. Расстояние редактирования можно рассчитать с использованием любого метода, например, метрики Левенштейна. Метрика Левенштейна позволяет вычислить расстояние редактирования путем измерения количества случаев редактирования одиночных символов, необходимых для изменения одного слова в другое слово. В одном примере реализации метрика Левенштейна может измерять только следующие операции: удаление одного символа, вставку одного символа и замену одного символа на другой символ без учета других операций, таких как перестановка двух соседних символов.[00032] The edit distance value may be an integer that quantifies the difference between the two lines. The value of the editing distance can be obtained by counting the minimum number of operations required to convert one character string to another character string. Editing distance can be calculated using any method, for example, Levenshtein metrics. The Levenshtein metric allows you to calculate the editing distance by measuring the number of single character editing cases required to change one word into another word. In one implementation example, the Levenshtein metric can only measure the following operations: deleting one character, inserting one character and replacing one character with another character without taking into account other operations, such as permuting two adjacent characters.
[00033] Пару слов можно рассматривать как совпадение, если расстояние редактирования меньше порогового значения, которое может быть определено на основе относительного предела, абсолютного предела или комбинации первого и второго. Относительный предел может быть основан на длине слова поиска, и может быть представлен как отношение расстояния редактирования к длине строки, например, 1:N, где N представляет собой количество символов в слове (например, 2, 3, 4, 5). В одном примере относительным пределом может быть соотношение 1:3 от длины слова поиска, при этом слово с девятью символами может содержать три ошибки и считаться приближенным соответствием. В дополнение к относительному пределу или в качестве альтернативы ему можно использовать абсолютный предел различий независимо от длины строки. Например, если имеется более X различий, то пара слов не может рассматриваться как совпадение. В этом случае X может иметь значение между 1 и 10, например 3. Это значение выбирается на основании эмпирического анализа.[00033] A pair of words can be considered a coincidence if the editing distance is less than a threshold value that can be determined based on a relative limit, an absolute limit, or a combination of the first and second. The relative limit can be based on the length of the search word, and can be represented as the ratio of the editing distance to the length of the string, for example, 1: N, where N represents the number of characters in the word (for example, 2, 3, 4, 5). In one example, the relative limit may be 1: 3 of the length of the search word, while a nine-character word may contain three errors and be considered an approximate match. In addition to the relative limit or as an alternative to it, you can use the absolute limit of differences regardless of the length of the string. For example, if there are more than X differences, then a pair of words cannot be considered a coincidence. In this case, X may have a value between 1 and 10, for example 3. This value is selected based on empirical analysis.
[00034] Вычислительное устройство может использовать приблизительное сопоставление строк, которое обсуждалось выше, при выдвижении гипотезы похожести о том, что изображения отдельных документов являются соответствующими, например, являются ли они связанными или похожими друг на друга (например, если один документ является более поздней версией другого документа, или если оба документа имеют общий исходный документ). Гипотеза похожести может быть основана на количестве совпадающих слов и/или на количестве слов, которые не совпадают согласно описанным выше расчетам. Аналогично случаю совпадения слов соответствие изображений (уровень соответствия) может также иметь пороговое значение. Порог может установить предельное значение, выраженное в виде количества или процентного отношения совпадающих слов, используемых для определения того, что изображения документов совпадают (соответствуют). В одном примере реализации гипотеза может быть основана только на части слов в изображении, например, только на длинных словах, а не на каждом слове изображения. Длинными словами могут быть слова с количеством символов, превосходящим заданное значение (например, 3, 4, 5 символов). Используя сравнение длинных слов, можно исключить многочисленные ложные различия, которые чаще происходят в коротких словах.[00034] A computing device may use the approximate string matching discussed above to hypothesize the similarity that images of individual documents are relevant, for example, whether they are related or similar to each other (for example, if one document is a later version another document, or if both documents have a common source document). The similarity hypothesis can be based on the number of matching words and / or the number of words that do not match according to the above calculations. Similarly to the case of matching words, the correspondence of images (level of correspondence) can also have a threshold value. The threshold can set a limit value, expressed as the number or percentage of matching words used to determine that images of documents match (match). In one implementation example, a hypothesis can be based only on a part of the words in the image, for example, only on long words, and not on each word of the image. Long words can be words with a number of characters exceeding a given value (for example, 3, 4, 5 characters). Using a comparison of long words, you can eliminate the many false differences that occur more often in short words.
[00035] После того как вычислительное устройство 100 обнаруживает соответствующие изображения в эталонном документе, оно может перейти к вычислению функции преобразования разметки путем определения реперных точек внутри каждого из соответствующих изображений. В одном примере реализации вычислительное устройство может определить реперные точки во время выполнения путем идентификации реперов в изображении, таких как определенное слово или словосочетание. Слова или словосочетание могут быть уникальными, поскольку они появляются один раз на каждом из соответствующих изображений и, следовательно, могут оказаться полезными для сопоставления соответствующих изображений.[00035] After the
[00036] При использовании слов как реперов изображения реперные точки могут находиться в центрах слов. Вычислительное устройство может аппроксимировать центр слова, определяя прямоугольные размеры слова и используя центр прямоугольных размеров в качестве реперной точки. В одном примере реализации процедура OCR может предоставить вычислительному устройству координаты прямоугольников, которые включают (например, охватывают) слова. Как показано на Фиг. 3, вычислительное устройство 100 может анализировать эталонный документ 210 и определить три уникальных (или самых длинных) слова, которые будут играть роль реперов изображения, представленных в виде прямоугольников 314А-С. В центрах прямоугольников находятся реперные точки 316А-С, соответственно.[00036] When using words as reference frames, reference points may be located in the centers of words. The computing device can approximate the center of the word by determining the rectangular dimensions of the word and using the center of the rectangular dimensions as a reference point. In one example implementation, the OCR procedure may provide the computing device with the coordinates of the rectangles that include (eg, span) the words. As shown in FIG. 3, the
[00037] Вычислительное устройство может определить, что пара соответствующих изображений может иметь несколько уникальных реперов изображений и таким образом несколько вариантов реперных точек. Реперные точки можно определить, используя абсолютные или относительные координаты, и определить двумерную плоскость по трем точкам, не лежащим на одной прямой. Эти точки могут определить треугольник с эталонной структурой, например, эталонную структуру 318, определяемую реперными точками 316А-С.[00037] The computing device may determine that a pair of corresponding images may have several unique image frames and thus multiple variations of reference points. Reference points can be determined using absolute or relative coordinates, and a two-dimensional plane can be determined from three points not lying on one straight line. These points can define a triangle with a reference structure, for example, a
[00038] При выборе между несколькими возможными реперными точками вычислительное устройство может выбрать реперные точки, максимально удаленные друг от друга. Использование удаленных друг от друга точек позволяет повысить устойчивость преобразования к ошибкам, которые возникают из-за зернистости системы координат, поэтому удаленные точки могут повысить точность преобразования. Определение наиболее удаленных точек может быть основано на выборе набора реперных точек из числа нескольких кандидатов на реперные точки, которые определяют эталонную структуру 318, имеющую максимальный размер (например, наибольшую площадь и/или наибольший периметр).[00038] When choosing between several possible reference points, the computing device can select the reference points as far as possible from each other. The use of points that are remote from each other makes it possible to increase the stability of the transformation against errors that arise due to the granularity of the coordinate system, so remote points can increase the accuracy of the conversion. The determination of the most distant points can be based on the selection of a set of reference points from among several candidates for reference points that define a
[00039] Множество реперных точек 316А-С в эталонном документе 210 может иметь соответствующий набор реперных точек в сравниваемом документе 220. Два набора реперных точек можно сравнивать, чтобы определить линейную или геометрическую функцию преобразования. Функция преобразования может содержать систему линейных и/или геометрических уравнений, которые можно суммировать с помощью матрицы преобразования (например, матрицы 2×2).[00039] The plurality of reference points 316A-C in
[00040] Ниже приведен пример уравнения линейного преобразования:[00040] The following is an example of a linear transformation equation:
Уравнение линейного преобразованияLinear transformation equation
matrix of linear transformation; matrix of linear transformation;
- координаты реперной точки X в изображении эталонного документа; - coordinates of the reference point X in the image of the reference document;
- координаты реперной точки Y в изображении эталонного документа; - coordinates of the reference point Y in the image of the reference document;
- координаты реперной точки Z в изображении эталонного документа; - coordinates of the reference point Z in the image of the reference document;
- координаты реперной точки X′ в сравниваемом изображении; - coordinates of the reference point X ′ in the compared image;
- координаты реперной точки Y′ в сравниваемом изображении; - coordinates of the reference point Y ′ in the compared image;
- координаты реперной точки Z′ в сравниваемом изображении; - coordinates of the reference point Z ′ in the compared image;
[00041] Оно состоит из двух наборов реперных точек, причем каждый набор включает по меньшей мере три точки. Каждая реперная точка может содержать по меньшей мере две координаты, например, . Координаты могут измеряться в любой системе координат, которая может использоваться для идентификации точки в двумерном пространстве, например, в декартовой системе координат или в полярной системе координат.[00041] It consists of two sets of reference points, with each set comprising at least three points. Each reference point may contain at least two coordinates, for example, . Coordinates can be measured in any coordinate system that can be used to identify a point in two-dimensional space, for example, in a Cartesian coordinate system or in a polar coordinate system.
[00042] После определения функции преобразования вычислительное устройство 100 может выполнять преобразование изображения 360, при котором может применяться функция преобразования изображений для изменения разметки, текста и/или графических элементов сравниваемого документа 220 в соответствии с разметкой изображения эталонного документа. Как показано на Фиг. 3, преобразование изображения 360 может изменить изображение 324b путем поворота текста и графики на 5 градусов против часовой стрелки и сдвига их вниз, в результате получается изображение 324С.[00042] After determining the conversion function, the
[00043] После применения функции преобразования вычислительное устройство 100 может выполнить проверку качества результатов преобразования изображения. Проверка может включать выбор дополнительного набора реперных точек в эталонном документе 210, которые отличаются от первого набора реперных точек. На основе этих новых точек вычислительное устройство 100 может выбирать соответствующие точки в сравниваемом документе 220 и преобразовать изображение, используя предыдущую функцию преобразования. Если результирующие точки в связанном изображении находятся в пределах порогового расстояния от соответствующего репера в изображении, например, внутри охватывающего слово прямоугольника или в непосредственной близости от прямоугольника, то функция может определить, что функция преобразования является правильной. В противном случае вычислительное устройство может определить, что функция преобразования является неправильной.[00043] After applying the conversion function, the
[00044] Если определено, что функция преобразования является некорректной, то можно выбрать новый набор реперов изображения. Описанные выше процедуры могут быть повторены с использованием нового набора реперных точек, полученных из новых реперов. Они могут включать определение, применение и проверку нескольких новых функций преобразования, пока не будет найдена правильная функция преобразования или пока число неудачных попыток не достигнет порога (например, 2, 3, 4, 5 или больше попыток).[00044] If it is determined that the conversion function is incorrect, then a new set of image frames can be selected. The procedures described above can be repeated using a new set of reference points obtained from new benchmarks. These may include identifying, applying, and testing several new conversion functions until the correct conversion function is found or until the number of failed attempts reaches a threshold (for example, 2, 3, 4, 5, or more attempts).
[00045] После определения того, что результаты преобразования изображения являются корректными, вычислительное устройство 100 может повторно запустить процедуру распознавания символов (например, OCR) в преобразованной версии сравниваемого документа 220. Вторая процедура распознавания символов может дать результаты текста, который имеют меньшую погрешность распознавания. Эти результаты могут заместить результаты первой процедуры распознавания символов, и их можно использовать для последующего расчета различия 362.[00045] After determining that the image conversion results are correct, the
[00046] Процесс с этапами сравнения и преобразования может быть итеративным. В одном примере реализации вычислительное устройство может выполнять итерации в состоящем из нескольких частей документе, последовательно обрабатывая изображение за изображением (страницу за страницей), при этом возможен выбор изображения из каждого документа и их сравнение, а затем переход к другому изображению в каждом документе и их сравнение. Если изображения совпадают (при этом говорят о соответствующих изображениях), то можно приступить к преобразованию изображения и повторно распознать символы, если они не совпадают (не имеют соответствия), то можно пропустить этапы преобразования и второго распознавания символов и начать вычисление, фильтрацию и классификацию различий (на основе результата распознавания символов на первом этапе), что описано более подробно ниже. В другом примере реализации итерационное сравнение может включать выбор изображения (например, страницы) из сравниваемого документа 220 или из эталонного документа 210, и последующее сравнение его с несколькими изображениями (например, страницами) из другого документа, пока не будет обнаружено соответствие, либо изображения (например, страницы) другого документа будут исчерпаны, и в этот момент итерационное сравнение перейдет к следующей части и выполнит аналогичную серию сравнений.[00046] A process with comparison and conversion steps may be iterative. In one example implementation, the computing device can iterate through a document consisting of several parts, sequentially processing image after image (page by page), while it is possible to select an image from each document and compare them, and then move to another image in each document and their comparison. If the images match (while talking about the corresponding images), then you can start converting the image and re-recognize the characters, if they do not match (do not match), then you can skip the steps of the conversion and the second character recognition and begin to calculate, filter and classify the differences (based on the result of character recognition in the first stage), which is described in more detail below. In another example implementation, iterative comparison may include selecting an image (e.g., a page) from the document being compared 220 or from a
[00047] На Фиг. 4 приведена блок-схема одного иллюстративного примера способа 400 обработки электронных документов в соответствии с одним или более аспектами настоящего изобретения. Способ 400 и/или каждая из его отдельных функций, процедур, подпрограмм или операций может выполняться одним или более процессорами компьютерного устройства (например, вычислительного устройства 100 на Фиг. 1) и/или каждая из его отдельных функций, программ, подпрограмм или операций может выполняться одним или более процессорами компьютерного устройства (например, вычислительного устройства 100 на Фиг. 1), на котором выполняется этот способ. В некоторых реализациях изобретения способ 400 может выполняться с помощью одного потока обработки. При альтернативном подходе способ 400 может выполняться с помощью двух или более потоков обработки, причем каждый поток обработки выполняет одну или более отдельных функций, процедур, подпрограмм или операций способа. В одном из примеров рабочие процессы или потоки обработки способа 400 могут быть синхронизированы (например, с использованием семафоров, критических секций и/или других механизмов синхронизации потоков).[00047] FIG. 4 is a flow chart of one illustrative example of a method 400 for processing electronic documents in accordance with one or more aspects of the present invention. Method 400 and / or each of its individual functions, procedures, subprograms or operations may be performed by one or more processors of a computer device (eg,
[00048] В блоке 410 вычислительное устройство 100 может принимать несколько электронных документов, например, эталонных документов 210 и сравниваемых документов 220. Документы 210 и 220 могут поступать из разных источников и храниться в разных местах. В одном примере реализации пользователь может вручную выбирать документы 210 и 220, предоставляя информацию о их местоположении вычислительному устройству 100. В другом примере реализации вычислительное устройство 100 может автоматически получать сравниваемый документ от устройства оцифровывания (например, сканера), при этом пользователь не предоставляет информацию о местоположении, а впоследствии может забрать соответствующий эталонный документ из хранилища документов автоматически, используя любой известный метод классификации. Хранилище документов может быть доступно вычислительному устройству, оно может находиться в вычислительном устройстве или в удаленном устройстве (например, на сервере компании, стороннем сервере).[00048] In block 410, the
[00049] В блоке 415 вычислительное устройство 100 также может выполнять предварительную обработку изображения для одного или более документов с целью повышения качества изображения. Затем вычислительное устройство может проанализировать документы, как показано в блоке 420, для определения разметки изображения документа, например, расположения текстовых блоков.[00049] At
[00050] В блоке 425 вычислительное устройство 100 также может выполнять первую процедуру распознавания символов. Процедура первого распознавания символов может выполняться после завершения анализа документа, и использовать результаты анализа документа, чтобы определить местонахождение частей документа, которые могут включать текст. Затем процедура первого распознавания символов может проанализировать эти части, чтобы получить результаты в виде текста.[00050] At block 425,
[00051] В блоке 430 вычислительное устройство 100 может итеративно сравнивать изображения документа (например, страницы), чтобы выявить соответствующие изображения (например, страницы). Такой результат может достигать путем выбора изображения (например, страницы или части страницы) из каждого документа и сравнения их, например, исходя из результатов определения разметки и текста для фрагментов текста 420 и 425. Такое сравнение может включать сравнение текстов, которое вычисляет расстояние редактирования для нескольких пар слов. Такое сравнение может учитывать только длинные слова, имеющие количество символов, превышающее заранее заданное число, и игнорировать более короткие слова.[00051] At
[00052] В блоке 440 вычислительное устройство 100 может определить, соответствует ли изображение эталонного документа (например, страниц) изображению сравниваемого документа (например, страниц). Поскольку эта процедура предназначена для определения различий, изображения документов могут соответствовать приблизительно в отличие от точного совпадения, как описано выше. Если изображения не совпадают, то способ переходит к блоку 470 и проверяет наличие дополнительных изображений для сравнения. В противном случае способ переходит к блоку 450.[00052] At block 440,
[00053] В блоке 450 вычислительное устройство 100 может преобразовывать изображения (например, страницы) сравниваемого документа, чтобы устранить искажения, которые могли быть введены во время оцифровки. Такое преобразование может включать анализ реперных точек в обоих документах для расчета функции преобразования, а затем применение этой функции преобразования к части документа (например, к странице).[00053] At block 450,
[00054] В блоке 460 вычислительное устройство может выполнить вторую процедуру распознавания символов (например, повторно запустить распознавание символов) в сравниваемом документе с использованием специальных словарей, полученных из эталонного документа (например, словаря для фрагмента текста или словаря для страницы). Второе распознавание символов может быть выполнено после преобразования сравниваемого документа 220 в отличие от первого распознавания символов, которое выполняется до преобразования. Результаты второго распознавания символов могут иметь меньше неточностей по сравнению с первым распознаванием символов, поскольку преобразованный документ может иметь меньше искажений. Вычислительное устройство может заменить результаты первой процедуры распознавания символов изображения сравниваемого документа результатами второй процедуры распознавания символов. Поэтому использование этих результатов может приводить к меньшему количеству ложных различий.[00054] At
[00055] В блоке 470 вычислительное устройство может вычислять различия и устранить, отфильтровать и классифицировать остающиеся различия. Вычислительное устройство 100 может рассчитать различия, используя метод сравнения, такой как метод, используемый в утилите diff для среды Unix или программа WinMerge для среды Microsoft. Эти различия не являются окончательными, они могут также включать одну или более дополнительных итераций проверки, сортировки и удаления незначительных расхождений. Часть различий может быть вызвана расхождениями OCR из-за неточностей в подсистеме OCR, а не фактическими различиями между документами. Расхождения OCR могут быть вызваны дефектами в сравниваемых документах, например, в виде смаза, расфокусировки текста, блика или чрезмерных шумов. В некоторых вариантах реализации изобретения эти дефекты могут быть вызваны сканированием или фотографированием текста. В одном примере реализации расхождения OCR можно уменьшить путем сравнения строк (например, слов), которые различаются в сравниваемых документах. Если различающиеся символы графически похожи, то весьма вероятно, что эти расхождения были вызваны особенностями распознания. Если несоответствие состоит из визуально похожих символов, имеющих разные коды Unicode, то такое несоответствие также считается незначительным и может не показываться пользователю. Ниже приведены примеры различий, вызванных визуальным сходством символов: буква «О» и цифра ноль «0»; различия в алфавитах, такие как буквы «АВС» в кириллице и подобные буквы «АВС» в латинице; различия, вызванные разной шириной символов, такие как тире и дефисы различной длины; фиксированный интервал и обычные иероглифы; доли в виде ¾ и 3/4 и т.д.[00055] At
[00056] После устранения расхождений вычислительное устройство может фильтровать и классифицировать остающиеся различия. Фильтрация различий предназначена для удаления ложных или незначительных различий, а классификация используется для определения категории и уточнения типов изменений. Классификация различий может включать, например, выявление или кластеризацию типов существенных изменений, таких как «вставка», «удаление», «изменение текста» и т.д. Они могут отображаться пользователю, чтобы позволить пользователю быстро определить визуально, какие типы получаемых несоответствий имеют значение для него, и какие являются несущественными. Например, несоответствие типа «символ X изменяется на символ Y» может быть незначительным для пользователя, в то время как несоответствие типа «слово А изменено на слово В» может быть значительным. В некоторых вариантах реализации изобретения список различий, которые были определены как незначительные, может отображаться пользователю. Такой список может представляться иным образом (например, отображаться только после выбора пользователем, отображаться ниже в интерфейсе, и т.д.), чем в списке существенных различий. В одном примере расчет различий и устранение, фильтрация и классификация оставшихся разногласий может использовать метод, описанный в российской заявке на патент 2013156257 с названием «Устройство и способ поиска различий в документах», содержание которой включено в настоящее описание посредством ссылки.[00056] After resolving the differences, the computing device can filter and classify the remaining differences. Difference filtering is designed to remove false or minor differences, and classification is used to categorize and refine types of changes. Classification of differences may include, for example, identifying or clustering types of significant changes, such as “insert”, “delete”, “change text”, etc. They can be displayed to the user in order to allow the user to quickly determine visually which types of inconsistencies they receive are important to them and which are not significant. For example, a mismatch of the type “symbol X is changed to Y” may be minor for the user, while a mismatch of the type “word A changed to word B” may be significant. In some embodiments of the invention, a list of differences that have been identified as minor may be displayed to the user. Such a list can be presented in a different way (for example, displayed only after a user selects it, displayed below in the interface, etc.) than in the list of significant differences. In one example, calculating differences and resolving, filtering, and classifying remaining differences may use the method described in Russian Patent Application 2013156257 entitled “Device and Method for Finding Differences in Documents”, the contents of which are incorporated herein by reference.
[00057] В блоке 480 вычислительное устройство 100 может анализировать документ, чтобы определить, имеют ли документы дополнительные части (например, изображения/страницы), которые еще не были проанализированы. При наличии дополнительных изображений вычислительное устройство 100 может перейти в блок 430, чтобы сравнить другой набор страниц. При отсутствии дополнительных изображений оно может перейти к блоку 490.[00057] At block 480,
[00058] В блоке 490 остающиеся различия могут быть представлены пользователю в виде измененного изображения с наложенными аннотациями, и/или в виде текстового списка различий. Например, система может быть настроена на определение режима отображения пользователю результатов проведенного сравнения. Отображение результатов сравнения может также предоставляться по умолчанию в настройках. Согласно некоторым вариантам реализации изобретения функция отображения пользователю может быть выбрана для настроек, чтобы обеспечить как можно больше точных деталей о результатах проведенного анализа, содержащего все найденные различия, включая различия, вызванные неточными результатами OCR. Кроме того, пользователь может вручную выбрать типы существенных расхождений, которые должны включаться в окончательный список расхождений, и тех расхождений, которые могут быть удалены из этого списка. В некоторых вариантах реализации могут быть установлены различные вариации найденных расхождений.[00058] In
[00059] Результаты сравнения документа могут отображаться, например, путем отображения областей различий на экране или распечатки. При обнаружении расхождений в документах та конкретная область (текст), где расположены эти различия, выделяется цветом. Тип обнаруженных различий может сообщаться пользователю определенным цветом области. В некоторых вариантах реализации цвет области может предоставляться пользователю заранее в заданных параметрах. Например, желтый цвет может быть сигналом того, что в этой области были обнаружены различия типа «удаление», в то время как красный цвет может указывать на «вставки» и т.д. В некоторых примерах реализации изобретения, если изменение обнаружено внутри одного слова, все слово выделяется желтым цветом, а измененный символ в нем выделяется красным цветом. В различных вариантах реализации изобретения могут использоваться различные другие способы представления различия (например, визуальное представление).[00059] The results of a document comparison can be displayed, for example, by displaying areas of difference on a screen or by printing. If discrepancies are found in the documents, that specific area (text) where these differences are located is highlighted. The type of differences detected can be reported to the user in a specific area color. In some embodiments, the color of the region may be provided to the user in advance at predetermined parameters. For example, yellow may indicate that “delete” differences have been detected in this area, while red may indicate “inserts,” etc. In some embodiments of the invention, if a change is found within one word, the entire word is highlighted in yellow, and the changed character in it is highlighted in red. In various embodiments of the invention, various other methods of representing differences (e.g., visual presentation) may be used.
[00060] На Фиг. 5 показан пример, иллюстрирующий процедуру повышения качества документа и сравнения для трех или более документов. В этом случае можно сравнить первый сравниваемый документ 220, второй сравниваемый документ 520 и эталонный документ 510, чтобы определить различия 570. Вычислительное устройство 100 может динамически выбрать эталонный документ 510 из хранилища документов 512 во время выполнения. Динамический выбор может быть основан на классификации одного или более сравниваемых документов 220 и 520. Как уже говорилось выше, эталонный документ 510 может быть более ранней версией документа, в этом случае классификацию можно использовать для определения исходного документа и/или наиболее похожей версии (например, самой последней). В другом примере вычислительное устройство может не иметь доступа к исходному документу или более ранней версии, и оно может использовать классификацию для выявления общего эталонного документа (например, шаблона). Общий эталонный документ может быть слабо связан со сравниваемым документом в том отношении, что сравниваемый документ не может быть получен из общего эталонного документа. Несмотря на это, общий эталонный документ может иметь разметку, аналогичную разметке сравниваемых документов 220 и 520, например, общий эталонный документ может быть изображением стандартного договора, паспорта, визитной карточки, слайда из презентации, документа Word или другого аналогичного документа. Классификация сравниваемого документа (сравниваемых документов) может быть основана на любой известной методике, например, на морфологическом анализе изображений.[00060] FIG. 5 is an example illustrating a procedure for improving document quality and comparison for three or more documents. In this case, the first compared document 220, the second compared document 520 and the
[00061] После получения эталонного документа 510 вычислительное устройство может выполнять действия, подобные действиям, которые выполняются со сравниваемым документом 220 на Фиг. 3. Кроме того, оно может выполнять такие же этапы или этапы обработки, в основном аналогичные этапам для сравниваемого документа 520. Вычислительное устройство может выполнять описанные действия параллельно, например, предварительная обработка изображения 350 и преобразование изображения 360 могут быть аналогичны и осуществляться параллельно с предварительной обработкой изображения 550 и преобразованием изображения 560, соответственно. Аналогичным образом, сравнение 551 и расчет различий 562 могут выполняться параллельно со сравнением 552 и вычислением различий 564.[00061] After receiving the
[00062] В другом примере реализации, который не показан, эталонный документ 510 может использоваться для преобразования сравниваемых документов 220 и 520 без использования расчета различий. Таким образом, различия 570 могут существовать между сравниваемыми документами, а не между сравниваемым документом и эталонным документом. В этом случае эталонный документ может использоваться для преобразования изображений и повторного запуска распознавания OCR, но он не требуется для любых последующих шагов сравнения.[00062] In another example implementation, which is not shown, the
[00063] На Фиг.6 показана более подробная схема примера вычислительного устройства 600, внутри которого имеется набор команд, который может заставить вычислительное устройство выполнить любой один или более методов, описанных в данном документе. Вычислительное устройство 600 может включать те же компоненты, что и вычислительное устройство 100 на Фиг. 1, а также некоторые дополнительные или другие компоненты, некоторые из которых могут быть необязательными для обеспечения аспектов настоящего изобретения. Вычислительное устройство может быть подключено к другому вычислительному устройству по локальной сети, корпоративной сети, сети экстранет или сети Интернет. Вычислительное устройство может работать в качестве сервера или клиента в сетевой среде «клиент/сервер», или в качестве однорангового вычислительного устройства в одноранговой (или распределенной) сетевой среде. Вычислительное устройство может быть предоставлено в виде персонального компьютера (ПК), планшетного компьютера, приставки (STB), персонального цифрового помощника (PDA), сотового телефона или любого вычислительного устройства, способного выполнять набор команд (последовательно или иным образом), определяющих операции, которые должны быть выполнены этим вычислительным устройством. Кроме того, в то время как показано только одно вычислительное устройство, термин «вычислительное устройство» также включает в себя любую совокупность вычислительных устройств, которые по отдельности или совместно выполняют набор (или несколько наборов) команд для реализации любого метода или методов, приведенных в данном описании.[00063] FIG. 6 shows a more detailed diagram of an
[00064] Пример вычислительного устройства 600 включает в себя процессор 602, оперативную память 604 (например, постоянное запоминающее устройство (ПЗУ) или динамическую оперативную память (DRAM)) и устройство хранения данных 618, которые взаимодействуют друг с другом через шину 630.[00064] An
[00065] Процессор 602 может быть представлен одним или более универсальными устройствами обработки данных, такими как микропроцессор, центральный процессор и т.п. В частности, процессор 602 может представлять собой микропроцессор с полным набором команд (CISC), микропроцессор с сокращенным набором команд (RISC), микропроцессор со сверхдлинным командным словом (VLIW) или процессор, в котором реализованы другие наборов команд, или процессоры, в которых реализована комбинация наборов команд. Процессор 602 также может представлять собой одно или более устройств обработки специального назначения, такие как специализированная интегральная схема (ASIC), программируемая пользователем вентильная матрица (FPGA), процессор цифровых сигналов (DSP), сетевой процессор или тому подобное. Процессор 602 настроен на выполнение команд 622 для выполнения операций и функций, описанных в этом описании изобретения.[00065] The processor 602 may be represented by one or more universal data processing devices, such as a microprocessor, central processing unit, and the like. In particular, processor 602 may be a full instruction set microprocessor (CISC), an abbreviated instruction set microprocessor (RISC), an extra long instruction word microprocessor (VLIW), or a processor that implements other instruction sets or processors that implement combination of instruction sets. Processor 602 may also be one or more special-purpose processing devices, such as application specific integrated circuit (ASIC), field programmable gate array (FPGA), digital signal processor (DSP), network processor, or the like. The processor 602 is configured to execute instructions 622 to perform the operations and functions described in this description of the invention.
[00066] Компьютерное устройство 600 может дополнительно включать устройство сетевого интерфейса 608, блок видеодисплея 610, устройство ввода символов 612 (например, клавиатуру), устройство управления курсором 614 и генератор сигналов.[00066] The
[00067] Устройство хранения данных 618 может включать машиночитаемый носитель данных 624, в котором хранится один или более наборов команд 622, в котором реализован один или несколько методов или функций, описанных в данном описании изобретения. Команды 622 также могут находиться полностью или по меньшей мере частично в основной памяти 604 и/или в процессоре 602 при выполнении их вычислительным устройством 1000, причем оперативная память 604 и процессор 602 также составляют машиночитаемый носитель данных. Команды 622 могут дополнительно передаваться или приниматься по сети 620 через устройство сетевого интерфейса 608.[00067] The storage device 618 may include a computer-readable storage medium 624 that stores one or more sets of instructions 622 that implements one or more of the methods or functions described herein. The instructions 622 may also be located wholly or at least partially in the main memory 604 and / or in the processor 602 when executed by the computing device 1000, the RAM 604 and the processor 602 also constituting a computer-readable storage medium. Commands 622 may additionally be transmitted or received over the network 620 through the network interface device 608.
[00068] В некоторых реализациях изобретения команды 622 могут включать команды способа 400 для повышения качества и сравнения документов, причем они могут выполняться с помощью модуля сравнения 190, показанного на Фиг. 1. В то время как машиночитаемый носитель данных 624 показан в примере на Фиг. 4 как единый носитель, термин «машиночитаемый носитель данных» следует понимать как единый носитель либо множество таких носителей (например, централизованную или распределенную базу данных, и/или соответствующие кэши и серверы), в которых хранится один или более наборов команд. Термин «машиночитаемый носитель данных» также относится к любым носителям, обеспечивающим хранение, кодирование или перенос набора исполняемых машиной команд при исполнении которых машиной реализуется один или более методов данного изобретения. Таким образом, термин «машиночитаемый носитель данных» относится также к твердотельной памяти, а также оптическим и магнитным носителям.[00068] In some implementations of the invention, instructions 622 may include instructions of a method 400 for improving the quality and comparison of documents, which may be performed using the
[00069] Способы, компоненты и функции, описанные в этом документе, могут быть реализованы с помощью дискретных компонентов оборудования, либо они могут быть встроены в функции других компонентов оборудования, таких как ASICS (специализированная заказная интегральная схема), FPGA (программируемая логическая интегральная схема), DSP (цифровой сигнальный процессор) или аналогичных устройств. Кроме того, методы, компоненты и функции могут быть реализованы с помощью модулей встроенного программного обеспечения или функциональной схемы внутри устройства. Способы, компоненты и функции также могут быть реализованы с помощью любой комбинации вычислительных средств и программных компонентов, либо исключительно с помощью программного обеспечения.[00069] The methods, components, and functions described in this document can be implemented using discrete hardware components, or they can be integrated into the functions of other hardware components, such as ASICS (specialized custom integrated circuit), FPGA (programmable logic integrated circuit ), DSP (digital signal processor) or similar devices. In addition, methods, components, and functions can be implemented using firmware modules or function diagrams inside the device. The methods, components and functions can also be implemented using any combination of computing tools and software components, or exclusively using software.
[00070] В приведенном выше описании изложены многочисленные детали. Однако любому специалисту в этой области техники, ознакомившемуся с этим описанием, очевидно, что настоящее изобретение может быть осуществлено практически без этих конкретных деталей. В некоторых случаях хорошо известные структуры и устройства показаны в виде блок-схемы, а не детально, чтобы не усложнять описание настоящего изобретения.[00070] In the above description, numerous details are set forth. However, it will be apparent to any person skilled in the art who is familiar with this description that the present invention can be practiced with little or no of these specific details. In some cases, well-known structures and devices are shown in block diagram form, and not in detail, so as not to complicate the description of the present invention.
[00071] Некоторые части описания предпочтительных вариантов реализации были представлены с помощью алгоритмов и символических представлений операций над битами данных в памяти компьютера. Эти алгоритмические описания и представления являются средствами, используемыми специалистами в области обработки данных, чтобы наиболее эффективно передать сущность своей работы другим специалистам в этой области техники. В настоящем документе и в целом алгоритмом называется самосогласованная последовательность операций, приводящих к требуемому результату. Операции требуют физических манипуляций с физическими величинами. Обычно, хотя и не обязательно, эти величины принимают форму электрических или магнитных сигналов, которые можно хранить, передавать, комбинировать, сравнивать и подвергать другим манипуляциям. Оказалось, что прежде всего для обычного использования удобно описывать эти сигналы в виде битов, значений, элементов, символов, членов, цифр и т.д.[00071] Some parts of the description of preferred embodiments have been represented using algorithms and symbolic representations of operations on data bits in computer memory. These algorithmic descriptions and representations are the means used by specialists in the field of data processing to most effectively transfer the essence of their work to other specialists in this field of technology. In this document and in general, an algorithm is a self-consistent sequence of operations leading to the desired result. Operations require physical manipulations with physical quantities. Usually, although not necessarily, these quantities take the form of electrical or magnetic signals that can be stored, transmitted, combined, compared and subjected to other manipulations. It turned out that, first of all, for normal use, it is convenient to describe these signals in the form of bits, values, elements, symbols, members, numbers, etc.
[00072] Однако следует иметь в виду, что все эти и подобные термины должны быть связаны с соответствующими физическими величинами, и что они представляют собой просто удобные метки, применяемые к этим величинам. Если специально не указано иное, что является очевидным из приведенного ниже обсуждения, следует понимать, что во всем описании все утверждения, в которых используются такие термины как «определение», «вычисление», «расчет», «получение», «определение», «изменение» и т.п., относятся к действиям и процессам в вычислительном устройстве или в аналогичном электронном вычислительном устройстве, которое манипулирует данными и преобразует данные, представленные в виде физических (например, электронных) величин в регистрах вычислительного устройства и в памяти в другие данные, аналогичным образом представленные в виде физических величин в памяти или регистрах вычислительного устройства или в других устройствах хранения и передачи информации или в устройствах отображения.[00072] However, it should be borne in mind that all these and similar terms should be associated with the corresponding physical quantities, and that they are simply convenient labels that apply to these quantities. Unless specifically indicated otherwise, which is obvious from the discussion below, it should be understood that throughout the description, all statements that use such terms as “definition”, “calculation”, “calculation”, “receipt”, “definition”, “Change”, etc., refers to actions and processes in a computing device or similar electronic computing device that manipulates data and converts data presented in the form of physical (eg, electronic) quantities in the registers of a computing device -keeping and memory into other data similarly represented as physical quantities within the registers or memories of the computing device, or other storage devices and information transmission or display devices.
[00073] Настоящее изобретение также относится к устройству для выполнения операций, описанных в этом документе. Такое устройство может быть специально сконструировано для требуемых целей или оно может содержать универсальный компьютер, который избирательно активируется или реконфигурируется с помощью компьютерной программы, хранящейся в компьютере. Такая компьютерная программа может храниться на машиночитаемом носителе данных, например (помимо прочего): диск любого типа, в том числе гибкий диск, оптические диски, CD-ROM и магнитно-оптические диски, постоянные запоминающие устройства (ПЗУ), оперативные запоминающие устройства (ОЗУ), программируемые ПЗУ (EPROM), электрически стираемые ППЗУ (EEPROM), магнитные или оптические карты или любой тип носителя, пригодный для хранения электронных команд.[00073] The present invention also relates to a device for performing the operations described in this document. Such a device may be specially designed for the required purposes or it may contain a universal computer that is selectively activated or reconfigured using a computer program stored in the computer. Such a computer program may be stored on a computer-readable storage medium, for example (but not limited to): a disk of any type, including a floppy disk, optical disks, CD-ROM and magneto-optical disks, read-only memory (ROM), random access memory (RAM) ), programmable read-only memory (EPROM), electrically erasable read-only memory (EEPROM), magnetic or optical cards or any type of medium suitable for storing electronic commands.
[00074] Следует иметь в виду, что приведенное выше описание предназначено для иллюстрации, и что оно не носит ограничительный характер. Различные другие реализации станут очевидны специалистам в данной области техники после прочтения и понимания приведенного выше описания. Поэтому объем раскрытия должен определяться со ссылкой на прилагаемую формулу изобретения наряду с полным объемом эквивалентов, на которые такие требования предоставляют право.[00074] It should be borne in mind that the above description is intended to illustrate, and that it is not restrictive. Various other implementations will become apparent to those skilled in the art after reading and understanding the above description. Therefore, the scope of disclosure should be determined with reference to the appended claims along with the full scope of equivalents to which such claims are entitled.
Claims (21)
получении изображения первого документа из эталонного документа и соответствующего изображения второго документа из сравниваемого документа;
определении разметки полученных изображений первого и второго документов;
выполнении первой процедуры оптического распознавания символов полученных изображений первого и второго документов и
формировании эталонного словаря, причем эталонный словарь содержит слова из текстового блока из изображения первого документа;
преобразовании изображения второго документа из сравниваемого документа на основе разметки изображения первого документа из эталонного документа;
выполнении повторного распознавания символов на полученном в результате преобразования изображения второго документа, причем повторное распознавание символов в сравниваемом документе включает использование сформированного эталонного словаря.1. A method for comparing images of documents, performed by means of a computing device containing a processor, which consists in:
obtaining an image of the first document from the reference document and the corresponding image of the second document from the compared document;
determining the markup of the received images of the first and second documents;
performing the first optical character recognition procedure of the received images of the first and second documents, and
the formation of the reference dictionary, and the reference dictionary contains words from a text block from the image of the first document;
converting the image of the second document from the compared document based on the markup of the image of the first document from the reference document;
performing repeated character recognition on the resulting image conversion of the second document, and repeated character recognition in the compared document includes the use of the generated reference dictionary.
память;
процессор, работающий с этой памятью, причем этот процессор обеспечивает:
получение изображения первого документа из эталонного документа и соответствующего изображения второго документа из сравниваемого документа;
определение разметки полученных изображений первого и второго документов;
выполнение первой процедуры оптического распознавания символов полученных изображений первого и второго документов и
формирование эталонного словаря, причем эталонный словарь содержит слова из текстового блока из изображения первого документа;
преобразование изображения второго документа из сравниваемого документа на основе разметки изображения первого документа из эталонного документа;
выполнение повторного распознавания символов на полученном в результате преобразования изображения второго документа, причем повторное распознавание символов в сравниваемом документе включает использование сформированного эталонного словаря.9. A computer-implemented system for comparing images of documents, containing:
memory;
a processor working with this memory, and this processor provides:
obtaining the image of the first document from the reference document and the corresponding image of the second document from the compared document;
determining the markup of the received images of the first and second documents;
performing the first optical character recognition procedure of the received images of the first and second documents, and
the formation of the reference dictionary, and the reference dictionary contains words from a text block from the image of the first document;
converting the image of the second document from the compared document based on the markup of the image of the first document from the reference document;
performing repeated character recognition on the resulting image conversion of the second document, the repeated character recognition in the compared document includes the use of the generated reference dictionary.
получение изображения первого документа из эталонного документа и соответствующего изображения второго документа из сравниваемого документа;
определение разметки полученных изображений первого и второго документов;
выполнение первой процедуры оптического распознавания символов полученных изображений первого и второго документов и
формирование эталонного словаря, причем эталонный словарь содержит слова из текстового блока из изображения первого документа;
преобразование изображения второго документа из сравниваемого документа на основе разметки изображения первого документа из эталонного документа;
выполнение повторного распознавания символов на полученном в результате преобразования изображения второго документа, причем повторное распознавание символов в сравниваемом документе включает использование сформированного эталонного словаря.16. A permanent computer-readable storage medium containing executable instructions for comparing images of documents that, when executed by a computing device, lead to operations including:
obtaining the image of the first document from the reference document and the corresponding image of the second document from the compared document;
determining the markup of the received images of the first and second documents;
performing the first optical character recognition procedure of the received images of the first and second documents, and
the formation of the reference dictionary, and the reference dictionary contains words from a text block from the image of the first document;
converting the image of the second document from the compared document based on the markup of the image of the first document from the reference document;
performing repeated character recognition on the resulting image conversion of the second document, the repeated character recognition in the compared document includes the use of the generated reference dictionary.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
RU2014144496/08A RU2597163C2 (en) | 2014-11-06 | 2014-11-06 | Comparing documents using reliable source |
US14/588,670 US9922247B2 (en) | 2013-12-18 | 2015-01-02 | Comparing documents using a trusted source |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
RU2014144496/08A RU2597163C2 (en) | 2014-11-06 | 2014-11-06 | Comparing documents using reliable source |
Publications (2)
Publication Number | Publication Date |
---|---|
RU2014144496A RU2014144496A (en) | 2016-05-27 |
RU2597163C2 true RU2597163C2 (en) | 2016-09-10 |
Family
ID=56097340
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2014144496/08A RU2597163C2 (en) | 2013-12-18 | 2014-11-06 | Comparing documents using reliable source |
Country Status (1)
Country | Link |
---|---|
RU (1) | RU2597163C2 (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2634194C1 (en) * | 2016-09-16 | 2017-10-24 | Общество с ограниченной ответственностью "Аби Девелопмент" | Verification of optical character recognition results |
RU2668717C1 (en) * | 2017-12-13 | 2018-10-02 | Общество с ограниченной ответственностью "Аби Продакшн" | Generation of marking of document images for training sample |
US20210390328A1 (en) * | 2019-07-22 | 2021-12-16 | Abbyy Production Llc | Optical character recognition of documents having non-coplanar regions |
WO2023204724A1 (en) * | 2022-04-20 | 2023-10-26 | Общество С Ограниченной Ответственностью "Дентонс Юроп" (Ооо "Дентонс Юроп") | Method for analyzing a legal document |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030076518A1 (en) * | 2001-10-11 | 2003-04-24 | Fuji Xerox Co., Ltd. | Image inspection device |
US20040220898A1 (en) * | 2003-04-30 | 2004-11-04 | Canon Kabushiki Kaisha | Information processing apparatus, method, storage medium and program |
US20080144055A1 (en) * | 2006-10-31 | 2008-06-19 | Sussmeier John W | System and methods for comparing documents |
RU2421810C2 (en) * | 2005-07-01 | 2011-06-20 | Майкрософт Корпорейшн | Parsing of document visual structures |
US20120177291A1 (en) * | 2011-01-07 | 2012-07-12 | Yuval Gronau | Document comparison and analysis |
-
2014
- 2014-11-06 RU RU2014144496/08A patent/RU2597163C2/en active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030076518A1 (en) * | 2001-10-11 | 2003-04-24 | Fuji Xerox Co., Ltd. | Image inspection device |
US20040220898A1 (en) * | 2003-04-30 | 2004-11-04 | Canon Kabushiki Kaisha | Information processing apparatus, method, storage medium and program |
RU2421810C2 (en) * | 2005-07-01 | 2011-06-20 | Майкрософт Корпорейшн | Parsing of document visual structures |
US20080144055A1 (en) * | 2006-10-31 | 2008-06-19 | Sussmeier John W | System and methods for comparing documents |
US20120177291A1 (en) * | 2011-01-07 | 2012-07-12 | Yuval Gronau | Document comparison and analysis |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2634194C1 (en) * | 2016-09-16 | 2017-10-24 | Общество с ограниченной ответственностью "Аби Девелопмент" | Verification of optical character recognition results |
RU2668717C1 (en) * | 2017-12-13 | 2018-10-02 | Общество с ограниченной ответственностью "Аби Продакшн" | Generation of marking of document images for training sample |
US20210390328A1 (en) * | 2019-07-22 | 2021-12-16 | Abbyy Production Llc | Optical character recognition of documents having non-coplanar regions |
US11699294B2 (en) * | 2019-07-22 | 2023-07-11 | Abbyy Development Inc. | Optical character recognition of documents having non-coplanar regions |
WO2023204724A1 (en) * | 2022-04-20 | 2023-10-26 | Общество С Ограниченной Ответственностью "Дентонс Юроп" (Ооо "Дентонс Юроп") | Method for analyzing a legal document |
Also Published As
Publication number | Publication date |
---|---|
RU2014144496A (en) | 2016-05-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9922247B2 (en) | Comparing documents using a trusted source | |
US10943105B2 (en) | Document field detection and parsing | |
US10846553B2 (en) | Recognizing typewritten and handwritten characters using end-to-end deep learning | |
US11106891B2 (en) | Automated signature extraction and verification | |
RU2651144C2 (en) | Data input from images of the documents with fixed structure | |
US8494273B2 (en) | Adaptive optical character recognition on a document with distorted characters | |
US10643094B2 (en) | Method for line and word segmentation for handwritten text images | |
US9959475B2 (en) | Table data recovering in case of image distortion | |
US9626601B2 (en) | Identifying image transformations for improving optical character recognition quality | |
RU2656573C2 (en) | Methods of detecting the user-integrated check marks | |
Ziran et al. | Text alignment in early printed books combining deep learning and dynamic programming | |
CN105468732A (en) | Image keyword inspecting method and device | |
RU2597163C2 (en) | Comparing documents using reliable source | |
CN105913057A (en) | Projection and structure characteristic-based in-image mathematical formula detection method | |
Ayesh et al. | A robust line segmentation algorithm for Arabic printed text with diacritics | |
Fateh et al. | Enhancing optical character recognition: Efficient techniques for document layout analysis and text line detection | |
Verma et al. | Removal of obstacles in Devanagari script for efficient optical character recognition | |
CN115311666A (en) | Image-text recognition method and device, computer equipment and storage medium | |
US10366284B1 (en) | Image recognition and parsing | |
Smitha et al. | Document image analysis using imagemagick and tesseract-ocr | |
CN117935297A (en) | Method for identifying PDF electronic invoice | |
CN109101973B (en) | Character recognition method, electronic device and storage medium | |
US20150063698A1 (en) | Assisted OCR | |
Robertson | Optical character recognition for classical philology | |
KR20160053544A (en) | Method for extracting candidate character |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
QZ41 | Official registration of changes to a registered agreement (patent) |
Free format text: LICENCE FORMERLY AGREED ON 20151118 Effective date: 20161213 |
|
QZ41 | Official registration of changes to a registered agreement (patent) |
Free format text: LICENCE FORMERLY AGREED ON 20151118 Effective date: 20170613 |
|
QZ41 | Official registration of changes to a registered agreement (patent) |
Free format text: LICENCE FORMERLY AGREED ON 20151118 Effective date: 20171031 |
|
QC41 | Official registration of the termination of the licence agreement or other agreements on the disposal of an exclusive right |
Free format text: LICENCE FORMERLY AGREED ON 20151118 Effective date: 20180710 |
|
PC43 | Official registration of the transfer of the exclusive right without contract for inventions |
Effective date: 20181121 |
|
QB4A | Licence on use of patent |
Free format text: LICENCE FORMERLY AGREED ON 20201211 Effective date: 20201211 |
|
QC41 | Official registration of the termination of the licence agreement or other agreements on the disposal of an exclusive right |
Free format text: LICENCE FORMERLY AGREED ON 20201211 Effective date: 20220311 |