Захват видео в сценарии ввода данных

Иллюстрации

Показать все

Изобретение относится к области распознавания данных. Технический результат – эффективное выявление целевых полей в физическом документе, используя видеопоток мобильного устройства. Способ выявления целевых полей в физическом документе, включающий: получение информации устройством обработки для выявления поля данных в физическом документе; получение устройством обработки видеопотока, включающего множество кадров, причем каждый кадр содержит часть физического документа; выбор устройством обработки кадра из множества кадров в видеопотоке; выявление устройством обработки одной или более текстовых зон в выбранном кадре; обработка устройством обработки каждой из одной или более выявленных текстовых зон выбранного кадра для определения данных каждой из одной или более выявленных текстовых зон выбранного кадра, а также для выбора данных одной из одной или более выявленных текстовых зон, которые соответствуют набору признаков, связанных с полем данных; сравнение устройством обработки данных одной из одной или более выявленных текстовых зон выбранного кадра с данными одной или более текстовых зон последующего кадра; обновление устройством обработки данных одной из одной или более выявленных текстовых зон выбранного кадра, если данные одной или более текстовых зон последующего кадра обеспечивают собой лучшее соответствие набору признаков; и предоставление устройством обработки отображаемого поля, содержащего данные одной из одной или более выявленных текстовых зон, для представления в интерфейсе пользователя. 3 н. и 17 з.п. ф-лы, 6 ил.

Реферат

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

[001] Настоящее изобретение в целом относится к вычислительным системам, а более конкретно - к облегчению ввода данных из видеопотоков.

УРОВЕНЬ ТЕХНИКИ

[002] Оптическое распознавание символов (OCR) представляет собой электронное преобразование отсканированных или сфотографированных изображений машинописного или печатного текста в машиночитаемый текст.OCR является общепринятым методом оцифровки печатных текстов, чтобы их можно было редактировать в электронном виде, производить в них поиск, отображать их в режиме онлайн, и используется в таких процессах, как преобразование текста в речь, извлечение данных и интеллектуальный анализ текста. Некоторые коммерческие системы OCR могут воспроизводить форматированный вывод, который очень точно отображает исходную отсканированную страницу, включая изображения, колонки и другие нетекстовые компоненты. Специализированные системы ввода данных позволяют пользователю сканировать физический документ, который может быть впоследствии представлен для OCR и обработан с целью идентификации значимых полей в целевых частях документа.

РАСКРЫТИЕ ИЗОБРЕТЕНИЯ

В соответствии с одним или несколькими аспектами настоящего изобретения компонент ввода данных мобильного устройства может получать информацию для идентификации поля данных в физическом документе. Компонент ввода данных может получать видеопоток, включающий в себя множество кадров, причем каждый кадр содержит часть физического документа. Кадр может быть выбран из множества кадров в видеопотоке. Может быть выявлена одна или несколько текстовых зон в заданном кадре. Каждая выявленная текстовая зона в кадре может обрабатываться для выявления данных каждой из выявленных текстовых зон, а также для выбора одной из выявленных текстовых зон, данные которой соответствуют набору признаков, связанных с этим полем данных. Затем можно сопоставить выбранные данные с данными текстовых зон следующего кадра. Если данные текстовых зон следующего кадра обеспечивают более точное соответствие набору признаков, то выбранные данные могут быть обновлены. Затем отображаемое поле с выбранными данными может быть обеспечено для представления в интерфейсе пользователя.

КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ

[003] Настоящее изобретение иллюстрируется с помощью примеров, а не способом ограничения, его можно лучше понять при рассмотрении приведенного ниже описания предпочтительных вариантов реализации в сочетании с чертежами, на которых:

[004] На Фиг. 1 изображена схема компонентов верхнего уровня для примера архитектуры вычислительного устройства в соответствии с одним или несколькими аспектами настоящего изобретения.

[005] На Фиг. 2 показан пример графического интерфейса пользователя (GUI) мобильного устройства для захвата видео в сценарии ввода данных в соответствии с одним или несколькими аспектами настоящего изобретения.

[006] На Фиг. 3 приведена блок-схема последовательности операций для способа захвата видео в сценарии ввода данных в соответствии с одним или несколькими аспектами настоящего изобретения.

