СПОСОБ И УСТРОЙСТВО ДЛЯ СОЗДАНИЯ ВИДЕОАНИМАЦИИ
METHOD AND APPARATUS FOR CREATING ANIMATED VIDEO

Область изобретения
Изобретение относится к технологиям анимации, в частности к способу и устройству для создания видеоанимации.
Предпосылки к созданию изобретения
Большинство пользователей сети Интернет используют средства самопредставления и отображения индивидуальности для привлечения внимания других пользователей. Все большее количество пользователей сети Интернет отдают предпочтение видеоанимации как наиболее выразительному средству.
По мере развития технологий видеоанимации в них были объединены аудиотехнологии, видеотехнологии, технология механизма анимации лица и технология приведения в движение; в частности, технология механизма анимации лица и технология приведения в движение являются основными технологиями, применяемыми в видеоанимации.
Для предоставления видеоанимации применяют известный способ создания видеоанимации. Согласно этому способу создают основанную на лицевой мускулатуре сеточную модель и для сеточной модели устанавливают символьную систему. Для создания видеоанимации символьная система осуществляет кодирование выражений лица путем управления сеточной моделью.
При реализации вышеуказанного известного технического решения автор изобретения обнаружил следующие проблемы.
В известном техническом решении видеоанимации, генерируемой путем создания сеточной модели и символьной системы, для создания сеточной модели и символьной системы необходим очень большой объем вычислений, на создание видеоанимации затрачивают много времени, варианты применения ограничены.
Сущность изобретения
Примеры осуществления изобретения предоставляют способ и устройство для создания видеоанимации; эти способ и устройство отличаются малым объемом вычислений, небольшим временем создания видеоанимации, а также широким спектром применения.
Примеры осуществления изобретения предоставляют способ создания видеоанимации, включающий:
прием переданной пользователем команды, определение соответствующего команде действия, определение общего числа кадров, соответствующих действию, и определение коэффициента движения для каждого кадра;
вычисление смещения каждой контрольной точки в каждом кадре согласно коэффициенту движения для каждого кадра и создание видеоанимации согласно смещению каждой контрольной точки в каждом кадре и общему числу кадров.
Примеры осуществления изобретения также предоставляют устройство для создания видеоанимации, содержащее:
блок приема, сконфигурированный для приема переданной пользователем команды;
блок определения, сконфигурированный для определения соответствующего команде действия согласно команде, а также для определения общего числа кадров, соответствующих действию, и коэффициента движения для каждого кадра;
вычислительный блок, сконфигурированный для вычисления смещения каждой контрольной точки в каждом кадре согласно коэффициенту движения для каждого кадра; и
блок генерации, сконфигурированный для создания видеоанимации согласно смещению каждой контрольной точки в каждом кадре и общему числу кадров.
Исходя из вышеприведенного описания технических решений, предоставляемых в примерах осуществления изобретения, можно отметить, что после определения действия и соответствующего действию коэффициента движения согласно принятой пользовательской команде вычисляются смещения согласно коэффициенту движения и генерируют видеоанимацию согласно смещению и общему числу кадров. Согласно этому способу видеоанимацию создают без сеточной модели и символьной системы, необходим лишь небольшой объем вычислений для создания видеоанимации согласно смещениям и общему числу кадров, на создание видеоанимации затрачивают немного времени, и, кроме того, способ имеет широкий спектр применения.
Краткое описание чертежей
На фиг.1 показана блок-схема, представляющая способ создания видеоанимации согласно примеру осуществления изобретения.
На фиг.2 показана блок-схема, представляющая способ создания видеоанимации согласно другому примеру осуществления изобретения.
На фиг.3 показана схема, представляющая структуру устройства для создания видеоанимации согласно примеру осуществления изобретения.
Подробное описание изобретения
Пример осуществления изобретения предоставляет способ создания видеоанимации. Способ представлен на фиг.1 и включает следующие этапы.
Этап 11: прием переданной пользователем команды и определение соответствующего команде действия.
Команда на этом этапе может являться переданной пользователем аудиокомандой или переданной пользователем командой, введенной с клавиатуры, например, ввод цифры "1" означает "повороты головы", а ввод цифры "2" означает "кивание". Примеры осуществления изобретения не ограничивают реализацию команды при том условии, что команда может быть распознана. Переданная пользователем команда на этом этапе может являться командой для одиночного действия или комбинированной командой для нескольких действий. Если команда является комбинированной командой для выполнения нескольких действий, то эмоции пользователя отображаются согласно комбинации нескольких действий, при этом повышают выразительность мимики в видеоанимации.
Этап 12: определение общего числа кадров, соответствующих действию, и коэффициента движения для каждого кадра.
Для реализации этого этапа может использоваться любой из нижеперечисленных способов.
Способ А): предварительно определяют общее число кадров, соответствующих каждому действию, и коэффициент движения для каждого кадра; например, предварительно определяют, что общее число кадров, соответствующих действию "повороты головы", равно 10, а коэффициент движения для каждого кадра равен 0,01×N. В реальных приложениях коэффициентам движения для разных кадров могут присваиваться разные значения; например, коэффициентам движения для первых 5 кадров присваивают значение 0,01×N, а коэффициентам движения для последних 5 кадров присваивается значение 0,05+0,008×(N-5), где N является порядковым номером кадра. Параметрические уставки, включая параметры 0,01 и 0,008 в вышеуказанных коэффициентах движения, могут самостоятельно быть изменены пользователем, и значения параметров не ограничены примерами осуществления изобретения.
Способ В): пользователь непосредственно задает общее число кадров, соответствующих каждому действию, и коэффициент движения для каждого кадра. Поскольку пользователь самостоятельно задает общее число кадров, соответствующих каждому действию, и коэффициент движения для каждого кадра, то получаемая видеоанимация лучше отображает индивидуальные особенности пользователя.
Этап 13: вычисляют смещение каждой контрольной точки в каждом кадре согласно коэффициенту движения для каждого кадра.
Смещение на этом этапе может включать смещение в горизонтальном направлении (по оси X) и смещение в вертикальном направлении (по оси Y). Контрольные точки в этом примере используют для представления контура деталей лица, таких как голова, глаза, брови и так далее; иными словами, контрольные точки являются вершинами деталей. Контрольные точки и линии между контрольными точками формируют сеточную модель.
Для более удобного объяснения этапа, реализующего этот способ, в данный этап может быть включено задание коэффициентов движения каждой детали в каждом действии, например коэффициента движения для глаз или бровей m_eyeCoef, коэффициента движения для наклонов головы влево и вправо m_angle (единица: радиан), коэффициента движения для кивания или поворотов головы v_angle, коэффициентов движения для рта в горизонтальном и вертикальном направлениях, соответственно, horModelCoef и verModelCoef.
Далее приведен конкретный способ вычисления.
Смещение глаз или бровей по оси X (в горизонтальном направлении) составляет (А_х-Src_x)×m_eyeCoef, смещение глаз или бровей по оси Y (в вертикальном направлении) составляет (А_y-Src_y)×m_eyeCoef. Здесь (А_х, А_y) является координатой точки пересечения отвесной линии и линии начала отсчета, причем отвесная линия проходит от исходной координаты контрольной точки к линии начала отсчета. Когда действие связано с движением глаз, линия начала отсчета является линией, соединяющей углы глазной щели; когда действие связано с движением бровей, линия начала отсчета является осевой линией лица. (Src_x, Src_y) является исходной координатой контрольной точки, и когда используют сеточная модель, контрольная точка может являться вершиной глаз или бровей; исходная координата является координатой контрольной точки в исходном изображении, и исходное изображение может являться введенным пользователем изображением или предварительно заданным изображением, то есть изображением, имеющимся перед созданием видеоанимации.
Смещение по оси X при наклонах головы влево и вправо (в горизонтальном направлении) может быть представлено как (Src_x-Pivot_x)×cos(m_angle)-(Src_y-Pivot_y)×sin(m_angle), смещение по оси Y при наклонах головы влево и вправо (в вертикальном направлении) может быть представлено как (Src_x-Pivot_x)×sin(m_angle)+(Src_y-Pivot_y)×cos(m_angle). Здесь (Src_x, Src_y) является исходной координатой контрольной точки, (Pivot_x, Pivot_y) является координатой фиксированной точки. Фиксированная точка является точкой пересечения осевой линии головы и нижней контурной линии головы.
Смещение по оси X при кивании или поворотах головы может быть представлено как Src_x+K_i×v_angle×V_x, смещение по оси Y при кивании или поворотах головы может быть представлено как Src_y+K_i×v_angle×V_y. Здесь (Src_x, Src_y) является исходной координатой контрольной точки, K_i является коэффициентом вращения при кивании или поворотах головы и K_i=Delta_l/Dis_l. Для действия "кивание" Delta_l соответствует величине движения по оси Y (в вертикальном направлении) при перемещении головы на фиксированный угол в градусах (например, на 1 градус), Dis_l соответствует максимальной длине головы по оси Y (в вертикальном направлении). Для действия "повороты головы" Delta_l соответствует величине движения по оси X (в горизонтальном направлении) при перемещении головы на фиксированный угол в градусах (например, на 1 градус), Dis_l соответствует максимальной длине головы по оси X (в горизонтальном направлении). (V_x, V_y) является координатой стандартного вектора. Для действия "кивание" стандартным вектором является вектор от самой верхней точки головы к самой нижней точке головы; для действия "повороты головы" стандартным вектором является вектор от крайней левой точки головы к крайней правой точке головы.
Применительно к действию, связанному с движением рта, смещение рта по оси X может быть представлено как
mouthWidth×cos(m_horAngle)×horizonCoef×horModelCoef+mouthHeight×cos(m_verAngle)×verticeCoef×verModelCoef,
и смещение рта по оси Y может быть представлено как
mouthWidth×sin(m_horAngle)×horizonCoef×horModelCoef+mouthHeight×sin(m_verAngle)×verticeCoef×verModelCoef.
Здесь mouthWidth является расстоянием между левым углом рта и правым углом рта, mouthHeight является высотой от верхней точки осевой линии верхней губы до нижней точки осевой линии нижней губы, m_verAngle является углом между осевой линией головы и осью X, m_horAngle является углом между линией углов рта и осью X, horizonCoef и verticeCoef являются, соответственно, коэффициентами степени движения рта по горизонтали и вертикали. Коэффициенты степени движения могут быть заданы пользователем, либо заданы заранее.
Этап 14: создают видеоанимацию согласно смещению каждой контрольной точки в каждом кадре и общему числу кадров.
Ниже представлена возможная реализация этого этапа.
Вычисляют целевую координату каждой контрольной точки в каждом кадре согласно смещению каждой контрольной точки в каждом кадре.
Способ реализации этого этапа может включать следующее: целевая координата каждой контрольной точки может определяться как координата точки начала отсчета + смещение. Для действия, связанного с движением глаз, бровей, рта, киванием или поворотами головы, координата точки начала отсчета является исходной координатой контрольной точки; для действия, связанного с наклонами головы влево и вправо, координата точки начала отсчета является координатой точки пересечения осевой линии лица и нижней контурной линии головы.
Затем согласно целевым координатам каждой контрольной точки в каждом кадре генерируют изображение, соответствующее каждому кадру, и генерируют видеоанимацию согласно изображению, соответствующему каждому кадру и общему числу кадров.
На этом этапе видеоанимация может быть сгенерирована согласно изображению, соответствующему каждому кадру и общему числу кадров, с использованием обычного способа сжатия видеоизображения или других известных способов. В примерах осуществления изобретения не накладывают ограничения на конкретный способ, используемый для создания видеоанимации согласно изображению, соответствующему каждому кадру и общему числу кадров.
В вышеуказанном способе, если принятая пользовательская команда является командой для выполнения нескольких действий, эту команду разбивают на команды отдельных действий; согласно командам отдельных действий генерируют соответствующее каждому отдельному действию смещение каждой контрольной точки в каждом кадре, затем выполняют наложение соответствующих каждому отдельному действию смещений каждой контрольной точки в кадрах для получения соответствующего нескольким действиям смещения каждой контрольной точки в одном кадре, и генерируют видеоанимацию согласно соответствующему нескольким действиям смещению каждой контрольной точки в кадре. В вышеуказанном способе исходное изображение для видеоанимации может являться самостоятельно определяемым и вводимым пользователем изображением, либо предложенным пользователю изображением.
В реальных приложениях выражение может быть определено согласно сгенерированной видеоанимации, включающей комбинированное действие или отдельное действие; например, когда в видеоанимацию включены действия "кивание" и "подмигивание", выражение может означать одобрение; когда в видеоанимацию включены действия "наклоны головы влево и вправо" или "повороты головы", выражение может означать неодобрение. Выражение, соответствующее видеоанимации, в которую включено комбинированное действие или отдельное действие, может быть самостоятельно сконфигурировано пользователем, и в примерах осуществления изобретения не накладываются ограничения на эту операцию.
В соответствии со способом, предоставляемым в примерах осуществления изобретения, после определения действия и соответствующего действию коэффициента движения согласно принятой пользовательской команде, вычисляются смещения согласно коэффициенту движения и генерируют видеоанимацию согласно смещению и общему числу кадров. Поскольку при использовании этого способа видеоанимацию создают без сеточной модели и символьной системы, то необходим лишь небольшой объем вычислений для создания видеоанимации согласно смещениям и общему числу кадров, на создание видеоанимации затрачивают немного времени и способ имеет широкий спектр применения. Кроме того, при использовании этого способа может приниматься команда для выполнения нескольких действий, и согласно этой команде генерируют состоящую из нескольких видеоанимаций комбинированную видеоанимацию, то есть путем объединения видеоанимаций отдельных действий могут получить комбинированную видеоанимацию нескольких действий для выражения эмоций пользователя.
Для более наглядного описания способа согласно изобретению приведен пример, иллюстрирующий конкретный способ согласно изобретению.
Пример предоставляет способ создания видеоанимации. В примере исходным изображением для видеоанимации является самостоятельно определяемое изображение пользователя. Предположим, что исходным изображением является изображение А и пользовательская команда включает одновременные действия "кивание" и "подмигивание"; способ показан на фиг.2 и включает особые этапы:
Этап 21: прием пользовательской команды, включающей действия "кивание" и "подмигивание", разбивание на команду, включающую действие "кивание", и команду, включающую действие "подмигивание".
Этап 22: определение общего числа кадров, соответствующих действию "кивание", общего числа кадров, соответствующих действию "подмигивание", и коэффициента движения для каждого кадра.
На этом этапе способ определения коэффициента движения может соответствовать описанию этапа 12.
Этап 23: вычисление смещения каждой контрольной точки в каждом кадре для действий "кивание" и "подмигивание" согласно коэффициентам движения для каждого кадра для действий "кивание" и "подмигивание".
На этом этапе способ вычисления смещений может соответствовать описанию этапа 13.
Этап 24: создание видеоанимации кивания и видеоанимации подмигивания согласно смещению каждой контрольной точки в каждом кадре для действий "кивание" и "подмигивание".
Этап 25: объединение видеоанимации кивания и видеоанимации подмигивания в комбинированную видеоанимацию кивания и подмигивания.
Предпочтительно, в примере может быть определено, что комбинированная видеоанимация кивания и подмигивания соответствует выражаемому пользователем одобрению.
В примере, после приема пользовательской команды, включающей действия "кивание" и "подмигивание", команду для выполнения нескольких действий разбивают на отдельные команды, вычисляют смещение каждой контрольной точки в каждом кадре для каждого действия, согласно смещению и общему числу кадров генерируют видеоанимацию отдельного действия, видеоанимации отдельных действий объединяют в комбинированную видеоанимацию нескольких действий. В примере, поскольку видеоанимацию генерируют путем вычисления смещений, необходим лишь малый объем вычислений, на создание видеоанимации затрачивают немного времени и способ могут использовать в широком спектре применений. Кроме того, при использовании этого способа могут создавать комбинированную видеоанимацию нескольких действий, эмоции пользователя могут быть представлены комбинацией нескольких действий, что повышает выразительность мимики в видеоанимации.
Примеры осуществления изобретения также предоставляют устройство для создания видеоанимации, показанное на фиг.3. Это устройство содержит: блок 31 приема, сконфигурированный для приема переданной пользователем команды; блок 32 определения, сконфигурированный для определения соответствующего команде действия, определения общего числа кадров, соответствующих действию, и коэффициента движения для каждого кадра; вычислительный блок 33, сконфигурированный для вычисления смещения каждой контрольной точки в каждом кадре согласно коэффициенту движения для каждого кадра; блок 34 генерации, сконфигурированный для создания видеоанимации согласно смещению каждой контрольной точки каждого кадра и общему числу кадров.
Предпочтительно, блок 32 определения содержит модуль пользовательской замены установок, сконфигурированный для задания пользователем общего числа кадров, соответствующих действию, и коэффициента движения для каждого кадра; или
модуль конфигурации, сконфигурированный для предварительного задания общего числа кадров, соответствующих действию, и коэффициента движения для каждого кадра.
Предпочтительно, если определено, что действие связано с движением глаз или бровей, то вычислительный блок 33 содержит: вычислительный модуль для движений глаз, сконфигурированный для вычисления смещения каждой контрольной точки для действия, связанного с движениями глаз или бровей, причем способ вычисления смещения может соответствовать описанному в примерах использованию способа.
Предпочтительно, если определено, что действие связано с наклонами головы влево и вправо, то вычислительный блок 33 содержит:
вычислительный модуль для наклонов головы, сконфигурированный для вычисления смещения каждой контрольной точки для действия, связанного с наклонами головы влево и вправо, причем способ вычисления смещения может соответствовать описанному в примерах использованию способа.
Предпочтительно, если определено, что действие связано с киванием или поворотами головы, то вычислительный блок 33 содержит: вычислительный модуль для движений головы, сконфигурированный для вычисления смещения каждой контрольной точки для действия, связанного с киванием или поворотами головы, причем способ вычисления смещения может соответствовать описанному в примерах использованию способа.
Предпочтительно, если определено, что действие связано с движением рта, то вычислительный блок 33 содержит: вычислительный модуль для движений рта, сконфигурированный для вычисления смещения каждой контрольной точки для действия, связанного с движением рта, причем способ вычисления смещения может соответствовать описанному в примерах использованию способа.
Предпочтительно, блок 34 генерации содержит: модуль вычисления координат и модуль генерации видео.
Модуль вычисления координат сконфигурирован для вычисления целевой координаты каждой контрольной точки в каждом кадре согласно смещению каждой контрольной точки в каждом кадре. В частности, целевую координату контрольной точки определяют следующим образом:
целевая координата в горизонтальном направлении = координата точки начала отсчета в горизонтальном направлении + смещение в горизонтальном направлении;
целевая координата в вертикальном направлении = координата точки начала отсчета в вертикальном направлении + смещение в вертикальном направлении,
Если действие связано с движением глаз, бровей, киванием, поворотами головы или движением рта, точка начала отсчета может являться контрольной точкой; если действие связано с наклонами головы влево и вправо, точка начала отсчета может являться точкой пересечения осевой линии лица и нижней контурной линии головы.
Модуль генерации видео сконфигурирован для создания видеоанимации согласно целевой координате каждой контрольной точки в каждом кадре и общему числу кадров.
В устройстве, предоставляемом в примерах осуществления изобретения, после приема пользовательской команды блоком 31 приема блок 32 определения определяет действие и коэффициент движения, соответствующий действию, вычислительный блок 33 вычисляет смещения согласно коэффициенту движения и блок 34 генерации генерирует видеоанимацию согласно смещениям и общему числу кадров. Поскольку при использовании этого устройства видеоанимацию создают без сеточной модели и символьной системы, то необходим лишь небольшой объем вычислений для создания видеоанимации согласно смещениям и общему числу кадров, на создание видеоанимации затрачивают немного времени и устройство имеет широкий спектр применения.
Специалисты в данной области техники могут понимать, что все или отдельные этапы в способе для реализации примеров могут быть реализованы путем передачи команд от программы к соответствующим аппаратным средствам, причем программа может храниться на считываемом компьютерном носителе данных. В ходе работы программы выполняют вышеуказанные этапы способа; носитель данных может представлять собой Постоянное Запоминающее Устройство ПЗУ (ROM)/Оперативное Запоминающее Устройство ОЗУ (RAM), диск, Компакт-Диск КД (CD) и так далее.
Способ и устройство, предоставляемые в примерах осуществления изобретения, могут применять для видеоанимаций на мобильных телефонах или видеоанимаций на развлекательных веб-страницах.
Резюмируя вышеизложенное: при использовании технических решений, предоставляемых в примерах осуществления изобретения, необходим лишь малый объем вычислений, на создание видеоанимации затрачивают немного времени, и технические решения могут использовать в широком спектре применений.
Вышеизложенное соответствует только предпочтительным вариантам осуществления изобретения, никак ограничивая объем патентной защиты изобретения. Все модификации, эквивалентные замены и усовершенствования, не выходящие за рамки изобретения, должны входить в объем патентной защиты изобретения. Следовательно, объем патентной защиты изобретения должны определять согласно формуле изобретения.