УСТРОЙСТВО И СПОСОБ ДЛЯ ЗАХВАТА БЕЗМАРКЕРНЫХ ДВИЖЕНИЙ ЧЕЛОВЕКА
APPARATUS AND METHOD OF CAPTURING MARKERLESS HUMAN MOVEMENTS

УРОВЕНЬ ТЕХНИКИ
1. Область техники
Примерные варианты осуществления относятся к устройству и способу отслеживания безмаркерных движений объекта в трехмерной (3D) конфигурации.
2. Описание предшествующего уровня техники
Способ отслеживания на основе трехмерного (3D) моделирования может обнаруживать двухмерную (2D) позу тела, применяя детектор 2D частей тела, и выполнять 3D моделирование, используя обнаруженную 2D позу тела, посредством этого, отслеживая 3D движения человека.
В способе захвата 3D движений человека, при котором к человеку, которого необходимо отслеживать, прикрепляется маркер и отслеживается движение маркера, может быть достигнута большая точность, однако, обработка в реальном времени может быть трудновыполнима из-за сложности вычислений и т.д.
Также, в способе захвата 3D движений человека, при котором конфигурируется скелет человека с использованием сведений о расположении каждой части тела человека, скорость вычислений можно увеличить благодаря относительно малым переменным движения, однако, точность может снизиться.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Согласно аспекту примерных вариантов осуществления, предоставляется устройство для захвата движений человека, причем устройство содержит: детекторный блок двухмерных (2D) частей тела для обнаружения расположений возможных 2D частей тела по входным изображениям; вычислительный блок трехмерных (3D) нижних частей тела для вычисления 3D нижних частей тела с использованием обнаруженных расположений возможных 2D частей тела; вычислительный блок трехмерных (3D) верхних частей тела для вычисления 3D верхних частей тела на основе модели тела; и блок визуального воспроизведения модели для визуального воспроизведения модели, в соответствии с результатом вычисленных 3D верхних частей тела, в котором результат визуального воспроизведения модели предоставляется в детекторный блок 2D частей тела, 3D нижние части тела являются частями, у которых диапазон движений больше, чем опорное значение среди возможных 2D частей тела, и 3D верхние части тела являются частями, у которых диапазон движений меньше опорного значения среди возможных 2D частей тела.
В данном случае детекторный блок 2D частей тела может включать в себя отсекающий блок 2D частей тела для сокращения (отсечения) расположений возможных 2D частей тела, которые находятся далеко от предполагаемых расположений локтя/колена из числа обнаруженных расположений возможных 2D частей тела.
Также, вычислительный блок 3D нижних частей тела может вычислять расположения возможных 3D верхних частей тела, используя расположения верхних частей тела сокращенных расположений возможных 2D частей тела, вычислительный блок 3D верхних частей тела может вычислять 3D позу тела, используя вычисленные расположения возможных 3D верхних частей тела на основе модели, а блок визуального воспроизведения модели может предоставлять предполагаемую 3D позу тела в отсекающий блок 2D частей тела, причем предполагаемая 3D поза тела получается путем визуального воспроизведения модели тела с использованием вычисленной 3D позы тела.
Также, устройство может далее включать в себя: блок извлечения глубины для извлечения карты глубин из входных изображений, в котором вычислительный блок 3D нижних частей тела вычисляет расположения возможных 3D нижних частей тела, используя расположения верхних частей тела сокращенных расположений возможных 2D частей тела и карты глубин.
Кроме того, детекторный блок 2D частей тела может обнаруживать по входным изображениям расположения возможных 2D частей тела для изучаемой области (ИО) и включать в себя блок графической обработки для разделения ИО входных изображений на множество каналов для того, чтобы выполнить параллельную обработку изображений для разделенной ИО.
Согласно другому аспекту примерных вариантов осуществления, предоставляется способ захвата движений человека, причем способ включает в себя: обнаружение по входным изображениям, с помощью детекторного блока 2D частей тела, расположений возможных 2D частей тела; вычисление, с помощью вычислительного блока 3D нижних частей тела, 3D нижних частей тела с использованием обнаруженных расположений возможных 2D частей тела; вычисление, с помощью вычислительного блока 3D верхних частей тела, 3D верхних частей тела на основе модели тела; и визуализацию, с помощью блока визуального воспроизведения в виде модели, модели тела в соответствии с результатом вычисленных 3D верхних частей тела, в котором результат визуального воспроизведения в виде модели предоставляется в детекторный блок 2D частей тела, 3D нижние части тела являются частями, у которых диапазон движений больше, чем опорное значение среди возможных 2D частей тела, и 3D верхние части тела являются частями, у которых диапазон движений меньше опорного значения среди возможных 2D частей тела.
В данном случае обнаружение возможных 2D частей тела может включать в себя сокращение, с помощью отсекающего блока 2D частей тела, расположений возможных 2D частей тела, которые находятся далеко от предполагаемых расположений локтя/колена из числа обнаруженных расположений возможных 2D частей тела.
Также, вычисление 3D нижних частей тела может вычислять, с помощью вычислительного блока 3D нижних частей тела, расположения возможных 3D нижних частей тела, используя сокращенные расположения возможных 2D частей тела, вычисление 3D верхних частей тела может вычислять, с помощью вычислительного блока 3D верхних частей тела, 3D позу тела, используя вычисленные расположения возможных 3D верхних частей тела на основе модели тела, а визуализация модели тела может предоставлять предполагаемую 3D позу тела в отсекающий блок 2D частей тела, причем предполагаемая 3D поза тела получается путем визуального воспроизведения модели тела, с помощью блока визуального воспроизведения модели, с использованием вычисленной 3D позы тела.
Также, способ может далее включать в себя извлечение карты глубин из входных изображений, в котором вычисление 3D нижних частей тела вычисляет, посредством вычислительного блока 3D нижних частей тела, расположения возможных 3D нижних частей тела, используя сокращенные расположения возможных 2D частей тела и карту глубин.
Кроме того, обнаружение расположений возможных 2D частей тела может обнаруживать по входным изображениям расположения возможных 2D частей тела для ИО и включать в себя выполнение с помощью блока графической обработки параллельную обработку изображений для ИО входных изображений путем разделения ИО на множество каналов.
Дополнительные аспекты, отличительные черты и/или преимущества вариантов осуществления будут изложены частично в последующем описании и частично станут очевидны из описания либо могут быть изучены при практическом раскрытии изобретения.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Эти и/или другие аспекты станут очевидны и более понятны из следующего описания примерных вариантов осуществления, взятого в сочетании с прилагаемыми чертежами, на которых:
Фиг.1 представляет собой диаграмму, иллюстрирующую пример модели частей тела;
Фиг.2 представляет собой диаграмму, иллюстрирующую другой пример модели частей тела;
Фиг.3 представляет собой блок-схему, иллюстрирующую способ захвата движений человека, согласно варианту осуществления;
Фиг.4 представляет собой диаграмму, иллюстрирующую конфигурацию устройства для захвата движений человека, согласно варианту осуществления;
Фиг.5 представляет собой диаграмму, иллюстрирующую конфигурацию устройства для захвата движений человека, согласно варианту осуществления, в деталях;
Фиг.6 представляет собой блок-схему, иллюстрирующую пример способа захвата движений человека, согласно варианту осуществления, в деталях;
Фиг.7 представляет собой блок-схему, иллюстрирующую пример процесса визуального воспроизведения, согласно варианту осуществления;
Фиг.8 представляет собой диаграмму, иллюстрирующую пример способа треугольного измерения для 3D частей тела, который может разделять трехмерные (3D) части тела на треугольники, согласно варианту осуществления;
Фиг.9 представляет собой диаграмму, иллюстрирующую конфигурацию устройства для захвата движений человека, согласно другому варианту осуществления;
Фиг.10 представляет собой блок-схему, иллюстрирующую способ захвата движений человека, согласно другому варианту осуществления;
Фиг.11 представляет собой диаграмму, иллюстрирующую изучаемую область (ИО) для входных изображений, согласно варианту осуществления; и
Фиг.12 представляет собой диаграмму, иллюстрирующую пример параллельной обработки изображений, согласно варианту осуществления.
ПОДРОБНОЕ ОПИСАНИЕ
Теперь будет сделана подробная ссылка на варианты осуществления, примеры которых иллюстрируются на прилагаемых чертежах, на которых везде одинаковые номера позиций обозначают одинаковые элементы. Примерные варианты осуществления описываются ниже для пояснения настоящего раскрытия со ссылкой на чертежи.
Согласно вариантам осуществления, могут использоваться триангулированная трехмерная (3D) модель, разбитая на ячейки, для туловища и верхних частей рук/ног, а также детектор двухмерных (2D) частей на основе прямоугольников для нижних частей рук/кистей и нижних частей ног.
Согласно варианту осуществления, нижние части рук/кисти и нижние части ног не связаны жестко с исходными частями тела. Вместо этого используется мягкое соединение. Используется принцип мягкого ограниченного сочленения, проиллюстрированный на Фиг.1 и 2.
Также, согласно вариантам осуществления, используется алгоритм для определения 3D позы скелета для каждого кадра входной видеопоследовательности. Как минимум, 3D скелет включает в себя туловище, верхние/нижние части рук, верхние/нижние части ног. 3D скелет также может включать в себя дополнительные части тела, такие как голова, кисти и т.д.
Фиг.1 представляет собой диаграмму, иллюстрирующую пример модели 100 частей тела.
Касательно Фиг.1, первая модель 100 частей тела делится на верхние части и нижние части на основании шаровых сочленений 111, 112, 113 и 114 и мягких ограничивающих сочленений 121, 122, 123 и 124. Верхние части могут быть расположены между шаровыми сочленениями 111, 112, 113 и 114 и мягкими ограничивающими сочленениями 121, 122, 123 и 124 и могут быть частями тела, у которых диапазон движений меньше опорного значения. Нижние части могут быть расположены между мягкими ограничивающими сочленениями 121, 122, 123 и 124 и кистями рук/ступнями и могут быть частями, у которых диапазон движений больше опорного значения.
Фиг.2 представляет собой диаграмму, иллюстрирующую другой пример модели 200 частей тела.
Как показано на Фиг.2, вторая модель 200 частей тела далее включает в себя мягкое ограничивающее сочленение 225 и также делится на верхние части и нижние части.
Фиг.3 представляет собой блок-схему, иллюстрирующую способ захвата движений человека, согласно варианту осуществления.
Касательно Фиг.3, во время операции 310 устройство для захвата движений человека обнаруживает множественные расположения возможных для нижних частей рук/кистей и нижних частей ног, используя детектор 2D частей тела.
Во время операции 320 устройство использует подход инкрементного вероятностного отслеживания на основе модели, используемый для определения положения/вращения туловища, поворота верхних частей рук и поворота верхних частей ног.
Во время операции 330 устройство определяет позу полностью, включая конфигурацию нижних частей рук и конфигурацию нижних частей ног.
Фиг.4 представляет собой диаграмму, иллюстрирующую конфигурацию устройства для захвата движений человека, согласно варианту осуществления.
Касательно Фиг.4, устройство 400 для захвата движений человека включает в себя детекторный блок 410 2D частей тела, вычислительный блок 420 3D частей тела и блок 430 визуального воспроизведения модели.
Детекторный блок 410 2D частей тела может быть сконструирован для применения в отношении частей тела, которые похожи на соответствующую форму (например, цилиндр). Конкретно, детекторный блок 410 2D частей тела может быстро сканировать все пространство возможных расположений частей во входных изображениях и обнаружить возможные 2D части тела как результат отслеживания установившихся движений рук/ног. В качестве примера, детекторный блок 410 2D частей тела может использовать детектор 2D частей на основе прямоугольников как надежное средство отслеживания быстрых движений рук/ног в моделях 100 и 200 частей тела на Фиг.1 и 2. Детекторный блок 410 2D частей тела может быть подходящим для обработки в реальном времени и может использовать параллельные технические средства, такие как блок графической обработки (БГО).
Вычислительный блок 420 3D частей тела включает в себя вычислительный блок 421 3D нижних частей тела и вычислительный блок 422 3D верхних частей тела и вычисляет 3D позу тела, используя обнаруженные возможные 2D части тела.
Вычислительный блок 421 3D нижних частей тела может вычислять 3D нижние части тела, используя множественные расположения возможных для нижних частей рук/кистей и нижних частей ног, основанных на расположениях обнаруженных возможных 2D частей тела.
Вычислительный блок 422 3D верхних частей тела может вычислять 3D верхние части тела, в соответствии со схемой отслеживания на основе 3D модели. Конкретно, вычислительный блок 422 3D верхних частей тела может вычислять 3D позу тела, используя вычисленные расположения возможных 3D верхних частей тела, на основе модели частей тела. В качестве примера, вычислительный блок 422 3D верхних частей тела может обеспечить большую точность реконструкции позы, поскольку вычислительный блок 422 3D верхних частей тела может использовать более современные модели формы тела, например триангулированную 3D сетку.
Блок 430 визуального воспроизведения модели может визуализировать модель частей тела, используя 3D позу тела, выдаваемую вычислительным блоком 422 3D верхних частей тела. Конкретно, блок 430 визуального воспроизведения модели может визуализировать 3D модель частей тела, используя 3D позу тела, выдаваемую вычислительным блоком 422 3D верхних частей тела, и предоставить визуализированную 3D модель частей тела в детекторный блок 410 2D частей тела.
Фиг.5 представляет собой диаграмму, иллюстрирующую конфигурацию устройства 500 для захвата движений человека, согласно варианту осуществления, в деталях.
Касательно Фиг.5, устройство 500 включает в себя детекторный блок 510 расположений 2D частей тела, вычислительный блок 520 3D позы тела и блок 530 визуального воспроизведения модели.
Детекторный блок 510 расположений 2D частей тела включает в себя детекторный блок 511 2D частей тела и отсекающий блок 512 2D частей тела. Детекторный блок 510 расположений 2D частей тела может обнаруживать расположения возможных 2D частей тела и обнаруживать, по обнаруженным расположениям возможных 2D частей тела, расположения возможных 2D частей тела, которые отсекаются в верхних частях и в нижних частях. Детекторный блок 511 2D частей тела может обнаруживать 2D части тела, используя входные изображения и 2D модель. Конкретно, детекторный блок 511 2D частей тела может обнаруживать 2D части тела посредством свертывания входных изображений и 2D модели и выдавать расположения возможных 2D частей тела. В качестве примера, детекторный блок 511 2D частей тела может обнаруживать 2D части тела посредством свертывания входных изображений и прямоугольной 2D модели и выдавать расположения возможных 2D частей тела для обнаруженных 2D частей тела. Отсекающий блок 512 2D частей тела может отсекать 2D части тела в верхних частях и в нижних частях, используя расположения возможных 2D частей тела, обнаруженные по входным изображениям.
Вычислительный блок 520 3D позы тела включает в себя вычислительный блок 521 3D частей тела и вычислительный блок 522 3D верхних частей тела. Вычислительный блок 520 3D позы тела может вычислять 3D позу тела, используя расположения возможных 2D частей тела. Вычислительный блок 521 3D частей тела может получать информацию о расположениях возможных 2D частей тела и триангулировать (разбивать на треугольники) расположения 3D частей тела, используя информацию о расположениях возможных 2D частей тела, таким образом, вычисляя расположения возможных 3D частей тела. Вычислительный блок 522 3D верхних частей тела может получать расположения возможных 3D частей тела и выдавать 3D позу тела путем вычисления 3D верхних частей тела посредством сопоставления позы.
Блок 523 визуального воспроизведения модели может получать 3D позу тела от вычислительного блока 522 3D верхних частей тела и предоставлять в отсекающий блок 512 2D частей тела предполагаемую 3D позу тела, полученную путем выполнения 3D позы тела блоком визуального воспроизведения модели.
Фиг.6 представляет собой блок-схему, иллюстрирующую пример способа захвата движений человека, согласно варианту осуществления, в деталях.
Касательно Фиг.6, во время операции 610 устройство для захвата движений человека обнаруживает и классифицирует расположения возможных 2D частей тела и определяет центры скоплений (кластеров). В качестве примера, во время операции 610 устройство обнаруживает и классифицирует расположения возможных 2D частей тела, таких как нижние части рук, нижние части ног и тому подобное, посредством свертывания входных изображений и прямоугольной 2D модели, и определяет центры скоплений, используя сдвиг среднего значения (непараметрический прием группирования). Обнаруженные 2D части тела могут быть закодированы как пара 2D конечных точек и скалярная таблица интенсивности (мера контраста части тела и окружающих пикселов).
Во время операции 620 устройство отсекает расположения возможных 2D частей тела, которые расположены относительно далеко от предполагаемых расположений локтя/колена.
Во время операции 630 устройство может вычислять расположения возможных 3D частей тела на основе обнаруженных расположений возможных 2D частей тела. Конкретно, во время операции 630 устройство может выдавать расположения возможных 3D частей тела, таких как нижние части рук/ног и тому подобное, путем вычисления таблицы интенсивности 3D частей тела на основе обнаруженных расположений возможных 2D частей тела. Таблица интенсивности 3D частей тела может быть суммой интенсивностей 2D частей тела.
Во время операции 640 устройство может вычислять расположение туловища, поворот верхних частей рук/ног и соответствующую конфигурацию нижних частей рук/ног.
Во время операции 650 устройство может выполнять преобразование выборочно реконструированной 3D позы.
Согласно вариантам осуществления, отслеживание является инкрементным. Отслеживание используется для поиска позы в текущем кадре, начиная гипотезой, сгенерированной из позы в предыдущем кадре. Полагая, что P(n) обозначает 3D позу в кадре n, тогда предполагаемая поза обозначает предполагаемую позу в кадре n+1, которое представляет
[Равенство 1]
P(n+1)=P(n)+λ∙(P(n)-P(n-1)),
где λ - постоянная, такая как 0<λ<1 (используется для стабилизации отслеживания).
Предполагаемая поза тела может быть использована для фильтрации возможных 2D расположений частей тела. 3D расположения локтя/колена можно спроецировать во всех видах. Возможные 2D расположения частей тела, находящиеся вне предопределенного радиуса от предполагаемых расположений локтя/колена, исключаются из дальнейшего исследования.
Фиг.7 представляет собой блок-схему, иллюстрирующую пример процесса визуального воспроизведения, согласно варианту осуществления.
Касательно Фиг.7, во время операции 710 устройство для захвата движений человека воспроизводит модель туловища с верхними частями рук/ног во всех видах.
Во время операции 720 устройство выбирает единственное, наиболее подходящее расположение нижних частей рук/нижних частей ног на руку/ногу.
Также, устройство может выполнять операцию 720 путем суммирования таблиц соединений 3D частей тела. Может быть вычислена таблица близости как квадрат расстояния в 3D пространстве от точки реального соединения до точки идеального соединения. Детектором частей тела может быть вычислена подходящая таблица интенсивности 3D частей тела. После операции 650 может быть предоставлена таблица повторного проецирования 3D частей тела. Таблица исключения копий может быть таблицей для устранения копий расположений возможных. Устройство может выбирать возможную часть тела с наивысшими показателями таблицы.
Фиг.8 представляет собой диаграмму, иллюстрирующую пример способа треугольного измерения для 3D частей тела, который может разделять трехмерные (3D) части тела на треугольники, согласно варианту осуществления.
Касательно Фиг.8, способ треугольного измерения может проецировать проекции 810, 820 сегмента линии в поле зрения камеры в проекцию 830 3D сегмента линии.
Для предопределенных пар камер 2D расположения 810, 820 частей тела могут использоваться для триангулирования расположений 3D частей тела.
Фиг.9 представляет собой диаграмму, иллюстрирующую конфигурацию устройства 900 для захвата движений человека, согласно другому варианту осуществления. Касательно Фиг.9, устройство включает в себя детекторный блок 910 2D частей тела, блок 920 генерирования 3D позы и блок 930 визуального воспроизведения модели.
Детекторный блок 910 2D частей тела может обнаруживать 2D части тела по входным изображениям и выдавать расположения возможных 2D частей тела.
Блок 920 генерирования 3D позы тела включает в себя блок 921 извлечения глубины, блок 922 реконструкции 3D нижних частей тела и вычислительный блок 923 3D верхних частей тела.
Блок 920 генерирования 3D позы может извлекать карту глубин из входных изображений, вычислять расположения возможных 3D частей тела, используя извлеченную карту глубин и расположения возможных 2D частей тела, и вычислять 3D позу тела, используя расположения возможных 3D частей тела. Блок 921 извлечения глубины может извлекать карту глубин из входных изображений. Блок 922 реконструкции 3D нижних частей тела может получать расположения возможных 2D частей тела от детекторного блока 910 2D частей тела, получать карту глубин от блока 921 извлечения глубины и реконструировать 3D нижние части тела, используя расположения возможных 2D частей тела и карту глубин для того, чтобы, таким образом, генерировать расположения возможных 3D частей тела. Вычислительный блок 923 3D верхних частей тела может получать расположения возможных 3D частей тела от блока 922 реконструкции 3D нижних частей тела, вычислять расположения 3D верхних частей тела, используя расположения возможных 3D частей тела, и выдавать 3D позу, сгенерированную посредством сопоставления поз вычисленных расположений 3D верхних частей тела.
Блок 930 визуального воспроизведения модели может получать 3D позу тела от вычислительного блока 923 3D верхних частей тела и выдавать предполагаемую 3D позу, полученную путем воспроизведения модели для 3D позы.
Детекторный блок 910 2D частей тела может обнаруживать 2D части тела от блока 930 визуального воспроизведения модели, используя предполагаемую 3D позу и входные изображения для того, чтобы, таким образом, выдать расположения возможных 2D частей тела.
Фиг.10 представляет собой блок-схему, иллюстрирующую способ захвата движений человека, согласно другому варианту осуществления.
Касательно Фиг.10, во время операции 1010 устройство для захвата движений человека, согласно варианту осуществления, может обнаруживать расположения возможных 2D частей тела (например, нижних частей рук и нижних частей ног), используя функции мультивызова.
Во время операции 1020 устройство может вычислять карту глубин из многопроекционных входных изображений.
Во время операции 1030 устройство может вычислять расположения 3D частей тела (например, нижних частей рук и нижних частей ног) на основе обнаруженных расположений возможных 2D частей тела и карты глубин.
Во время операции 1040 устройство может вычислять расположение туловища, поворот верхних частей рук/верхних частей ног и конфигурацию нижних частей рук/нижних частей ног.
Во время операции 1050 устройство может выполнять преобразование реконструированной 3D позы в качестве опции.
Фиг.11 представляет собой диаграмму, иллюстрирующую изучаемую область (ИО) для входных изображений, согласно варианту осуществления.
Касательно Фиг.11, устройство для захвата движений человека, согласно варианту осуществления, может уменьшать объем вычислений для того, чтобы, таким образом, повысить скорость обработки при обнаружении 2D частей тела для изучаемой области 1110 (ИО) входного изображения 1100, а не обнаруживать 2D части тела по целому входному изображению 1100.
Фиг.12 представляет собой диаграмму, иллюстрирующую пример параллельной обработки изображений, согласно варианту осуществления.
Касательно Фиг.12, когда устройство для захвата движений человека включает в себя блок графической обработки (БГО), серое изображение применительно к ИО входных изображений может быть разделено с использованием красного канала 1210, зеленого канала 1220, синего канала 1230 и альфа-канала 1240, и параллельная обработка осуществляется на разделенном сером изображении, таким образом, уменьшая объем обрабатываемых изображений и увеличивая скорость обработки.
Дальнейшая оптимизация сжатия изображения может быть возможна посредством применения векторной архитектуры БГО. Функциональные блоки БГО, то есть сэмплеры текстуры, арифметические устройства и ИО, могут быть сконструированы для обработки четырехкомпонентных значений.
Поскольку pixel_match_diff(x,y) является скалярной величиной, то возможно хранить и обрабатывать 4 значения pixel_match_diff(x,y) в отдельных цветовых плоскостях поверхности визуального воспроизведения для 4 различных оценок целевой функции.
Как описывалось выше, согласно вариантам осуществления, предоставляются способ и система, которые могут определять 3D позу скелета, то есть многомерный вектор, описывающий упрощенную конфигурацию человеческого скелета, для каждого кадра входной видеопоследовательности.
Также, согласно вариантам осуществления, предоставляются способ и система, которые могут отслеживать движения 3D объекта для того, чтобы улучшить точность и скорость.
Способы, описанные выше, могут записываться, храниться или фиксироваться на одном или нескольких машиночитаемых носителях информации, которые содержат программные инструкции для выполнения компьютером, чтобы вызвать исполнение или реализацию процессором программных инструкций. Носитель информации также может содержать, самостоятельно или в сочетании с программными инструкциями, файлы данных, структуры данных и тому подобное. Носитель информации и программные инструкции могут быть спроектированы и сконструированы специально или они могут быть любого известного типа, доступного для специалистов в области программного обеспечения. Примеры машиночитаемых носителей информации включают в себя магнитные носители, такие как жесткие диски, флоппи-диски и магнитную ленту; оптические носители, такие как CD ROM диски и DVD; магнитооптические носители, такие как оптические диски; и аппаратные устройства, специально сконфигурированные для хранения и выполнения программных инструкций, таких как постоянное запоминающее устройство, (ROM), оперативно запоминающее устройство (RAM), флеш-память и т.д. Машиночитаемым носителем информации также может быть распределенная сеть, так что программные инструкции хранятся и исполняются распределенным образом. Программные инструкции могут исполняться одним или более процессорами. Машиночитаемые носители информации также могут быть осуществлены в виде, по меньшей мере, одной специализированной интегральной микросхемы (ASIC) или программируемой пользователем вентильной матрицы (FPGA), которая исполняет (обрабатывает, как процессор) программные инструкции. Примеры программных инструкций включают в себя как машинный код, такой как производит компилятор, так и файлы, содержащие код высшего уровня, который может быть выполнен компьютером с использованием интерпретатора. Описанные аппаратные устройства могут быть сконфигурированы для работы в качестве одного или более модулей программного обеспечения для того, чтобы выполнять операции и способы, описанные выше, или наоборот.
Хотя было описано и показано несколько примерных вариантов осуществления, специалистам в данной области техники будет понятно, что могут быть внесены изменения в эти примерные варианты осуществления, не выходя за пределы принципов и сущности раскрытия данного изобретения, объем которого определяется формулой изобретения или ее эквивалентом.