[007] На Фиг. 4 приведена блок-схема способа обработки текстовых зон в кадре в соответствии с одним или несколькими аспектами настоящего изобретения.

[008] На Фиг. 5 приведена блок-схема последовательности операций способа для обновления данных в выявленной текстовой зоне данными следующих кадров в соответствии с одним или несколькими аспектами настоящего изобретения.

[009] На Фиг. 6 изображена блок-схема иллюстративной вычислительной системы, работающей в соответствии с примерами осуществления настоящего изобретения.

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

[0010] В этом документе приведено описание способов и систем для захвата видео в сценарии ввода данных. Специализированные системы ввода данных позволяют пользователю сканировать физический документ и затем передавать его для распознавания и обработки с целью выявления значимых полей в целевых частях этого документа. Однако системы такого типа могут быть громоздкими, так как часто им требуется один или несколько персональных компьютеров, одно или несколько устройств сканирования, программное обеспечение для OCR или программное обеспечение для ввода данных, а также цифровые шаблоны. Для создания цифровых шаблонов может потребоваться специальный набор навыков, который может оказаться труднодоступным, и, возможно, что для этого потребуются значительные расходы. Оборудование, программное обеспечение и создание шаблона могут оказаться неприемлемо дорогими. Кроме того, аппаратное обеспечение, необходимое для реализации такой системы, является нецелесообразным для тех пользователей, которым требуется мобильность при обработке документов (например, обработка страхового возмещения, продажи, отчеты о расходах и т.д.).

[0011] Аспекты настоящего раскрытия устраняют отмеченные выше и другие недостатки путем использования гибкой и более дешевой альтернативной платформы для ввода данных из физических документов с помощью мобильных устройств (например, смартфонов, планшетных компьютеров и т.д.). Данные могут вводиться из полей данных физических документов (форм, анкет, финансовых документов и т.д.) с помощью мобильных устройств со встроенными камерами, обрабатываться с помощью OCR и сохраняться локально или передаваться в удаленные базы данных все в приделах одного приложения, выполняющегося на мобильном устройстве. Поля данных в физическом документе могут быть выбраны в качестве цели с помощью видоискателя встроенной камеры. Пользователь мобильного устройства может сразу увидеть их и проверить на экране мобильного устройства. В видеопотоке могут быть захвачены несколько полей данных физического документа, причем каждый кадр потока может быть проанализирован, чтобы сравнить все выявленные текстовые зоны в каждом кадре потока для выявления наилучшего соответствия для конкретного целевого поля данных в физическом документе.

[0012] В иллюстративном примере вычислительная система, в которой реализованы описанные здесь способы, может предоставлять интерфейс пользователя, помогающий пользователю выявлять целевые поля данных в физическом документе. Интерфейс пользователя может быть вызван компонентом ввода данных, выполняемым в мобильном устройстве. Компонент ввода данных может быть мобильным приложением (или частью мобильного приложения), установленным на мобильном устройстве с камерой, способной создавать видеопоток, например, мобильным телефоном, карманным компьютером (PDA), фотокамерой, видеокамерой, ноутбуком и т.д. Например, пользователь может запустить приложение на мобильном телефоне с камерой, затем может выводиться интерфейс пользователя, помогающий пользователю выявить целевое поле, данные которого требуется распознать. В одном иллюстративном примере интерфейс пользователя может выводить графический индикатор на экран мобильного устройства (например, перекрестие, значок цели и т.д.), чтобы направить пользователя установить это перекрестие видоискателя мобильного устройства на конкретное поле данных в документе для ввода. В другом иллюстративном примере интерфейс пользователя может выводить сообщение, предлагающее пользователю установить перекрестие на конкретное поле данных в физическом документе.

