3Dtracking - невеликі замітки - уроки загальні принципи

У цьому уроці мова піде про 3D Tracking. Сьогодні важко назвати фільм, де б не застосовувалася ця технологія. В уроці будуть розглянуті кілька проектів і кілька способів отримання даних.

Для уроку використовувалася програма Boujou 4.1.

Приклад сітки, знятої для використання в уроці.

3Dtracking - невеликі замітки - уроки загальні принципи

Що б дізнатися значення Distortion, імпортуємо зняту сітку в програму. Далі переходимо в Setup, потім переходимо до рядка Asses Lens Distortion (manual).

3Dtracking - невеликі замітки - уроки загальні принципи

У вікні створюємо калибровочную лінію Add Calibration Line. Можна змінити значення Step з 0,1 до 0,01 в першому випадку будуть додаватися десяті частки, а в другому - соті, це дозволить більш точно виставити значення в рядку R

3Dtracking - невеликі замітки - уроки загальні принципи

Змінюючи значення R потрібно домогтися збігу калібрувальної лінії з лінією на знятої сітці. При такому спотворенні значення R вийшло 0,19.

Зараз розглянемо проект. Перед початком необхідно внести зміни в налаштуваннях програми. Дані трекінгу будуть використовуватися в програму 3D Max, виходячи з цього внесемо необхідні зміни. Заходимо в Edit далі Preferences, у вікні вибираємо 3D Display, потім натискаємо на параметр Preferred Camera Orientation і встановлюємо значення Z-up, Y-forward. Якщо цього не зробити, то в 3D Max всі об'єкти будуть неправильно зорієнтовані і доведеться всю сцену коригувати.

3Dtracking - невеликі замітки - уроки загальні принципи

Весь шлях до матеріалу не повинен містити кирилицю, інакше програма не зможе відкрити файл. Якщо встановлений російський Windows, в цьому випадку і на «Робочий стіл» не можна зберігати, тому як шлях буде таким «C: / Documents and Settings / All Users / Робочий стіл /».

3Dtracking - невеликі замітки - уроки загальні принципи

Якщо відомі параметри камери, на яку був знятий матеріал, необхідно вказати програмі ці дані. Для цього переходимо в Toolbox і натискаємо на кнопку, відкриється вікно з настройками, вносимо необхідні зміни. Міняємо значення Film back (розмір матриці) в даному випадку - 21,5 мм на 16,1 мм, в тому ж вікні Cameras переходимо в Advanced параметри і встановлюємо значення Radial distortion на 0,19, отримане за допомогою сітки. Далі вкажемо фокусна відстань, для цього повертаємося в Toolbox і натискаємо на кнопку Focal Constraint, у вікні вказуємо потрібне значення, в даному випадку 22 мм

3Dtracking - невеликі замітки - уроки загальні принципи

3Dtracking - невеликі замітки - уроки загальні принципи

3Dtracking - невеликі замітки - уроки загальні принципи

Наступним дією буде створення маски. З огляду на що актор, який перебуває в кадрі рухається, нам необхідно виключити його з процесу трекінгу, інакше результат може бути не таким, як потрібно. Ось що вийшло при трекінг без маски. У початкових кадрах все добре, але при першому русі актора, точки «попливли». І тут же додам, візуально у вікні програми зміщуються точки (Predictions), але якщо перейти в режим 3D sпроекціі, можна побачити що зміщуються не крапка, а саме віртуальна камера, рух якої отримано в результаті трекінгу.

І так для створення маски переходимо в ліву частину програми (Toolbox) і натискаємо на кнопку делее, лівою кнопкою миші обводимо актора. Потім анімуємо маску, переходячи по таймлайн, з кадру в кадр перемещаем маску так, що б вона закривала актора від першого кадру, до останнього.

3Dtracking - невеликі замітки - уроки загальні принципи

У тому випадку, коли актор знятий на зеленому / синьому екрані, можна спростити створення маски. Досить зробити чорно-білу маску з основного матеріалу. В даному випадку використовувалася програма After Effects, за допомогою кеінг прибираємо зелений фон, далі створюємо новий шар білого кольору White Solid (при чорному Background Color) і в параметрах Track Matte встановлюємо Alpha Inverted Matte. Отриманий результат прораховуємо в послідовність кадрів.

