Archiv blogu

neděle 21. července 2013

Nuke - 2D tracker

Po vyhlášení mýho malýho bezvýznamýho bojkotu Adobe jsem se rozhodl najít si kompoziční alternativu. Jak jsem psal už dřív, volba padla na Nuke. Samozřejmě, že na mnoho jednoduchejch věcí budu stále používat After Effect CS6, kterej mám vybavenej mnoho pluginama (včetně 3D trackeru od výrobce Nuke), ale v oblastech, kde bude v budoucnu zastarávat nebo zaostává už v současnosti, se budu snažit používat software novej. Bude to podle všeho boj. Už dávnou jsou pryč doby, co jsem měl schopnost nový informace vstřebávat poměrně rychle a přesně. Přestože jsem jako každej normální člověk od přírody lenoch, rozhodl jsem se o svý drobný krůčky v postupným učení se, podělit. Je úplně klidně možný, že budou v příspěvcích nepřesnosti nebo vyloženě nesmysly., který teď nevidím. Budu rád, když mě na ně kdokoliv upozorní.

Když se dívám na to souvětí, začínám pochybovat, že to bude někomu, kromě mě samotnýho, k užitku. :-)

Úplně základní uzly přeskočím a na začátek jsem si vybral 2D tracker. Filozofie programu je výrazně odlišná od toho, na co jsem byl zvyklej a mlhavě mi připomíná jednu aplikaci na Amize, na kterou si už nemůžu vzpomenout. To nevadí. Tak teda jdu na to. Budu se snažit popisovat aktuální verzi 7v8 a úplně zjevný věci budu běžně přeskakovat. I tak to budou jistě chaotický první krůčky v tomhle nástroji.

2D tracker v Nuke je, jak jsem vypozoroval, už rozdělenej na dvě části. Jedna část je v liště, kde člověk najde běžný ovládaní jako je trakování dopředu/dozadu, stopka, odmazávání atp. Nuke má poměrně dobře udělanou nápovědu, takže se stačí nad ikonou nebo volbou na chvíli zastavit a vyskočí stučná a přehledná nápověda. To se mi fakt líbí.

první část lišty

druhá část lišty


Druhá část trackeru je přímo dialog uzlu. Ten má čtyři záložky a společně s lištou, která se objevuje jen při jeho aktivaci tvoří jeden celek. Rozhodně se nehodlám nořit do jeho zákoutí práce se získanejma datama. Na to je příliš brzo a určitě bych se v tom ztratil.

základní dialog trackeru
V první řadě bude asi dobrý rozumět jednotlivejm položkám u tracku. Těch může bejt neomezenej počet a přidávaj se buď první položkou na zmíněný liště, tlačítkemn add track v dialogu trackeru nebo click+shift přímo do obrazu.

seznam tracků
Kromě jména, X a Y koordinátů (na vosum desetinejch míst!) a vyhodnocení chybovosti, je tu ještě položka "e"(enable), která příslušnej track aktivuje, TRS pro posun, rotaci a scale (na rotaci a scale jsou potřeba tracky minimálně dva, to dá rozum) a nakonec offsety. Těma se dá pomocí CTRL nastavit odsazení od původně trackovanýho místa což se hodí, když původní trackovaná část není viditelná atp. V případě, že to uděláme a hodnota je jiná než 0, offset se při tracku použije.

Jak je vidět, o použití ofsetu informuje i sám tracker.

Za zpovšimnutí určitě stojí i položka "average tracks", která, jak název napovídá, vytvoří z vybranejch tracků jeden zprůměrovanej, což je fajn primárně pro stabilizaci obrazu. Aby byla první záložka trackeru kompletní, je tu ještě jedna důležitá volba. Export získanejch dat.

Možnosti exportu


CornerPin2D
(use current frame)
Vytvoří propojený CornerPin2D uzel v závislosti na relativní transformaci a použije aktualní snímek jako referenční
CornerPin2D
(use transform ref frame)
Vytvoří propojený CornerPin2D uzel a k transformaci použije jako referenci frame, kterej je v záložce trackeru Transform. (třetí záložka na prvním obrázku.)
Transform
(stabilize)
Vytvoří propojený Transform uzel pro stabilizaci (trackovací body stojí na místě)
Transform
(match-move)
Vytvoří propojený Transform uzel pro transformaci na základě pohybu tracku
 

Pak jsou tu "bejknutý" varianty téhož což znamená, že nejde o aktivní link mezi vytvořeným uzlem a Trackerem. Aktivni link mezi uzly jsou naznačeny zelenou linií, která oba uzly spojuje. Právě tahle provázanost je největší výhodou a zároveň nevýhodou Nuku. Learning curve se prodlužuje a celej proces učení se je náročnější právě kvuli tomuhle.

aktivní propojení uzlů


V další záložce je nastavení. Je poměrně bohatá a tady bude asi ležet základ pro kvalitní track. Nejdřív je dobrý zvolit, jakej kanál se bude trackovat. Tady je možný povypínat jednotlivý složky RGB obrazu nebo si vybrat, případně vytvořit jinej libovolnej kanál.