[0013] Компонент ввода данных может быть настроен для обработки конкретных типов документов (платежных поручений, уставов и т.д.). Он может включать список полей документа, содержащих вводимые данные (например, название компании, банковский идентификационный код (БИК), номер счета, основание платежа и сумму платежа), а также тип данных, обычно используемых в каждом поле (например, адрес, время, дату, сумму, наименование, код, текст, номер и т.д.), количество знакомест, а также дополнительные правила контроля данных, позволяющие проверять распознанные поля данных (например, словари, регулярные выражения, контрольные суммы и т.д.), и т.п. В качестве иллюстративного примера компонент ввода данных может быть настроен на обработку документов конкретного типа. При альтернативном подходе компонент ввода данных может быть настроен на обработку документов нескольких типов и запрашивать тип документа у пользователя через интерфейс пользователя при активации этого компонента (например, когда приложение запускается в мобильном телефоне). Компонент ввода данных также может быть настроен на прием поддерживаемых типов документов с сервера. Компонент ввода данных может определить обрабатываемый документ (например, с помощью конкретного запроса пользователя, информации о местоположении, контекстной информации приложения и т.д.), отправить запрос на сервер по полям, обычно используемым в документах запрашиваемого типа, и сохранить информацию на мобильном устройстве для обработки этого документа.

[0014] В дополнение к представлению интерфейса пользователя, помогающего пользователю выявить целевое поле данных, компонент ввода данных может включить камеру мобильного устройства (например, до вывода интерфейса пользователя, во время вывода интерфейса пользователя и т.д.). Затем компонент ввода данных может получить видеопоток с камеры мобильного устройства. Этот видеопоток может состоять из множества кадров, в котором каждый кадр может включать часть физического документа, содержащего целевое поле данных. Кадр может включать контент (например, изображение) отображаемый на экране мобильного устройства и его можно получить с использованием видоискателя камеры. Кадр может передаваться в режиме реального времени без записи видео, захвата изображения или сохранения изображения в памяти или в постоянном хранилище данных. Видоискатель может поддерживать передачу видеоданных в реальном времени с камеры мобильного устройства на его дисплей. Как уже отмечалось в приведенном выше примере, пользователю может быть направлен запрос о необходимости навести перекрестие видоискателя мобильного устройства на целевое поле данных.

[0015] Затем компонент ввода данных может выбрать кадр из множества кадров видеопотока. В некоторых вариантах реализации изобретения кадры можно выбрать для обработки в мобильном устройстве, используя заранее заданную частоту. Например, кадры могут выбираться из видеопотока с частотой каждый 10-й кадр в секунду. Также можно использовать другие частоты (например, каждый первый, второй, четвертый, шестой кадр в секунду и т.д.). Кроме того, кадр может быть выбран при фокусировке камеры мобильного устройства на захватываемый объект (например, часть физического документа, потенциально содержащую требуемое поле данных) в течение определенного периода времени (например, 1/2 секунды, одной секунды, двух секунд и т.д.).

[0016] После выбора кадра компонент ввода данных может проанализировать кадр, чтобы выявить в кадре одну или несколько текстовых зон. В некоторых вариантах реализации компонент ввода данных может определить данные каждой текстовой зоны. Данные каждой выявленной текстовой зоны могут включать текстовые данные (результат OCR текстовой зоны) и значения признаков для текстовых данных. Затем компонент ввода данных может проанализировать данные каждой текстовой зоны в кадре изображения, чтобы определить текстовую зону, данные которой соответствуют набору признаков, связанных с этим полем данных (или описанию поля данных). Текстовые зоны могут выявляться, например, используя идентификацию связанных компонентов (элементарных объектов, построенных по соприкасающимся точкам изображения одной цветности), и затем группируя их в потенциальные слова. При альтернативном подходе текстовые зоны могут выявляться с использованием любого подобного метода обнаружения текста на изображениях.

[0017] Затем компонент ввода данных может определить текстовые данные в каждой из выявленных в кадре текстовых зон, используя оптическое распознавание символов (OCR). Таким образом, изображение текстовой зоны может быть преобразовано в текстовые данные (например, последовательности кодов, используемые для представления символов в компьютере или в мобильном устройстве). Полученные текстовые данные могут включать гипотезу для каждого символа, а также расположение каждого символа в кадре (например, координаты каждого символа в кадре). Кроме того, чтобы ограничить ложное распознавание, каждому символу может быть назначен уровень уверенности гипотезы для каждого символа в соответствии с заранее определенным набором правил. Уровень уверенности может представлять собой заранее определенное различие между уверенно и неуверенно распознанными символами. Если уровень уверенности символа соответствует заранее определенному пороговому значению, символ может быть обозначен как «уверенно распознанный». Если уровень уверенности для символа не соответствует заранее определенному пороговому значению, компонент ввода данных может создать сообщение с просьбой подтвердить распознанный символ. В некоторых вариантах реализации порог можно повысить или понизить, чтобы изменить количество символов, которым может потребоваться верификация.

