СЕГМЕНТАЦИЯ ИЗОБРАЖЕНИЯ ДЛЯ ВЕРИФИКАЦИИ ДАННЫХ
IMAGE SEGMENTATION FOR DATA VERIFICATION

ОБЛАСТЬ ТЕХНИКИ
[0001] Варианты реализации изобретения относятся в целом к обработке изображений, а более конкретно - к сегментации изображения для верификации данных.
УРОВЕНЬ ТЕХНИКИ
[0002] В обычных способах распознавания данных используют оптическое распознавание символов (которое ниже называется «OCR») для преобразования отсканированного изображения документа (например, формы, счета и т.д.) в машиночитаемый текст. Задача распознавания данных обычно включает в себя процесс верификации данных для повышения качества результатов распознавания. Например, в ходе верификации могут быть исправлены ошибки распознавания. Другой пример: может быть добавлен текст, который не был распознан с использованием метода OCR.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0003] Изложение сущности изобретения будет лучше понятно из приведенного ниже подробного описания и приложенных чертежей различных вариантов осуществления изобретения. Однако не следует считать, что чертежи ограничивают сущность изобретения конкретными вариантами осуществления, они предназначены только для пояснения и улучшения понимания сущности изобретения.
[0004] На Фиг. 1 показана блок-схема вычислительного устройства, работающего в соответствии с вариантом реализации этого изобретения;
[0005] На Фиг. 2 представлена блок-схема, иллюстрирующая способ верификации данных в соответствии с одним из вариантов реализации этого изобретения;
[0006] На Фиг. 3А, 3В и 3С показаны схемы последовательности операций, иллюстрирующие способы сегментации изображения в соответствии с вариантами реализации этого изобретения;
[0007] На Фиг. 4 показан пример изображения, которое может быть обработано с помощью распознавания и верификации данных приложения в соответствии с одним из вариантов реализации этого изобретения;
[0008] На Фиг. 5 показаны примеры изображений, подлежащих верификации данных в соответствии с одним из вариантов реализации этого изобретения;
[0009] На Фиг. 6 показаны примеры изображений, подлежащих верификации данных в соответствии с другим вариантом реализации этого изобретения;
[0010] На Фиг. 7, 8 и 9 показаны примеры пользовательских интерфейсов для верификации данных в соответствии с вариантами реализации этого изобретения; и
[0011] На Фиг. 10 приведена блок-схема одного варианта реализации компьютерной системы.
ОПИСАНИЕ ПРЕДПОЧТИТЕЛЬНЫХ ВАРИАНТОВ РЕАЛИЗАЦИИ
[0012] В этом документе приведено описание способов и систем сегментации изображения для верификации данных.
[0013] Система оптического распознавания символов (OCR) может получить изображение бумажного документа и преобразовать это изображение в машиночитаемый формат, допускающий поиск и содержащий текстовую информацию, извлеченную из изображения бумажного документа. В различных иллюстративных примерах исходный бумажный документ может содержать одну или несколько страниц, таким образом, изображение документа может включать изображения одной или нескольких страниц документа.
[0014] Последовательности символов, геометрические структуры (например, разделительные линии, таблицы и/или другие табличные структуры и т.д.) и/или любые другие данные, распознанные при обработке изображения с помощью метода OCR, могут быть подвергнуты процессу верификации данных. В процессе верификации пользователь может подтвердить символы, распознанные с помощью метода OCR и/или исправить символы, которые были распознаны неправильно. Например, пользователь может исправить ошибки распознавания в процессе верификации. Другой пример: пользователь может ввести нераспознанный текст в процессе верификации. Так как оператор обрабатывает огромные массивы извлеченной информации, то при верификации ключевыми пунктами являются качество работы оператора и скорость обработки документов.
[0015] В известных подходах к верификации данных те данные, которые должны быть верифицированы, представляются отдельно от соответствующего исходного изображения. В результате пользователь, возможно, будет вынужден постоянно сравнивать исходное изображение с распознанными данными, извлеченными из изображения для верификации. Таким образом, пользователю может потребоваться постоянно устанавливать визуальное совпадение распознанных данных с соответствующими исходными данными на изображении. Для облегчения монотонной работы оператора процесс сравнения может быть организован таким образом, что распознанные данные отображаются на экране электронного устройства синхронно с исходными данными на оригинальном изображении. Однако по-прежнему оператор во время верификации вынужден переводить взгляд с распознанных данных на исходное изображение, чтобы убедиться, что распознанный текст в поле соответствует исходному тексту на исходном изображении документа.
[0016] В соответствии с вариантами реализации настоящего изобретения изображение разделяется на несколько сегментов изображения для верификации данных. Один или более сегментов изображения могут содержать области изображения, соответствующие данным, которые должны быть верифицированы пользователем (они называются ниже «областями изображения»). Данные, извлеченные из областей изображения, могут быть представлены в полях экрана (мини-формах), расположенных между двумя сегментами изображения в пользовательском интерфейсе. Например, более конкретно: мини-форма, содержащая значения данных, извлеченных из определенной области изображения, может быть отображена над частью сегмента изображения, включающей область изображения. Мини-формы не перекрываются с сегментами изображения, представленными в пользовательском интерфейсе. Пользователь может изменять значения, представленные в мини-формах, после сравнения значений с данными, содержащимися в областях изображения, расположенных под мини-формами.
[0017] Таким образом, аспекты настоящего изобретения позволяют осуществить процесс верификации, который будет проводиться непосредственно на исходном изображении, что освобождает пользователей от необходимости непрерывного визуального сравнения документов с целью верификации результата распознавания. Предложенный способ верификации повышает скорость процесса верификации и снижает когнитивную нагрузку пользователя. Кроме того, аспекты настоящего изобретения позволяют пользователю просматривать подлежащие верификации данные и ассоциированную с ними контекстную информацию с учетом близости от части исходного изображения к соответствующим данным.
[0018] На Фиг. 1 показана блок-схема примера вычислительного устройства (100), работающего в соответствии с одним или несколькими аспектами настоящего изобретения. В иллюстративных примерах вычислительное устройство (100) может быть реализовано в виде различных вычислительных устройств, включая планшетный компьютер, мобильный телефон, портативный компьютер, настольный компьютер и т.д.
[0019] Вычислительное устройство (100) может содержать процессор (110), соединенный с системной шиной (120). Другие устройства, подключенные к системной шине (120), могут включать устройство памяти (130), дисплей (140), оснащенный сенсорным экраном (180), клавиатуру (150), устройство оптического ввода (160) и один или более коммуникационных интерфейсов (170). Термин «подключен» в этом описании включает электрическое соединения и подключение через одно или более интерфейсных ч, адаптеров и т.п.
[0020] Процессор (110) может представлять собой одно или несколько устройств обработки, включая универсальные процессоры и/или специализированные процессоры. Память (130) может включать одно или несколько устройств энергозависимой памяти (например, микросхем ОЗУ), одно или несколько устройств энергонезависимой памяти (например, микросхем ПЗУ или EEPROM) и одно или несколько запоминающих устройств (например, оптических или магнитных дисков). Оптическое устройство ввода (160) может представлять собой и/или содержать одну или более камер, сканеров, считывателей штрихкодов и/или любых других устройств, способных формировать изображения документа.
[0021] В некоторых вариантах реализации изобретения вычислительное устройство (100) может содержать устройство ввода с сенсорным экраном (180), имеющим область сенсорного ввода и/или чувствительную поверхность, наложенную на дисплей (140). Пример вычислительного устройства, реализующего аспекты настоящего изобретения, будет рассмотрен более подробно ниже со ссылкой на Фиг. 10.
[0022] В некоторых вариантах реализации в устройстве памяти (130) могут храниться команды приложения распознавания и верификации данных (190) для обработки изображений с целью распознавания и верификации данных. В одном варианте реализации приложение (190) может быть реализовано как функция, которая будет вызываться из пользовательского интерфейса другого приложения (например, приложения биллинга, приложения бухгалтерского учета, приложения редактирования электронных документов и т.д.). Альтернативно или дополнительно приложение (190) может быть реализовано в виде отдельного приложения.
[0023] Например, приложение (190) может получать изображение документа (например, счета, формы и т.д.). Изображение может быть получено с помощью оптического устройства ввода (160) или любого другого устройства. Изображение может иметь любой подходящий формат, например, PDF, JPEG, PNG, BMP и т.д. Изображение может быть представлено с помощью структуры данных, содержащей множество битовых групп пикселей визуального представления одной или более частей документа.
[0024] Приложение (190) может обрабатывать полученное изображение с помощью метода оптического распознавания символов (OCR) и/или любого другого подходящего метода и преобразовать изображение в машиночитаемый формат, пригодный для поиска, содержащий текстовую информацию, извлеченную из изображения документа. Приложение 190 может содержать функциональные возможности OCR или являться отдельной программой или модулем, который использует данные с выхода приложения OCR.
[0025] На Фиг. 4 показан пример изображения документа (400), который может быть обработан приложением (190), выполняемом в вычислительном устройстве (100) в соответствии с одним или несколькими аспектами настоящего изобретения. Приложение (190) может проанализировать изображение (400), чтобы обнаружить в изображении одну или несколько частей изображения, содержащих текстовые блоки (410А)-(410В). Изображенные элементы компоновки документа были отобраны только для иллюстративных целей и не устанавливают каких-либо ограничений для объема настоящего описания изобретения. Приложение (190) может дополнительно проанализировать каждый из блоков (410А) и (410В) для обнаружения нескольких текстовых строк (420А)-(420М). Внутри каждой части изображения, содержащей текстовую строку (420), приложение (190) может обнаружить одну или более областей изображения (430А)-(430М), содержащих последовательности символов, разделенных пробелами. Такая последовательность символов может представлять собой, например, слово, содержащее одну или более букв, число, содержащее одну или более цифр, и т.д. Приложение (190) может связать каждую из последовательностей символов с одним или несколькими типами данных, например, «строка символов», «цифровые данные», «целое число», «десятичное число» и т.д.
[0026] Приложение (190) может связать друг с другом распознанные последовательности символов, содержащие соответствующую информацию. Например, приложение (190) может связать последовательность символов, содержащую числовые данные, с последовательностью символов, содержащей описание числовых данных (например, строкой символов). В некоторых вариантах реализации две или более связанные последовательности символов могут быть включены в одну область изображения. В более конкретном примере, показанном на Фиг. 5, приложение (190) может обработать изображение (500) с помощью метода OCR и методов извлечения, и выявить область изображения (510), соответствующую символам «18:45» и описание этих символов, то есть «FINISH» (Конец).
[0027] Кроме того, приложение (190) может определить положение извлеченной информации относительно областей изображения, геометрических структур (например, разделительные линии, расположенные между двумя или более распознанными последовательностями символов, табличные структуры и т.д.), и/или любого другого компонента изображения. Например, как показано на Фиг. 4, изображение (400) может содержать области изображений (430А)-(430М), причем приложение (190) может обнаружить границы каждой области изображения (430), соответствующей извлеченным данным, используя метод распознавания OCR, метод обнаружения границ и/или любой другой способ обработки изображения или комбинацию таких методов. Другой пример: для каждой области изображения (430) приложение (190) может определить одну или несколько координат, указывающих на положение области изображения (например, координаты, связанные с вершинами областей изображения, координаты, связанные с границами областей изображения и т.д.). Еще один пример: приложение (190) может обнаружить одну или несколько разделительных линий (например, разделителей/сепараторов), расположенных на изображении, и одну или более координат, связанных с каждой из разделительных линий (например, как показано на Фиг. 5, часть (550) изображения (500) может содержать разделительные линии (531), (533), (535) и (537)).
[0028] После выявления последовательностей символов и соответствующих им областей на изображении, приложение (190) может извлечь последовательности символов и/или любых других данных из областей изображения. Затем приложение (190) может сопоставить извлеченные данные с соответствующими им областями изображения.
[0029] Приложение (190) также может идентифицировать одну или более из распознанных областей изображения, которые соответствуют данным (например, распознанные последовательности символов, как описано выше), которые должны быть верифицированы пользователем. В одном варианте реализации приложение (190) определяет, что область изображения соответствует данным, которые будут верифицированы на основе показателей уверенности распознавания, соответствующих степени уверенности или неуверенности в отношении корректности данных, извлеченных из области изображения. В более конкретном примере приложение (190) может определить, что данные, извлеченные из области изображения, должны быть верифицированы, если установлено, что показатель уверенности не выходит за некоторое пороговое значение.
[0030] В другом примере приложение (190) определяет, что область изображения соответствует данным, которые будут верифицированы при обнаружении одной или более ошибок в отношении данных, извлеченных из области изображения. В более конкретном примере область изображения содержит один или более символов или данных любого другого типа, которые не могут быть распознаны приложением (190) и/или которые не могут быть распознаны с пороговой степенью достоверности (например, с пороговым показателем уверенности).
[0031] В еще одном более конкретном примере устройство обработки может выявить несколько областей изображения, содержащих соответствующие данные. Затем устройство обработки определяет, правильно ли распознаны соответствующие данные на основе одного или нескольких заранее определенных правил или правил, реализуемых компьютером или оператором. Например, более конкретно, приложение (190) определяет, что данные распознаны правильно, если установлено, что данные могут быть связаны в соответствии с одной или более известными формулами. В более конкретном примере, показанном на Фиг. 9, приложение (190) выявляет области изображения (911a-d) как области, содержащие связанные данные при определении того, что области изображения (911a-d) соответствуют графам "tax rate," "net amount," "tax amount," and "invoice amount in EUR," («ставка налога», «общая сумма», «сумма налога» и «сумма счета в евро»), соответственно. Затем приложение (190) определяет, соответствуют ли данные, извлеченные из областей изображения (911а-с), одному или более заранее определенным правилам, реализуемым компьютером. Например, в частности, приложение (190) определяет, можно ли объединить данные, извлеченные из областей изображения (911а-с) в соответствии с одной или более формул (например, «общая сумма» + «ставка налога» × «общая сумма» = «сумма счета», «ставка налога» × «общая сумма» = «сумма налогов» и т.д.). Если установлено, что сочетание данных не соответствует одной или более формулам, приложение (190) может выявить одну или более из областей изображения, как соответствующие данным, которые требуется верифицировать.
[0032] В некоторых вариантах реализации приложение (190) может выдать пользователю запрос на определение одной или нескольких областей на изображении, соответствующих данным, которые требуется верифицировать (например, путем представления одного или более подходящих средств пользовательского интерфейса).
[0033] Приложение (190) может представлять одну или более частей изображения в связи с данными, извлеченными из изображения, используя один или несколько подходящих средств пользовательского интерфейса. Пример пользовательского интерфейса (700) для верификации данных показан на Фиг. 7. Показанный на рисунке пользовательский интерфейс (700) содержит форму (701) для отображения данных, распознанных в изображении (702). Например, форма данных (701) содержит поле отображения (703) для представления значения данных, распознанных в области изображения (704) изображения (702). Поле отображения (705) может содержать исходные данные из области изображения (704). Поле отображения (703) может быть расположено выше, ниже, рядом и т.д. поля отображения (705). Пользователь может сравнить значение, отображаемое в поле отображения (703), с исходными данными, показанными в поле отображения (705). Пользователь может подтвердить правильность значения, нажимая на одну клавишу, или исправить ошибочно распознанное значение.
[0034] Поле на экране для отображения значения данных, распознанных из одной или нескольких областей изображения, может представлять собой один или более полупрозрачных ярлыков (706) и/или содержать эти ярлыки которые могут размещаться над этим изображением. В одном из вариантов реализации приложение (190) может делать ярлыки полупрозрачными, если указатель мыши перемещается пользователем над соответствующим исходным изображением.
[0035] В некоторых вариантах реализации после выявления одной или более областей изображения, соответствующих данным, которые будут верифицированы пользователем, приложение (190) может разделить изображение на несколько сегментов (также называемые ниже «сегментами изображения») для представления данных, соответствующих выявленным областям изображения для верификации. «Выявление области изображения для верификации» относится к процессу выявления извлеченных данных, которые должны быть верифицированы, и определению соответствующей области изображения для этих данных. В одном варианте реализации сегменты изображения соответствуют составным частям изображения.
[0036] Приложение (190) разделяет изображение на основе информации о положении, связанной с выявленными областями изображения и/или с другими областями изображения, распознанными в изображении, на основе информации о положении относительно геометрических структур (например, разделительных линий, табличных структур и т.д.) на изображении, и/или любой другой подходящей информации.
[0037] Приложение (190) может разделять изображение, создавая одну или нескольких линий разрезов, разделяющих изображение на несколько сегментов. Например, одна или более из линий разреза могут быть совмещены с первым направлением (например, горизонтальным, вертикальным или любым другим направлением) или со вторым направлением (например, направлением, перпендикулярным первому направлению). Одна или более из линий разреза могут быть получены на основе информации о положении области изображения, которая соответствует подлежащим верификации данным. Одна или более из линий разреза могут быть получены на основе информации о положении относительно одной или более разделительных линий, расположенных между двумя или более областями изображения (например, линия на изображении, которая распознана с помощью метода OCR). Приложение (190) может разделить изображение на сегменты изображения, используя любой подходящий способ или способы. Например, сегменты изображения могут быть получены путем выполнения одной или нескольких операций, описанных ниже в связи с Фиг. 2-3С.
[0038] В примере, показанном на Фиг. 5, изображение (500) может быть разделено на сегменты изображения (503) и (505), разделенные линиями разреза (520а-е). Сегмент изображения (505) содержит область изображения (510), соответствующую данным, подлежащим верификации пользователем. Как показано на этом рисунке, каждая линия разреза (520а-е) параллельна первому направлению (например, горизонтальному направлению) или второму направлению (например, вертикальному направлению). В некоторых реализациях второе направление перпендикулярно первому направлению. Линия разреза (521а) может быть построена на основе границы области изображения (510) (например, верхней границы). Например, более конкретно, линия разреза (520а) может быть совмещена с верхней границей области изображения (510). Линии разреза (520b-е) могут быть определены на основе информации о положении геометрических структур (например, разделительных линий, таблиц и т.д.) на изображении (500). Например, линии разреза 520b-е могут соответствовать разделительным линиям (531), (533), (535) и (537), показанным на части изображении (550), соответственно.
[0039] В другом примере, показанном на Фиг. 6, изображение (600) может быть разделено на два сегмента изображения по линям разреза (631а-е) для представления данных, извлеченных из областей изображения (621а-с). Как показано на рисунке, линии разреза (631а), (631с), (631d) и (631е) соответствуют границам областей изображения (621а), (621b) и (621с). Линия разреза (631b) соответствует разделительной линии, расположенной между областями изображения (621а) и (621b).
[0040] Приложение (190) может представлять сегменты изображения в связи с данными из распознанных областей изображения. Например, приложение (190) представляет значение данных, извлеченных из заданной области изображения в мини-форме, расположенной выше, ниже, рядом с областью изображения и т.д. Мини-форма может быть расположена между несколькими сегментами изображения. В некоторых реализациях мини-форма не перекрывается с сегментами изображения.
[0041] В более конкретном примере, показанном на Фиг. 8, представления пользовательского интерфейса (810) и/или (820) могут использоваться для отображения распознанных данных для верификации. Представление пользовательского интерфейса (810), (820) содержит сегмент изображения (811a-b), а также сегмент изображения (813а-b), включающий область изображения (815а-b), мини-форму (817а-b) и формы данных (819а-b). Формы данных (819а-b) являются иллюстративными, они могут быть не включенными в представления пользовательского интерфейса (810) и/или (820). Приложение (190) представляет значение данных, извлеченных из области изображения (815а-b) в мини-форме (817а-b) и/или одном или нескольких формах данных (819а-b). В некоторых реализациях, мини-формы (817а-b) и/или формы данных (819а-b) доступны для редактирования. Пользователь может ввести значение данных, содержащихся в областях изображения (815а-b) в мини-формы (817а-b) и/или в формы данных (819а-b).
[0042] В другом более конкретном примере представления пользовательского интерфейса (910) и/или (920) на Фиг. 9 могут использоваться для представления распознанных данных, подлежащих верификации. Как показано на рисунке, одна или несколько частей сегментов изображения (901), (903) и (905) могут быть представлены в ассоциации с мини-формами (913а-с). Каждая из мини-форм (913а-с) содержит значение данных, извлеченных из области изображения (911а-с), соответственно. Каждая мини-форма (913а-с) может быть расположена над соответствующей областью изображения для верификации данных. В некоторых реализациях мини-формы (913а-с) не перекрывают области изображения (911а-с).
[0043] На Фиг. 2 показана блок-схема, иллюстрирующая способ верификации данных (200) в соответствии с одним из вариантов реализации изобретения. Способ (200) и/или каждая из его отдельных функций, процедур, подпрограмм или операций может выполняться одним или более устройствами обработки в компьютерной системе (например, вычислительным устройством (100) на Фиг. 1), в котором реализован этот способ. В некоторых вариантах реализации способ (200) может выполняться в одном потоке обработки. Кроме того, способ (200) может выполняться, используя два или более потоков обработки, причем каждый поток выполняет одну или несколько отдельных функций, процедур, подпрограмм или операций способа. В качестве иллюстративного примера, потоки обработки, в которых реализован способ (300), могут быть синхронизированы (например, с использованием семафоров, критических секций и/или других механизмов синхронизации потоков). При альтернативном подходе потоки обработки, реализующие способ (300), могут выполняться асинхронно по отношению друг к другу.
[0044] Способ (200) начинается в блоке (210), где устройство обработки получает изображение по меньшей мере части документа (например, страницу документа). Например, изображение может быть получено с помощью оптического устройства ввода (130) устройства обработки (100), как описано выше в связи с Фиг. 1.
[0045] В блоке (220) устройство обработки может обрабатывать изображение, чтобы преобразовать его в машиночитаемый текст. Перед преобразованием изображения в машиночитаемый вид могут выполняться различные методы предварительной обработки изображения (например, устранение искажений, выравнивание и т.п.); например, устройство обработки может обрабатывать изображение с помощью метода OCR и/или любых других подходящих приемов извлечения последовательности символов и/или любых других данных из изображения. Для выявления элементов макета документа, например, логической структуры документа, фрагментов текста, блоков изображения, сепараторов и т.д., можно использовать различные методы анализа документа. Распознанные данные могут быть обработаны с помощью известных методов, для того чтобы ассоциировать последовательности символов, содержащих числовые или текстовые данные, с последовательностью символов, содержащих описание числовых или текстовых данных. В более конкретном примере, описанном выше в связи с Фиг. 1, устройство обработки обнаруживает одну или более областей изображения, содержащих последовательности символов, используя метод OCR, и распознает последовательности символов. Кроме того, устройство обработки может связать каждую из последовательностей символов с одним или несколькими типами данных, например, «строка символов», «числовые данные», «целое число», «десятичное число» и т.д.
[0046] В другом примере устройство обработки данных может определить информацию о положении, относящуюся к областям изображения и геометрическим структурам (например, разделительным линиям, таблицам или любым другим табличным структурам и т.д.) на изображении. В одном варианте реализации информация о положении, относящаяся к области изображения или геометрической структуре в изображении, содержит один или более наборов координат, связанных с областью изображения или геометрической структурой.
[0047] В блоке (230) устройство обработки может определить одну или более областей на изображении (например, «области изображения»), содержащих данные или соотносящихся с данными, которые подлежат верификации. В одном примере устройство обработки определяет, что область изображения соответствует данным, которые должны быть верифицированы на основе показателей уверенности распознавания, указывающих степень определенности или неопределенности в отношении правильности данных, извлеченных из области изображения. В другом примере приложение (190) определяет, что область изображения соответствует данным, которые должны быть верифицированы, в случае обнаружения одной или более ошибок в отношении данных, извлеченных из области изображения. В более конкретном примере область изображения соответствует одному или более символам, знакам, или любому другому типу данных, который не может быть распознан и/или который не может быть распознан с пороговым показателем уверенности распознавания устройством обработки.
[0048] В блоке (240) устройство обработки может разделить изображение на несколько сегментов изображения. В некоторых реализациях изобретения сегменты изображения соответствуют составным частям изображения. Один или более графических сегментов содержат выявленные области изображения, соответствующие подлежащим верификации данным. Изображение может быть разделено на основе любой подходящей информации, такой как информация о положении, связанная с выявленными областями изображения, информация о положении, связанная с геометрическими структурами изображения и т.д.
[0049] Устройство обработки данных может разделить изображение, используя любой подходящий метод или комбинацию методов. Например, устройство обработки может разделить изображение путем выполнения одной или более операций, описанных в связи с блоками (242)-(246) и/или Фиг. 3А - 3С. В некоторых вариантах реализации изобретения устройство обработки делит изображение на сегменты изображения, используя несколько методов, а затем делит изображение на минимальное количество сегментов, что будет описано более подробно ниже.
[0050] В блоке (242) устройство обработки может построить одну или несколько линий разреза, параллельных первому направлению. Первое направление может быть горизонтальным, вертикальным или любым другим направлением. Например, линии разреза могут быть получены на основе информации о положении области изображения, такой как одна или более координат, связанные с областью изображения. В более конкретном примере, показанном на Фиг. 5, линия разреза (520а) может быть построена на основе координат, связанных с областью изображения (510) (например, координатой "y", связанной с верхней границей области изображения (510)). В другом более конкретном примере, показанном на Фиг. 6, линии разреза (631а), (631с) и (631е) могут быть построены на основе координат, связанных с вершинами областей изображений (621а), (621b) и (621с), соответственно.
[0051] В другом примере линии разреза могут быть получены на основе информации о положении относительно разделительной линии, расположенной между двумя областями изображения (например, двумя областями изображения, выявленными в блоке (230)). В более конкретном примере, показанном на Фиг. 6, линия разреза (633f) может быть построена на основе вертикальной линии разреза (643), расположенной между областями изображения (623b) и (623с).
[0052] В блоке (244) устройство обработки строит одну или несколько линий разреза, параллельных второму направлению. В некоторых вариантах реализации второе направление перпендикулярно первому направлению. В одном примере устройство обработки данных может обнаруживать разделительную линию, параллельную второму направлению в системе координат между двумя областями изображения, обнаруженными на этапе (230). Затем устройство обработки строит линию разреза на основе обнаруженной разделительной линии. В более конкретном примере, показанном на Фиг. 5, линии разреза (520b) и (520с) могут быть получены на основе вертикальных разделительных линий (531) и (533) (показанных в части изображения (550)), соответственно. В другом более конкретном примере, показанном на Фиг. 6, линия разреза (631b) может быть построена на основе разделительной линии (641), расположенной между областями изображения (621а) и (621b).
[0053] В другом примере устройство обработки может построить линию разреза на основе информации о положении, связанной с двумя или более областями изображения, которые соответствуют подлежащим верификации данным. В более конкретном примере, показанном на Фиг. 6, линия разреза (631d) строится на основе информации о положении, связанной с областями изображения (621b) и (621с). В частности, например, линию разреза (631d) можно построить на основе координат, связанных с областью изображения (621с) и с областью изображения (621b).
[0054] В блоке (246) устройство обработки может разделить изображение на несколько сегментов на основе линий разреза. Например, устройство обработки создает два сегмента изображения вдоль одной или более линий разреза между двумя сегментами изображения. В более конкретном примере, показанном на Фиг. 5, изображение (500) может быть разделено на сегменты изображения (503) и (505) по линиям разрезка (520а-е).
[0055] В блоке (250) устройство обработки может представлять сегменты изображения в сочетании с подлежащими верификации данными. Например, устройство обработки выводит мини-форму, включающее значение данных, извлеченных из заданной области изображения и сегмента изображения, включающего область изображения. Между несколькими областями изображения может быть расположена мини-форма. В некоторых вариантах реализации мини-форма и области изображения не перекрываются. В другом примере устройство обработки представляет несколько мини-форм, включающих значения данных, извлеченных из нескольких областей изображения для верификации в пользовательском интерфейсе. Каждая мини-форм может содержать значения данных, извлеченные из одной из областей изображения, и может быть расположена над частью сегмента изображения, включающего соответствующую область изображения. Сегменты изображения и подлежащие верификации данные могут быть представлены с использованием одного или нескольких методов, описанных выше в связи с Фиг. 1 и 7-9.
[0056] На Фиг. 3А, 3В и 3С представлены схемы последовательности операций, иллюстрирующие способы (310), (350) и (370) сегментации изображения для верификации данных в соответствии с некоторыми вариантами реализации изобретения. Более конкретно эти варианты реализации относятся к случаям, когда имеется несколько областей изображения, соответствующих извлеченным подлежащим верификации данным. Эти извлеченные данные могут использоваться совместно с одним из правил верификации. Способы (310), (350) и (370) и/или каждая из их индивидуальных функций, процедур, подпрограмм или операций могут быть выполнены с помощью одного или более устройств обработки компьютерной системы (например, с помощью вычислительного устройства (100) на Фиг. 1), в котором реализован этот способ. В некоторых вариантах реализации способы (310), (350) и (370) могут выполняться в одном потоке обработки. При альтернативном подходе способы (310), (350) и (370) могут выполняться с помощью двух или более потоков обработки, причем каждый поток выполняет одну или несколько отдельных функций, процедур, подпрограмм или операций способа. В иллюстративном примере потоки обработки реализации способов (310), (350) и (370) могут быть синхронизированы (например, с использованием семафоров, критических секций и/или других механизмов синхронизации потоков). При альтернативном подходе процессы обработки, реализующие способы (310), (350) и (370), могут выполняться асинхронно по отношению друг к другу.
[0057] В блоке (312) устройство обработки может определить на изображении область изображения, соответствующую подлежащим верификации данным. Например, область изображения может быть выявлена так, как описано выше в связи с блоком (230) на Фиг. 2. В одном примере, показанном на Фиг. 5, устройство обработки обнаруживает ошибку, связанную с данными, извлеченными из области изображения (510) (например, символ «:», который не может быть распознан устройством обработки или который не может быть распознан с пороговой степенью уверенности). Затем устройство обработки изображения определяет область (510) как соответствующую подлежащим верификации данным.
[0058] В блоке (314) устройство обработки может определить информацию о положении, относящуюся к области изображения. Информация о положении может быть определена с использованием метода OCR и/или любого другого способа обработки изображения или сочетания способов. Информация о положении может содержать любую подходящую информацию, которая может использоваться для определения местоположения области изображения. Например, информация о положении содержит информацию, относящуюся к границам области изображения, определенную с использованием методики OCR, метода определения границ и/или любого другого метода обработки изображений. Границы могут быть определены на основе координат соответствующих распознанных символов. В другом примере устройство обработки определяет одну или более координат, связанных с областью изображения, например, координаты, связанные с вершинами в области изображения, координаты, связанные с границами области изображения, и т.д.
[0059] В блоке (316) устройство обработки создает линию разреза, параллельную первому направлению (например, в горизонтальном, вертикальном или в любом другом направлении). Линия разреза может быть получена на основе информации о местоположении, связанной с областью изображения. Например, устройство обработки формирует линию разреза, выровненную с границей области изображения (например, верхней границей, нижней границей, левой границей, правой границей и т.д.). В более конкретном примере, показанном на Фиг. 5, в некоторых вариантах реализации в качестве первой линии разреза для разделения изображения (500) может быть определена линия разреза (520а). Линия разреза (520а) может располагаться выше или ниже верхней границы области изображения (510). При альтернативном подходе линия разреза (520а) может представлять собой и/или включать одну или более частей верхней границы области изображения (510). В то время как первая линии разреза определяется на основе верхней границы области изображения (510), это всего лишь иллюстрация. Для определения первой линии разреза может использоваться любая информация о положении, связанная с какой-либо частью области изображения.
[0060] В блоке (318) устройство обработки может выявить первую группу разделительных линий в изображении, которые параллельны первому направлению. Дополнительно или в качестве альтернативного варианта устройство обработки может выявить вторую группу разделительных линий в изображении, которые параллельны второму направлению. Первая группа разделительных линий и вторая группа разделительных линий могут быть обнаружены с помощью метода OCR, метода обнаружения границ, и/или любого другого подходящего метода или сочетания методов. В одном варианте реализации первое направление перпендикулярно второму направлению. В более конкретном примере первая группа разделительных линий может содержать одну или более горизонтальных разделительных линий на изображении (например, разделительные линии (535), (537) и любые другие горизонтальные разделительные линии, показанные на Фиг. 5). В другом более конкретном примере вторая группа разделительных линий может содержать одну или более вертикальных разделительных линий в изображении (например, разделительные линии (531), (533) и любые другие вертикальные разделительные линии, как показано на Фиг. 5).
[0061] В блоке (320) устройство обработки может выбрать первую разделительную линию и вторую разделительную линию из второй группы разделительных линий. Такой выбор может производиться на основе информации о положении, связанной с областью изображения. Например, первая разделительная линия может быть разделительной линией второй группы разделительных линий, которая расположена ближе к первой границе области изображения (например, левой границе, правой границе и т.д.), чем другие разделительные линии второй группы разделительных линий. Второй разделительной линией может быть разделительная линия второй группы разделительных линий, которая расположена ближе к второй границе области изображения (например, граница, расположенная напротив первой границы), чем другие разделительные линии во второй группе разделительных линий. В более конкретном примере, разделительная линия (531) на Фиг. 5 может быть выбрана в качестве вертикальной разделительной линии, которая находится ближе всего к левой границе области изображения (510). В другом более конкретном примере разделительная линия (533) на Фиг. 5 может быть выбрана в качестве вертикальной разделительной линии, которая находится ближе всех к правой границе области изображения (510). В некоторых вариантах реализации в качестве первой разделительной линии или второй разделительной линии может быть выбрана любая другая разделительная линия на изображении.
[0062] В блоке (322) устройство обработки может создать одну или несколько линий разреза на основе информации о расположении, относящейся к первой разделительной линии и/или второй разделительной линии. Линия (линии) разреза могут быть параллельны второму направлению. В одном примере устройство обработки строит линию разреза, совмещенную с одним или несколькими участками первой разделительной линии. В другом примере устройство обработки строит линию разреза, совмещенную с одним или несколькими участками второй разделительной линии. В более конкретном примере линию разреза (520b) можно совместить с разделительной линией (531). В одном варианте реализации линия разреза (520b) может быть расположена справа или слева от разделительной линии (531). В другом варианте реализации линия разреза (520b) может представлять собой и/или содержать один или несколько участков разделительной линии (531). Аналогичным образом, линия разреза (520с) может быть совмещена с разделительной линией (533).
[0063] В блоке (324) устройство обработки может выбрать третью разделительную линию из первой группы разделительных линий на основе информации о положении, связанной с первой разделительной линией. Например, устройство обработки выбирает разделительную линию из первой группы разделительных линий, которая пересекает первую разделительную линию. В более конкретном примере устройство обработки выявляет различные разделительные линии первой группы разделительных линий, которые пересекают первую разделительную линию. Затем устройство обработки выбирает одну из нескольких разделительных линий, которая находится ближе всех к первой линии разреза. При альтернативном подходе устройство обработки может выбрать любую другую разделительную линию из первой группы разделительных линий в качестве третьей разделительной линии.
[0064] В другом примере устройство обработки определяет, что первая разделительная линия является частью табличной структуры в изображении. Затем устройство обработки выбирает разделительную линию в табличной структуре в качестве третьей разделительной линии. В более конкретном примере, показанном на Фиг. 5, устройство обработки определяет, что разделительная линия (535) является частью табличной структуры в изображении. Затем устройство обработки обнаруживает разделительную линию табличной структуры, имеющую первое направление, и расположенную ближе всех к первой линии разреза, в качестве третьей разделительной линии.
[0065] В блоке (326) устройство обработки может построить линию разреза на основе информации о положении, относящейся к третьей разделительной линии. Линия разреза может быть параллельна первому направлению. Линия разреза может быть совмещена с третьей разделительной линией. В одном примере линия разреза может располагаться выше или ниже третьей разделительной линии. В другом примере линия разреза может представлять собой и/или содержать одну или несколько частей третьей разделительной линии. В более конкретном примере, показанном на Фиг. 5, линия разреза (520d) может определяться на основе информации о расположении, относящейся к разделительной линии (535).
[0066] В блоке (328) устройство обработки может выбрать четвертую разделительную линию из первой группы разделительных линий на основе информации о положении, относящейся ко второй разделительной линии. Например, устройство обработки выбирает разделительную линию из первой группы разделительных линий, которая пересекает вторую разделительную линию. В более конкретном примере устройство обработки выявляет различные разделительные линии из первой группы разделительных линий, которые пересекают вторую разделительную линию. Затем устройство обработки выбирает одну из нескольких разделительных линий, которая расположена ближе всех к второй линии разреза. В другом примере устройство обработки определяет, что вторая разделительная линия является частью таблицы на изображении. Затем устройство обработки выбирает разделительную линию в таблице, которая расположена ближе всех к второй разделительной линии, в качестве четвертой разделительной линии. В более конкретном примере разделительная линия (537) на Фиг. 5 может быть выбрана на основе информации о положении, связанной с разделительной линией (533).
[0067] В блоке (330) устройство обработки может построить линию разреза на основе информации о положении, относящейся к четвертой разделяющей линии. Например, устройство обработки строит линию разреза, которая параллельна первому направлению. Линия разреза может быть совмещена с четвертой разделительной линией. В одном примере линия разреза может располагаться выше или ниже четвертой разделительной линии. В другом примере линия разреза может представлять собой и/или содержать одну или несколько частей четвертой разделительной линии. В более конкретном примере, показанном на Фиг. 5, линия разреза (520е) может быть определена на основе информации о положении, относящейся к разделительной линии (537).
[0068] Обратимся к Фиг. ЗВ, процесс (350) может начаться в блоке (352), когда устройство обработки выявит одну или более областей изображения, соответствующих подлежащим верификации данным. Например, области изображения могут быть выявлены так, как описано выше в связи с блоком (230) на Фиг. 2. В более конкретном примере устройство обработки обрабатывает изображение (600) на Фиг. 6, а также выявляет области изображения (621а-с), соответствующие подлежащим верификации данным.
[0069] В блоке (354) устройство обработки может определить информацию о положении, относящуюся к первой области изображения из выявленных областей изображения. Первая область изображения может быть самой правой областью изображения, самой левой областью изображения, самой верхней областью изображения, случайной областью изображения и/или любой другой областью изображения, определенной в блоке (352). В одном примере устройство обработки данных может определить одну или более координат, связанных с первой областью изображения. В более конкретном примере устройство обработки определяет одну или более координат, связанных с изображением (621а) на Фиг. 6, например, одну или более координат, связанных с правым верхним углом изображения области (621а) (например, координату x, координату y и т.д.).
[0070] В блоке (356) устройство обработки может построить первую линию разреза, параллельную первому направлению на основании информации о положении, связанной с первой областью изображения. Первое направление может быть горизонтальным, вертикальным или любым другим направлением. В одном примере устройство обработки определяет первую линию разреза на основе одной или более координат, связанных с первой областью изображения. В более конкретном примере, показанном на Фиг. 6А, горизонтальная линия разреза (631а) может быть определена на основе координаты "y", связанной с верхней границей или верхним правым углом области изображения (621а).
[0071] В блоке (358) устройство обработки может определить, должна ли по меньшей мере одна область изображения, соответствующая данным, которые подлежат верификации, обрабатываться для разделения изображения на сегменты изображения. Если установлено, что ни одна область изображения не должна обрабатываться, устройство обработки может закончить процесс (350).
[0072] При альтернативном подходе, если установлено, что должна обрабатываться одна или более областей изображения, устройство обработки переходит к блоку (360) и определяет информацию о положении, относящуюся к следующей области изображения из выявленных областей изображения. Например, устройство обработки определяет одну или более координат, связанных со следующей областью изображения. В более конкретном примере может быть определена одна или более координат, связанных с изображением области (621b) на Фиг. 6А.
[0073] В блоке (362) устройство обработки может построить линию разреза параллельно второму направлению на основе информации о положении, связанной со следующей областью изображения. В некоторых вариантах реализации второе направление перпендикулярно первому направлению. В одном примере устройство обработки может построить линию разреза на основе одной или более координат, связанных со следующей областью изображения. В более конкретном примере, показанном на Фиг. 6, устройство обработки строит вертикальную линию разреза (631b) на основе координат (например, координаты x), связанной с правым верхним углом или верхней границей области изображения (621b). В одном примере линия разреза (631b) может проходить выше области изображения (621b). В другом примере линия разреза (631b) может представлять собой и/или содержать одну или несколько частей области изображения (621b) (например, правую границу области изображения (621b)).
[0074] В блоке (364) устройство обработки может определять линию разреза, параллельную первому направлению, на основе информации, связанной с положением следующей области изображения. В одном примере устройство обработки может построить линию разреза на основе одной или более координат, связанных со следующей областью изображения. В более конкретном примере, показанном на Фиг. 6, горизонтальная линия разреза (631с) может быть определена на основе координаты "y", связанной с верхней границей или верхним правым углом области изображения (621b).
[0075] После выполнения операции (364) устройство обработки может вернуться в блок (358) и определить, требуется ли обработка одной или более областей изображения, соответствующих данным, которые подлежат верификации. Если установлено, что не должны обрабатываться какие-либо области изображения, подлежащие верификации данных, устройство обработки может закончить процесс (350).
[0076] С другой стороны, если установлено, что одна или более областей изображения должны обрабатываться, устройство обработки может построить одну или несколько линий разреза, выполняя операции, описанные в связи с блоками (360)-(364). Например, при построении линий разреза (621b-с) устройство обработки определяет информацию о положении, относящуюся к следующей области изображения в изображении (600) (например, области изображения (621с)). Например, более конкретно, устройство обработки определяет одну или более координат, связанных с областью изображения (621с), например, одну или более координат, связанных с верхним правым углом и/или верхней границей области изображения (621с). Затем устройство обработки определяет линию разреза, имеющую второе направление на основании информации о положении, связанной с областью изображения (621с). Например, более конкретно, устройство обработки определяет линию разреза (631d) на основании координат, связанных с областью изображения (621с) (например, координаты "x", связанной с правым верхним углом области изображения (621с)). Кроме того, при обработке может быть определена линия разреза, имеющая первое направление, на основании информации о положении, связанной с областью изображения (621с). Например, более конкретно, устройство обработки определяет линию разреза (631е) на основании координаты, связанной с областью изображения (621с) (например, координаты "y", связанной с правым верхним углом области изображения (621с)).
[0077] Обращаясь к Фиг. 3С, способ (370) может начать работу в блоке (372), где устройство обработки выявляет одну или более областей изображения, которые соответствуют подлежащим верификации данным. Например, могут быть выявлены области изображения, описанные выше в связи с блоком (230) на Фиг. 2. В более конкретном примере, показанном на Фиг. 6, устройство обработки обрабатывает изображение (699) и выявляет области изображения (623а-с) как области, в которых соответствующие данные подлежат верификации. В другом более конкретном примере, области изображения 635а-b на Фиг. 6 могут быть выявлены как области изображения, соответствующие подлежащим верификации данным.
[0078] В блоке (374) устройство обработки выявляет первую группу разделительных линий в изображении, которые параллельны первому направлению. Дополнительно или в качестве альтернативного варианта, устройство обработки может выявить вторую группу разделительных линий в изображении, которые параллельны второму направлению. В некоторых вариантах реализации первое направление перпендикулярно второму направлению.
[0079] В блоке (376) устройство обработки строит набор исходных линий разреза для выявленных областей изображения. Исходные линии разрезов могут быть параллельными первому направлению, такому как горизонтальное, вертикальное или любое другое направление. В одном примере для заданного изображения области устройство обработки строит линию разреза, параллельную первому направлению на основе одной или более координат, связанных с областью изображения, такими как координата "y", связанная с верхней границей области изображения. В более конкретном примере, показанном на Фиг. 6, линии разреза (633а-с) могут быть построены для областей изображения (623а-с), соответственно. В другом более конкретном примере, показанном на Фиг. 6, линии разреза (635а-b) могут быть построены для областей изображения (625а-b), соответственно.
[0080] В блоке (378) устройство обработки определяет, расположена ли какая-либо область изображения, определенная в блоке (372), на левой стороне первой области изображения из областей изображения, определенных в блоке (372). Первая область изображения может быть любой областью изображения, выявленной в блоке (372). В одном примере изображение содержит несколько табличных структур. Первая область изображения может быть областью изображения, расположенной в одной из табличных структур (например, самая левая область изображения в самой правой табличной структуре в изображении, самая правая область изображения в самой левой табличной структуре в изображении или любая область изображения).
[0081] Если установлено, что ни одна область изображения, соответствующая подлежащим верификации данным, не находится в левой стороне первой области изображения, устройство обработки переходит к блоку (380) и выбирает первую разделительную линию из второй группы разделительных линий. Этот выбор может быть сделан на основе любого критерия или критериев. В некоторых вариантах реализации устройство обработки выбирает разделительную линию, которая расположена ближе к левой границе первой области изображения, чем любая другая разделительная линия во второй группе разделительных линий. В более конкретном примере, показанном на Фиг. 6, при построении линии разреза (633а) устройство обработки определяет, что ни одна область изображения, соответствующая подлежащим верификации данным, не расположена в левой части области изображения (633а). Затем устройство обработки выбирает разделительную линию (641) в качестве вертикальной разделительной линии, ближайшей к левой границе области изображения (633а).
[0082] В блоке (382) устройство обработки строит линию разреза на основе определения информации о положении, связанной с первой разделительной линией. Линия разреза может быть параллельной второму направлению. В одном примере устройство обработки строит линию разреза, совмещенную с одним или несколькими участками первой разделительной линии. В более конкретном примере линия разреза (633е) может быть получена на основе информации о положении, относящейся к разделительной линии (641). В одном варианте реализации линия разреза (633е) может быть совмещена с разделительной линией (641).
[0083] В блоке (384) устройство обработки выбирает вторую разделительную линию из первой группы разделительных линий. Например, устройство обработки выбирает разделительную линию из первой группы разделительных линий, которая пересекает первую разделительную линию. В более конкретном примере устройство обработки выявляет различные разделительные линии первой группы разделительных линий, которые пересекают первую разделительную линию. Затем устройство обработки выбирает одну из нескольких разделительных линий, которая находится ближе всех к первой линии раздела. В другом более конкретном примере устройство обработки определяет, что первая разделительная линия является частью табличной структуры. Затем устройство обработки выбирает разделительную линию в табличной структуре как третью разделительную линию.
[0084] В блоке (386) устройство обработки строит линию разреза на основании второй разделительной линии. Линия разреза может быть параллельна первому направлению. Линия разреза может быть совмещена со второй разделительной линией. В одном примере линия разреза может быть расположена выше или ниже второй разделительной линии. В другом примере линия разреза может представлять собой и/или содержать одну или несколько частей второй разделительной линии. В более конкретном примере, показанном на Фиг. 6, линия разреза (633d) может быть определена на основе информации о положении, относящейся к разделительной линии (643).
[0085] Если установлено, что существует одна или несколько областей изображения, соответствующих подлежащих верификации данным, расположенных в левой части первой области изображения, устройство обработки переходит к блоку (388) и строит одну или более линий разреза на основе исходных линий разреза, соответствующих первой области изображения и области (областям) изображения, расположенным слева от первой области изображения. Например, устройство обработки данных может определить, что две исходных линий разреза связаны с той же координатой (например, координатой x, координатой y и т.д.), а затем может построить линию разреза путем соединения двух исходных линий разреза. В другом примере устройство обработки может построить линию разреза, имеющую второе направление для соединения двух исходных линий разреза. В более конкретном примере линия разреза может быть совмещена с разделительной линией, расположенной между двумя исходными линиями разреза. В другом более конкретном примере линия разреза может быть совмещена с границей области изображения (например, области изображения, расположенной над первой областью изображения, границей первой области изображения, области изображения, соответствующей подлежащим верификации данным и т.д.). Как показано на Фиг. 6, линия разреза (635с) может быть построена для соединения исходных линий разреза (635а) и (635b).
[0086] В блоке (390) устройство обработки определяет, расположена ли какая-либо область изображения, определенная в блоке (372), в правой стороне первой области изображения. Если установлено, что ни одна область изображения, определенная в блоке (372), не находится в правой части первой области изображения, процесс (370) может быть завершен.
[0087] Если установлено, что области одного или более изображений, определенных в блоке (372), расположены справа от первой области изображения, устройство обработки может перейти к блоку (392) и строит одну или более линий разреза на основе первоначальных линий разреза, соответствующих первой области изображения и области (областей) изображения, расположенных справа от первой области изображения. Например, устройство обработки данных может определить, что две исходные линии разреза связаны с одной и той же координатой, а затем может построить линию разреза путем соединения двух исходных линий разреза. В более конкретном примере, показанном на Фиг. 6, устройство обработки определяет, что первоначальные линии разреза (633а) и (633b) связаны с одной координатой "y". Затем устройство обработки строит линии разреза, соединяя первоначальные линии разреза (633а) и (633b).
[0088] В другом примере устройство обработки может построить линию разреза, имеющую второе направление для соединения двух исходных линий разреза. В более конкретном примере линия разреза может быть совмещена с разделительной линией, расположенной между двумя исходными линиями разреза. В другом более конкретном примере линия разреза может быть совмещена с границей области изображения (например, области изображения, расположенной над первой областью изображения, границей первой области изображения, или области изображения, соответствующей подлежащим верификации данным и т.д.). Как показано на Фиг. 6, вертикальная линия разреза (633е) могут быть построена для соединения исходных линий разреза (633b) и (633с). Линия разреза (633f) может быть совмещена с вертикальной разделительной линией, расположенной между исходными линиями (633b) и (633с).
[0089] На Фиг. 10 показано схематическое изображение машины в виде, например, компьютерной системы (1000), в которой может выполняться набор команд, заставляющих машину выполнять какой-либо один или более методов, изложенных в этом описании. В альтернативных вариантах реализации машина может быть соединена (например, через сеть) с другими машинами в локальной сети, интрасети, экстрасети или сети Интернет. Эта машиной может работать в качестве сервера или клиентского устройства в сетевой среде клиент-сервер, или как одноранговая машина в одноранговой (или распределенной) сети. Такой машиной может быть персональный компьютер (ПК), планшетный ПК, телевизионная приставка (STB), карманный персональный компьютер (PDA), сотовый телефон, веб-устройство, сервер, маршрутизатор, коммутатор или мост в сети или любая машина, которая может выполнять набор команд (последовательный или иной), определяющие действия, которые будут приняты этой машиной. Далее, если показана одна машина, то термин «машина» также должен включать любой набор машин, которые по отдельности или совместно выполняют набор команд (или несколько наборов команд) для выполнения какого-либо одного или более раскрытых здесь методов.
[0090] Компьютерная система (1000) содержит устройство обработки (1002) (например, процессор, центральный процессор и т.д.), оперативную память (1004) (например, постоянное запоминающее устройство (ОЗУ или ROM), флэш-память, динамическое ОЗУ (DRAM) (такое как синхронное динамическое ОЗУ (SDRAM) или DRAM (RDRAM) и т.д.), статическое запоминающее устройство (1006) (например, флэш-память, статическое оперативное запоминающее устройство (ОЗУ) и т.д.), а также устройство хранения данных (1018), которые взаимодействуют друг с другом по шине (1008).
[0091] Обрабатывающее устройство (1002) представляет собой одно или более устройств обработки общего назначения, таких как микропроцессор, центральный процессор, или т.п. В частности, процессорное устройство может быть микропроцессором с полным набором команд (CISC), микропроцессором с сокращенным набором команд (RISC), микропроцессором с командными словами очень большой длины (VLIW) или процессором, реализующим другие наборы команд, или процессором, реализующим сочетание наборов команд. Обрабатывающее устройство (1002) также может представлять собой одно или несколько устройств обработки специального назначения, такое как специализированная интегральная схема (ASIC), программируемая пользователем вентильная матрица (FPGA), процессор цифровых сигналов (DSP), сетевой процессор или т.п. Процессор (1002) настраивается для выполнения логики обработки (1026) для выполнения рассматриваемых в этом документе операций и шагов.
[0092] Компьютерная система (1000) может дополнительно содержать устройство сетевого интерфейса (1022), взаимодействующего с сетью (1064). Компьютерная система (1000) также может содержать блок видеодисплея (1010) (например, жидкокристаллический дисплей (ЖК-дисплей) или электронно-лучевую трубку (ЭЛТ)), буквенно-цифровое устройство ввода (1012) (например, клавиатуру), устройство управления курсором (1014) (например, мышь) и устройство, подающее сигналы (1020) (например, громкоговоритель).
[0093] Устройство хранения данных (1018) может содержать машиночитаемый носитель данных (1024), в котором хранится программное обеспечение (1026), где реализована одна или более из методик, описанных в настоящем описании функций. Программное обеспечение (1026) также может находиться полностью или по меньшей мере частично в основной памяти (1004) в виде команд (1026) и/или в устройстве обработки (1002) в виде логики обработки (1026) при выполнении их в компьютерной системе (1000); основная память (1004) и устройство обработки (1002) также представляют собой машиночитаемый носитель.
[0094] Машинно-читаемый носитель данных (1024) также может использоваться для хранения инструкций (1026) по обработке электронных документов для распознавания счетов, таких как приложение (190), как описано выше в связи с ФИГ. 1 и/или программной библиотеки, содержащей методы, вызываемые указанным выше приложением. Хотя машинно-читаемый носитель данных (1024) приведен в примере осуществления изобретения в виде одного носителя, термин "машинно-читаемый носитель данных" также будет включать в себя один носитель или несколько носителей (например, централизованную или распределенную базу данных и/или ассоциированную с ними кэш-память и серверы), которые содержат один или несколько наборов инструкций. Термин «машиночитаемый носитель данных» также включает любой носитель данных, способный хранить, кодировать или передавать набор команд для исполнения машиной и заставлять машину выполнять любую одну или несколько методик, раскрытых в настоящем описании. Соответственно, термин «машиночитаемый носитель данных» должен включать, помимо прочего, твердотельные устройства памяти и оптические и магнитные носители.
[0095] В приведенном выше описании изложены многочисленные детали. Однако должно быть очевидно, что это изобретение может быть реализовано на практике без этих конкретных деталей. В некоторых случаях хорошо известные структуры и устройства показаны в виде блок-схем, а не в деталях, для того чтобы не затруднять раскрытие сущности изобретения.
[0096] Некоторые части подробного описания, сопровождающие их, представлены в терминах алгоритмов и символического обозначения операций с битами данных в компьютерной памяти. Эти алгоритмические описания и представления являются средством, использованным квалифицированными специалистами по обработке данных для более эффективного представления сущности работы для других квалифицированных специалистов. Приведенный здесь (и в целом) алгоритм сконструирован как непротиворечивая последовательность шагов, ведущих к нужному результату. Эти этапы требуют физических манипуляций с физическими величинами. Обычно, хотя и не обязательно, эти величины принимают форму электрических или магнитных сигналов, которые можно хранить, передавать, комбинировать, сравнивать и манипулировать ими. Оказалось, что прежде всего для обычного использования удобно описывать эти сигналы в виде битов, значений, элементов, символов, членов, цифр и т.д.
[0097] Однако следует иметь в виду, что все эти и подобные термины должны быть связаны с соответствующими физическими величинами и что они являются лишь удобными обозначениями, применяемые к этим величинам. Если специально не указано иное, как видно из последующего обсуждения, следует понимать, что во всем описании такие термины, как «отправка», «прием», «создание», «выявление», «обеспечение», «выполнение», «определение» и т.п., относятся к действиям компьютерной системы или подобного электронного вычислительного устройства или к процессам в нем, причем такая система или устройство манипулирует данными и преобразует данные, представленные в виде физических (электронных) величин, в регистрах компьютерной системы и памяти в другие данные, также представленные в виде физических величин в памяти или регистрах компьютерной системе или в других подобных устройствах хранения, передачи или отображения информации.
[0098] В описании термины «первый», «второй», «третий», «четвертый» и т.д. используется как метки для обозначения различных элементов, они не обязательно имеют смысл порядка в соответствии с их числовым обозначением.
[0099] Это описание также относится к устройству для выполнения операций. Такое устройство может быть специально сконструировано для данных целей, или оно может содержать универсальный компьютер, который избирательно активируется или изменяется с помощью компьютерной программы, хранящейся в этом компьютере. Такая компьютерная программа может храниться на машиночитаемом носителе данных, например (помимо прочего): диск любого типа, в том числе гибкий диск, оптические диски, CD-ROM и магнитно-оптические диски, постоянные запоминающие устройства (ПЗУ), оперативные запоминающие устройства (ОЗУ), программируемые ПЗУ (EPROM), электрически стираемые ППЗУ (EEPROM), магнитные или оптические карты или любой тип носителя, пригодный для хранения электронных команд, каждый из которых соединен с шиной компьютерной системы.
[00100] Алгоритмы и изображения дисплеев, приведенные в этом документе, не обязательно связаны с конкретными компьютерами или другими устройствами. Различные системы общего назначения могут использоваться с программами в соответствии с изложенной здесь информацией, возможно также признание целесообразным сконструировать более специализированные устройства для выполнения шагов способа. Структура разнообразных систем такого рода определяется в порядке, предусмотренном в описании ниже. Кроме того, изложение сущности изобретения не предполагает ссылок на какие-либо конкретные языки программирования. Следует принимать во внимание, что для реализации принципов излагаемого изобретения могут быть использованы различные языки программирования.
[00101] Сущность изобретения может быть представлена в виде компьютерного программного продукта или программы, которая может содержать машинно-читаемый носитель с сохраненными на нем инструкциями, которые могут использоваться для программирования компьютерной системы (или других электронных устройств) для выполнения процесса в соответствии с сущностью раскрываемого изобретения. Машиночитаемый носитель включает механизмы хранения или передачи информации в машиночитаемой форме (например, компьютером). Например, машиночитаемый (считываемый компьютером) носитель данных содержит машиночитаемый (например, компьютером) носитель данных (например, постоянное запоминающее устройство («ПЗУ»), оперативное запоминающее устройство («ОЗУ»), накопитель на магнитных дисках, накопитель на оптическом носителе, устройства флэш-памяти и т.д.) и т.п.
[00102] Принимая во внимание множество вариантов и модификаций раскрываемого изобретения, которые, без сомнения, будут очевидны лицу со средним опытом в профессии, после прочтения изложенного выше описания, следует понимать, что любой частный вариант осуществления изобретения, приведенный и описанный для иллюстрации, ни в коем случае не должен рассматриваться как ограничение. Таким образом, ссылки на подробности не должны рассматриваться как ограничение объема притязания, который содержит только признаки, рассматриваемые в качестве сущности изобретения.