РАСПОЗНАВАНИЕ СИМВОЛОВ С ИСПОЛЬЗОВАНИЕМ ИСКУССТВЕННОГО ИНТЕЛЛЕКТА
SYMBOLS RECOGNITION WITH THE USE OF ARTIFICIAL INTELLIGENCE

ОБЛАСТЬ ИЗОБРЕТЕНИЯ
[001] Настоящее изобретение в общем относится к вычислительным системам, а в частности - к системам и способам распознавания символов с использованием искусственного интеллекта.
УРОВЕНЬ ТЕХНИКИ
[002] Средства оптического распознавания символов (OCR) могут варьироваться в зависимости от рассматриваемого языка. Например, распознавание символов в тексте, написанном на азиатских языках (Chinese, Japanese, Korean (CJK)), ставит задачи, отличающиеся от задач распознавания текста, написанного на европейских языках. Базовым изображением в CJK языках является иероглиф (т.е. стилизованное изображение символа, фразы, слова, буквы, слога, звука и т.д.). Вместе взятые CJK языки могут содержать более пятидесяти тысяч графически уникальных иероглифов. Таким образом, при применении некоторых способов для распознавания пятидесяти тысяч иероглифов с помощью искусственного интеллекта в CJK языках могут потребоваться сотни миллионов примеров изображений иероглифов. Сбор массива высококачественных изображений иероглифов - задача неэффективная и сложно реализуемая.
РАСКРЫТИЕ ИЗОБРЕТЕНИЯ
[003] В одном варианте реализации способ включает идентификацию изображения иероглифа устройством обработки, подачу изображения иероглифа в качестве входной информации для обученной модели машинного обучения в целях определения комбинации компонентов на множестве позиций в иероглифе и классификацию иероглифа как определенного символа языка, исходя из определенной комбинации компонентов на множестве позиций в иероглифе.
[004] В другом варианте реализации способ обучения одной или более моделей машинного обучения для определения наличия или отсутствия графических элементов в иероглифе включает генерацию обучающих данных для одной или более моделей машинного обучения. Обучающие данные содержат первые обучающие входные данные, включая данные о пикселях изображения иероглифа, и первые целевые выходные данные для первых обучающих входных данных. Первые целевые выходные данные идентифицируют множество позиций в иероглифе и вероятность наличия графического элемента в каждой из множества позиций в иероглифе. Способ также включает предоставление обучающих данных для обучения одной или более моделей машинного обучения на (i) выборке обучающих входных данных, содержащей первые обучающие входные данные, и (ii) выборке целевых выходных данных, содержащей первые целевые выходные данные.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[005] Для более полного понимания настоящего изобретения ниже приводится подробное описание, в котором для примера, а не с целью ограничения, оно иллюстрируется со ссылкой на чертежи, на которых:
[006] На Фиг. 1 изображена схема компонентов верхнего уровня для примера архитектуры системы в соответствии с одним или более вариантами реализации настоящего изобретения.
[007] На Фиг. 2А изображен пример графического элемента в соответствии с одним или более вариантами реализации настоящего изобретения.
[008] На Фиг. 2В изображен пример иероглифа, содержащего графический элемент с Фиг. 2А, в соответствии с одним или более вариантами реализации настоящего изобретения.
[009] На Фиг. 3А изображен пример трех графических элементов, соответствующих буквам, в соответствии с одним или более вариантами реализации настоящего изобретения.
[0010] На Фиг. 3В изображен пример заранее определенных позиций иероглифа, в которых могут располагаться графические элементы, в соответствии с одним или более вариантами реализации настоящего изобретения.
[0011] На Фиг. 3С изображен пример иероглифа, содержащего графические элементы с Фиг. 3А, расположенные в определенных позициях первой конфигурации, в соответствии с одним или более вариантами реализации настоящего изобретения.
[0012] На Фиг. 3D изображен пример иероглифа, содержащего графические элементы, расположенные в определенных позициях второй конфигурации, в соответствии с одним или более вариантами реализации настоящего изобретения.
[0013] На Фиг. 4 изображена блок-схема примера способа обучения одной или более моделей машинного обучения в соответствии с одним или более вариантами реализации настоящего изобретения.
[0014] На Фиг. 5 изображена блок-схема примера способа обучения одной или более моделей машинного обучения с использованием обратного распространения в соответствии с одним или более вариантами реализации настоящего изобретения.
[0015] На Фиг. 6 изображена блок-схема примера способа предварительной обработки документа для идентификации изображений иероглифов в соответствии с одним или более вариантами реализации настоящего изобретения.
[0016] На Фиг. 7 изображена блок-схема примера способа классификации иероглифов как символов определенного языка на основе определенной комбинации компонентов в позициях иероглифа в соответствии с одним или более вариантами реализации настоящего изобретения.
[0017] На Фиг. 8 изображена блок-схема примера нейронной сети, обученной распознаванию наличия компонентов в позициях иероглифа, в соответствии с одним или более вариантами реализации настоящего изобретения.
[0018] На Фиг. 9 изображен пример компонентов вектора вероятности и связанных с ними выходных индексов модели машинного обучения в соответствии с одним или более вариантами реализации настоящего изобретения.
[0019] На Фиг. 10 изображен пример таблицы Unicode для корейского языка в соответствии с одним или более вариантами реализации настоящего изобретения.
[0020] На Фиг. 11 изображен пример вычислительной системы 600, которая может выполнять один или более способов, описанных в настоящем документе, в соответствии с одним или более вариантами реализации настоящего изобретения.
ПОДРОБНОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯ
[0021] Как отмечалось выше, в некоторых случаях сочетание технологий OCR с технологиями искусственного интеллекта, например, машинным обучением, при применении для CJK языков может потребовать большой обучающей выборки иероглифов. Кроме того, сбор примеров иероглифов может потребовать много ресурсов. Например, для обучения модели машинного обучения распознаванию любого символа могут потребоваться сотни различных изображений иероглифа, соответствующих этому символу. В дополнение к этому, в CJK языках присутствуют редкие символы, реальных примеров которых существует немного, и сбор сотни примеров для обучения модели машинного обучения распознаванию такого редкого символа представляется затруднительным.
[0022] Иероглифы (примеры приведены на Фиг. 2А-2В) в CJK языках могут разбиваться на отдельные графические элементы. В настоящем изобретении могут попеременно использоваться термины «графические элементы» и «компоненты». В китайском и японском языках графические элементы представляют собой ключи и графические символы фонетических элементов. Корейский язык является слоговым, так что каждый иероглиф соответствует слоговому блоку из трех графических элементов. Каждый графический элемент является буквой, например, гласной, согласной или дифтонгом. Корейские графические элементы имеют определенный порядок в слоге: 1) начальная согласная, 2) срединная гласная или дифтонг и 3) конечная согласная. Кроме того, каждый графический элемент иероглифа имеет определенную позицию (то есть место в иероглифе относительно центра и других графических элементов). Например, начальная согласная находится в первой позиции, срединная гласная во второй позиции и конечная согласная в третьей позиции (примеры приведены на Фиг. 3A-3D).
[0023] Количество существующих графических элементов может быть значительно меньше общего количества существующих иероглифов в CJK языках. Так, количество корейских начальных согласных равно 19, количество срединных гласных или дифтонгов - 21, а количество конечных согласных, включая возможные связки или их отсутствие в иероглифах, - 28. Таким образом, существует всего 11172 (19×21×28) уникальных иероглифов. Кроме того, количество позиций, которые могут занимать графические элементы в иероглифах, ограничено. То есть в зависимости от типа графического элемента (гласная или согласная) графический элемент может находиться в определенных позициях.
[0024] Соответственно, настоящее изобретение относится к способам и системам распознавания иероглифов с использованием OCR с технологиями искусственного интеллекта, такими как машинное обучение (например, нейронных сетей), которые классифицируют компоненты (например, наличие или отсутствие графических элементов) в определенных позициях иероглифа для распознавания иероглифов. В одном из вариантов реализации одна или более моделей машинного обучения обучаются определять комбинацию компонентов во множестве позиций иероглифов. Рассматриваемая одна или несколько моделей машинного обучения не обучаются распознаванию иероглифа в целом. В ходе обучения одной или более моделей машинного обучения в качестве входных данных модели машинного обучения предоставляются данные о пикселях изображения иероглифа, а в качестве одного или более целевых выходных данных модели машинного обучения предоставляются позиции иероглифа и вероятность наличия графического элемента в каждой из множества позиций иероглифа. Например, изображение иероглифа может быть отмечено кодом Unicode, который идентифицирует иероглиф, и для определения графических элементов (включая отсутствующие графические элементы), расположенных в позициях иероглифов, может использоваться таблица символов Unicode. Таким образом, одна или более моделей машинного обучения могут быть обучены идентификации графических элементов в определенных позициях иероглифа.
[0025] После обучения одной или более моделей машинного обучения новое изображение иероглифа, которое может быть идентифицировано путем обработки, не имеет меток и обрабатывается одной или более моделями машинного обучения. Одна или более моделей машинного обучения могут классифицировать иероглиф в новом изображении как отдельный символ языка, исходя из определенной комбинации компонентов в позициях иероглифа. В другом варианте реализации изобретения после того, как для одной или нескольких позиций идентифицировано более одного компонента, которые приводят к приемлемой комбинации для более чем одного иероглифа, может быть выполнена дополнительная классификация для идентификации наиболее вероятной комбинации компонентов и их позиций в иероглифе, как подробнее описано ниже со ссылкой на способ по Фиг. 7.
[0026] Преимущества использования технологий, описанных в этом изобретении, могут включать итоговое упрощение структур одной или более моделей машинного обучения за счет классификации графических элементов, а не целых иероглифов. Кроме того, уменьшенная обучающая выборка для распознавания графических элементов может использоваться для обучения одной или более моделей машинного обучения, в то время как большая обучающая выборка используется для распознавания в изображении цельного иероглифа. В результате количество обрабатывающих и вычислительных ресурсов, необходимых для распознавания иероглифов, уменьшается. Следует отметить, что хотя в качестве примера в следующем обсуждении используется корейский язык, реализация настоящего изобретения может быть аналогично применена к китайскому и (или) японскому языкам.
[0027] На Фиг. 1 изображена схема компонентов верхнего уровня для примера системной архитектуры 100 в соответствии с одним или более вариантами реализации настоящего изобретения. Системная архитектура 100 включает вычислительное устройство 110, хранилище 120 и сервер 150, подключенный к сети 130. Сеть 130 может быть общественной сетью (например, Интернет), частной сетью (например, локальная сеть (LAN) или распределенной сетью (WAN)), а также их комбинацией.
[0028] Вычислительное устройство 110 может выполнять распознавание символов, используя искусственный интеллект для классификации иероглифов, исходя из компонентов, идентифицированных в определенных позициях этих иероглифов. Вычислительное устройство 100 может быть настольным компьютером, портативным компьютером, смартфоном, планшетным компьютером, сервером, сканером или любым подходящим вычислительным устройством, которое в состоянии использовать технологии, описанные в этом изобретении. Документ 140, содержащий текст на CJK языке, может быть получен вычислительным устройством 110. Документ 140 может быть получен любым подходящим способом. Например, вычислительное устройство 110 может получить цифровую копию документа 140 путем сканирования документа 140 или фотографирования документа 140. Кроме того, в тех вариантах реализации изобретения, где вычислительное устройство 110 представляет собой сервер, клиентское устройство, которое подключается к серверу по сети 130, может загружать цифровую копию документа 140 на сервер. В тех вариантах реализации изобретения, где вычислительное устройство 110 является клиентским устройством, соединенным с сервером по сети 130, клиентское устройство может загружать документ 140 с сервера. Хотя в документе 140 изображен только один иероглиф 141, документ 140 может содержать множество изображений иероглифов 141, и технологии, описанные в этом изобретении, могут выполняться для каждого из изображений иероглифов, идентифицированных в анализируемом документе 140. После получения документ 140 может быть предварительно обработан (описано со ссылкой на способ на Фиг. 6) до распознавания символов вычислительным устройством 110.
[0029] Вычислительное устройство 100 может содержать систему распознавания символов 112. Система распознавания символов 112 может содержать инструкции, сохраненные на одном или более физических машиночитаемых носителях данных вычислительного устройства 110 и выполняемые на одном или более устройствах обработки вычислительного устройства 110. В одном из вариантов реализации система распознавания символов 112 может использовать одну или более моделей машинного обучения 114, которые обучаются и используются для определения комбинации компонентов и позиций в иероглифе на изображении 141. В некоторых вариантах реализации одна или более моделей машинного обучения 114 могут быть частью системы 112 распознавания символов или могут быть доступны с другой машины (например, сервера 150) для распознавания символов 112. На основе выходных данных модели машинного обучения 114 система распознавания символов 112 может классифицировать иероглиф на изображении 141 как определенный символ языка.
[0030] Сервер 150 может быть стоечным сервером, маршрутизатором, персональным компьютером, карманным персональным компьютером, мобильным телефоном, портативным компьютером, планшетным компьютером, фотокамерой, видеокамерой, нетбуком, настольным компьютером, медиа-центром или их сочетанием. Сервер 150 может содержать систему обучения 151. Модель машинного обучения 114 может ссылаться на артефакт модели, созданный обучающей системой 151 с использованием обучающих данных, которые содержат обучающие входные данные и соответствующие целевые выходные данные (правильные ответы на соответствующие обучающие входные данные). Обучающая система 151 может находить в обучающих данных шаблоны, которые связывают обучающие входные данные с целевыми выходными данными (предсказание ответов), и предоставлять модель машинного обучения 114, которая использует эти шаблоны. Модель машинного обучения 114 может быть составлена, например, из одного уровня линейных или нелинейных операций (например, машина опорных векторов [SVM]) или может представлять собой глубокую сеть, то есть модель машинного обучения, составленную из нескольких уровней нелинейных операций. Примером глубокой сети является сверточная нейронная сеть с одним или более скрытыми уровнями, и такая модель машинного обучения может быть обучена, например, путем регулировки весов сверточной нейронной сети в соответствии с обучающим алгоритмом обратного распространения ошибки (описан со ссылкой на способ по Фиг. 5) или схожими способами.
[0031] Сверточная нейронная сеть включает архитектуры, которые могут обеспечить эффективное распознавание образов. Сверточные нейронные сети могут включать несколько сверточных слоев и субдискретизирующих слоев, которые применяют фильтры к частям изображения иероглифа для обнаружения определенных признаков. Таким образом, сверточная нейронная сеть включает операцию свертки, которая поэлементно умножает каждый фрагмент изображения на фильтры (например, матрицы) и суммирует результаты в аналогичной позиции выходного изображения (пример приведен на Фиг. 8).
[0032] В одном из вариантов реализации изобретения одна модель машинного обучения может использоваться с выходными данными, которые указывают на наличие графического элемента для каждой соответствующей позиции в иероглифе. Следует отметить, что графический элемент может представлять собой пустое место, и выходные данные могут содержать вероятность наличия пустого графического элемента. Например, для трех позиций в иероглифе модель машинного обучения может выводить три вектора вероятности. Вектор вероятности может ссылаться на набор всех возможных вариантов графических элементов, включая вариант отсутствия графического варианта, который может встретиться в соответствующей позиции, и индекс вероятности, связанный с каждым вариантом, который показывает вероятность наличия этого варианта в указанной позиции. В другом варианте реализации для каждой соответствующей позиции в иероглифе может использоваться отдельная модель машинного обучения. Например, при наличии в иероглифе трех позиций для каждой позиции могут использоваться три разные модели машинного обучения. Кроме того, отдельная модель машинного обучения 114 может использоваться для каждого отдельного языка (например, китайского, японского и корейского).
[0033] Как было указано выше, можно обучить одну или более моделей машинного обучения определять комбинацию компонентов в позициях иероглифа. В одном из вариантов реализации изобретения одна или более моделей машинного обучения 114 были обучены решать проблемы классификации и выдавать выходные данные для каждого класса. Класс в настоящем изобретении относится к наличию графического элемента (например, включая пустое пространство) в определенной позиции. Вектор вероятностей может быть выведен для каждой позиции и включать каждый вариант класса и степень близости (например, индекс вероятности) для отдельного класса. Для обучения модели машинного обучения 114 может быть использована любая подходящая технология обучения, например, обратное распространение ошибки.
[0034] После обучения одной или более моделей машинного обучения 114 одна или более моделей машинного обучения 114 могут быть использованы в системе распознавания символов 112 для анализа новых изображений иероглифов. Например, система распознавания символов 112 может получать на входе изображение иероглифа 141 из документа 140, анализируемое с помощью одной или более моделей машинного обучения 114. На основе выходных данных одной или более моделей машинного обучения 114, которые показывают наличие графических элементов в позициях в анализируемом иероглифе система распознавания символов 112 может классифицировать иероглиф как определенный символ языка. В одном из вариантов реализации изобретения система распознавания символов 112 может идентифицировать код Unicode в таблице символов Unicode, который ассоциируется с распознанным графическим элементом в каждой соответствующей позиции, и использовать эти коды графических элементов для вычисления кода Unicode иероглифа. Однако система распознавания символов 112 может определять, исходя из вектора вероятностей для компонентов, выходные данные моделей машинного обучения 114, которые для одной или нескольких из заранее определенных позиций содержат более одного идентифицированного графического элемента, которые возможны в допустимых комбинациях для более чем одного иероглифа. В таком случае устройство обработки 112 может выполнять дополнительную классификацию, как подробнее описано ниже, для классификации иероглифа на анализируемом изображении 141.
[0035] Хранилище 120 представляет собой постоянную память, которая в состоянии сохранять документы 140 и (или) изображения иероглифов 141, а также структуры данных для разметки, организации и индексации изображений иероглифов 141. Хранилище 120 может располагаться на одном или более запоминающих устройствах, таких как основная память, магнитные или оптические запоминающие устройства на основе дисков, лент или твердотельных накопителей, NAS, SAN и т.д. Несмотря на то, что хранилище изображено отдельно от вычислительного устройства 110, в одной из реализаций изобретения хранилище 120 может быть частью вычислительного устройства 110. В некоторых вариантах реализации хранилище 120 может представлять собой подключенный к сети файловый сервер, в то время как в других вариантах реализации изобретения хранилище содержимого 120 может представлять собой какой-либо другой тип энергонезависимого запоминающего устройства, например, объектно-ориентированной базы данных, реляционной базы данных и т.д., которая может находиться на сервере или одной или более различных машинах, подключенных к нему через сеть 130.
[0036] На Фиг. 2А изображен пример графического элемента 200 в соответствии с одним или более вариантами реализации настоящего изобретения. На приведенном примере графический элемент 200 представляет собой ключ, означающий «ограда». На Фиг. 2В изображен пример иероглифа 202, содержащего графический элемент 200 с Фиг. 2А в соответствии с одним или более вариантами реализации настоящего изобретения.
[0037] Как было сказано ранее, корейский язык является слоговым. Каждый иероглиф представляет собой слоговый блок из трех графических элементов, расположенных в соответствующих заранее определенных позициях. Для иллюстрации на Фиг. 3A-3D изображены три графических элемента, расположенные в различных заранее определенных позициях корейского иероглифа.
[0038] Например, на Фиг. 3А изображен пример трех графических элементов 300, 302 и 304, соответствующих буквам, в соответствии с одним или более вариантами реализации настоящего изобретения. Каждая буква в корейском языке является согласной, гласной или дифтонгом. Корейские графические элементы имеют определенный порядок в слоге: 1) начальная согласная, 2) срединная гласная или дифтонг и 3) конечная согласная. На Фиг. 3В изображен пример заранее определенных позиций иероглифа, в которых могут располагаться графические элементы, в соответствии с одним или более вариантами реализации настоящего изобретения. Таким образом, каждый графический элемент иероглифа имеет определенную позицию (то есть место в иероглифе относительно центра и других графических элементов). Начальная согласная находится в первой позиции 310, срединная гласная или дифтонг находится во второй позиции 312 или 314, которая расположена справа от согласных в позиции 312 или между согласными в позиции 314, и конечная согласная находится в третьей позиции 316. В некоторых случаях согласные могут дублироваться, поэтому в корейском языке могут существовать слоги из четырех или пяти букв. В таких случаях одну или более моделей машинного обучения 114 можно обучить распознавать двойные согласные как отдельные графические элементы. Таким образом, архитектуру одной или более моделей машинного обучения 114 можно организовать с включением входных данных для трех позиций (310, 312 или 314, и 316) в иероглифе.
[0039] На Фиг. 3С изображен пример иероглифа 320, содержащего графические элементы 300, 302 и 304 с Фиг. 3А, расположенные в определенных позициях первой конфигурации, в соответствии с одним или более вариантами реализации настоящего изобретения. В частности, графический элемент 300 является согласной и расположен в первой позиции 310, графический элемент 312 является гласной или дифтонгом и расположен во второй позиции 312 (то есть справа от согласных 300 и 304), а графический элемент 304 является согласной и расположен в третьей позиции 316. На Фиг. 3D изображен другой пример иероглифа 322, содержащий графические элементы 324, 326 и 328, расположенные в соответствующих позициях второй конфигурации, в соответствии с одним или более вариантами реализации настоящего изобретения. В частности, графический элемент 324 является согласной и расположен в первой позиции 310, графический элемент 326 является гласной или дифтонгом и расположен во второй позиции 314 (то есть справа от согласных 324 и 328), а графический элемент 328 является согласной и расположен в третьей позиции 316.
[0040] На Фиг. 4 изображена блок-схема примера способа 400 обучения одной или более моделей машинного обучения 114 в соответствии с одним или более вариантами реализации настоящего изобретения. Способ 400 может осуществляться при помощи логической схемы обработки данных, которая может включать аппаратные средства (электронные схемы, специализированную логическую плату и т.д.), программное обеспечение (например, выполняться на универсальной ЭВМ или же на специализированной вычислительной машине) или комбинацию первого и второго. Способ 400 и (или) каждая из его отдельных функций, процедур, подпрограмм или операций может выполняться одним или более процессорами вычислительного устройства (например, вычислительной системы 1100 на Фиг. 11), реализующего этот способ. В некоторых вариантах осуществления способ 400 может осуществляться в одном потоке обработки. При альтернативном подходе способ 400 может выполняться в двух или более потоках обработки, каждый из потоков может реализовывать одну или более отдельных функций, процедур, подпрограмм или операций этих способов. Способ 400 может выполняться на обучающей системе 151 с Фиг. 1.
[0041] В целях простоты объяснения способ 400 в настоящем описании изобретения изложен и наглядно представлен в виде последовательности действий. Однако действия в соответствии с настоящим описанием изобретения могут выполняться в различном порядке и (или) одновременно с другими действиями, не представленными и не описанными в настоящем документе. Кроме того, не все проиллюстрированные действия могут быть необходимыми для реализации способа 400 в соответствии с настоящим описанием изобретения. Кроме того, специалистам в данной области техники должно быть понятно, что способ 400 может быть представлен и иным образом, в виде последовательности взаимосвязанных состояний через диаграмму состояний или событий.
[0042] Способ 400 может начинаться с шага 410 блок-схемы. На шаге 410 обрабатывающее устройство, которое выполняет обучающую систему 151, может генерировать обучающие данные для одной или более моделей машинного обучения 114. Обучающие данные могут включать первые обучающие входные данные, содержащие данные о пикселях изображения иероглифа. В одном из вариантов реализации изображение иероглифа может содержать разметку, представляющую собой код Unicode, связанный с соответствующим иероглифом, приведенным на изображении. Код Unicode может быть получен из таблицы символов Unicode. Unicode представляет собой систему представления символов в виде последовательности кодов, построенную по определенным правилам. Каждый графический элемент иероглифа и сам иероглиф имеет код (то есть номер) в таблице символов Unicode.
[0043] Обучающие данные также содержат первые целевые выходные данные для первых обучающих входных данных. Первые целевые выходные данные идентифицируют позиции иероглифа и вероятность наличия графических элементов в каждой из позиций иероглифа. Целевые выходные данные для каждой позиции иероглифа могут включать вектор вероятности, который содержит индекс вероятности (то есть возможность), связанный с каждым компонентом, который может находиться в каждой из соответствующих позиций. В одном из вариантов реализации индексы вероятности могут назначаться с использованием таблицы символов Unicode. Например, обучающая система 151 может использовать код Unicode, которым помечен иероглиф, для определения графических элементов в каждой из позиций иероглифа. Для вычисления графических элементов в каждой позиции на основе кода Unicode иероглифа («кода иероглифа») могут быть использованы следующие уравнения:
[0044] Отдельные компоненты, определенные на основе заданного кода Unicode, могут получать максимальный индекс вероятности, например, 1, в векторах вероятности. Другие возможные компоненты в каждой из позиций могут получать низкий индекс вероятности, например, 0, в векторах вероятности. В некоторых вариантах реализации индексы вероятности могут быть назначены графическим элементам в каждой позиции вручную.
[0045] На шаге 420 блок-схемы обрабатывающее устройство может предоставлять обучающие данные для обучения одной или более моделей машинного обучения на (i) наборе обучающих входных данных, содержащем первые обучающие входные данные, и (ii) наборе целевых выходных данных, содержащем первые целевые выходные данные.
[0046] На шаге 430 блок-схемы обрабатывающее устройство может обучать одну или более моделей машинного обучения, исходя из (i) набора обучающих входных данных и (ii) набора целевых выходных данных. В одной из реализаций изобретения модель машинного обучения 114 может быть обучена выводить вектор вероятности наличия каждого возможного элемента в каждой позиции иероглифа. В тех вариантах реализации изобретения, где для корейского языка используется одна модель машинного обучения 114, например, выходными данными могут быть три вектора вероятности, по одному для каждой позиции в иероглифе. В других вариантах реализации, когда для каждой позиции используется своя модель машинного обучения 114, каждая модель машинного обучения может выдавать один вектор вероятности, указывающий на возможность наличия компонентов в указанной позиции. После завершения обучения одна или более моделей машинного обучения 114 могут быть обучены получать данные о пикселях изображения иероглифов и определять комбинацию компонентов в позициях иероглифа.
[0047] На Фиг. 5 изображена блок-схема примера способа 500 обучения одной или более моделей машинного обучения 114 с использованием обратного распространения ошибки в соответствии с одним или более вариантами реализации настоящего изобретения. Способ 500 включает операции, выполняемые вычислительным устройством 110. Способ 500 может выполняться аналогичным или сходным образом, как описано выше по отношению к способу 400. Способ 500 может выполняться обрабатывающими устройствами вычислительного устройства 110 и выполнять обучающую систему 151.
[0048] Способ 500 может начинаться с шага 510 блок-схемы. На шаге 510 блок-схемы обрабатывающее устройство, выполняющее обучающую систему 151, может получать набор данных примеров изображений иероглифов 141, включающих их графические элементы. Изображения иероглифов, включающие их графические элементы, могут быть использованы для обучения. Набор данных примеров изображений иероглифов может быть разделен на один или более подвыборок, используемых для обучения и проверки (например, в соотношении 80 процентов к 20 процентам, соответственно). Обучающая подвыборка может содержать разметку с информацией (например, код Unicode), относящейся к иероглифу, приведенному на изображении, графического элемента, расположенного в каждой позиции иероглифа, и т.д. Тестовая подвыборка может не содержать разметки с дополнительной информацией. Каждое изображение в обучающей подвыборке может быть предварительно обработано, как подробно будет описано ниже, со ссылкой на способ по Фиг. 6.
[0049] На шаге 520 блок-схемы обрабатывающее устройство может выбирать пример изображения из обучающей подвыборки для обучения одной или более моделей машинного обучения. Примеры обучающих изображений могут выбираться последовательно или любым другим подходящим способом (например, в случайном порядке). На шаге 530 блок-схемы обрабатывающее устройство может применить одну или более моделей машинного обучения к выбранной обучающей подвыборке и определить коэффициент ошибки в выходных данных модели машинного обучения. Коэффициент ошибки может быть вычислен в соответствии со следующей формулой:
i
[0050] Где x - значения вектора вероятностей, а  - ожидаемое значение вектора вероятностей в выходных данных модели машинного обучения. В некоторых вариантах реализации этот параметр может быть задан вручную при обучении модели машинного обучения 114. ∑ - это сумма компонентов вектора вероятностей в выходных данных модели машинного обучения.
[0051] На шаге 540 блок-схемы производится сравнение коэффициента ошибки с пороговым значением. Если коэффициент ошибки равен или больше порогового значения, одна или более моделей машинного обучения могут быть признаны не обученными, и может быть произведена подстройка одного или более весов моделей машинного обучения (шаг 550 блок-схемы). Подстройка весов может производиться с использованием любой подходящей технологии оптимизации, например, алгоритма дифференциальной эволюции. Обрабатывающее устройство может вернуться к шагу 520 блок-схемы для выбора примеров изображений и продолжения обработки на шаге 530. Этот итеративный процесс может продолжаться до тех пор, пока коэффициент ошибки не станет меньше порогового значения.
[0052] Если коэффициент ошибки меньше порогового значения, одна или более моделей машинного обучения 114 могут быть признаны обученными (шаг 560 блок-схемы). В одном из вариантов реализации после того, как одна или более моделей машинного обучения 114 будут признаны обученными, обрабатывающее устройство может выбрать тестовые примеры изображений из тестовой подвыборки (т.е. неразмеченные изображения) (шаг 520). Тестирование может производиться на отдельных тестовых примерах изображений, которые еще не обрабатывались одной или более моделями машинного обучения. К тестовым примерам изображений могут применяться одна или более моделей машинного обучения (шаг 530). На шаге 540 блок-схемы обрабатывающее устройство может определить, будет ли коэффициент ошибки в выходных данных моделей машинного обучения 114, примененных к тестовым примерам изображений, меньше порогового значения. Если коэффициент ошибки равен или больше порогового значения, обрабатывающее устройство может вернуться к шагу 520 блок-схемы для проведения дополнительного обучения. Если коэффициент ошибки меньше порогового значения, обрабатывающее устройство может признать (шаг 560 блок-схемы) одну или более моделей машинного обучения 114 обученными.
[0053] На Фиг. 6 изображена блок-схема примера способа предварительной обработки 600 документа 140 для идентификации изображений иероглифов 141 в соответствии с одним или более вариантами реализации настоящего изобретения. Способ 600 включает операции, выполняемые вычислительным устройством 110. Способ 600 может выполняться аналогичным или сходным образом, как описано выше по отношению к способам 400 и 500. Способ 600 может выполняться обрабатывающими устройствами вычислительного устройства 110 и выполнять систему распознавания символов 112.
[0054] Способ 600 может начинаться с шага 610. На шаге 610 блок-схемы документ 140 может оцифровываться (например, путем фотографирования или сканирования) обрабатывающим устройством. Обрабатывающее устройство может предварительно обрабатывать (шаг 620) оцифрованный документ. Предварительная обработка может включать набор операций по подготовке изображения 140 к дальнейшему выполнению распознавания символов. Набор операций может включать устранение шума, изменение ориентации иероглифов в изображении 140, выпрямление строк текста, масштабирование, кадрирование, повышение контрастности, изменение яркости и (или) изменение масштаба. Обрабатывающее устройство может идентифицировать (шаг 630) изображения иероглифов 141, входящих в предварительно обработанный оцифрованный документ 140, с помощью любого подходящего способа. Идентифицированные изображения иероглифов 141 могут быть разделены на отдельные изображения для индивидуальной обработки. Далее на шаге 640 блок-схемы иероглифы на отдельных изображениях могут быть приведены к определенному размеру и отцентрованы. Таким образом, в некоторых вариантах реализации каждое изображение иероглифа может быть масштабировано для приведения к одинаковым размерам (например, 30×30 пикселей) и выровнено (например, помещено в центр изображения). Предварительно обработанные и приведенные к определенному размеру изображения иероглифов могут быть предоставлены в качестве входных данных одной или более моделям машинного обучения 114 для определения комбинации компонентов на позициях в иероглифах.
[0055] На Фиг. 7 изображена блок-схема примера способа классификации иероглифов 700 как символов определенного языка на основе определенной комбинации компонентов в позициях иероглифа в соответствии с одним или более вариантами реализации настоящего изобретения. Способ 700 включает операции, выполняемые вычислительным устройством 110. Способ 700 может выполняться аналогичным или сходным образом, как описано выше по отношению к способам 400, 500 и 600. Способ 700 может выполняться обрабатывающими устройствами вычислительного устройства 110 и выполнять систему распознавания символов 112.
[0056] Способ 700 может начинаться с шага 710 блок-схемы. На шаге 710 блок-схемы обрабатывающее устройство может идентифицировать изображение иероглифа 141 в оцифрованном документе 140. Обрабатывающее устройство может предоставить (шаг 720) изображение иероглифа 141 в качестве входных данных обученной модели машинного обучения 114 для определения комбинации компонентов в позициях иероглифа. Как обсуждалось ранее, иероглиф может быть символом корейского языка и содержать графические элементы в трех заранее определенных позициях. Однако следует отметить, что символ может быть символом китайского или японского языков. Кроме того, в некоторых реализациях изобретения модель машинного обучения может выводить три вектора вероятностей, по одному для каждой позиции, для возможностей нахождения компонентов в каждой позиции. В другой реализации изобретения модель машинного обучения может включать несколько моделей машинного обучения, по одной для каждой позиции в иероглифе. Каждая отдельная модель машинного обучения может быть обучена выводить возможность нахождения компонентов в соответствующей позиции.
[0057] На шаге 730 блок-схемы обрабатывающее устройство может классифицировать иероглиф в новом изображении как отдельный символ языка, исходя из определенной комбинации компонентов в позициях иероглифа. В одном из вариантов реализации, если компонент в каждой позиции имеет вероятность нахождения ниже установленного порога (например, 75 процентов, 85 процентов, 90 процентов), система распознавания символов 112 может классифицировать этот иероглиф как определенный символ языка, содержащий компоненты в каждой из позиций. В одном из вариантов реализации обрабатывающее устройство может определить код Unicode, связанный с распознанными компонентами в каждой из позиций, используя таблицу символов Unicode. Обрабатывающее устройство может вывести код Unicode иероглифа, используя следующую формулу:
[0058] После вывода кода Unicode иероглифа обрабатывающее устройство может классифицировать иероглиф как конкретный символ языка, связанный с кодом Unicode иероглифа анализируемого изображения 141. В некоторых вариантах реализации результат (например, изображение 141, графические элементы в каждой позиции, классифицированный иероглиф и конкретный символ языка) могут храниться в хранилище 120.
[0059] В некоторых случаях получаемый вектор вероятностей для одной позиции или для нескольких позиций может указывать, что более чем один компонент может предусматривать допустимую комбинацию для более чем одного иероглифа, в этих случаях может быть выполнена дополнительная классификация. В одном из вариантов реализации обрабатывающее устройство может аналитически сформировать допустимые иероглифы и вывести наиболее вероятный иероглиф, исходя из допустимых иероглифов. Другими словами, обрабатывающее устройство может генерировать любую комбинацию компонентов в каждой позиции допустимых иероглифов. Например, если для первой позиции иероглифа определен графический элемент х, для второй позиции иероглифа определен графический элемент y, а для третьей позиции иероглифа определены графические элементы z1 или z2, можно сформировать два допустимых иероглифа, имеющих конфигурацию х, y, z1 или х, y, z2. Наиболее вероятный иероглиф можно определить, вычислив произведения значений компонентов векторов вероятности, полученных из модели машинного обучения, и сравнив их. Например, обрабатывающее устройство может умножать значения (например, индекс вероятности) компонентов векторов вероятности для х, y, z1 и умножать значения компонентов векторов вероятности для х, y, z2. Произведения значений х, y, z1 и х, y, z2 можно сравнить, и значения с наибольшим произведением могут считаться наиболее вероятной комбинацией компонентов. В результате обрабатывающее устройство может классифицировать иероглиф как отдельный символ языка, исходя из определенной комбинации компонентов в позициях иероглифа, которые дают наибольшее произведение.
[0060] В другом примере, если в одной или более позициях может находиться более одного компонента, исходя из векторов вероятности, получаемых из модели машинного обучения 114, полученная информация (например, векторы вероятностей) может быть представлена в виде многомерного пространства параметров, и модель может быть применена к пространству параметров. В одном из вариантов реализации комбинация гауссовых распределений является статистической моделью, которая может исходить из допущения, что любая точка выборки создается из комбинации конечного числа гауссовых распределений с неизвестными параметрами. Статистическая модель может рассматриваться как обобщение метода кластеризации k-средних, которое включает, кроме информации о центре кластера, информацию о ковариации по Гауссу. Для классификации и выбора параметров гауссова распределения в модели может использоваться способ максимизации ожидания (ЕМ).
[0061] Способ ЕМ позволяет строить модели для небольшого количества представителей класса. Каждая модель имеет один класс. Обученная модель определяет вероятность, с которой нового представителя класса можно будет связать с классом этой модели. Вероятность выражается числовым индексом от 0 до 1, и чем индикатор ближе к единице, тем больше вероятность того, что новый представитель класса принадлежит к классу этой модели. Класс может быть иероглифом, а представитель класса может быть изображением иероглифа.
[0062] В одном из вариантов реализации входные данные вероятностной модели представляют собой результаты (например, три вектора вероятностей компонентов в позициях иероглифа) модели машинного обучения 114. Обрабатывающее устройство может построить многомерное пространство, в котором будет представлено оцифрованное изображение иероглифа 30×30. Размерность пространства равна 71 (то есть количество компонентов векторов вероятности в позициях, полученных из модели машинного обучения 114). Гауссова модель может быть построена в многомерном пространстве. Модель распределения может соответствовать каждому из иероглифов. Гауссова модель может представлять векторы вероятности компонентов в позициях, определенных моделью машинного обучения в виде многомерного вектора признаков. Гауссова модель может вернуть вес модели распределения, которая соответствует конкретному иероглифу. Таким образом, обрабатывающее устройство может классифицировать иероглиф как определенный символ языка, исходя из веса соответствующей модели распределения.
[0063] Вероятностная модель может быть создана в соответствии с одной или более из следующих формул:
i
j
[0064] Где i представляет собой номер признака компонента, x - точка в многомерном пространстве,  и L - переменные модели, a L - коэффициент. Вклад каждого компонента в каждой позиции можно вычислить в соответствии со следующей формулой:
компонентов
элементов
[0065] Где n - это количество компонентов, для которых построена вероятностная модель, n - число элементов в обучающей выборке,  - минимальное целое число представителей класса, деленное на 5, где 5 - экспериментально определенное число, добавленное для лучшей сходимости техники в условиях ограниченной обучающей выборки.  - это минимальное значение из  и 5, где 5 - это также экспериментально определенное число, добавленное для лучшей сходимости техники в условиях ограниченной обучающей выборки.
[0066] На Фиг. 8 изображена блок-схема примера нейронной сети 800, обученной распознаванию наличия компонентов в позициях иероглифа 810, в соответствии с одним или более вариантами реализации настоящего изобретения. В одном из вариантов реализации нейронная сеть выдает вероятность наличия компонентов для каждой допустимой позиции в иероглифе. Как было указано выше, нейронная сеть 800 может включать выходные данные для каждой позиции, или для каждой позиции может использоваться отдельная нейронная сеть 800. Нейронная сеть 800 может включать несколько сверточных слоев и субдискретизирующих слоев 850, как указано ниже.
[0067] Как обсуждалось выше, возможно использование нейронной сети любого подходящего типа. Например, в одном из вариантов реализации структура сверточной нейронной сети, используемой в системе распознавания символов 112, схожа с LeNet (сверточной нейронной сетью для распознавания рукописных цифр). Сверточная нейронная сеть может поэлементно умножать каждый фрагмент на фильтры (например, матрицы) с суммированием и записью результата в аналогичной позиции выходного изображения.
[0068] Первый слой 820 нейронной сети является сверточным. В этом слое 820 значение исходного предварительно обработанного изображения (бинаризованного, центрированного и т.д.) умножается на значения фильтров 801. Фильтр 801 представляет собой пиксельную матрицу с определенными размерами. В этом слое фильтры имеют размер 5×5. Каждый фильтр определяет конкретный признак изображения. Фильтры проходят по всему изображению, начиная с верхнего левого угла. Фильтры умножают значения каждого фильтра на исходные значения пикселей изображения (поэлементное умножение). Произведения суммируются, что позволяет получить одно число 802. Фильтры перемещаются по изображению на следующую позицию в соответствии с конкретным шагом, и процесс свертки повторяется для следующего фрагмента изображения. Каждая уникальная позиция исходного изображения превращается в число (например, 802). После прохождения фильтра по всем позициям получается матрица, которая называется картой признаков 803. Первая свертка производится 20 фильтрами, в результате мы получаем 20 карт признаков 825, имеющих размер 24×24 пикселей.
[0069] Следующий слой 830 нейронной сети 800 выполняет субдискретизацию. Слой 830 выполняет операцию уменьшения дискретизации пространственных размеров (ширины и высоты). В результате размер карты признаков уменьшается (например, в 2 раза, поскольку фильтры могут иметь размер 2×2). В этом слое 830 выполняется нелинейное уплотнение карты признаков. Например, если некоторые признаки графических элементов уже были обнаружены в предыдущей операции свертки, для дальнейшей обработки уже не нужно подробное изображение, и его можно уплотнить до менее подробных изображений. В случае субдискретизирующего слоя признаки в общем случае могут вычисляться проще. Таким образом, при применении фильтра к изображению можно выполнять не умножение, а более простую математическую операцию, например, поиск наибольшего числа во фрагменте изображения. Наибольшее число можно внести в карту признаков, фильтр перейдет к следующему фрагменту. Эту операцию можно повторять до полного покрытия изображения.
[0070] В другом сверточном слое 840 операция свертки повторяется с помощью определенного числа фильтров определенного размера (например, 5×5). В одном из вариантов реализации в слое 840 количество использованных фильтров равно 50, таким образом, извлечено 50 признаков и создано 50 карт признаков. Полученные карты признаков могут иметь размер 8×8. В другом субдискретизирующем слое 860 производится уплотнение 50 карт признаков (например, путем наложения фильтров 2×2). В результате будут собраны 25 050 признаков.
[0071] Эти признаки могут быть использованы для определения того, присутствуют ли конкретные графические элементы 815, 816 и 818 в определенных позициях в иероглифе. Если признаки, обнаруженные в сверточных и субдискретизирующих слоях 850, указывают, что конкретный компонент присутствует в определенной позиции иероглифа, для этого компонента в векторе вероятностей для этой позиции может выводиться высокий индекс вероятности. В некоторых вариантах реализации на основе качества изображения, иероглифа, графического элемента в иероглифе или других факторов нейронная сеть 800 может идентифицировать более одного возможного графического элемента для одной или более позиций в иероглифе. В подобных случаях нейронная сеть может вывести в векторе вероятностей для этой позиции сходные индексы вероятности для более чем одного компонента, и потребуется дополнительная классификация, как описано выше. После того, как компоненты для каждой позиции иероглифа классифицированы, обрабатывающее устройство может определить иероглиф, соответствующий этим компонентам (например, вычислив код Unicode этого иероглифа).
[0072] На Фиг. 9 изображен пример вектора вероятности компонентов 900 и связанных с ними выходных индексов модели машинного обучения 114 в соответствии с одним или более вариантами реализации настоящего изобретения. Вектор 900 включает набор всех возможных вариантов графических элементов, которые могут встретиться в определенной позиции (например, первой позиции, второй позиции, третьей позиции в корейском языке), отсутствие графического элемента (например, 950) в определенной позиции также является одним из возможных вариантов. Изображенный вектор 900 включает компоненты 930 вектора вероятностей и указывает на третью позицию корейского иероглифа 910 (изображены не все компоненты). Можно видеть, что компонент 920 включает двойной компонент, и модель машинного обучения 114 выдает высокий индекс вероятности (0,98) для двойного компонента в векторе 900. Таким образом, модель машинного обучения 114 может выдавать компонент вектора 930 для каждого допустимого компонента в указанной позиции, а также компоненты вектора для сдвоенных графем 940. Значения индекса вероятности могут находиться в диапазоне от 0 до 1, причем чем ближе числовое значение к 1, тем выше вероятность найти один или два графических элемента в соответствующей позиции. Как было показано, модель машинного обучения 114 дает низкий индекс вероятности 760 для других компонентов, что означает малую вероятность их нахождения в этой позиции.
[0073] На Фиг. 10 изображен пример таблицы Unicode для корейского языка в соответствии с одним или более вариантами реализации настоящего изобретения. Unicode представляет собой систему представления символов в виде последовательности кодов, построенную по определенным правилам. Как обсуждалось ранее, корейские иероглифы содержат буквы, расположенные в следующей последовательности: начальная согласная, срединная гласная или дифтонг и конечная согласная. Иероглифы корейского языка в системе Unicode закодированы по группам. Например, иероглифы разделены на 19 групп из 588 символов, причем иероглифы в каждой группе начинаются с одной согласной 1001. Каждая из 19 групп далее разделена на 21 подгруппу 1002, в зависимости от срединной гласной или дифтонга 1003. То есть в каждой из подгрупп 1002 присутствуют только иероглифы, имеющие одну и ту же срединную гласную или дифтонг 1003. Каждая подгруппа 1002 включает 28 символов. Каждая буква (то есть графический элемент) и каждый символ (то есть иероглиф) имеет код (то есть номер) в системе Unicode. Например, изображенный иероглиф имеет код U+AC01 (1004). Как указано выше, обрабатывающее устройство может использовать идентифицированные коды компонентов в каждой позиции иероглифа для вычисления кода конкретного иероглифа и классификации конкретного иероглифа как символа языка.
[0074] На Фиг. 11 изображен пример вычислительной системы 1100, которая может выполнять один или более способов, описанных в настоящем документе, в соответствии с одним или более вариантами реализации настоящего изобретения. В одном из примеров вычислительная система 1100 может соответствовать вычислительному устройству, способному выполнять систему распознавания символов 112, представленную на Фиг. 1. Данная вычислительная система может быть подключена (например, по сети) к другим вычислительным системам в локальной сети, сети интранет, сети экстранет или сети Интернет. Данная вычислительная система может выступать в качестве сервера в сетевой среде клиент-сервер. Эта вычислительная система может представлять собой персональный компьютер (ПК), планшетный компьютер, телевизионную приставку (STB), карманный персональный компьютер (PDA), мобильный телефон, фотоаппарат, видеокамеру или любое устройство, способное выполнять набор команд (последовательно или иным способом), который определяется действиями этого устройства. Кроме того, несмотря на то, что показана система только с одним компьютером, термин «компьютер» также включает любой набор компьютеров, которые по отдельности или совместно выполняют набор команд (или несколько наборов команд) для выполнения любого одного или более из описанных здесь способов.
[0075] Пример вычислительной системы 1100 включает устройство обработки 1102, основную память 1104 (например, постоянное запоминающее устройство (ПЗУ), флэш-память, динамическое ОЗУ (DRAM), например, синхронное DRAM (SDRAM)), статическую память 1106 (например, флэш-память, статическое оперативное запоминающее устройство (ОЗУ)) и устройство хранения данных 1116, которые взаимодействуют друг с другом по шине 1108.
[0076] Обрабатывающее устройство 1102 представляет собой один или более обрабатывающих устройств общего назначения, например, микропроцессоров, центральных процессоров или аналогичных устройств. В частности, обрабатывающее устройство 1102 может представлять собой микропроцессор с полным набором команд (CISC), микропроцессор с сокращенным набором команд (RISC), микропроцессор со сверхдлинным командным словом (VLIW) или процессор, в котором реализованы другие наборы команд, или процессоры, в которых реализована комбинация наборов команд. Обрабатывающее устройство 1102 также может представлять собой одно или более устройств обработки специального назначения, такие как специализированная интегральная схема (ASIC), программируемая пользователем вентильная матрица (FPGA), процессор цифровых сигналов (DSP), сетевой процессор и т.п. Обрабатывающее устройство 1102 настраивается для выполнения системы распознавания символов 112 для выполнения рассматриваемых в этом документе операций и шагов.
[0077] Вычислительная система 1100 может дополнительно включать устройство сопряжения с сетью 1122. Вычислительная система 1100 может также включать видео дисплей 1110 (например, жидкокристаллический дисплей (LCD) или электроннолучевую трубку (ЭЛТ)), устройство буквенно-цифрового ввода 1112 (например, клавиатуру), устройство управления курсором 1114 (например, мышь) и устройство для формирования сигналов 1120 (например, громкоговоритель). В одном иллюстративном примере видеодисплей 1110, устройство буквенно-цифрового ввода 1112 и устройство управления курсором 1114 могут быть объединены в один модуль или устройство (например, сенсорный жидкокристаллический дисплей).
[0078] Запоминающее устройство 1116 может включать машиночитаемый носитель 1124, в котором хранится система распознавания символов 112 (например, соответствующая способам, показанным на Фиг. 4-7 и т.д.), реализующая одну или более методологий или функций, описанных в данном документе. Система распознавания символов 112 также может находиться, полностью или по меньшей мере частично, в основной памяти 1104 и (или) в обрабатывающем устройстве 1102 во время ее выполнения вычислительной системой 1100, основной памятью 1104 и устройством обработки 1102, также содержащими машиночитаемый носитель. Система распознавания символов 112 может дополнительно передаваться или приниматься по сети через устройство сопряжения с сетью 1122.
[0079] Несмотря на то, что машиночитаемый носитель данных 1124 показан в иллюстративных примерах как единичный носитель, термин «машиночитаемый носитель данных» следует понимать и как единичный носитель, и как несколько таких носителей (например, централизованная или распределенная база данных и (или) связанные кэши и серверы), на которых хранится один или более наборов команд. Термин «машиночитаемый носитель данных» также следует понимать как включающий любой носитель, который может хранить, кодировать или переносить набор команд для выполнения машиной и который обеспечивает выполнение машиной любой одной или более методик настоящего изобретения. Соответственно, термин «машиночитаемый носитель данных» следует понимать как включающий, среди прочего, устройства твердотельной памяти, оптические и магнитные носители.
[0080] Несмотря на то, что операции способов показаны и описаны в настоящем документе в определенном порядке, порядок выполнения операций каждого способа может быть изменен таким образом, чтобы некоторые операции могли выполняться в обратном порядке или чтобы некоторые операции могли выполняться, по крайней мере частично, одновременно с другими операциями. В некоторых вариантах реализации изобретения команды или подоперации различных операций могут выполняться с перерывами и (или) попеременно.
[0081] Следует понимать, что приведенное выше описание носит иллюстративный, а не ограничительный характер. Различные другие варианты реализации станут очевидны специалистам в данной области техники после прочтения и понимания приведенного выше описания. Поэтому область применения изобретения должна определяться с учетом прилагаемой формулы изобретения, а также всех областей применения эквивалентных способов, которые покрывает формула изобретения.
[0082] В приведенном выше описании изложены многочисленные детали. Однако специалистам в данной области техники должно быть очевидно, что варианты реализации изобретения могут быть реализованы на практике и без этих конкретных деталей. В некоторых случаях хорошо известные структуры и устройства показаны в виде блок-схем, а не подробно, чтобы не усложнять описание настоящего изобретения.
[0083] Некоторые части описания предпочтительных вариантов реализации выше представлены в виде алгоритмов и символического изображения операций с битами данных в компьютерной памяти. Такие описания и представления алгоритмов являются средством, используемым специалистами в области обработки данных, чтобы наиболее эффективно передавать сущность своей работы другим специалистам в данной области. Приведенный здесь (и в целом) алгоритм сконструирован как непротиворечивая последовательность шагов, ведущих к нужному результату. Эти шаги требуют физических манипуляций с физическими величинами. Обычно, хотя и не обязательно, эти величины принимают форму электрических или магнитных сигналов, которые можно хранить, передавать, комбинировать, сравнивать и выполнять другие манипуляции. Иногда удобно, прежде всего для обычного использования, описывать эти сигналы в виде битов, значений, элементов, символов, терминов, цифр и т.д.
[0084] Однако следует иметь в виду, что все эти и подобные термины должны быть связаны с соответствующими физическими величинами, и что они являются лишь удобными обозначениями, применяемыми к этим величинам. Если прямо не указано иное, как видно из последующего обсуждения, следует понимать, что во всем описании такие термины, как «прием» или «получение», «определение» или «обнаружение», «выбор», «хранение», «настройка» и т.п., относятся к действиям компьютерной системы или подобного электронного вычислительного устройства или к процессам в нем, причем такая система или устройство манипулирует данными и преобразует данные, представленные в виде физических (электронных) величин, в регистрах компьютерной системы и памяти в другие данные, также представленные в виде физических величин в памяти или регистрах компьютерной системы или в других подобных устройствах хранения, передачи или отображения информации.
[0085] Настоящее изобретение также относится к устройству для выполнения операций, описанных в настоящем документе. Такое устройство может быть специально сконструировано для требуемых целей, или оно может содержать универсальный компьютер, который избирательно активируется или дополнительно настраивается с помощью компьютерной программы, хранящейся в компьютере. Такая вычислительная программа может храниться на машиночитаемом носителе данных, включая, среди прочего, диски любого типа, в том числе гибкие диски, оптические диски, CD-ROM и магнитно-оптические диски, постоянные запоминающие устройства (ПЗУ), оперативные запоминающие устройства (ОЗУ), программируемые ПЗУ (EPROM), электрически стираемые ППЗУ (EEPROM), магнитные или оптические карты или любой тип носителя, пригодный для хранения электронных команд, каждый из которых соединен с шиной вычислительной системы.
[0086] Алгоритмы и изображения, приведенные в этом документе, не обязательно связаны с конкретными компьютерами или другими устройствами. Различные системы общего назначения могут использоваться с программами в соответствии с изложенной здесь информацией, возможно также признание целесообразным сконструировать более специализированные устройства для выполнения шагов способа. Структура разнообразных систем такого рода определяется в порядке, предусмотренном в описании. Кроме того, изложение вариантов реализации изобретения не предполагает ссылок на какие-либо конкретные языки программирования. Следует принимать во внимание, что для реализации принципов настоящего изобретения могут быть использованы различные языки программирования.
[0087] Варианты реализации настоящего изобретения могут быть представлены в виде вычислительного программного продукта или программы, которая может содержать машиночитаемый носитель данных с сохраненными на нем инструкциями, которые могут использоваться для программирования вычислительной системы (или других электронных устройств) в целях выполнения процесса в соответствии с сущностью изобретения. Машиночитаемый носитель данных включает механизмы хранения или передачи информации в машиночитаемой форме (например, компьютером). Например, машиночитаемый (считываемый компьютером) носитель данных содержит машиночитаемый (например, компьютером) носитель данных (например, постоянное запоминающее устройство (ПЗУ), оперативное запоминающее устройство (ОЗУ), накопитель на магнитных дисках, накопитель на оптическом носителе, устройства флэш-памяти и т.д.) и т.п.
[0088] Слова «пример» или «примерный» используются здесь для обозначения использования в качестве примера, отдельного случая или иллюстрации. Любой вариант реализации или конструкция, описанная в настоящем документе как «пример», не должна обязательно рассматриваться как предпочтительная или преимущественная по сравнению с другими вариантами реализации или конструкциями. Слово «пример» лишь предполагает, что идея изобретения представляется конкретным образом. В этой заявке термин «или» предназначен для обозначения включающего «или», а не исключающего «или». Если не указано иное или не очевидно из контекста, то «X включает А или В» используется для обозначения любой из естественных включающих перестановок. То есть если X включает в себя А; X включает в себя В; или X включает и А, и В, то высказывание «X включает в себя А или В» является истинным в любом из указанных выше случаев. Кроме того, артикли «а» и «an», использованные в англоязычной версии этой заявки и прилагаемой формуле изобретения, должны, как правило, означать «один или более», если иное не указано или из контекста не следует, что это относится к форме единственного числа. Использование терминов «вариант реализации» или «один вариант реализации» или «реализация» или «одна реализация» не означает одинаковый вариант реализации, если это не указано в явном виде. В описании термины «первый», «второй», «третий», «четвертый» и т.д. используются как метки для обозначения различных элементов и не обязательно имеют смысл порядка в соответствии с их числовым обозначением.