[0018] Кроме того, компонент ввода данных может определить набор признаков, связанных с целевым полем данных физического документа. Такие признаки могут включать правила, особенности или характеристики, связанные с целевым полем данных, чтобы помочь компоненту ввода данных выявить текстовую зону в кадре, данные которой наилучшим образом соответствуют целевому полю данных физического документа. В качестве иллюстративного примера признак может включать тип вводимых данных (например, свойство поля данных такое как: числовые данные, текстовые данные, имя клиента, номер социального страхования и т.д.). Например, если целевое поле в физическом документе представляет собой поле даты, то любые выявленные текстовые зоны в кадре можно сравнить с форматом даты (например, мм/дд/гггг, дд/мм/гггг, гггг/мм и т.д.), чтобы определить, содержит ли любая из текстовых зон кадра действительную дату.

[0019] В другом иллюстративном примере признаком может являться близость к перекрестью видоискателя. В некоторых вариантах реализации можно использовать перекрестие (или аналогичный графический индикатор) в видоискателе, чтобы помочь пользователю выявить целевое поле данных физического документа. Соответственно, чем ближе выявленная текстовая зона в кадре к точке перекрестия в видоискателе камеры мобильного устройства, тем выше вероятность того, что выявленная текстовая зона соответствует целевому полю данных физического документа.

[0020] В другом иллюстративном примере признаки могут включать дополнительные правила проверки данных. Правила проверки данных могут включать определенные условия, применяемые к данным в полях, и автоматически проверяться компонентом ввода данных. Примеры правил проверки данных включают проверку текстовых данных по базам данных (например, словарь имен, словарь БИК и т.д.), сравнение текстовых данных со списками известных допустимых значений. Кроме того, могут также сравниваться текстовые данные в нескольких текстовых зонах. Например, если документ содержит несколько числовых полей, а также связанную с ними сумму, то правило проверки данных можно использовать, чтобы независимо пересчитать сумму распознанных данных всех подходящих выявленных текстовых зонах и сравнить результат с распознанными данными соответствующей текстовой зоны.

[0021] В другом иллюстративном примере признак может включать качество распознавания символов в текстовой зоне. В некоторых вариантах реализации изобретения качество распознавания можно измерить числом неуверенно распознанных символов (что описано выше). Чем больше количество неуверенно распознанных символов, тем ниже качество распознавания текстовой зоны. Аналогично, чем меньше количество неуверенно распознанных символов, тем выше качество распознавания текстовой зоны.

[0022] В другом иллюстративном примере признак может включать количество случаев определения конкретной текстовой зоны компонентом ввода данных как более точного соответствия целевому полю данных, которое отображается в интерфейсе пользователя, что описано более подробно ниже. Если конкретная текстовая зона была определена как более точное соответствие целевому полю данных в нескольких обработанных кадрах, но результат не был подтвержден пользователем через интерфейс пользователя, то компонент ввода данных может определить, что выявленная текстовая зона не соответствует этому полю данных. Если количество полученных кадров изображения превышает пороговое значение, то компонент ввода данных может попытаться отобразить текстовую зону, которая определяется как менее точное соответствие целевому полю данных. Например, компоненту ввода данных может потребоваться конкретное поле цены, если в кадре присутствуют несколько полей цен. Если поле цены выявлено в кадре на основе его близости к перекрестью видоискателя в десяти последовательных кадрах без подтверждения пользователем, то компонент ввода данных может попытаться выявить другое поле цены в этом кадре.

[0023] В другом иллюстративном примере признак может включать формат данных, например, формат сокращения или кавычки. Например, если текстовая зона содержит сокращение «Со.» в текстовых данных, то компонент ввода данных может определить, что данная текстовая зона представляет собой название компании. Кроме того, формат данных может включать интервалы между строками выше и ниже текстовой зоны, разделительные линии (вертикальные или горизонтальные линии, которые могут указывать на поле в таблице) или аналогичные индикаторы форматирования, которые могут присутствовать в физическом документе.

