Это финал миссии, которая началась с человечка-палочки в переулке под камерой CCTV. Одно слово «Танцуй» проходит через мешок слов и становится танцем человечка-палочки, затем этот танец превращается в карту позы и обретает облик Ассистента. Мы откроем настоящее видео покадрово и разберём, что говорит и чего не говорит висящая на экране надпись «процент совпадения движений 76.5%».
К части 5-4 человечек-палочка уже понимал слова и танцевал. Но пока это лишь скелет. Финальная миссия — одеть этот скелет в облик человека и превратить в видео. Моделью будет Ассистент.
Нажмите на ячейку, чтобы увидеть объяснение этапа. Этапы 1–4 — вычисления, которые мы сами сделали в этой серии, а этапы 5–6 показывает готовое видео.
| Этап | Что на входе | Что на выходе | Часть серии |
|---|---|---|---|
| 1–2 Текстовая воронка | «Танцуй» | Одна точка на общей карте (8 ячеек) | 5-4, разделы 2·3 |
| 3 Генерация движения | Точка на карте | Движение человечка-палочки (кадры × 13 суставов) | 5-3, раздел 6, 5-4, раздел 5 |
| 4 Карта позы | Координаты суставов | Цветные палочки на чёрном фоне (для каждого кадра) | Обратное направление к 5-1, раздел 3 |
| 5 Генерация по позе | Референсное изображение + карта позы | Кадр, где Ассистент принимает эту позу | Эта часть, раздел 3 |
| 6 Видео | Кадры | Видео с танцем | Эта часть, раздел 4 |
Модели генерации видео по позе — в основном диффузионные модели. Они начинают со случайного шума и шаг за шагом понемногу убирают его, опираясь на два условия: «внешность — как на референсном изображении, поза — как на карте позы». Передвиньте ползунок и уберите шум.
| Кодировщик внешности | Извлекает признаки лица, волос и одежды с референсного изображения, чтобы модель постоянно сверялась с ними во время рисования (типа ReferenceNet) |
| Pose guider (направляющий модуль позы) | Сворачивает карту позы небольшой свёрточной нейросетью и добавляет её к шуму. «Здесь рука» задаётся с самого начала |
| Временные слои | Позволяют соседним кадрам сверяться друг с другом, чтобы цвет одежды и волосы не мерцали |
Этот экран смешивает готовый кадр (Ассистента из видео) с шумом в нужной пропорции и показывает «долю исходного сигнала, оставшуюся на каждом шаге» (расчёт √ᾱ следует расписанию настоящей диффузионной модели). Настоящая модель работает с шумом в латентном пространстве, куда изображение свёрнуто в малый размер, и на каждом шаге предсказывает и вычитает «сколько здесь шума» [R1]. Типичный пример архитектуры, которая двигает человека по референсному изображению и позе, — семейство Animate Anyone [R2]. Какой моделью и с какими настройками сделано данное видео, в нём не указано.
В видео два танца склеены не бок о бок, а один за другим (0–4.96 с — человечек-палочка, 4.96–10 с — Ассистент). Кнопка «Просмотр бок о бок» открывает один и тот же файл на двух экранах и сопоставляет одинаковые моменты. Сдвигайте правый экран и найдите момент, когда два танца совпадают.
Сначала звук выключен. Кнопкой «Включить звук» можно послушать музыку. В режиме просмотра бок о бок сдвиньте сдвиг примерно к 0.9 секунды.
Сначала выясним, что это за число в видео, а затем сами измерим процент совпадения. Даже для одного и того же танца число сильно зависит от способа измерения.
| Что проверили (код 2) | Результат | Что это значит |
|---|---|---|
| Меняется ли поле с числом от кадра к кадру | Максимальная разница пикселей с первым кадром — 0.07 | Во всех 240 кадрах остаётся 76.5%. Это не значение, пересчитываемое для каждого кадра |
| Блок процента совпадения в первой и во второй сцене | Средняя разница в одинаковые моменты — 0.16 | Один и тот же оверлей проигран по разу в обеих сценах. Колебания розовой полосы внизу — тоже украшение |
| Указан ли способ расчёта | Нет | По одному видео нельзя понять, что с чем и по какой оценке сравнивали |
Слева — 5-секундная хореография (машет рукой → указывает → разводит руки и сгибает колени → поднимает обе руки), справа — та же хореография, исполненная с опозданием. Оценка по расстоянию между суставами — это среднее по суставам значение exp(−расстояние²/2·0.1²) после совмещения таза, а оценка по направлению конечностей — среднее косинусное сходство направлений 8 костей.
| Ситуация | Оценка по расстоянию между суставами | Оценка по направлению конечностей |
|---|---|---|
| Тот же танец, те же моменты | 100.0% | 100.0% |
| Повтор с опозданием на 0.33 с | 90.8% | 96.4% |
| Повтор с опозданием на 1.0 с | 77.6% | 87.8% |
| Зеркально отражённый танец | 82.5% | 88.6% |
| Опоздание на 1.0 с и зеркальное отражение | 78.7% | 86.5% |
| Танец с опозданием на 1.0 с, сдвинутый на 15 кадров раньше | 100.0% | — |
| Выравнивание динамической трансформацией времени (DTW) | 99.6% | — |
| Зеркально отражённый танец: только выравнивание по времени / также обратное отражение | 79.6% / 100.0% | — |
Один человечек-палочка из переулка под камерой CCTV стал признаками, стал материалом для генерации, свернулся и развернулся, нашёл пару среди слов и в конце стал танцем Ассистента. Нажмите на карточку, чтобы перейти к соответствующей части.
6 миллионов чисел на экране → 26 суставов → 4 признака → решение
Правило скорости запястья → 4 признака + обучение
5-2 ГенерацияОт распознавания к созданиюЕсли развернуть стрелку, модель учит не правильный ответ, а распределение
Ошибка длины костей: кубики координат → выбор ручек (латентных переменных)
5-3 СжатиеКодировщик · декодерСворачиваем 1,196 чисел в 16 и разворачиваем обратно
Движение, заключённое в 16 числах
5-4 ТекстОт слов к движениюКонтрастивное обучение, размещающее слова и движения на одной карте
Функция потерь подбора пар, 400 шагов
5-5 ФиналОт «Танцуй» к видео с танцемОдеваем карту позы в облик Ассистента и делаем видео
Процент совпадения, показанный в видео (способ расчёта не указан)
Оба кода используют только библиотеки, установленные в Colab по умолчанию. Нажмите «Скачать ноутбук (.ipynb)» и откройте его в Colab через Файл → Загрузить блокнот или скопируйте код и вставьте в ячейку нового ноутбука.
Создаёт 5-секундную хореографию и сравнивает её по двум оценкам с танцем, исполненным с опозданием или зеркально. Есть также выравнивание по времени и динамическая трансформация времени (DTW). Чтобы использовать свои данные вместо dance_seq подставьте в A и B координаты суставов (кадры, 13, 2), полученные оценкой позы из двух видео.
Измеряет разрешение и длительность видео, смену сцен, изменения поля с процентом совпадения и временной сдвиг между двумя сценами. Отсюда взяты числа анализа видео в разделах 4·5. Загрузите в Colab тот же файл match_score_video.mp4, что встроен в эту страницу.
Эти промпты нужно вставлять в ИИ-помощники вроде ChatGPT, Qwen или Claude. При нажатии «Копировать» после промпта добавляется выбранный код. Замените текст в 〔 〕 на свою ситуацию.
Ответ ИИ — лишь отправная точка. Предложенные статьи, числа и функции библиотек обязательно проверяйте по первоисточникам и официальной документации. Если вы используете видео с реальными людьми, сначала убедитесь в наличии согласия на съёмку и соблюдении правил обработки персональных данных.
Это тот же словарь, что и у терминов с жёлтым пунктирным подчёркиванием в тексте. Нажмите на название раздела, чтобы перейти туда, где термин встретился впервые.
Аналогия — первый шаг к пониманию, но и семя заблуждения. У аналогий с человеческим восприятием указана сила соответствия. Прямая — есть данные, что это действительно делает то же самое · Частичная — похожи лишь некоторые свойства · Нет — соответствие неизвестно
| Понятие | Бытовая аналогия | Аналогия с восприятием человека | Где аналогия не работает |
|---|---|---|---|
| Генерация по позе | Поставить манекен в позу, одеть его и сфотографировать | Частично Человек, видя движение, представляет конкретного человека, выполняющего это движение | На манекене одежда остаётся той же, а генеративная модель в каждом кадре заново рисует одежду и лицо, поэтому они могут немного меняться |
| Референсное изображение | Портфолио-фото актёра | Нет | Вид со спины и пальцы, которых нет на фото, модель придумывает. Придуманное может отличаться от настоящего человека |
| Карта позы | Танцевальная нотация (запись хореографии) | Нет | Запись хореографии человек читает и интерпретирует, а карта позы содержит только положения суставов. Мимика, пальцы и ритм теряются |
| Процент совпадения движений | Оценка в караоке | Нет | Если способ расчёта скрыт, как у оценки в караоке, по одному числу нельзя понять, хорошо ли получилось. Сначала нужно знать, что с чем и как сравнивали |
| Выравнивание по времени (DTW) | Перемонтировать видео двух танцоров, сбившихся с ритма, так, чтобы они попадали в такт | Частично Человек узнаёт «тот же танец», даже если ритм немного сбит | DTW не меняет порядок, а только растягивает и сжимает. Танец с изменённым порядком движений он выровнять не может |
E-1 Об авторе · E-2 Научные источники · E-3 Источники рисунков и чисел
Рекомендации по проведению занятия для преподавателей, наставников OJT и тьюторов. Время указано ориентировочно — подстройте его под реальное занятие. Эту часть можно использовать и как итоговое занятие по серии.
| Для кого | Студенты и работающие специалисты, прошедшие 5-1~5-4. Менеджеры и специалисты, которые по работе имеют дело со сгенерированными видео и «оценками ИИ» |
|---|---|
| Что нужно знать заранее | Оценка позы из 5-1, «слова → движение» из 5-4, основная идея диффузионной модели (шум убирается шаг за шагом) |
| Цели обучения | ① По порядку объяснить шесть этапов от промпта до видео ② Сказать, что определяет референсное изображение и что — карта позы ③ Глядя на числа вроде процента совпадения, спрашивать «что и как сравнивали» и приводить пример того, как временной сдвиг меняет оценку |
| Ориентировочное время | Чтение 30–40 мин · демонстрация видео 20 мин · практикум в Colab 25 мин (код 1 — 12 мин, код 2 — 13 мин) |
Введение 5 мин (раздел 1) → шесть этапов раздела 2, 10 мин → просмотр бок о бок в разделе 4, 10 мин → эксперимент с процентом совпадения в разделе 5, 12 мин → карта серии в разделе 6, 8 мин → проверочные вопросы 5 мин.
Разделы 4·5, 25 мин → в командах выбрать одну «оценку ИИ» из своей работы и восстановить, что и как в ней сравнивается, 25 мин → прямое измерение видео кодом 2, 20 мин → обсуждение маркировки сгенерированного контента и согласия на примере разницы в костюме из раздела 3, 20 мин.
Новичкам — только разделы 2·4·6. Слушателям среднего уровня предложите вручную посчитать score_dist из кода 1 для одного кадра и пройти заполнение таблицы DTW размером 3 × 3.
| Раздел | Вопрос, на котором стоит остановиться | Совет по управлению |
|---|---|---|
| 2 В одну строку | «Какие из этих этапов мы сами посчитали в этой серии, а какие показывает готовое видео?» | Нажимать ячейки по одной и читать последнее предложение объяснения ниже |
| 3 Рисуем Ассистента | «На референсном изображении лабораторный халат — почему же в видео костюм айдола?» | Протянуть шаг от 0 до 25 и сравнить с 12 кадрами соло ниже |
| 4 Видео | «На какой секунде происходит поворот в каждом из двух танцев?» | В просмотре бок о бок сдвинуть сдвиг от 0 до 0.9 секунды |
| 5 Совпадение | «Танец тот же — почему 77.6%? Как сделать 100%?» | При опоздании 1.0 с нажать «Выровнять по времени» |
| 6 Итоги | «Если выбрать одно самое важное число из пяти частей — какое?» | Нажать на карточку и вернуться к соответствующей части |
| Заблуждение | Правильное объяснение | Что показать |
|---|---|---|
| Если сказать «Танцуй», ИИ поймёт, что такое танец, и снимет видео | Это поток, в котором этапы передают друг другу числа: слова → точка на карте → координаты суставов → карта позы → кадры | Раздел 2 |
| Процент совпадения на экране видео — надёжное измерение | 76.5% в этом видео — одно и то же значение во всех 240 кадрах, а способ расчёта не указан | Таблица в начале раздела 5 |
| Низкий процент совпадения значит, что танец повторили плохо | Даже тот же танец с опозданием на 1 секунду даёт 77.6%. Если выровнять тайминг и отражение, получится 100% | Раздел 5, «Измеряем сами» |
| Человек выглядит точно как на референсном изображении | В принципе да, но то, чего нет на референсе (например, вид со спины), модель придумывает, а костюм может отличаться, как в этом видео | Примечание внизу раздела 3 |
| Раз есть карта позы, можно заставить танцевать кого угодно — проблем нет | Создавая видео с внешностью реального человека, нужны согласие этого человека и маркировка сгенерированного контента | Раздел 6, «Зона ответственности человека» |
24 × 10 = 240 кадров. 119 ÷ 24 ≈ 4.96 с.
exp(−0.01 / 0.02) = exp(−0.5) ≈ 0.607. Если расстояние равно σ, этот сустав получает около 61 балла.
Без выравнивания — 77.6%, со сдвигом — 100.0%. Опоздание засчитывалось как «ошибка».
Пиксели поля с числом во всех 240 кадрах почти совпадают с первым кадром (максимальная разница 0.07), а блоки процента совпадения в двух сценах в одинаковые моменты почти одинаковы (средняя разница 0.16). Один и тот же оверлей проигран дважды.
Референсное изображение — внешность (лицо, волосы, одежда), карта позы — позу. В начале удаления шума (крупные очертания) главную работу делает карта позы, а в конце (лицо, украшения, узоры) — референсное изображение.
В коде 1 поменяйте σ на 0.05, 0.1, 0.2 и сравните оценку по расстоянию между суставами для «повтора с опозданием на 1.0 с». В двух предложениях напишите, как σ влияет на оценку и почему, сообщая процент совпадения, нужно указывать и σ.
С помощью MediaPipe извлеките координаты суставов из обеих сцен этого видео (для сцены с Ассистентом отметьте и кадры, где это не удалось) и посчитайте реальный процент совпадения функциями score_dist и best_shift из кода 1. Сравните оценки до и после выравнивания по времени, а также оценку с обратным отражением, с 76.5% и представьте отчёт.
| Новичкам | Просмотра бок о бок из раздела 4 и одной кнопки «Выровнять по времени» из раздела 5 достаточно, чтобы ухватить главное в этой части |
|---|---|
| Углублённо | Предложите сопоставить схему архитектуры из статьи Animate Anyone с таблицей раздела 3 (кодировщик внешности · pose guider · временные слои) и представить это |
| Повторение серии | Предложите в одну строку объяснить, что измеряет каждое из чисел на пяти карточках раздела 6 (60.7% → 99.7%, 44.2% → 0.0%, 99.8%, 1.90 → 0.01, 76.5%) |
Вплоть до «5-5 От „Танцуй“ к видео с танцем» — все пять миссий выполнены. Последнее слово команды лаборатории.