Вступ – Introduction¶
2D стабілізація відео є функцією, що базується поверх здатностей відстежування вирізнень у Blender’і: Ви можете використовувати деякі точки відстежування для вилучення тряськості, вигинань та сіпань з фільмоматеріалу. Типово, стабілізація зображення є частиною 2D робпотоку для підготовки та покращення фільмоматеріалу перед подальшими етапами обробляння або моделювання. Ця сторінка допоможе зрозуміти, як вона працює, ознайомить з відповідними термінами й концепціями, опише доступні керувальники інтерфейсу в деталях та нарешті дасть деякі поради про використання на практиці.
Типовий сценарій використання стабілізатора:
- Виправлення незначних недоліків (трясіння триноги, сіпання у русі камери).
- «Стедікам для бідних» (коли реальний стедікам – steadycam не був доступним, допустимим або застосовним).
- Як підготовка для маскування, узгодження та ротоскопії.
Нерідко для 2D стабілізації доводиться мати справу з дещо недосконалим та зіпсованим фільмоматеріалом.
Як Це Працює – How It Works¶
Для виявлення хибного руху у даному знімку ми припускаємо спрощену модель про цей рух. Далі, ми пробуємо підігнати рух відстежених вирізнень під цю спрощену модель для отримання компенсації. Звичайно, це працює тільки у міру адекватності нашої моделі – ще на практиці, цей спрощений підхід працює дивовижно добре з досить складними знімками, де наше базове припущення було просто наближенням набагато більш розроблених рухів.
Ця спрощена модель лежить в основі 2D стабілізації, імплементованої тут, і припускає рух за споріднено-прямолінійною трансформою – affine-linear transform:
- Камера штовхається уверх/вниз/вбік деяким компонентом пересування.
- Зображення далі відхиляється та масштабується навколо опорної точки (центр обертання).
Для компенсації руху відповідно до цієї спрощеної моделі 2D стабілізатор виконується у два етапи. Спершу, ми намагаємося визначити зсув пересування від виваженого усереднення усіх точок відстежування пересування – translation. Після компенсування цього компонента пересування далі ми використовуємо додаткові точки відстежування обертання/масштабування – rotation/scale для виявлення обертання навколо заданої опорної точки. Знову, ми виявляємо зміни обертання і масштабування через виважене усереднення усіх заданих точок відстежування обертання/масштабування.
У поточній версії опорна точка закріплюється у виваженому центрі точок відстежування пересування. Тому, ефективно виявлене пересування вже враховано. У деяких випадках це не є оптимальним, особливо коли стежки мають проміжки або не охоплюють усю тривалість фільмоматеріалу – ми плануємо подальші опції для кращого керування опорною точкою у майбутніх випусках.
Стежки Стабілізації – Stabilization Tracks¶
Таким чином, як основу для стабілізації будь-якого зображення нам потрібно відстежити вирізнення на зображенні для виявлення рухів. Ці точки відстежування або «стежки» можуть бути установлені у Blender’і за допомогою компонента відстежування вирізнень зображення – image feature tracking component Правильний вибір точок для відстеження є дещо складним, але має вирішальне значення для успішної стабілізації зображення. Часто, ми звертаємось до стабілізації, оскільки маємо справу з недосконалим фільмоматеріалом. У таких випадках, усереднювання стежок допомагає обійти помилки зображення або відстежування у певній точці. До того ж, коли фільмоматеріал містить спричинені перспективою рухи, симетрично розміщені точки відстежування вище або нижче горизонту можуть бути використані для балансування хибного руху та отримання стабілізації у фокусованій області між ними.
Стежки можуть бути додані у дві групи:
- Перш за все є список стежок, що буде використовуватися для компенсування стрибків у локації камери. З усіх точок відстежування, доданих у цю групу, ми розраховуємо виважене усереднення. Далі, ми намагаємося зберегти цю усереднену локацію сталою упродовж усього знімка. Звідси, доброю ідеєю є використання міток відстежування, наближених до та центрованих навколо найбільш важливого суб’єкта.
- Друге вибрання стежок використовується для збереження сталим обертання та масштабування зображення. Ви можете використовувати однакові стежки для обох вибрань. Але, зазвичай, найкраще використовувати точки відстежування з великою відстанню від центру зображення та симетрично з обох сторін для захоплення кутових переміщень більш точно. Подібно до випадку з «локацією» ми розраховуємо усереднений кутовий внесок та далі намагаємося зберегти це значення сталим упродовж усього знімка.
Фільмоматеріал, Зображення і Полотно – Footage, Image and Canvas¶
Коли мова йде про стабілізацію руху на відео, ми маємо розрізняти різні кадри орієнтиру. Елементи зображення, вирізнені рухом фільмоматеріалу навколо нерегулярно у межах рубежів оригінального зображення фільмоматеріалу – саме через цю причину ми використовуємо стабілізатор. Коли наша спроба стабілізації була успішною, то елементи зображення можуть тепер вважатися стабільними, хоча і в обміні рубежів зображення фільмоматеріалу наявні нерегулярні рухи та стрибки. Це безпосередній наслідок діяльності стабілізатора.
Оскільки фактичні елементи зображення, тобто суб’єкт нашого фільмоматеріалу може вважатися тепер стабільним, то ми можемо використати їх, як новий кадр орієнтиру: ми вважаємо їх прикріпленими до фіксованого тла, яке ми назвемо «полотно» – canvas. Уведення цієї концепції «полотна» допомагає справлятися з навмисними рухами камери. І крім цього, це дає додаткову перевагу: дуже часто для пікселів відео фільмоматеріалу властиво бути не-квадратними. Тому, ми маємо розтягнути та розширити ці пікселі, перед тим, як зможемо здійснити розсудливу стабілізацію будь-якого обертання. Звідси, полотно стає, за визначенням, орієнтиром для знеспотвореного показу вмісту зображення.
Але, коли камера була переміщена навмисно, ми маємо розглянути ще й інший кадр орієнтиру поряд з полотном: власне кадр (або «cadre») фінального зображення, яке ми хочемо створити. Для розуміння цієї відмінності, давайте розгляньмо знятий з рук знімок панорамування управо: Оскільки наша камера повертається у правий бік, фактичний вміст зображення рухається у лівий бік у межах оригінального кадру зображення. Але, давайте припустімо, що стабілізатор успішно «виправив» будь-який вміст зображення відносно полотна – це у свою чергу означає, що рубежі оригінального зображення почали рухатися нерегулярно у правий бік, а вміст зображення почав зникати поступового поза лівим рубежем оригінального зображення. Після деякої величини панорамування ми втратимо увесь наш оригінальний вміст і просто побачимо порожнє чорне тло зображення. Єдине рішення для справляння з цією проблемою є перемістити кадр фінального зображення управо, таким чином, слідуючи за оригінальним навмисним рухом панорамування. Звичайно, цього разу, ми хочемо здійснити цей ново доданий рух панорамування плавно і чисто.
Щоб дозволити таку компенсацію та знову увести навмисне панорамування чи відхилювання та зумування результатного зображення, стабілізатор забезпечує призначений набір керувальників: Очікувана позиція – Expected position, Очікуваний Оберт – Expected rotation та Очікуваний Масштаб – Expected scale. Вони діють, як керувальники віртуальної камери, фільмуючи вміст, що ми зафіксували на полотні. Анімуючи ці параметри, ми можемо здійснювати усі види навмисних рухів камери плавним способом.
«Танцювальні» Чорні Границі – The «Dancing» Black Borders¶
Як пояснювалося вище, коли нам вдається стабілізувати вміст зображення, рубежі оригінального фільмоматеріалу починають стрибати навколо в протилежному напрямку компенсованих рухів. Це неминуче – ще й дуже дратує, оскільки через нерегулярну природу цих рухів, ці «танцювальні чорні границі» тяжіють до відволікання уваги від фактичного суб’єкта та уведення дратівного неспокою. Звідси, наша ціль повинна приховати ці танцювальні границі, наскільки це можливо. Просте рішення – додати невелику величину зумування. Інколи, ми також потребуємо анімувати параметр «Очікувана Позиція» – Expected position, щоб зберегти зображення центрованим, наскільки це можливо – це допомагає скоротити величину зумування до необхідної для вилучення цих дратівливих границь.
Функція «Автомасштаб» – Autoscale може використовуватися для знаходження мінімальної величини зумування, достатньої для повного вилучення цих чорних границь. Проте, якщо камера стрибає сильно, то функція автомасштабу часто дає надто велике зумування, особливо, через те, що цей розрахунок націлений на знаходження єдиного, статичного фактора зумування для усієї тривалості фільмоматеріалу. Коли це трапляється, ви типово отримаєте у цілому кращі результати за допомогою одночасних анімувань як фактора зумування, так і очікуваної позиції вручну.