[0024] Выше были описаны некоторые иллюстративные примеры признаков, однако также могут использоваться признаки других типов. После того как компонент ввода данных определил признаки, связанные с требуемым полем данных, для текстовых данных каждой текстовой зоны в кадре могут быть определены значения набора признаков. Каждому признаку может быть также приписан вес, который указывает его относительную важность при выявлении текстовой зоны, которая может соответствовать целевому полю данных. Например, близости текстовой зоны к перекрестию может быть назначен больший вес, поскольку можно ожидать, что пользователь установит перекрестие в целевое поле данных физического документа, когда камера принимает видеопоток. В другом случае, если в кадре имеется большое число текстовых зон, и только одна из них по-видимому имеет правильный формат, формату данных можно приписать больший вес, чем признаку, определенному на основании близости к перекрестию.

[0025] Компонент ввода данных может определить вес признака для каждого значения признака, а затем определить общий вес признаков для текстовых данных каждой текстовой зоны путем суммирования весов отдельных значений признаков, связанных с текстовыми данными каждой текстовой зоны. В некоторых вариантах реализации изобретения текстовые данные, значения признаков и их соответствующие весовые коэффициенты могут сохраняться для последующего использования при сравнении с данными текстовых зон других кадров, полученных позднее. Затем компонент ввода данных может выявить данные текстовой зоны, связанные с суммарным весом признаков, имеющих наибольшее значение среди сумм весов признаков данных других выявленных в кадре текстовых зон. Данные выявленной текстовой зоны с наибольшим общим весом признаков могут быть выбраны как данные текстовой зоны, которая наиболее точно соответствует целевому полю данных физического документа (т.е. обеспечивает «наилучшее» возможное соответствие для полученного кадра).

[0026] Затем компонент ввода данных может сохранить выбранные текстовые данные и связанные с ними признаки выявленной текстовой зоны как кандидата на наилучшее совпадение. Компонент ввода данных может дополнительно сохранить текстовые данные и признаки каждой выявленной в кадре дополнительной текстовой зоны. Компонент ввода данных может сохранить эту информацию в хранилище данных для использования при сравнении с ранее полученными кадрами, а также кадрами, полученными позднее из видеопотока. Хранилище данных может представлять собой постоянную память мобильного устройства, память мобильного устройства или сетевое устройство хранения данных сервера. В некоторых вариантах реализации изобретения компонент ввода данных может использовать информацию, хранящуюся в хранилище данных, для сравнения текстовых данных выявленной текстовой зоны с текстовыми данными соответствующей текстовой зоны всех кадров, полученных из видеопотока.

[0027] После того, как компонент ввода данных выявил текстовую зону в принятом кадре, данные которой соответствуют набору признаков, связанному с целевым полем данных (т.е. обеспечивают наилучшее соответствие полю данных), данные совпадающей текстовой зоны могут быть отображены в отображаемом поле интерфейса пользователя для подтверждения пользователем. Например, данные совпадающей текстовой зоны могут отображаться в нижней части экрана мобильного телефона под видоискателем с перекрестием. Пользователь может подтвердить то, что данные выявленной текстовой зоны соответствуют целевому полю данных, используя пользовательский ввод указывающий на подтверждение в интерфейсе пользователя. Такое подтверждение может быть выполнено в виде ввода команды сенсорного экрана (например, нажатием отображаемой кнопки на экране), выбором пункта меню, вводом голосовой команды или любым другим способом.

[0028] В некоторых вариантах реализации изобретения описанный выше процесс может повторяться для полученных позднее кадров видеопотока. Затем компонент ввода данных может сравнить данные выявленной текстовой зоны с данными текстовых зон в полученном позднее кадре, чтобы определить, не содержит ли последующий кадр текстовую зону, которая лучше соответствует целевому полю данных, чем зона в ранее принятом кадре. Сравнение текстовых зон из разных кадров может обеспечить возможность выявления текстовой зоны, которая хорошо соответствует целевому полю данных, даже если в конкретном кадре перекрестие видоискателя находится в соседнем поле данных физического документа, а не в целевом поле данных.

