СПОСОБ ПЕРЕДАЧИ ДВИЖЕНИЯ СУБЪЕКТА ИЗ ВИДЕО НА АНИМИРОВАННОГО ПЕРСОНАЖА
METHOD OF TRANSMITTING MOTION OF A SUBJECT FROM A VIDEO TO AN ANIMATED CHARACTER

ОБЛАСТЬ ТЕХНИКИ
[001] Настоящее техническое решение в общем относится к области вычислительной техники, а в частности к способам и системам переноса движения субъекта, находящегося на видео, на анимированного персонажа.
УРОВЕНЬ ТЕХНИКИ
[002] В настоящее время анимационные изображения создаются с помощью компьютерной графики рендерингом по 3D-моделям в таких программах, как Autodesk Maya и пр. Рендеринг одного кадра в высоком разрешении может занимать более 10 минут. Соответственно, например, создание мультфильмов может занимать большое количество часов и дней, что значительно усложняет процесс. Вычислительные мощности существующих процессоров не позволяют оптимально решить эту задачу.
[003] Из уровня техники известно решение из статьи «Everybody Dance Now», авторы: Caroline Chan, Shiry Ginosar, Tinghui Zhou, Alexei A. Efros, опубликовано: 22.08.2018. В данном техническом решении представлен простой метод передачи движения «делай как я»: берется исходное видео с танцующим человеком, движения этого человека переносятся на новую цель, которую снимали всего несколько минут в различных позах и ракурсах для обучения генеративных состязательных нейронных сетей, при этом целевой субъект не выполнял какие-либо сложные движения. Используя обнаружение поз в качестве промежуточного представления между источником и целью, изучают отображение изображений позы на внешний вид субъекта. В данном решении адаптируется эта настройка для согласованной во времени генерации видео, включая реалистичный синтез лица. Данный алгоритм может быть рассмотрен в рамках данного технического решения как прототип.
[004] Недостатком приведенного алгоритма является то, что, во-первых, у всего алгоритма очень низкая скорость (преимущественно из-за долгих вычислений стандартного алгоритма построения скелета человека PoseNet), то есть обрабатывать хотя бы близко к реальному времени не представляется возможным. Во-вторых, нет никакого сглаживания, из-за чего сгенерированные видео содержат шум. Также к недостаткам можно отнести различие в пропорциях исходного и целевого субъектов, таким образом, помимо движений субъект получает и измененное телосложение. Особенно это заметно при переносе движений между субъектами разного пола, а также между субъектами, сильно различающимися фигурой. Наконец, генеративная сеть предназначена для использования конкретного фона, если же использовать прозрачный либо белый фон, то будет меньше шумов, а также фон можно подложить практически из любых источников, что может быть особенно полезно для мультипликации.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
[005] Данное техническое решение направлено на устранение недостатков, свойственных решениям, известным из уровня техники.
[006] Технической задачей или проблемой, решаемой в данном техническом решении, является осуществление способа и системы для переноса движения субъекта из одного видео на другой субъект в другом видео.
[007] Техническим результатом является повышение скорости и точности переноса движения субъекта из одного видео на другой субъект.
[008] Дополнительным техническим результатом, достигаемым при решении вышеуказанной технической проблемы, является устойчивость решения к фону, пропорциям, причем движения дополнительно сглажены для устранения визуальных дефектов генератора.
[009] Указанный технический результат достигается благодаря реализации дополнительных эвристик для повышения точности и аккуратности переноса, распознавания ключевых точек (скелетов) корпуса субъекта для обеспечения высокой скорости детектирования.
[0010] Указанный технический результат достигается благодаря способу передачи движения субъекта из видео на анимированного персонажа, выполняемый на по меньшей мере одном процессоре, в котором получают набор кадров, содержащих по меньшей мере один исходный подвижный субъект; осуществляют обнаружение по меньшей мере одного исходного подвижного субъекта посредством определения его местоположения и параметров движения в двумерной системе координат кадра; определяют координаты ключевых точек тела по меньшей мере одного исходного подвижного объекта на основании местоположения и параметров движения подвижного объекта, определенных на предыдущем шаге посредством искусственной нейронной сети; получают изображение по меньшей мере одного анимированного персонажа; генерирует синтетические кадры с по меньшей мере одним анимированным персонажем, повторяющим движения исходного подвижного объекта на основании набора координат ключевых точек исходного подвижного объекта, определенного ранее; объединяют полученные сгенерированные кадры в видеоролик, причем каждому кадру полученного на первом шаге набора соответствует один кадр сгенерированного набора кадров.
[0011] В некоторых вариантах реализации технического решения при обнаружении подвижного субъекта параметрами движения являются скорость и/или направление, и/или ускорение.
[0012] В некоторых вариантах реализации технического решения местоположение и/или параметры движения подвижного субъекта преобразуют из двумерной системы координат кадра в двумерную систему координат карты.
[0013] В некоторых вариантах реализации технического решения при обнаружении подвижного субъекта данный подвижный субъект выделен в виде набора ключевых точек.
[0014] Способ по п. 1, характеризующийся тем, что при обнаружении подвижного субъекта отдельные движения субъектов на карте, зарегистрированных различными видеокамерами, могут быть сопоставлены и/или объединены в обобщенную траекторию.
[0015] В некоторых вариантах реализации технического решения сопоставление и/или объединение местоположений производится методом корреляции местоположений или методом вычисления квадратов расстояний между местоположениями.
[0016] В некоторых вариантах реализации технического решения при получении изображения анимированного персонажа данное изображение генерируется по изображению ключевых точек субъекта с помощью применения искусственной нейронной сети.
[0017] В некоторых вариантах реализации технического решения искусственная нейронная сеть имеет архитектуру R-CNN или Fast R-CNN, или Faster R-CNN, или Cascade R-CNN.
[0018] В некоторых вариантах реализации технического решения искусственная нейронная сеть является соревновательной нейронной сетью (GAN), которая содержит генератор и дискриминатор, которые обучают друг друга.
[0019] В некоторых вариантах реализации технического решения каждой ключевой точке на кадре соответствуют координаты в пикселах (х, у) на изображении.
[0020] В некоторых вариантах реализации технического решения при генерировании синтетических кадров с анимированным персонажем производят сглаживание траекторий набора ключевых точек для более плавных движений.
[0021] В некоторых вариантах реализации технического решения при получении набора кадров кадры содержат фон и/или аудиотреки, и/или эффекты
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0022] Признаки и преимущества настоящего технического решения станут очевидными из приведенного ниже подробного описания и прилагаемых чертежей, на которых:
[0023] На Фиг. 1а и 1б показан пример осуществления вычисления ключевых точек субъекта с трансформацией пропорций под целевого персонажа.
[0024] На Фиг. 2а и 2б показан вариант реализации примеров элементов обучающей выборки.
[0025] На Фиг. 3 показан пример осуществления обучения искусственной нейронной сети.
[0026] На Фиг. 4 показан вариант осуществления системы передачи движения объекта из видео на анимированный персонаж.
ПОДРОБНОЕ ОПИСАНИЕ ТЕХНИЧЕСКОГО РЕШЕНИЯ
[0027] Ниже будут подробно рассмотрены термины и их определения, используемые в описании технического решения.
[0028] В данном изобретении под системой подразумевается компьютерная система, ЭВМ (электронно-вычислительная машина), ЧПУ (числовое программное управление), ПЛК (программируемый логический контроллер), компьютеризированные системы управления и любые другие устройства, способные выполнять заданную, четко определенную последовательность операций (действий, инструкций).
[0029] Под устройством обработки команд подразумевается электронный блок либо интегральная схема (микропроцессор), исполняющая машинные инструкции (программы). Устройство обработки команд считывает и выполняет машинные инструкции (программы) с одного или более устройства хранения данных. В роли устройства хранения данных могут выступать, но, не ограничиваясь, жесткие диски (HDD), флеш-память, ПЗУ (постоянное запоминающее устройство), твердотельные накопители (SSD), оптические приводы.
[0030] Программа - последовательность инструкций, предназначенных для исполнения устройством управления вычислительной машины или устройством обработки команд.
[0031] На первом шаге получают видеопоток, на котором записан, например, танец какого-либо субъекта, которым может быть человек. В общем случае это набор движений субъекта.
[0032] Видеоданные могут представлять собой один или несколько кадров с видеокамеры с сенсором CCD, CMOS или иным типом сенсора, например, тепловизионным сенсором. Изображение может быть цветным или черно-белым. Пример кадра, полученного с видеокамеры, представлен на Фиг. 1б.
[0033] Далее осуществляют обнаружение местоположения субъекта на кадре, например, скелета человека, и его трансформацию с учетом пропорций и телосложения целевого персонажа, как это показано на Фиг. 1а. По полученным на предыдущем шаге видеоданным находят, по крайней мере, один подвижный субъект и определяют местоположение и/или параметры движения найденного объекта в двумерной системе координат кадра (далее -местоположение на кадре). Для обнаружения подвижного субъекта может быть использован детектор движения или более сложная видеоаналитика, например с детектированием мимики лица, движений пальцев, определения пульса и так далее. Например, на Фиг. 1а обнаруженный подвижный субъект выделен в виде набора ключевых точек, а последовательность его местоположений (траектория движения) может быть показана одним цветом. В результате анализа временной последовательности местоположений (траекторий) субъекта могут быть определены параметры движения, такие как скорость (включая абсолютное значение скорости и направление) и ускорение.
[0034] В некоторых вариантах реализации полученное местоположение и/или параметры движения найденного субъекта преобразуют из двумерной системы координат кадра в двумерную систему координат карты (далее -местоположение на карте).
[0035] Привязка расположения видеокамер к карте может быть реализована в процессе первоначальной калибровки системы получения видеоизображений. Наиболее оптимально это осуществлять при помощи точечной калибровки (на кадре, отображаемом видеокамерой, выбирается набор точек с известными местоположениями на карте). В процессе этой калибровки для каждой видеокамеры определяется матрица преобразования А, которая позволяет однозначно осуществлять преобразование местоположения субъекта из локального местоположения г на кадре в глобальное местоположение R на карте:
[0036]
[0037] На данном шаге отдельные движения субъектов на карте, зарегистрированных различными видеокамерами, могут быть сопоставлены и/или объединены в обобщенную траекторию.
[0038] Объединение траекторий на кадре позволяет: а) устранить избыточность метаданных с траекториями субъектов в области перекрытия зон действия камер, что сократит объем данных и время поиска; б) реализовать многокамерный анализ перемещений субъектов, то есть анализировать перемещения субъектов от одной видеокамеры к другой; в) вычислить более точное местоположение субъекта на карте, например, геодезическими методами с использованием известных координат и ориентации камер.
[0039] Сопоставление и/или объединение местоположений может производиться, например, методом корреляции местоположений или методом вычисления квадратов расстояний между местоположениями. В случае, если значения корреляционной функции в окрестности близости траекторий больше порогового значения, либо если сумма квадратов между точками различных траектории меньше порогового значения, то считаются, что траектории соответствуют одному объекту и объединяются. В области объединения, обобщенная траектория может содержать координаты местоположения, усредненные по траекториям, зафиксированным отдельными камерами.
[0040] В некоторых вариантах реализации по изображению ключевых точек субъекта генерируется изображение, например, мультипликационного персонажа или анимированного персонажа (или другого субъекта) с помощью применения искусственной нейронной сети (далее - ИНС). В данном техническом решении может использоваться ИНС глубокого обучения, например, с архитектурой R-CNN, Fast R-CNN, Faster R-CNN, Cascade R-CNN и т.д., не ограничиваясь, решающая задачу обнаружения объектов на изображении (англ. object detection). Обучение ИНС в данном техническом решении и ее работа осуществляется по известному в уровне техники алгоритму работы с ИНС: предварительно размечаются изображения для обучения, формируется обучающая и тестовая выборка, тренируется одна или несколько нейронных сетей различных архитектур на обучающей выборке, оцениваются результаты на тестовой выборке, если качество работы сети перестает расти, обучение завершается.
[0041] В конкретном варианте реализации ИНС представляет из себя реализацию генератора, например, из сетей GAN (от англ. «Generative Adversarial Networks» - «Генеративных соревновательных сетей). Обучив генератор, получают ИНС, которая по набору ключевых точек может нарисовать персонажа. GAN состоит из пары сетей - генератора и дискриминатора, которые обучают друг друга. Генератор обучается на большом массиве изображений двух типов: изображения с персонажем и изображения с ключевыми точками этого персонажа. Количество таких изображений в массиве может начинаться от нескольких тысяч для получения хорошего качества созданных генератором синтетических изображений. На Фиг. 3 представлена схема обучения таких сетей: по каждому подготовленному набору ключевых точек генератор (в своей основе имеющий сверточную сеть наподобие U-Net) формирует целевое синтетическое изображение, дискриминатор же получает на вход выход из генератора и оригинальное изображение, соответствующее набору ключевых точек. Цель дискриминатора - определить, какое из изображений является оригинальным, а какое - синтетическим. В зависимости от результата определения больше штрафуется генератор, либо дискриминатор, параметры обучения изменяются (вычисляется попиксельное расстояние между изображениями, оптимизатор обучения настраивается на его минимизацию), обучение переходит на следующую стадию. Процесс продолжается, сети «соревнуются» друг с другом, таким образом обучая друг друга, пока генератор не начинает создавать изображения, достаточные по качеству для использования в приложении. После обучения генератор встраивается в общий алгоритм технического решения, ему подаются на вход идущие подряд кадры наборов ключевых точек, соответствующих кадрам из видеопотока с целевыми движениями (например, танцем), и он генерирует синтетические кадры с новым субъектом, повторяющим движения исходного субъекта.
[0042] Затем полученные сгенерированные кадры объединяются в видеоролик (представляющий собой последовательность кадров). Каждому кадру оригинального видео соответствует один кадр итогового видео. Набор изображений конвертируется стандартным образом в видеофайл требуемого формата. В некоторых вариантах реализации кроме персонажа в видео добавляется фон (изображение или видеоряд), а также какие-либо визуальные фильтры, аудиотреки, не ограничиваясь. Технически наибольший интерес здесь представляет сглаживание и избавление от артефактов, которые проявляются при переходах от кадра к кадру (так как в начальной реализации они генерируются независимо друг от друга). Перед генерацией необходимо производить сглаживание траекторий набора ключевых точек для более плавных движений (так как многие ИНС не дают идеальную точность определения ключевых точек на теле, и могут возникать сильные колебания). В конкретном примере реализации используется добавление момента при обновлении координат:
0
0
где (х, у) - несглаженные координаты точки нового кадра, (х, у) - сглаженные координаты, (λ, μ) - параметры сглаживания. Для дополнительного сглаживания добавляются новые, промежуточные кадры с усредненными координатами и повышается FPS видео.
[0043] Также для уменьшения шума требуется постобработка для сглаживания текстур, которые при генерации не зависят от поз и положения ключевых точек. Она реализуется взвешенным подмешиванием пикселов с предыдущих кадров генерации. Частично временное сглаживание реализуется еще и при обучении генератора, поскольку для временного ряда кадров дискриминатор пытается отличить каждый новый последовательный кадр от искусственного в согласованности с предыдущим настоящим кадром.
[0044] При помощи ИНС (например, такой как PoseNet), определяющих ключевые точки на изображениях человека, можно построить исходные изображения ключевых точек субъектов («скелетов») в каждый момент времени по видео, в котором происходят движения, которые нужно перенести на целевого персонажа (нового субъекта в сгенерированном видео с движениями исходного субъекта). Первоначально целевой персонаж может быть выполнен в виде 3D-модели. Изначально для обучения подобной ИНС необходимо собрать большую выборку изображений людей с соответствующими каждому изображению координатами точек тела. Их количество может различаться, это зависит от того, насколько сложные движения нужно улавливать, а также от целевого быстродействия. В конкретном варианте реализации используется 18 точек (этого количества достаточно для определения движений на общем плане): нос, шея, два плеча, два локтя, две кисти, два бедра, два колена, две ступни, два глаза, два уха. При необходимости отслеживания движений крупного плана (моторика пальцев, мимика и т.д.) добавляются дополнительные точки. ИНС от эпохи к эпохе пытается предсказывать координаты этих точек на поданных на вход изображениях, оптимизатор же подстраивает параметры обучения для минимизации ошибки, зная размеченные истинные точки. В итоге обученная сеть принимает изображения с людьми и выдает наборы координат точек для каждого из них. Из исходных изображений с движениями людей, которые нужно перенести, ИНС собирает ключевые точки, которые далее подвергаются трансформациям расположения точек друг относительно друга для соблюдения пропорций целевого персонажа (того, на кого необходимо перенести движения). Несоблюдение пропорций означает, что при покоординатном переносе точек мы можем получить, например, из высокого и худого исходного персонажа искаженное изображение «вытянувшегося» мультипликационного персонажа, либо другого человека, у которого пропорции сильно отличаются. По координатам ключевых точек рисуются «скелеты», которые уже подаются на вход описанному выше генератору из пары генеративных соревновательных нейронных сетей, который был обучен строить по изображениям ключевых точек субъектов изображения целевого персонажа, как описано ранее.
[0045] Дополнительно решается задача достраивания ключевых точек тела, которые не были обнаружены детектором ключевых точек. На изображении части тела могут быть вне зоны видимости. Например, если человек повернут в профиль, то дальнего уха не видно, и детектор ключевых точек среди всех предполагаемых кандидатов на выбор для соответствующих точек уха будет иметь очень низкие вероятности предсказания, которые оказываются ниже заданных порогов уверенности. В таком случае детектор ключевых точек просто не сможет предложить никакие точки. Если же понижать порог уверенности распознавания, то самый вероятный кандидат может оказаться совершенно в другой зоне тела, так что этот подход не дает решения поставленной проблемы. Предложен математический алгоритм достраивания точек с использованием информации об их относительном положении по отношению к найденным соседним точкам и информации об их положении на предыдущих и последующих кадрах с учетом пропорций целевого субъекта и его позы. Суть алгоритма заключается в последовательном определении того, насколько были далеко соседние кадры (поскольку при активном движении очень далекие кадры могут давать неактуальную информацию), дальнейшем усреднении координат в случае пригодности соседних кадров, и проверке на соблюдение возможных пропорций целевого субъекта (вычисляются расстояния с соседними точками). В случае отсутствия информации с ближайших соседних кадров точки достраиваются только по координатам соседних обнаруженных точек с соблюдением пропорций целевого субъекта. Если существенная часть тела исходного субъекта выходит за рамки кадра, соответствующая часть целевого субъекта будет статична, если же он целиком покидает кадр, то трекинг точек прекращается и целевой субъект также исчезает.
[0046] Для обучения ИНС, определяющих координаты ключевых точек тела и генерирующих по скелетам изображения, предварительно необходимо собрать и разметить большие объемы данных. Например, для нейронной сети архитектуры PoseNet - это изображения людей с соответствующими ключевым точкам (например, нос, шея, плечи, локти, кисти, бедра, колени, ступни, глаза и уши) координатами на изображении. Визуализированный пример размеченных точек для исходного изображения показан на Фиг. 2б. Каждой точке соответствуют координаты в пикселах (х, у) на изображении. Разметка может производиться вручную, либо с использованием уже обученных сетей (одна из реализаций PoseNet), которые, например, не подходят для использования в данном техническом решении из-за низкого быстродействия (но, например, их точность достаточна). Для мультипликационного персонажа нужно уточнить, что автоматическая разметка ключевых точек имеющимися в открытом доступе средствами детектирования ключевых точек тела невозможна, так как они все обучены на изображениях людей, а не на изображениях рисованных персонажей. Также для упрощения трансформаций скелета вместо ушей размечаются уголки щек мультипликационных персонажей, так как они соответствуют краевым точкам лица, как уши у человека. Для генератора из сетей GAN в качестве данных необходимо предоставить нарисованные по ключевым точкам скелеты и соответствующие им изображения персонажа. В конкретном примере реализации используется 18 точек, так как этого количества достаточно для передачи движений на изображениях общего плана. Это количество можно увеличить, если, например, необходимо добавить кончики пальцев в целях детектирования и отображения мелкой моторики. Результат генерации также может улучшиться в качестве при добавлении дополнительных точек, но это может отрицательно сказаться на скорости работы сети, предсказывающей положения ключевых точек.
[0047] Ссылаясь на Фиг. 4, данное техническое решение может быть реализовано в виде вычислительной системы 400, которая содержит один или более из следующих компонент:
• компонент 401 обработки, содержащий по меньшей мере один процессор 402,
• память 403,
• компонент 404 питания,
• компонент 405 мультимедиа,
• компонент 406 аудио,
• интерфейс 407 ввода / вывода (I/О),
• сенсорный компонент 408,
• компонент 409 передачи данных.
[0048] Компонент 401 обработки в основном управляет всеми операциями системы 400, например, обучает искусственную нейронную сеть, а также управляет дисплеем, передачей данных, работой камеры и операцией записи мобильного устройства связи пользователя. Модуль 401 обработки может включать в себя один или более процессоров 402, реализующих инструкции для завершения всех или части шагов из указанных выше способов. Кроме того, модуль 401 обработки может включать в себя один или более модулей для удобного процесса взаимодействия между другими модулями 401 обработки и другими модулями. Например, модуль 401 обработки может включать в себя мультимедийный модуль для удобного облегченного взаимодействия между компонентом 405 мультимедиа и компонентом 401 обработки.
[0049] Память 403 выполнена с возможностью хранения различных типов данных для поддержки работы системы 400, например, базы данных с профилями пользователей. Примеры таких данных включают в себя инструкции из любого приложения или способа, контактные данные, данные адресной книги, сообщения, изображения, видео, и т.д., и все они работают на системе 400. Память 403 может быть реализована в виде любого типа энергозависимого запоминающего устройства, энергонезависимого запоминающего устройства или их комбинации, например, статического оперативного запоминающего устройства (СОЗУ), Электрически-Стираемого Программируемого постоянного запоминающего устройства (ЭСППЗУ), Стираемого Программируемого постоянного запоминающего устройства (СППЗУ), Программируемого постоянного запоминающего устройства (ППЗУ), постоянного запоминающего устройства (ПЗУ), магнитной памяти, флэш-памяти, магнитного диска или оптического диска и другого, не ограничиваясь.
[0050] Компонент 404 питания обеспечивает электричеством различные компоненты системы 400. Компонент 404 питания может включать систему управления электропитанием, один или более источник питания, и другие узлы для генерации, управления и распределения электроэнергии к системе 400.
[0051] Компонент 405 мультимедиа включает в себя экран, обеспечивающий выходной интерфейс между системой 400, которая может быть установлена на мобильном устройстве связи пользователя и пользователем. В некоторых вариантах реализации, экран может быть жидкокристаллическим дисплеем (ЖКД) или сенсорной панелью (СП). Если экран включает в себя сенсорную панель, экран может быть реализован в виде сенсорного экрана для приема входного сигнала от пользователя. Сенсорная панель включает один или более сенсорных датчиков в смысле жестов, прикосновения и скольжения сенсорной панели. Сенсорный датчик может не только чувствовать границу прикосновения пользователя или жест перелистывания, но и определять длительность времени и давления, связанных с режимом работы на прикосновение и скольжение. В некоторых вариантах осуществления компонент 405 мультимедиа включает одну фронтальную камеру и/или одну заднюю камеру. Когда система 400 находится в режиме работы, например, режиме съемки или режиме видео, фронтальная камера и/или задняя камера могут получать данные мультимедиа извне. Каждая фронтальная камера и задняя камера может быть одной фиксированной оптической системой объектива или может иметь фокусное расстояние или оптический зум.
[0052] Компонент 406 аудио выполнен с возможностью выходного и/или входного аудио сигнала. Например, компонент 406 аудио включает один микрофон (MIC), который выполнен с возможностью получать внешний аудио сигнал, когда система 400 находится в режиме работы, например, режиме вызова, режима записи и режима распознавания речи. Полученный аудио сигнал может быть далее сохранен в памяти 403 или направлен по компоненту 409 передачи данных. В некоторых вариантах осуществления компонент 406 аудио также включает в себя один динамик, выполненный с возможностью вывода аудио сигнала.
[0053] Интерфейс 407 ввода / вывода (I/О) обеспечивает интерфейс между компонентом 401 обработки и любым периферийным интерфейсным модулем. Вышеуказанным периферийным интерфейсным модулем может быть клавиатура, руль, кнопка, и т.д. Эти кнопки могут включать, но не ограничиваясь, кнопку запуска, кнопку регулировки громкости, начальную кнопку и кнопку блокировки.
[0054] Сенсорный компонент 408 содержит один или более сенсоров и выполнен с возможностью обеспечения различных аспектов оценки состояния системы 400. Например, сенсорный компонент 408 может обнаружить состояния вкл/выкл системы 400, относительное расположение компонентов, например, дисплея и кнопочной панели, одного компонента системы 400, наличие или отсутствие контакта между пользователем и системой 400, а также ориентацию или ускорение/замедление и изменение температуры системы 400. Сенсорный компонент 408 содержит бесконтактный датчик, выполненный с возможностью обнаружения присутствия объекта, находящегося поблизости, когда нет физического контакта. Сенсорный компонент 408 содержит оптический датчик (например, КМОП или ПЗС-датчик изображения) выполненный с возможностью использования в визуализации приложения. В некоторых вариантах сенсорный компонент 408 содержит датчик ускорения, датчик гироскопа, магнитный датчик, датчик давления или датчик температуры.
[0055] Компонент 409 передачи данных выполнен с возможностью облегчения проводной или беспроводной связи между системой 400 и другими устройствами. Система 400 может получить доступ к беспроводной сети на основе стандарта связи, таких как WiFi, 2G, 3G, 5G, или их комбинации. В одном примерном варианте компонент 409 передачи данных получает широковещательный сигнал или трансляцию, связанную с ними информацию из внешней широковещательной системы управления через широковещательный канал. В одном варианте осуществления компонент 409 передачи данных содержит модуль коммуникации ближнего поля (NFC), чтобы облегчить ближнюю связь. Например, модуль NFC может быть основан на технологии радиочастотной идентификации (RFID), технологии ассоциации передачи данных в инфракрасном диапазоне (IrDA), сверхширокополосных (UWB) технологии, Bluetooth (ВТ) технологии и других технологиях.
[0056] В примерном варианте осуществления система 400 может быть реализована посредством одной или более Специализированных Интегральных Схем (СИС), Цифрового Сигнального Процессора (ЦСП), Устройств Цифровой Обработки Сигнала (УЦОС), Программируемым Логическим Устройством (ПЛУ), логической микросхемой, программируемой в условиях эксплуатации (ППВМ), контроллера, микроконтроллера, микропроцессора или других электронных компонентов, и может быть сконфигурирован для реализации способа передачи движения субъекта из видео на анимированного персонажа.
[0057] В примерном варианте осуществления, энергонезависимый компьютерно-читаемый носитель, содержит инструкции также предусмотренные, например, память 403 включает инструкции, где инструкции выполняются процессором 401 системы 400 для реализации описанных выше способов передачи движения субъекта из видео на анимированного персонажа. Например, энергонезависимым компьютерно-читаемым носителем может быть ПЗУ, оперативное запоминающее устройство (ОЗУ), компакт-диск, магнитная лента, дискеты, оптические устройства хранения данных и тому подобное.
[0058] Вычислительная система 400 может включать в себя интерфейс дисплея, который передает графику, текст и другие данные из коммуникационной инфраструктуры (или из буфера кадра, не показан) для отображения на компоненте 405 мультимедиа. Вычислительная система 400 дополнительно включает в себя устройства ввода или периферийные устройства. Периферийные устройства могут включать в себя одно или несколько устройств для взаимодействия с мобильным устройством связи пользователя, такие как клавиатура, микрофон, носимое устройство, камера, один или более звуковых динамиков и другие датчики. Периферийные устройства могут быть внешними или внутренними по отношению к мобильному устройству связи пользователя. Сенсорный экран может отображать, как правило, графику и текст, а также предоставляет пользовательский интерфейс (например, но не ограничиваясь ими, графический пользовательский интерфейс (GUI)), через который пользователь может взаимодействовать с мобильным устройством связи пользователя, например, получать доступ и взаимодействовать с приложениями, запущенными на устройстве.
[0059] Элементы заявляемого технического решения находятся в функциональной взаимосвязи, а их совместное использование приводит к созданию нового и уникального технического решения. Таким образом, все блоки функционально связаны.
[0060] Все блоки, используемые в системе, могут быть реализованы с помощью электронных компонент, используемых для создания цифровых интегральных схем, что очевидно для специалиста в данном уровне техники. Не ограничиваюсь, могут быть использоваться микросхемы, логика работы которых определяется при изготовлении, или программируемые логические интегральные схемы (ПЛИС), логика работы которых задается посредством программирования. Для программирования используются программаторы и отладочные среды, позволяющие задать желаемую структуру цифрового устройства в виде принципиальной электрической схемы или программы на специальных языках описания аппаратуры: Verilog, VHDL, AHDL и др. Альтернативой ПЛИС могут быть программируемые логические контроллеры (ПЛК), базовые матричные кристаллы (БМК), требующие заводского производственного процесса для программирования; ASIC - специализированные заказные большие интегральные схемы (БИС), которые при мелкосерийном и единичном производстве существенно дороже.
[0061] Обычно, сама микросхема ПЛИС состоит из следующих компонент:
• конфигурируемых логических блоков, реализующих требуемую логическую функцию;
• программируемых электронных связей между конфигурируемыми логическими блоками;
• программируемых блоков ввода/вывода, обеспечивающих связь внешнего вывода микросхемы с внутренней логикой.
[0062] Также блоки могут быть реализованы с помощью постоянных запоминающих устройств.
[0063] Таким образом, реализация всех используемых блоков достигается стандартными средствами, базирующимися на классических принципах реализации основ вычислительной техники.
[0064] Как будет понятно специалисту в данной области техники, аспекты настоящего технического решения могут быть выполнены в виде системы, способа или компьютерного программного продукта. Соответственно, различные аспекты настоящего технического решения могут быть реализованы исключительно как аппаратное обеспечение, как программное обеспечение (включая прикладное программное обеспечение и так далее) или как вариант осуществления, сочетающий в себе программные и аппаратные аспекты, которые в общем случае могут упоминаться как «модуль», «система» или «архитектура». Кроме того, аспекты настоящего технического решения могут принимать форму компьютерного программного продукта, реализованного на одном или нескольких машиночитаемых носителях, имеющих машиночитаемый программный код, который на них реализован.
[0065] Также может быть использована любая комбинация одного или нескольких машиночитаемых носителей. Машиночитаемый носитель хранилища может представлять собой, без ограничений, электронную, магнитную, оптическую, электромагнитную, инфракрасную или полупроводниковую систему, аппарат, устройство или любую подходящую их комбинацию. Конкретнее, примеры (неисчерпывающий список) машиночитаемого носителя хранилища включают в себя: электрическое соединение с помощью одного или нескольких проводов, портативную компьютерную дискету; жесткий диск, оперативную память (ОЗУ), постоянную память (ПЗУ), стираемую программируемую постоянную память (EPROM или Flash-память), оптоволоконное соединение, постоянную память на компакт-диске (CD-ROM), оптическое устройство хранения, магнитное устройство хранения или любую комбинацию вышеперечисленного. В контексте настоящего описания, машиночитаемый носитель хранилища может представлять собой любой гибкий носитель данных, который может содержать или хранить программу для использования самой системой, устройством, аппаратом или в соединении с ними.
[0066] Программный код, встроенный в машиночитаемый носитель, может быть передан с помощью любого носителя, включая, без ограничений, беспроводную, проводную, оптоволоконную, инфракрасную и любую другую подходящую сеть или комбинацию вышеперечисленного.
[0067] Компьютерный программный код для выполнения операций для шагов настоящего технического решения может быть написан на любом языке программирования или комбинаций языков программирования, включая объектно-ориентированный язык программирования, например Java, Smalltalk, С++ и так далее, и обычные процедурные языки программирования, например, язык программирования «С» или аналогичные языки программирования. Программный код может выполняться на компьютере или на мобильном устройстве связи пользователя полностью, частично, или же как отдельный пакет программного обеспечения, частично на компьютере пользователя и частично на удаленном компьютере, или же полностью на удаленном компьютере. В последнем случае, удаленный компьютер может быть соединен с компьютером пользователя через сеть любого типа, включая локальную сеть (LAN), глобальную сеть (WAN) или соединение с внешним компьютером (например, через Интернет с помощью Интернет-провайдеров).
[0068] Аспекты настоящего технического решения были описаны подробно со ссылкой на блок-схемы, принципиальные схемы и/или диаграммы способов, устройств (систем) и компьютерных программных продуктов в соответствии с вариантами осуществления настоящего технического решения. Следует иметь в виду, что каждый блок из блок-схемы и/или диаграмм, а также комбинации блоков из блок-схемы и/или диаграмм, могут быть реализованы компьютерными программными инструкциями. Эти компьютерные программные инструкции могут быть предоставлены процессору компьютера общего назначения, компьютера специального назначения или другому устройству обработки данных для создания процедуры, таким образом, чтобы инструкции, выполняемые процессором компьютера или другим программируемым устройством обработки данных, создавали средства для реализации функций/действий, указанных в блоке или блоках блок-схемы и/или диаграммы.
[0069] Эти компьютерные программные инструкции также могут храниться на машиночитаемом носителе, который может управлять компьютером, отличным от программируемого устройства обработки данных или отличным от устройств, которые функционируют конкретным образом, таким образом, что инструкции, хранящиеся на машиночитаемом носителе, создают устройство, включающее инструкции, которые осуществляют функции/действия, указанные в блоке блок-схемы и/или диаграммы.