3Dtracking - невеликі замітки - уроки загальні принципи

У програмі Boujou заходимо в 2D Tasks, потім натискаємо на Import Image Based Mask, в вікні вказуємо шлях до створеної масці і в розділі Mask Type встановлюємо include white, тим самим саме білий колір буде включений в процес трекінгу, при цьому актор буде закритий маскою .

3Dtracking - невеликі замітки - уроки загальні принципи

Що б почати трекінг, преходимо в Toolbox і натискаємо на кнопку Track Features, у вікні натискаємо на Advanced і в контрольному вікні бачимо що актор виключений з процесу трекінгу, залишається натиснути Start і чекати завершення.

3Dtracking - невеликі замітки - уроки загальні принципи

І в кінці перетворимо отримані дані з 2D в 3D, для цього необхідно натиснути на кнопку Camera Solve і у вікні встановимо галочку на Optimize camera path smoothness, для згладжування шляху камери, потім натискаємо кнопку Start.

3Dtracking - невеликі замітки - уроки загальні принципи

Подивимося на результат, на перший погляд все виглядає непогано, але при уважному розгляді видно, що в кадрі 33 точки змістилися щодо маркерів, причому відхилення досить велика. При такому результаті в 3D пакеті, об'єкти будуть зміщуватися, тому необхідно виправити помилку.

3Dtracking - невеликі замітки - уроки загальні принципи

3Dtracking - невеликі замітки - уроки загальні принципи

Спробуємо додати в сцену Target Track, для цього в Toolbox вибираємо Add Target Track і в першому кадрі встановлюємо на маркер. Положення Target Track можна контролювати в Zoom Tool, що знаходиться в правій частині програми. Потім необхідно створити кілька ключових кадрів, для цього преходимо по таймлайн і встановлюємо створений Target Track на той же маркер, але в різних кадрах. Чим більше ключових кадрів, тим краще буде результат трекінгу. Після цього необхідно натиснути правою кнопкою миші на Target Track, з'явиться рядок Toggle edit mode, натискаємо на неї і перейшовши в режим управління треком, знову натискаємо правою кнопкою миші на Target Track і вибираємо рядок Track, після цього почнеться процес трекінгу. Таким чином додамо в сцену кілька Target Track. Зараз знову повернемося до Camera Solve, що б отримати нові дані трекінгу. У Boujou є функція Adjust Solve, нею так само можна користуватися для виправлення помилок, саме при додаванні Target Track або Locator, але в даному випадку неточність в трекінг досить велика і Adjust Solve швидше за все не виправить помилку, тому була вибрана функція Camera Solve і 3D камера буде створена заново, з урахуванням ізменнеій.

3Dtracking - невеликі замітки - уроки загальні принципи

3Dtracking - невеликі замітки - уроки загальні принципи

3Dtracking - невеликі замітки - уроки загальні принципи

Залишимо активним графік переміщення камери, для цього знімемо галочку з непотрібних параметрів, залишивши її тільки для Translation.Рассмотрім графік, для збільшення вікна можна скористатися комбінацією Shift + права кнопка миші, так будуть краще видно погрешності.В даному випадку ніяких спотворень в переміщенні камери немає , значить траєкторія руху віртуальної камери відповідає траєкторії реальної камери, але треки все ж зміщуються.

3Dtracking - невеликі замітки - уроки загальні принципи

Активуємо графік обертання камери, переставивши галочку на Rotation.Здесь видно спотворення, саме в кадрі 33 найбільше отклоненіе.Добавленіе Target Track не виправить помилку, вони відстежують рух маркерів при трекінг, але після Camera Solve зміщуються щодо маркерів, в той же час продовжуючи рух по траєкторії маркеров.Значіт програма неточно визначила положення маркерів в пространстве.Улучшіть результат можна за допомогою локаторів (Locator), назва цього інструменту говорить сама за себе.