[0029] В некоторых вариантах реализации изобретения выявленную в последующих кадрах текстовую зону можно сравнить с той же текстовой зоной в предыдущих кадрах, чтобы определить лучший захват изображения и результат распознавания поля данных среди всех полученных кадров в видеопотоке.

[0030] Для сравнения данных выявленной текстовой зоны с данными соответствующей текстовой зоны более позднего кадра видеопотока компонент ввода данных может сначала выбрать кадр видеопотока, который был получен позднее. Позднее принятый кадр может быть следующим кадром в видеопотоке. При альтернативном подходе позднее принятый кадр можно определить с использованием заранее заданной частоты, как описано выше (например, для каждого второго, четвертого, шестого кадра в секунду и т.д.).

[0031] В некоторых вариантах реализации изобретения компонент ввода данных может определить сдвиг между ранее выбранным кадром и принятым позднее кадром. Это смещение может представлять собой разность между координатами выявленной текстовой зоны ранее выбранного кадра и координат соответствующей текстовой зоны более позднего принятого кадра. При альтернативном подходе смещение может представлять собой разность между координатами любой текстовой зоны, которая появляется в ранее выбранном кадре и позже принятом кадре. Смещение между двумя последовательно полученными кадрами можно вычислить, например, используя компонент мобильного устройства - гироскоп.

[0032] Затем компонент ввода данных может выявить соответствующую текстовую зону более позднего принятого кадра видеопотока. В некоторых вариантах реализации изобретения соответствующую текстовую зону можно выявить путем повторения описанного выше процесса выявления. При альтернативном подходе компонент ввода данных может использовать координаты текстовой зоны в первом кадре и смещение между первым кадром и более поздним принятым кадром для выявления соответствующей текстовой зоны в следующем кадре (например, для выявления той же текстовой зоны в последующем кадре). Затем компонент ввода данных может определить общий вес признаков для набора признаков, связанных с соответствующей текстовой зоной, и сравнить общий вес признаков для двух текстовых зон, чтобы определить, данные какой текстовой зоны лучше соответствуют целевому полю данных.

[0033] В некоторых вариантах реализации изобретения компонент ввода данных может дополнительно посимвольно сравнивать данные текстовой зоны первого кадра и данные соответствующей текстовой зоны последующего кадра. Одинаковые символы (например, символ, имеющий одинаковое положение в каждой текстовой зоне) можно сравнить с использованием уровня уверенности для символа, определенного в описанном выше процессе OCR. Если уровень уверенности распознавания символов последующего кадра выше, чем в ранее выбранном кадре, то текстовые данные, распознанные в соответствующей текстовой зоне позже принятого кадра, могут заменить текстовые данные текстовой зоны ранее выбранного кадра. Этот процесс можно повторить для каждого символа текстовой зоны, чтобы определить текстовые данные, которые наиболее точно отображают данные целевого поля данных.

[0034] В некоторых вариантах реализации изобретения компонент ввода данных может дополнительно рассматривать несколько раз один и тот же символ в соответствующей текстовой зоне в разных кадрах. Если при этом один и тот же символ был распознан с таким же результатом в нескольких предыдущих кадрах, и только для последующего кадра получен другой результат, то компонент ввода данных может посчитать это ошибкой распознавания символа и исключить отличающийся символ из рассмотрения. Поэтому если символ распознан с одинаковым результатом несколько раз, то можно сохранить его как наиболее подходящий символ (например, символ, который наиболее точно соответствует символу в том же положении в целевом поле данных) независимо от уровня уверенности для символа. Компонент ввода данных может сохранить в хранилище данных эту информацию, а также другую статистическую информацию, связанную с распознаванием символов, которая будет использоваться для сравнения с данными, полученными из следующих кадров.