záložka nastavení


Pak tu máme pre-track filter. Jde o filtr, kterej se aplikuje na obraz a má v podstatě jen dvě nastavení. None, teda žádnej, adjust contrast, což je doporučený nastavení který podle manuálu přizpůsobí materiál trakovacímu algoritmu a nakonec median, kterej se pokusí před procesem odstranit šum a údajně to bylo základní nastavení v předchozí verzi.

Následuje možnost zvolit kompenzaci jasu (adjust for luminance changes), která tracker muže mírně zpomalit a pokud je použit nevhodně, tak i znepřesnit. Dost lidí doporučuje tuhle položku použít i v případě, že nemáte zrovna problém se změnou jasu ale s trackingem. Já toho zatím tak moc netestoval takže neumím říct.

Iterace je jasná a běžně se nechává tak, jak je nastavena defaultně. Epsilon/resolution je uroveň chyby, při které tracker považuje krok za vyřešenej. Vetší hodnota poskytuje rychlejší řešení ale horší výsledek a naopak. Běžně není potřeba měnit a nakonec max_error, což je uroveň při který to tracker vzdá.

Clamp super-white, sub-zero footage je přepínač, kterej když je zapnutej tak řeší materiál v klasickým rozsahu 0-1. Zatím jsem se nedozvěděl, jakej dynamickej rozsah to přesně znamená.
Nuke podle všeho dostupnýho zpracovává veškerý obrazový data v 32bitech a to mě mate. Budu se muset výrobce zeptat. Pokud je teda žádoucí trackovat celej dynamickej rozsah (když je  k dispozici příslušnej materiál a ať už to znamená cokoliv), pak se položka vypíná ale je nutný příslušně poladit hodnotu max-error.

show error on track paths


Show error on track paths poskytuje přehled o kvalitě vytrackovanýho kroku přímo v náhledu.
Význam zelený, oranžový a červený není určitě nutný vysvětlovat ale co je naopak dobrý poznamenat je fakt, že červená neznamená nutně špatnej klíčovej snímek ale může jen naznačovat zásadnější změnu v materiálu.

Hide progress bar je jasnej.

blobs snap

corners snap


Další zajímavá položka je Snap to markers, navržená pravděpodobně pro práci s greenscreenem. Ta pomáhá vyhledávat vhodné kandidáty na trackováni a rovnou dvou druhů. Stači položku aktivovat a posunovat trackerem po obraze. Zeleně zvýrazněná oblast pak vyhledává v rámci plochy trackeru ideální místo pro funkci.

nastavení zoom window

zoom window v akci

Show zoom window je taky vcelku jasná položka o který se nemá smysl rozepisovat. Snad jenom, že velikost okna zoomu se dá interaktivně libovolně měnit a přes Shift je v něm možné zoomovat, což je fajn při hledání místa nebo korekci. Pod touhle položkou jsou různá nastavení pro velikost okna náhledu, použitou lupu (až 16x) a filtr, kterej by měl poskytovat stabilnější track během přehrávání, něco jako pre-track filter.

korekce pomocí predikce

Predict track (běžne vypnuté) je pomocník, který poskytne aktuální data animace cesty trackeru
k řízení, kde hledat vybranej pattern.

Warp type je položka, kde můžeme vybrat typ transformace a dá se tím enginu říct, s jakám typem materiálu se pracuje. Například Translate je samozřejmě nejrychlejší ale očekává pouze posun trackovanýho patternu a může se při jeho rotaci, změně velikosti (i díky perspektivě) nebo dokonce deformaci (např. živej obličej) velmi snadno ztratit.To je docela důležitá položka pro nějaký serióznější trackování. Ja ji schválně nechal (v testu, kterej je tady dole) v základním režimu, tedy v Translate. Za extra poznámku stojí asi mód Affine, kterej očekává rovný linie a dává pozor na rozestupy mezi body.


módy trackeru


Pak tu máme Pattern grab behavior, což je položka kde se dá nastavit kdy se má tracker pokusit grabnout novej pattern. Buď to může bejt, každej frame, každej n-tej frame, podle chyby a uživatelský nastavení, kde se grabuje vždy každej n-tej frame pokud je chyba v určitým rozsahu a další přislušný volby.

Poslední část jsou volby Keyframe Trackingu. První tři volby jsou jasný. První je retrack when keyframe is moved/created a pokud je aktivní, tak tracker přetrackuje pattern kdykoliv, když je track manuálně přizpůsobenej nebo je vytvořenej novej klíčovej snímek. Pokud jeaktivní druhá volba - create new key when track is moved, tak se vždy když se manuálně přizpůsobí track vytvoří novej klíčovej snímek a nakonec při auto-tracks delete keyframes se při aototrackingu smažnou manuální snímky.

volby keyframe display

Keyframe display nastavuje, jak budou zobrazeny klíčový snímky. Volby jsou jednoduchý.

poslení část záložky Settings