3Dtracking - невеликі замітки - уроки загальні принципи

Виходячи з графіка, в сцену необхідно додати локатори (Locator). Для цього в Toolbox вибираємо кнопку і встановлюємо локатор на маркер. Так само як і Target Track, положення локатора можна контролювати у вікні Zoom Tool. Переміщаючись по таймлайн необоходимо створити кілька ключових кадрів, мінімум два, при цьому локатори можна встановлювати не тільки на маркерах, а й на будь-яких предметах, що потрапляють в камеру. Функція Locator відрізняється від функції Target Track. Локатор не володіє можливістю відстежувати рух маркера, але з його допомогою програма краще визначає положення маркерів і об'єктів в сцені, що значно підвищує точність результату. Локатор впливає на трекінг тільки в тих кадрах, де він був встановлений, там же створюються ключі. Тому сам локатор бажано встановлювати в тих ділянках, де є різка зміна траєкторії руху камери при зйомці. Після установки локатора, необхідно натиснути на нього правою кнопкою миші і далі на рядок Toggle edit mode. Чим більше локторов, тим точніше буде результат, але тривалість прорахунку збільшується в рази.

3Dtracking - невеликі замітки - уроки загальні принципи

Після установки всіх локаторів, знову переходимо в Camera Solve, як тільки завершитися процес можна побачити, що в цьому випадку в кадрі 33 точки не зміщені щодо маркерів, більш того большенство точок забарвилися в жовтий колір, це говорить про точність трекінгу. Таким чином була виправлена ​​помилка трекінгу, тепер ніяких зсувів немає і суміщення з 3D об'єктами буде точним. Якщо порівняти графік до і після додавання локаторів, видно як змінюються лінії обертання камери, в першому випадку є різкі зміни форми ліній, у воторого випадку лінії згладжені і не містять різких спотворень.

3Dtracking - невеликі замітки - уроки загальні принципи

Для того, щоб побачити запропонований результат, можна встановити контрольний об'ект.В Boujou є кілька тестових об'єктів, за замовчуванням це «Сонечко», щоб додати об'єкт до Toolbox натискаємо Add Test Object. Зі списку Type вибераем об'єкт Arrow, чому саме Arrow? Цей об'єкт можна точно розмістити на маркері, так будуть краще видно найменші помилки трекінгу. При відтворенні видно, що тестовий об'єкт не зміщується і в кадрі 33, де було зміщення треків, об'єкт так само знаходиться на маркері. Всього лише кілька локаторів допомогли виправити неточність в трекінг.

Таким способом можна отримати бездоганний результат, незважаючи на розмиття зображення в деяких ділянках. Але в проекті були використані дані про камеру. А що якщо даних про камері і про фокусну відстань немає, до того ж сітка не була знята і визначити Distortion неможливо. В цьому випадку дейсвтвія можуть відрізнятися, а використання автротрекінга з додаванням локаторів може бути недостатнім, для отримання хорошого результату.

Створимо новий проект. Імпортуємо цей же матеріал в програму. Припустимо що даних про камері і про фокусну відстань немає. У цьому випадку все залишаємо без змін. Якщо фокусна відстань невідомо і не змінювалося, у вікні Type встановлюємо Constant unknown, в тому випадку коли фокусна відстань змінювалося, в тому ж вікні Type встановлюємо Variable unknown.

3Dtracking - невеликі замітки - уроки загальні принципи

3Dtracking - невеликі замітки - уроки загальні принципи

Наступним дейстііем буде створення маски. Додаємо маску, так само як і в попередньому випадку.

Далі, як і в першому проекті, скористаємося Автотрекінг, для цього натискаємо на кнопку Track Features, потім у вікні, натискаємо Start, після закінчення трекінгу натискаємо на кнопку Camera Solve і знову Start, тим самим перетворимо дані з 2D в 3D.