[0035] Если компонент ввода данных определяет, что данные в соответствующей текстовой зоне следующего кадра обеспечивают лучшее соответствие целевому полю данных в отношении набора признаков, связанного с целевым полем данных, то данные из выделенной текстовой зоны предыдущего кадра могут быть обновлены или заменены. В некоторых вариантах реализации изобретения компонент ввода данных может сначала определить, что значение общего веса признаков для соответствующей текстовой зоны больше, чем общий вес признаков для выбранной текстовой зоны предыдущего кадра. Затем компонент ввода данных может заменить данные выбранной текстовой зоны данными соответствующей текстовой зоны, и после этого сохранить данные соответствующей текстовой зоны в хранилище данных как контент, который более точно соответствует целевому полю данных. В некоторых вариантах реализации изобретения логика обработки может сохранять данные соответствующей текстовой зоны в памяти мобильного устройства. При ином подходе логика обработки может сохранить данные соответствующей текстовой зоны в постоянной памяти мобильного устройства.

[0036] Затем компонент ввода данных может предоставить отображаемое поле, которое включает данные выявленной текстовой зоны для представления в интерфейсе пользователя. Поэтому каждый кадр, полученный компонентом ввода данных, может дополнительно уточнять текстовые данные кадра, которые лучше соответствуют полю данных физического документа. Отображаемое поле может постоянно обновляться после обработки каждого позднее принятого кадра видеопотока, пока пользователь не подтвердит, что текстовые данные в отображаемом поле являются правильными.

[0037] Как уже отмечалось выше, пользователь может подтвердить правильность данных путем ввода информации в интерфейсе пользователя. Например, пользователь может нажать кнопку в пользовательском интерфейсе приложения. Затем компонент ввода данных может получить подтверждение от пользователя, которое указывает, что данные выявленной текстовой зоны в отображаемом поле соответствуют полю данных физического документа. Если эти данные не совпадают, то пользователь может продолжить указывать перекрестьем видоискателя на целевое поле данных, чтобы повторить этот процесс. Если компонент ввода данных не получил подтверждение в течение определенного периода времени, который соответствует заранее определенному порогу, то процесс может автоматически выбрать следующий кадр для обработки. Если компоненту ввода данных не удается определить точное совпадение для поля данных, то пользователь может отказаться от дальнейших попыток выявления целевого поля данных и ввести текстовые данные вручную.

[0038] Затем данные выявленной текстовой зоны можно сохранить в хранилище данных как правильные данные. В некоторых вариантах реализации изобретения логика обработки может сохранять текстовые данные выявленной текстовой зоны в локальной постоянной памяти мобильного устройства. При альтернативном подходе логика обработки может передавать данные выявленной текстовой зоны на сервер для записи в базе данных или в сетевом хранилище данных. Затем компонент ввода данных может повторить весь процесс для любых дополнительных полей данных физического документа, которые должны быть введены. После выявления всех полей данных и записи проверенных данных собранные из всех полей данные можно сохранить в виде единой коллекции для последующего использования другим приложением в мобильном устройстве. При альтернативном подходе набор данных может передаваться на сервер для обработки другим приложением или системой.

[0039] Таким образом, аспекты настоящего изобретения могут устранить необходимость предварительного формирования цифрового шаблона и использования оборудования для специализированного ввода данных из физических документов. Более конкретно, аспекты настоящего изобретения позволяют легко захватывать, распознать и проверять поля данных физического документа, используя видеопоток мобильного устройства.

[0040] На Фиг. 1 показана схема компонентов верхнего уровня для примера архитектуры вычислительного устройства в соответствии с одним или несколькими аспектами настоящего изобретения. В иллюстративных примерах вычислительное устройство 100 может представлять собой разнообразные вычислительные устройства, включая планшетный компьютер, смартфон, ноутбук, фотокамеру, видеокамеру и т.д.

[0041] Вычислительное устройство 100 может содержать процессор 110, подключенный к системной шине 120. Другие устройства, подключенные к системной шине 120, могут включать память 130, дисплей 135 с сенсорным экраном 170, клавиатуру 140, сетевой интерфейс 160 и оптическое устройство ввода 150. В этом документе термин «подключенный» относится к устройствам, которые соединены электрически или подключены через один или несколько интерфейсных устройств, адаптеров и т.д.