Nakonec tu máme keyframe size, což je nastavení velikosti náhledu na klíčový snímky a on-screen key-track limit, kde se nastavuje maximální počet tracků s klíčovými snímky, které mohou být zobrazeny. Pokud je nastavena 0, pak se zobrazuje vybraný track.

keyframe size


Nejlepší asi bude udělat k tomu jednoduchý krátký video s testovacím záběrem. Vybral jsem k tomu záběr mouchy, což u6 je víc než patrný z obrázků, kterou jsem doma přistihl odpočívající na okně a natočil ji na Canon C100.




Aby byl základní popis 2Dtrackeru kompletní, chtělo by to ještě pár slov o záložce Transform. Minimálně přímo o volbě transform, teda způsobu, jakým se aplikují získaný data a dalším podstatným volbám. Některý části jsou pak shodný s jinejma uzlama.

transformace


none Žádná transformace se na obraz neaplikuje
stabilize stabilizuje obraz tak, že se track nepohybuje
stabilize 1pt to samé, ale pro použití jen jednoho tracku
match-move transformuje další obraz podle tracku
match-move 1pt to samé, ale pro použití jen jednoho tracku
remove jitter zahladí chvění
add jitter přidá chvění

Tady je tabulka s transform módama. Hned pod touhle položkou je volba referenčního snímku, kterej bude použit pro stabilizaci nebo match-move. Natavuje se kliknutím na tlačítko set to current frame, a aktuální snímek, v závisloti na pozici na časové ose bude nastaven jako referenční.

Jitter period je nastavení který říká, kolik frejmů se bude brát v úvahu při průměrování (zahlazování) aby se získala stabilní pozice. Funguje pouze když je zvoleno add/remove jitter.

Smooth je v zásadě stejná věc, akrorát že lze nastavit samostatně hodnotu pro posun, rotaci i scale.

Live-link transform dovoluje živý dynamický updaty dat a zdá se, že jde o pozůstatek z předchozích verzí, protože teď se generují živé linky na požádání (jak je použito i ve videu pro řízení pohybu nápisu). Ale můžu se mejlit. Možná jde jen o možnost použít starší script a nebo jsou tu i další výhody (což je pravděpodobné), o kterých zatím vůbec nic nevím.

možnosti práce s daty jsou zdá se neomezené


Další položky jsou jasný, ty rovnou přeskočím a zastavím se u filtrů. Tady je stručná tabulka. Vnitřní procesy jsou samozřejmě komplikovanější ale sám výrobce to komentuje takhle povrchně. Vedle výběru filtru jsou tu ještě další volby. Clamp je korekční nástroj při použití filtru Keys, Simon a Rifman, kde může vznikat halo efekt. Touto volbou se případný problémy řešej a black outside kterýmu zatím moc nerozumím. Zdá se, že tahle volba generuje černý pixely mimo oblast trackovanyho obrazu, což by mělo usnadnit jakési mixování vrstev. Na tohle se budu muset podívat časem podrobněji, protože jsou situace, kdy má být tato volba vypnutá. (např. kdyz se vytváří roztřesená kamera) Teď vážne nevím.


Impulse přemapovaný pixely si nesou originální hodnoty
Cubic přemapovaný pixely jsou kubicky zahlazeny
Keys zahlazeni s drobnym doostřením
Simon zahlazení se silnějším doostřením
Rifman zahlazeni s silnym doostřením
Mitchell zahlazeni s rozostřením (zamezení pixelace)
Parzen největší zahlazení ze všech voleb
Notch zahlazeni k likvidaci moiré




Tak, a zbejvá už jenom pár položek. Motion blur nastavuje počet vzorků pro tenhle efekt. Hodnota 1 by měla bejt pro většinu případů postačující ale lze ji zvětšit a získat tak čistší a hladší výsledek (pochopitelně se prodlouží čas zpracování). S touhle volbou samozřejmě souvisí i shutter. Ten je tady nastavenej, alespoň myslím na 180°, teda hodnotu 0,5. To by teda znamenalo, že když budu ignorovat pravidlo 180° a budu natáčet při 25FPS se shutter speedem 30 (velmi zvýrazněná dynamika pohybu) měl bych nastavit asi následující.

25 (fps) x 360 (stupňů) = 9000
9000 / 30 (shutter) = 300

300° je teda hodnota, kterou bych měl nastavit  což by mělo bejt 0,84. Pokud platí že 360° = 1.

Shutter offset určuje chování uzávěrky s ohledem na frame. Když je nastavená hodnota 1 a zvolen střed znamená to, že se z každýho snímku bere 50%.Pokud jde o frame 100, uzávěrka se otevře na 99,5 a uzavře na 100,5 atd. Shutter offset dovoluje nastavit vlastní parametry uzávěrky.

Tak, to by bylo pro rámcovou představu o uzlu Tracker asi všechno.  Když se na to podívám a uvědomím si kolik uzlů Nuke obsahuje (některý samozřejmě jednodušší ale některý naopak robustnější) , vypadá to, že jde o běh na hodně dlouhou trať. :-)

Žádné komentáře:

Okomentovat