Оптимизация обмена данными между клиентским устройством и сервером
Иллюстрации
Показать всеИзобретение относится к области обмена данными между клиентским устройством и сервером. Техническим результатом является оптимизированный обмен данными между клиентским устройством и серверным устройством. Клиентское устройство получает исходное изображение физического документа, на основе которого создается уменьшенный файл, который значительно меньше исходного изображения по размеру и содержит данные, указывающие на тип документа. Клиентское устройство отправляет на сервер запрос, включающий уменьшенный файл, на получение информации, относящейся к типу документа для физического документа, получает от сервера сведения о местонахождении, исходя из типа документа, для, по меньшей мере, одной части исходного изображения, которое содержит, по меньшей мере, один элемент содержимого физического документа, и извлекает, по меньшей мере, одну часть исходного изображения, используя информацию о местонахождении, для создания, по меньшей мере, одной извлеченной части изображения. Клиентское устройство отправляет второй запрос, содержащий, по меньшей мере, одну извлеченную часть изображения, на сервер для, по меньшей мере, одного элемента содержимого. При получении, по меньшей мере, одного элемента содержимого с серверного устройства, клиентское устройство предоставляет, по меньшей мере, один элемент содержимого для просмотра. 3 н. и 27 з.п. ф-лы, 8 ил.
Реферат
ОБЛАСТЬ ИЗОБРЕТЕНИЯ
[001] Настоящее изобретение относится в целом к вычислительным системам, а точнее, к системам и способам оптимизации обмена данными между клиентским устройством и сервером.
УРОВЕНЬ ТЕХНИКИ
[002] Мобильные устройства, такие как мобильные телефоны, смартфоны, планшетные компьютеры и т.д. являются популярной платформой для прикладных программ. Во многих случаях прикладная программа, выполняемая на мобильном устройстве, может осуществлять связь с серверной системой. Модель приложения клиент-сервер представляет собой распределенное приложение, задачи или процессы которого распределены между поставщиком ресурсов или услуг (сервером) и получателем услуг (клиентом). Клиенты и серверы могут связываться по компьютерной сети, в том числе обмениваться большими объемами данных.
РАСКРЫТИЕ ИЗОБРЕТЕНИЯ
[003] Варианты реализации настоящего изобретения описывают оптимизированный обмен данными между клиентским устройством и серверным устройством. Клиентское устройство получает исходное изображение физического документа, на основе которого создается уменьшенный файл, который значительно меньше исходного изображения по размеру и содержит данные, указывающие на тип документа. Клиентское устройство отправляет на серверное устройство запрос, включающий уменьшенный файл, на получение информации, относящейся к типу физического документа, получает от серверного устройства сведения о местонахождении, исходя из типа документа, для части исходного изображения, которое содержит элемент содержимого физического документа, и извлекает часть исходного изображения, используя информацию о местонахождении, для создания извлеченного изображения. Клиентское устройство отправляет второй запрос, содержащий извлеченную часть изображения, на серверное устройство для элемента содержимого. В ответ на получение элемента содержимого с серверного устройства клиентское устройство предоставляет элемент содержимого для просмотра.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[004] Для более полного понимания настоящего изобретения ниже приводится описание предпочтительных вариантов реализации, в котором оно для примера, а не способом ограничения иллюстрируется со ссылкой на чертежи, на которых:
[005] На Фиг. 1 приведена схема компонентов верхнего уровня для примера сетевого окружения в соответствии с одним или более вариантами реализации настоящего изобретения.
[006] На Фиг. 2 показан пример графического интерфейса пользователя (GUI) мобильного устройства для захвата изображения физического документа в соответствии с одним или более аспектами настоящего изобретения.
[007] Фиг. 3 иллюстрирует пример уменьшенного файла, созданного оптимизатором обмена данными, в соответствии с одним или более аспектами настоящего изобретения.
[008] На Фиг. 4 приведен пример исходного изображения документа с информацией о местоположении элемента содержимого в изображении документа в соответствии с одним или более аспектами настоящего изобретения.
[009] На Фиг. 5 представлена блок-схема одного из способов оптимизации обмена данными между клиентским устройством и сервером в соответствии с одним или более вариантами реализации настоящего изобретения.
[0010] На Фиг. 6 представлена диаграмма последовательности одного из вариантов реализации изобретения для оптимизации обмена данными между клиентским устройством и сервером в соответствии с одним или более вариантами реализации настоящего изобретения.
[0011] На Фиг. 7 представлена диаграмма последовательности одного из вариантов реализации изобретения для оптимизации обмена данными между клиентским устройством и сервером в соответствии с одним или более вариантами реализации настоящего изобретения.
[0012] На Фиг. 8 представлена блок-схема вычислительной системы, работающей в соответствии с примерами реализации настоящего изобретения.
ПОДРОБНОЕ ОПИСАНИЕ
[0013] В настоящем документе описываются способы и системы оптимизации обмена данными между клиентскими устройствами и серверными устройствами. Мобильные устройства становятся все более популярными в качестве платформы для приложений. Однако многие традиционные мобильные устройства имеют меньше ресурсов (например, памяти, мощности процессора, места для хранения данных и т.д.), чем более крупные вычислительные системы (настольные компьютеры, портативные компьютеры и т.д.), что может ограничивать вычислительную мощность приложений на мобильных устройствах. В некоторых вариантах реализации на мобильных устройствах могут быть реализованы клиент-серверные приложения, что позволяет устранить дефицит ресурсов путем распределения вычислительной нагрузки между мобильным устройством и серверной системой, которая имеет значительно большую мощность. В подобных вариантах реализации приложение может выполняться на мобильном устройстве, обмениваясь данными с ответной частью приложения, которая выполняется на серверном устройстве. Это мобильное устройство может быть связано с сервером через сетевое соединение, позволяющее им обмениваться данными. Однако при таких условиях канал связи может оказаться "узким местом" для эффективности всего приложения. Это может быть особенно важно, если приложение включает передачу больших файлов данных, например, изображений или видеопотоков.
[0014] Например, приложения, которые включают идентификацию/классификацию документов и оптическое распознавание символов (OCR) на изображениях, захваченных камерой мобильного телефона, могут содержать большое количество обрабатываемых данных. Мобильное устройство обычно не имеет достаточной мощности процессора для выполнения таких операций, поэтому может потребоваться передать эти данные на сервер для выполнения обработки. Сетевое соединение с ограниченной пропускной способностью или урезанное из-за количества передаваемых данных может отрицательно повлиять на эффективность приложения, передающего такие файлы.
[0015] Варианты реализации настоящего изобретения устраняют отмеченные выше и другие недостатки путем реализации оптимизатора обмена данными для обмена небольшим количеством информации при взаимодействии между приложением на клиентском устройстве и ответной частью приложения на серверном устройстве. В иллюстративном примере клиентское устройство получает исходное изображение физического документа. Создается уменьшенный файл, который значительно меньше по размеру, чем исходное изображение, но сохраняет достаточно информации о структуре для определения типа документа. Уменьшенный файл отправляется на серверную систему, которая производит идентификацию документа для определения типа документа. Мобильное устройство на основе типа документа получает информацию о местоположении от серверной системы для части исходного изображения, которая содержит элемент содержимого физического документа. После этого мобильное устройство может извлечь часть исходного изображения, исходя из информации о местоположении, чтобы создать извлеченную часть исходного изображения, и переслать эту извлеченную часть изображения на сервер для дальнейшей обработки. Мобильное устройство может получить реальный элемент содержимого, входящий в извлеченное изображение, и предоставить содержимое для просмотра или использования в другом приложении.
[0016] Варианты реализации настоящего изобретения, таким образом, могут оптимизировать обмен данными между клиентскими устройствами и серверными устройствами, значительно снижая объем данных, передаваемых по каналам связи. В частности, клиентское устройство может ограничивать объем данных, передаваемых на сервер, только теми данными, которые необходимы для прикладной задачи. Таким образом, при использовании каналов сетей связи с низкой пропускной способностью эффективность клиент-серверных приложений может быть значительно повышена без ухудшения качества результатов.
[0017] На Фиг. 1 приведена блок-схема, иллюстрирующая сетевое окружение 100, в котором может быть реализован вариант реализации настоящего изобретения. Сетевое окружение 100 может содержать одно или более клиентских устройств 110 и один или более серверов 120, которые могут обмениваться данными друг с другом по сети 150. Одним из примеров клиентского устройства 110 может быть вычислительная система 800, приведенная на Фиг. 8. Сеть 150 может включать, например, Интернет, сети интранет, экстранет, глобальные сети (WAN), локальные сети (LAN), проводные сети, беспроводные сети, мобильные/сотовые сети или другие подходящие сети и т.д., а также любые сочетания двух или более подобных сетей. Например, такие сети могут включать спутниковые сети, кабельные сети, сети Ethernet и другие типы сетей.
[0018] Клиентское устройство 110 может быть устройством на базе процессора, которое содержит камеру, способную получать изображения, например, мобильным телефоном (сотовый телефон, смартфон и т.д.), карманным компьютером (PDA), планшетной вычислительной системой, камерой, видеокамерой, портативным компьютером и т.д. Кроме того, клиентское устройство 110 может быть устройством на базе процессора, способным поддерживать библиотеку фотографий или получать изображения из библиотеки фотографий, как перечисленные выше устройства, а также настольные компьютеры, телевизионные приставки, музыкальные проигрыватели, игровые консоли, электронные книги или другие устройства со схожими возможностями.
[0019] В некоторых вариантах реализации клиентское устройство 110 может дополнительно содержать одно или более приложений (не показаны), которые управляют извлечением информации из изображения физического документа (например, изображения документа 115). Например, клиентское устройство 110 может содержать приложение, в котором пользователю предлагается пользовательский интерфейс для получения фотографии счета. Затем приложение может извлекать информацию, такую как номер счета и сумму к оплате, и представлять эту информацию пользователю через пользовательский интерфейс. В другом примере клиентское устройство 110 может содержать приложение, в котором пользователю предоставляется возможность сделать фотографию водительских прав для извлечения номера водительских прав, имени и адреса водителя или другой персональной информации для проведения проверки владельца прав. В другом примере клиентское устройство 110 может содержать приложение, в котором пользователю предоставляется возможность захватывать видеопоток из нескольких документов и извлекать из потока отдельные кадры, которые содержат изображения физических документов. В другом примере клиентское устройство 110 может содержать приложение, которое позволяет пользователю сделать фотографию списка покупок (например, чека из розничного магазина) для определения и распределения по категориям каждой покупки из списка (например, продукты питания, одежда, поездки, бизнес-расходы и т.д.).
[0020] В каждом из приведенных выше примеров клиентскому приложению может потребоваться определить тип документа, содержащегося в захваченном изображении, а также определить содержимое частей захваченного изображения. Клиентское устройство 110 может не обладать достаточными ресурсами для выполнения анализа документа, классификации документа и извлечения информации. По этой причине клиентское устройство 110 может обмениваться данными с сервером 120 для выполнения одной или более из этих функций. В этих вариантах реализации клиентское устройство 110 может содержать оптимизатор обмена данными 112 для облегчения оптимизированного обмена данными между клиентским устройством 110 и сервером 120, когда ресурсы сети 150 ограничены. В некоторых вариантах реализации оптимизатор обмена данными 112 может быть включен в приложение на клиентском устройстве 110. В других случаях оптимизатор обмена данными 112 может быть компонентом, который выполняется на клиентском устройстве 110 и вызывается отдельным приложением.
[0021] Сервер 120 может включать, например, компьютер сервера или другую систему, предоставляющую вычислительные мощности. Кроме того, сервер 120 может использовать множество вычислительных устройств, которые могут быть смонтированы, например, в одном или более серверных банках, компьютерных банках или в других компоновках. Эти вычислительные устройства могут быть размещены в одном месте или распределены в географически разные места. Например, сервер 120 может включать множество вычислительных устройств, которые совместно могут содержать размещенный вычислительный ресурс, сетевой вычислительный ресурс и/или любую другую распределенную компьютерную компоновку.
[0022] В некоторых реализациях сервер 120 может включать классификатор документов 122 и хранилище данных 140. Классификатор документов 122 может предоставлять услуги классификации документов и(или) извлечения данных приложениям, выполняемым на клиентском устройстве 110. Классификатор документов 122 может получать изображение с клиентского устройства 110, определять тип документов, ассоциированный с изображением, и посылать информацию о типе документов клиентскому устройству 110. Кроме того, классификатор документов может извлекать содержимое из изображений или фрагментов изображений и предоставлять извлеченное содержимое клиентскому устройству 110.
[0023] В некоторых вариантах реализации сервер 120 может содержать хранилище данных 140, на котором могут храниться правила классификации 145. Хранилище данных 140 может включать один или более носителей данных, в число которых могут входить, например, флэш-память, магнитные или оптические диски, накопители на магнитной ленте, постоянное запоминающее устройство (ROM); оперативное запоминающее устройство (RAM); перезаписываемая программируемая память (например, EPROM и EEPROM), флэш-память или любые другие типы носителей данных. Правила классификации 145 могут представлять собой структуру данных, в которой хранятся правила, связанные с определением типа документа на основе полученного изображения. Например, правила классификации 145 могут содержать информацию, которая относится к структурным характеристикам изображений физических документов для формулирования предположений о типе документа на изображении. Кроме того или вместо этого правила классификации 145 могут хранить правила оптического распознавания символов (OCR), которые классификатор документов 122 может использовать для извлечения текста из изображений или фрагментов изображений, полученных от клиентского устройства 110.
[0024] В иллюстративном примере пользователь может инициировать приложение на клиентском устройстве 110 и захватить изображение физического документа 130 с помощью камеры устройства. В одном из вариантов реализации изобретения клиентское устройство 110 может захватывать отдельное неподвижное изображение (то есть фотографию) физического документа 130. Вместо этого клиентское устройство 110 может захватывать видеопоток одного или более физических документов 130, где видеопоток будет состоять из множества кадров с изображением. Приложение может сохранить изображение документа 115 (то есть изображение физического документа 130) локально на клиентском устройстве 110 (например, в памяти, во временном хранилище, в хранилище данных устройства и т.д.). В других вариантах реализации изобретения приложение может получать изображение из библиотеки фотографий, доступной с клиентского устройства 110. После этого приложение может вызвать оптимизатор обмена данными 112 для извлечения содержимого из изображения документа 115, используя оптимизированный обмен данными между клиентским устройством 110 и сервером 120.
[0025] Оптимизатор обмена данными 112 может получать изображение документа 115 и создавать на основе полученного изображения уменьшенный файл, который будет значительно меньше по размеру, чем исходное изображение документа 115. Оптимизатор обмена данными 112 может создавать уменьшенный файл, выполняя над исходным изображением одну или более операций преобразования данных, чтобы создать файл уменьшенного размера, содержащий данные, которые указывают на тип документа физического документа, представленного на изображении документа 115. В некоторых вариантах реализации изобретения операция преобразования может включать конвертацию цветного изображения в полутоновое, цветного изображения в черно-белое, операцию сжатия данных, операцию уменьшения разрешения изображения, операцию бинаризации или другие подобные операции. Пример операции преобразования более подробно рассматривается ниже со ссылкой на Фиг. 2-3.
[0026] В некоторых вариантах реализации изобретения вместо создания уменьшенного файла, который соответствует всему изображению 115 исходного документа, оптимизатор обмена данными 112 может выбрать в качестве уменьшенного файла фрагмент изображения исходного документа 115. Например, клиентское приложение может быть предназначено для обработки документов определенного типа и поэтому должно иметь представление о положении отдельных типов содержимого внутри изображения. В подобных случаях приложение может потребовать от оптимизатора обмена данными 112 выбрать часть исходного изображения, которая содержит определенный тип содержимого. Например, приложение может быть выполнено с возможностью получения изображение счета или транспортной этикетки, в определенном месте которой находится штрих-код. Оптимизатор обмена данными 112 может извлечь часть изображения документа, которая содержит штрих-код, и создать уменьшенный файл, который содержит только изображение штрих-кода. Таким образом, в этом случае уменьшенный файл может сохранять то же разрешение, которое было у исходного изображения, при этом он будет меньше исходного изображения документа, потому что содержит только изображение штрих-кода, но не содержит остальной части исходного изображения документа.
[0027] Оптимизатор обмена данными 112 может затем послать на сервер 120 запрос, чтобы получить информацию относительно типа физического документа 130, причем этот запрос будет содержать уменьшенный файл. В некоторых вариантах реализации изобретения оптимизатор обмена данными 112 может вызываться "тонким клиентом", т.е. приложением, которое не выполняет никакого анализа типа документа. В подобных случаях клиентское устройство 110 полагается на сервер 120 по вопросам определения типа документа и определения потенциальных элементов содержимого, значимых для клиентского устройства, исходя из типа документа. Пример диаграммы последовательности для обмена данными между "тонким клиентом" и сервером приведен ниже со ссылкой на Фиг. 6. В качестве альтернативы, оптимизатор обмена данными 112 может вызываться "умным клиентом" - приложением, которое получает тип документа от сервера 120, выполняет собственное определение элементов содержимого, необходимых приложению, исходя из типа документа, и отправляет на сервер 120 новый запрос для получения информации о местоположении элементов содержимого. Пример диаграммы последовательности для обмена данными между "умным клиентом" и сервером приведен ниже со ссылкой на Фиг. 7.
[0028] Сервер 120 может получать уменьшенный файл, вызывать классификатор документов 122 для определения типа документа физического документа 130, используя уменьшенный файл, и посылать запрос к оптимизатору обмена данными 112, который содержит информацию о найденном типе документа. В тех вариантах реализации изобретения, в которых клиентское устройство 110 содержит "умный клиент", классификатор документов 122 может отправлять ответ, включающий только тип документа (например, счет, водительские права, банковский чек, товарный чек, счет из ресторана и т.д.). Оптимизатор обмена данными 112 может получать тип физического документа, определять на основе типа документа элемент содержимого документа и отправлять следующий запрос к серверу 120, запрашивая сведения о местоположении части исходного документа, которая содержит элемент содержимого (например, место номера счета, номера водительских прав, налога по счету, штрих-кода и т.д. в физическом документе). В некоторых вариантах реализации изобретения информация о местоположении может включать координаты ограничивающего прямоугольника части исходного изображения, которая содержит нужный элемент содержимого. В вариантах реализации изобретения, в которых изображение исходного документа 115 представляет собой видеопоток, содержащий несколько кадров изображения, информация о местоположении может включать информацию, идентифицирующую как минимум один кадр в видеопотоке (например, номер кадра, смещение кадра в потоке видео, смещение метки времени в потоке видео, где может находиться кадр, и т.д.).
[0029] В некоторых вариантах реализации изобретения, например, в случае "тонкого клиента", классификатор документов 122 может в ответ на получение уменьшенного файла дополнительно определить конкретный необходимый элемент содержимого (или несколько необходимых элементов содержимого), исходя из типа документа. Классификатор документа 122 может определить информацию о местоположении, исходя из типа документа для части исходного документа, которая содержит определенный элемент содержимого документа (например, местоположение номера счета, номера водительских прав, налога по счету, штрих-кода и т.д. физического документа), после чего переслать информацию о местоположении оптимизатору обмена данными 112.
[0030] Оптимизатор обмена данными 112 может получить информацию о местоположении от сервера 120 и извлечь, используя эту информацию, часть изображения исходного документа 115 для создания извлеченной части изображения. Например, оптимизатор обмена данными 112 может получить координаты ограничивающего прямоугольника части исходного изображения, которая содержит необходимый элемент содержимого, и извлечь часть изображения, используя эти координаты (например, извлечь часть изображения, определенную координатами ограничивающего прямоугольника, для создания фрагмента изображения, который содержит элемент содержимого). В вариантах реализации изобретения, в которых изображение исходного документа 115 представляет собой видеопоток, содержащий множество кадров изображений, часть изображения исходного документа может содержать как минимум один кадр из потока видео.
[0031] В некоторых вариантах реализации изобретения извлеченная часть исходного изображения может иметь то же разрешение, что и изображение исходного документа 115. Вместо этого извлеченное изображение может иметь разрешение меньше, чем у изображения 115 исходного документа, если извлеченное изображение содержит достаточно информации для того, чтобы сервер 120 определил содержимое извлеченного изображения.
[0032] Оптимизатор обмена данными 112 может затем отправить к серверу 120 запрос на содержимое, содержащееся во фрагменте изображения, причем этот запрос включает извлеченную часть исходного изображения (то есть извлеченный фрагмент изображения, который содержит элемент содержимого). В некоторых вариантах реализации оптимизатор обмена данными 112 может отправлять этот запрос на тот же сервер 120, на который был отправлен исходный запрос. В качестве альтернативы, оптимизатор 112 может отправлять этот запрос на другой сервер (не показан). Сервер 120 после этого может вызывать классификатор документов 122 (или другой компонент сервера 120 или компонент другого сервера, который связан с сервером 120) для выполнения OCR фрагмента изображения и возврата содержимого на клиентское устройство 110.
[0033] В ответ на получение содержимого с сервера 120 оптимизатор обмена данными 112 может предоставить элемент содержимого для демонстрации на клиентском устройстве через пользовательский интерфейс на экране клиентского устройства 110, сохранения элемента содержимого в хранилище данных клиентского устройства, предоставления элемента содержимого приложению, которое вызвало оптимизатор обмена данными 112, предоставления элемента данных другому приложению (выполняемому на устройстве 110 или на сервере 120) или для использования элемента содержимого любым другим способом.
[0034] На Фиг. 2 изображен графический интерфейс пользователя (GUI) мобильного устройства 220 для захвата изображения физического документа 210. GUI мобильного устройства 220 может представлять собой автономное приложение, компонент интерфейса пользователя для менеджера документов или т.п. Например, GUI мобильного устройства 220 может быть представлено для пользователя как приложение для захвата счетов с помощью камеры мобильного устройства. Кроме того, GUI может быть представлен оптимизатором обмена данными 112 с Фиг. 1, как подробно описано ниже со ссылкой на Фиг. 5.
[0035] Мобильное устройство 220 может включать приложение, выполненное с возможностью захвата изображения физического документа 210 с помощью камеры мобильного устройства. На Фиг. 2 представлен физический документ 210 в виде напечатанного счета, но, как говорилось выше, физический документ может относиться к любому типу документов. Физический документ 210 может содержать содержимое, которое может быть извлечено для использования в приложении, выполняемом на мобильном устройстве 220. Например, содержимое 450-А относится к номеру счета физического документа 210. В некоторых вариантах реализации пользователь может запустить приложение на мобильном устройстве 220 для захвата номера счета и общей суммы для использования в бухгалтерском приложении, которое сохраняет информацию и инициирует платеж общей суммой.
[0036] Как показано на Фиг. 2, это приложение может отображать в мобильном устройстве 220 GUI, призванный помочь пользователю в выравнивании физического документа 210 в видоискателе на дисплее камеры 230. Затем приложение может привести в действие камеру мобильного устройства 220, чтобы начать получать с нее изображения. Как вариант, приложение может привести в действие камеру мобильного устройства 220, чтобы начать получать с нее кадры видеопотока. Изображения (или кадры видеопотока) могут выводиться пользователю на просмотр с помощью дисплея камеры 230. Пользователь может производить захват изображения исходного документа 210, выбирая и нажимая соответствующую кнопку GUI 240, отображаемую на дисплее мобильного устройства 220. Оптимизатор обмена данными 112 может затем получить изображение и выполнить оптимизацию обмена данными для изображения физического документа, как описано выше и ниже со ссылкой на Фиг. 5-7.
[0037] Фиг. 3 иллюстрирует пример уменьшенного файла 300, созданного оптимизатором обмена данными, в соответствии с одним или более вариантами реализации настоящего изобретения. В одном из вариантов реализации изобретения уменьшенный файл 300 может быть продуктом операции трансформации, выполняемой над изображением физического документа (например, изображения документа 225 на Фиг. 2), выполняемого с целью оптимизации обмена данными между клиентским устройством и серверным устройством при отправке уменьшенного файла 300 на сервер для классификации документа и (или) идентификации документа. Как было указано выше, уменьшенный файл 300 может быть создан путем выполнения преобразования цветного исходного изображения в полутоновое, цветного исходного изображения в черно-белое, операции сжатия данных над исходным изображением, операции уменьшения разрешения исходного изображения или операции бинаризации исходного изображения.
[0038] Как показано на Фиг. 3, уменьшенный файл 300 демонстрирует результат выполнения операции уменьшения разрешения исходного изображения с получением уменьшенного файла 300, который имеет значительно меньший размер по сравнению с исходным изображением. В различных вариантах реализации изобретения уменьшенный файл 300 по-прежнему содержит важную информацию для системы классификации документа (например, классификатора документов 122 с Фиг. 1) для определения типа документа, хранящегося в уменьшенном файле 300, а также определения сведений о местоположении, соответствующих различным элементам содержимого, имеющегося в документе, на основе определенного типа документа.
[0039] Фиг. 4 содержит пример изображения исходного документа 410 с информацией о местоположении элементов содержимого на изображении документа 410 в соответствии с одним или более вариантами реализации настоящего изобретения. В одном из вариантов реализации изобретения исходное изображение документа 410 может ссылаться на изображение документа 225 на Фиг. 2. Как описано выше, оптимизатор обмена данными на клиентском устройстве (например, оптимизатор обмена данными 112 на Фиг. 1-2) может отправлять запрос на серверное устройство для получения информации, относящейся к типу документа изображения исходного документа 410, посылая на сервер уменьшенный файл (например, уменьшенный файл 300 с Фиг. 3). Сервер может определить тип документа и вернуть тип документа клиентскому устройству, вместе с информацией о местоположении части изображения документа 410, который содержит элемент содержимого документа. В некоторых вариантах реализации изобретения клиент может получать координаты ограничивающего прямоугольника интересующих элементов содержимого, которые относятся к определенному типу документов изображения документа 410.
[0040] Как показано на Фиг. 4, изображение документа 410 представляет собой изображение счета. В некоторых вариантах реализации изобретения приложение, выполняемое на клиентском устройстве, которое используется для захвата изображения, может использовать номер счета и общую сумму счета. Информация о местоположении может быть получена с сервера, который описывает местоположение номера счета и общей суммы на изображении документа 410, исходя из определенного типа документа для изображения документа 410 (счета). Как показано на Фиг. 4, информация о местоположении 420-А содержит информацию о координатах ограничивающего прямоугольника для номера счета на изображении документа 410, а информация о местоположении 420-В содержит информацию о координатах ограничивающего прямоугольника для общей суммы.
[0041] Как описано выше, оптимизатор обмена данными может затем извлечь части исходного изображения документа 410, исходя из информации о местоположении, чтобы создать извлеченные части изображения документа 410 для отправки на сервер. Оптимизатор обмена данными может извлечь часть изображения документа 410, определенную координатами ограничивающего прямоугольника из информации 420-А о местоположении, для создания фрагмента 430-А изображения, который содержит часть изображения исходного документа 410, содержащую номер счета. Аналогично, оптимизатор обмена данными может извлечь часть изображения документа 410, определенную координатами ограничивающего прямоугольника из информации 420-В о местоположении, для создания фрагмента 430-В изображения, который содержит часть изображения исходного документа 410, содержащую сумму счета. Оптимизатор обмена данными может затем отправить фрагменты 430-А и 430-В изображения на сервер для оптического распознавания символов и получить текстовое содержимое, связанное с исходными фрагментами. Затем клиентское устройство может получить текст "100" и "25,73" для использования в клиентском приложении.
[0042] Фиг. 5 содержит блок-схему примера способа оптимизации обмена данными 500 между клиентским устройством и сервером. Этот способ может осуществляться при помощи логической схемы обработки данных, которая может включать аппаратные средства (электронные схемы, специализированную логическую плату и т.д.), программное обеспечение (например, выполняться на универсальной ЭВМ или же на специализированной вычислительной машине) или комбинацию первого и второго. Этот способ и (или) каждая из отдельно взятых функций, процедур, подпрограмм или операций могут быть реализованы с помощью одного или более процессоров вычислительного устройства (например, вычислительной системы 800 на Фиг. 8), в котором реализован данный способ. В некоторых вариантах реализации изобретения представленный способ может выполняться в одном потоке обработки. В альтернативных вариантах реализации изобретения представленный способ может выполняться двумя или более потоками обработки, при этом в каждом потоке реализована одна или более отдельно взятых функций, процедур, подпрограмм или операций, относящихся к указанному способу. В некоторых вариантах реализации указанный способ может выполняться оптимизатором 112 обмена данными на клиентском устройстве 110 с Фиг. 1.
[0043] Ради простоты объяснения способ в настоящем описании изобретения изложен и наглядно представлен в виде последовательности действий. Однако действия в соответствии с настоящим описанием изобретения могут выполняться в различном порядке и (или) одновременно с другими действиями, не представленными и не описанными в настоящем документе. Кроме того, не все проиллюстрированные действия могут быть необходимы для реализации способов в соответствии с настоящим описанием изобретения. Кроме того, специалистам в данной области техники должно быть понятно, что эти способы могут быть представлены и иным образом, в виде последовательности взаимосвязанных состояний через диаграмму состояний или событий.
[0044] В блоке 505 способа 500 логика обработки получает исходное изображение физического документа. В блоке 510 логика обработки создает на основе исходного изображения уменьшенный файл, который значительно меньше исходного изображения по размеру и содержит данные, указывающие на тип документа. В блоке 515 логика обработки отправляет на серверное устройство первый запрос на получение информации, относящейся к типу документа для физического документа, при этом первый запрос содержит уменьшенный файл. В блоке 520 логика обработки получает информацию о местоположении части исходного изображения, которая содержит элемент содержимого физического документа, при этом информация о местоположении базируется на типе документа. В некоторых вариантах реализации изобретения информация о местоположении включает координаты ограничивающего прямоугольника для части исходного изображения, которая содержит элемент содержимого.
[0045] В блоке 525 логика обработки извлекает, исходя из информации о местоположении, полученной в блоке 520, часть исходного изображения для создания (получения) извлеченной части исходного изображения. В блоке 530 логика обработки отправляет на серверное устройство запрос элемента содержимого, причем этот запрос содержит извлеченную часть исходного изображения.
[0046] В блоке 535 логика обработки получает элемент содержимого с серверного устройства. В некоторых вариантах реализации изобретения логика обработки получает буквенно-текстовое содержимое, соответствующее элементу содержимого (например, имя на водительском удостоверении, название компании в счете, цену позиции в квитанции и т.д.). В альтернативном варианте логика обработки может получать алфавитно-цифровое текстовое содержимое, относящееся к элементу содержимого (например, сумма по счету, номер водительского удостоверения, номер из штрих-кода, цену позиции в квитанции и т.д.).
[0047] В одном из вариантов реализации изобретения в ответ на получение элемента содержимого логика обработки может вызвать блок 536, чтобы предоставить элемент содержимого для демонстрации на клиентском устройстве. В одном из вариантов реализации изобретения в ответ на получение элемента содержимого логика обработки может вызвать блок 537, чтобы сохранить элемент содержимого в хранилище данных на клиентском устройстве. В одном из вариантов реализации изобретения в ответ на получение элемента содержимого логика обработки может вызвать блок 538, чтобы предоставить элемент содержимого приложению, выполняемому на клиентском устройстве, или приложению, выполняемому на серверном устройстве. После выполнения блока 535 (или 536, 537, 538), способ с Фиг. 5 завершает свою работу.
[0048] На Фиг. 6 показана диаграмма последовательности 600 одного из вариантов реализации оптимизации обмена данными между оптимизатором обмена данными "тонкого клиента" клиентского устройства 601 и классификатором документов на серверном устройстве 603 в соответствии с вариантом реализации настоящего изобретения. Диаграмма последовательности 600 показывает, что оптимизатор обмена данными 601 может снизить объем дан