[0042] Процессор 110 может представлять собой одно или несколько устройств обработки, включая универсальные процессоры и (или) специализированные процессоры. Память 130 может включать одно или несколько устройств энергозависимой памяти (например, микросхем ОЗУ), одно или несколько устройств энергонезависимой памяти (например, микросхем ПЗУ или EEPROM) и одно или несколько запоминающих устройств (например, оптические или магнитные диски). Оптическое устройство ввода 150 может представлять собой и (или) содержать одну или более камер, сканеров, считывателей штрих-кодов и (или) любых других устройств, способных формировать изображения документа.

[0043] В некоторых вариантах реализации изобретения вычислительное устройство 100 может содержать сенсорный экран 170, выполненный в виде сенсорной области ввода и (или) чувствительной поверхности, наложенной на дисплей 135. Пример вычислительного устройства, в котором реализованы аспекты настоящего изобретения, будет рассмотрен более подробно ниже при описании Фиг. 6.

[0044] В некоторых вариантах реализации изобретения память 130 может хранить команды модуля ввода данных 190 для облегчения захвата видео в сценарии ввода данных, как описано выше, а также более подробно ниже со ссылкой на Фиг. 3-6. В качестве иллюстративного примера модуль ввода данных 190 может быть реализован в виде функции, которая вызывается через интерфейс пользователя другого приложения (например, приложения сканирования документов). При альтернативном подходе модуль 190 может быть реализован в виде автономного приложения.

[0045] На Фиг. 2 показан пример графического интерфейса пользователя (GUI) мобильного устройства 220 для захвата видео в сценарии ввода данных. GUI мобильного устройства 220 может представлять собой автономное приложение, компонент интерфейса пользователя для менеджера документов или т.п. Например, GUI мобильного устройства 220 может быть предоставлен пользователю модулем ввода данных 190, показанным на Фиг. 1; это описано подробно ниже со ссылкой на Фиг. 3-6.

[0046] Мобильное устройство 220 может включать приложение, настроенное для захвата счета 210 с помощью камеры мобильного устройства. Как показано на Фиг. 2, это приложение может отображать GUI в мобильном устройстве 220, чтобы помочь пользователю выявить поле промежуточного итога в счете 210. Затем приложение может активировать камеру, чтобы начать получать кадры видеопотока через камеру мобильного устройства 220. Кадры видеопотока могут отображаться пользователю с помощью дисплея 230. Перекрестье 240 может представляться приложением на дисплее в виде визуального средства, помогающего пользователю определить целевое поле данных (в данном случае поле промежуточного итога) счета 210. Могут быть выявлены текстовые зоны отображаемого на дисплее принятого кадра. Могут быть определены и проанализированы данные выявленных текстовых зон, причем данные выявленной текстовой зоны 250 могут быть выбраны в качестве данных, которые соответствуют полю промежуточного итога на основании признаков, связанные с полем данных Subtotal (Промежуточный итог) в настройках этого приложения. Затем приложение может представить данные выявленной текстовой зоны 250 в отображаемом поле 260 для подтверждения пользователем. Пользователь может подтвердить данные отображаемого поля 260, нажав кнопку Done (Готово), отображаемую на дисплее мобильного устройства 220.

[0047] На Фиг. 3 приведена блок-схема примера способа 300 для захвата видео в сценарии ввода данных. Этот способ может осуществляться логикой обработки, которая может содержать аппаратные средства (электронные схемы, специализированную логику и т.д.), программное обеспечение (например, выполняться в вычислительной системе общего назначения или в специальной машине) или комбинацию первого и второго. В одном иллюстративном примере способ 300 может выполняться модулем ввода данных 190 на Фиг. 1. При альтернативном подходе некоторые или все способы 300 могут выполняться другим модулем или машиной. Следует отметить, что блоки, изображенные на Фиг. 3, могут выполняться одновременно или в порядке, отличающемся от показанного порядка.

[0048] В блоке 301 логика обработки может получать информацию для выявления поля данных в физическом документе. Эта информация может включать имя поля содержащего данные (например, название компании, банковский идентификационный код (БИК), номер счета, назначение платежа и сумму платежа), а также тип данных, общий для этого поля (например, адрес, время, дата, сумма, наименование, код, текст, число и т.д.), количество символов пробелов, дополнительные правила, позволяющие верифицировать распознанное поле данных (например, словари, регулярные выражения, контрольные суммы и т.д.) и т.п. Например, пользователь может запуст