Після закінчення процесу розглянемо результат. Якщо на таймлайн відкрити рядок Solves, можна побачити пропуски в зеленій лінії, це говорить про те, що в даній ділянці трекінг відсутня, а перейшовши в Graph Mode видно, що і в декількох непропущених кадрах (з 28 по 35) трекінг невдалого, про це кажуть різкі изменеия форми ліній. У цих кадрах точки будуть зміщуватися з маркерів. Результат трекінгу набагато гірше, щодо попереднього проекту, при цьому дії відрізнялися лише тим, що в першому проекті були внесені дані про камеру. Значить в цьому випадку за допомогою Автотрекінг хорошого результату не буде. Виправляти помилки в даному проекті не будемо, цей приклад був приведений лише для того, що б показати як впливають на результат дані про камеру. Проект можна закрити і почати заново.

3Dtracking - невеликі замітки - уроки загальні принципи

3Dtracking - невеликі замітки - уроки загальні принципи

3Dtracking - невеликі замітки - уроки загальні принципи

Встановлюємо трек на маркер в першому кадрі, далі переходимо по таймлайн і коригуємо положення трека щодо руху маркера, створюючи ключові кадри. Мінімальна кількість ключових кадрів, для трекінгу-2. Але для кращого результату їх повинно бути більше, особливо в тих ділянках, де є розмиття через різких рухів камери. Після установки ключових кадрів, натискаємо правою кнопкою миші на трек (Target Track), з'явиться рядок Toggle edit mode, натискаємо на неї і переходимо в режим управління треком.

3Dtracking - невеликі замітки - уроки загальні принципи

3Dtracking - невеликі замітки - уроки загальні принципи
3Dtracking - невеликі замітки - уроки загальні принципи

Після закінчення трекінгу можна перевірити його якість, для цього на таймлайн відкриємо рядок Target Tracks, якщо є червоні ділянки їх потрібно виправити, тому що в цих ділянках трекінг пройшов невдало. Немає необхідності повторювати дії для всієї довжини. Досить очистити потрібний проміжок. Необхідно правою кнопкою натиснути на ключ, далі вибрати Clear Range Tracking, що б очистився потрібну ділянку, потрібно вибрати з двох ключів саме перший. Далі можна додати один або 2 ключа і знову за допомогою правої кнопки вибрати рядок Track Range, так трекінг пройде тільки у вибраному ділянці. Якщо червоних ліній немає, можна йти далі. Бажано додати кілька локаторів (Locator) так само, як і в першому проекті.

3Dtracking - невеликі замітки - уроки загальні принципи

3Dtracking - невеликі замітки - уроки загальні принципи

Переходимо в Toolbox і натискаємо на кнопку Track Features, це потрібно для того, що б заповнити порожнечу з першого кадру по кадр 68. Далі можна перейти до Camera Solve. Після завершення всього процесу подивимося на результат. І знову трекінг не ідеальний. У першому кадрі треки зміщені щодо маркерів, але далі до самого кінця ніяких зсувів немає і результат трекінгу безпомилковий.

Перейдемо в 3D проекцію, для цього натискаємо на іконку 3D тут можна побачити шлях віртуальної камери.Отклоненіе в русі, з першого по другий кадри, досить сильне, при тому, що в сцену були додані Target Track і Locator.Что б виправити неточність трекінгу, потрібно змінити значення Distortion.

Якщо сітка все ж була знята і значення Distortion відомо, в цьому випадку робимо вже знайомі дії. Переходимо в Setup, далі Asses Lens Distortion (manual). І в вікні Asses Lens Distortion вносимо отримане значення 0,19

3Dtracking - невеликі замітки - уроки загальні принципи

В кінці, що б все встало на свої місця, з урахуванням изменеия Distortion, необхідно знову звернутися до Solve. На цей раз скористаємося Adjust Solve, то вона не буде створює камеру, на відміну від Solve Camera, а вносить зміни до вже створеної камери. Переходимо в 3D Tasks, далі Adjust Solve і у вікні встановлюємо галочки на Optimize radial distortion parameters і Optimize camera path smoothness, після цього натискаємо Start. Так будуть внесені изменеия в сцену, з урахуванням нових параметрів.

3Dtracking - невеликі замітки - уроки загальні принципи