Benutzer-Werkzeuge

Webseiten-Werkzeuge


postpro:vfx:howtos:matchmoving_mit_3d_equalizer

Matchmoving und Object Track mit 3D Equalizer

Für gefilmtes Footage, in das später 3D Objekte jeglicher Art integriert werden sollen, benötigt man IMMER einen Matchmove. Das bedeutet man benötigt eine virtuelle Kamera, die sich genauso mitbewegt, wie die echte Kamera der jeweiligen Shots. Nur dann wirken die 3D Modelle wie in der echten Welt platziert und fügen sich realistisch in das Footage ein. Durch den Matchmove Prozess kann eine virtuelle und fertig getrackte 3D-Kamera z.B. mit 3D Equalizer oder auch anderer Software generiert werden. Wird diese anschließend in eine 3D Software importiert, können beliebige 3D Objekte in die Szene eingefügt werden, welche dann durch diese Kamera gerendert werden können. Dadurch werden diese nun realistisch in das Footage integriert und bewegen sich mit der gefilmten Szenerie mit. Animationen sind kein Problem. z.B. ein Roboter, der auf der Straße herumfährt. Dafür werden die Modelle einfach wie sonst auch in der Software animiert und gerendert.
Um bereits bestehende Objekte wie einen Stock durch ein Laserschwert zu ersetzen, oder einen Helm auf einen Kopf zu setzen, benötigt es einen sogenannten Object Track.

Gute Matchmove-Tutorials auf folgenden Kanälen:

Footage - Arbeitsdaten vorbereiten

Auflösung immer in Source Resolution.

Möglichst unbearbeitetes Footage nehmen (kein Crop!) - wegen der Sensorgröße.

Möglichst nahe am Source Material bleiben, auch farblich, für genug Dynamic Range und Kontrast. → Am besten .exr oder .tiff → Aber bei SLog zum Beispiel Gamma oder Color Space vor dem Import anpassen. (8 Bit Color Conversion in 3DE selbst kann Probleme bereiten und der Look des Materials spielt für das Programm keine Rolle.)

3D Equalizer Setup

Environments (unten links) → “Basic”

1. Single Frame Lineup erstellen

1.1 8-Bit Conversion/Buffern (für besseres Playback)

“Camera” Tab im Attribute Editor → 8 Bit Color Conversion → Gamma auf zB. 2.2

Eventuell Black/White Level anpassen bei linearem Footage

Footage einmal buffern

Playback (links unten) → Export Buffer Compression File

Playback (links unten) → Import Buffer Compression File

Import Buffer Compression File wird immer in src Ordner von Footage gespeichert (kann auch nicht geändert werden) → kann theoretisch zu Problemen in der Pipeline führen, da in src Ordner eigentlich nur .exr-Files liegen dürfen. Dafür kann aber ein einfacher Workaround geschrieben werden (if-Condition ändern im zuständigen File)

Wenn nach dem Buffern die 8 Bit Color Conversion nochmal geändert werden soll, muss der Buffer über Clear Imagebuffers nochmal gelöscht und dann nochmal neu exportiert werden.

1.2 Daten aufbereiten

1.2.1 Lenses erstellen

In 3DE erstellt man verschiedene Lenses, für die Optiken, die beim Dreh verwendet wurden. Wichtig ist, dass hier auch Daten wie das Filmback eingetragen werden.

Am besten jede Lens, die man erstellt, auch direkt sinnvoll benennen (zB. Zeiss Prime 35mm)

“Lens” Tab im Attribute Editor → Focal Length → Film Back Height (basically Sensor Size) → Hier Film Back der Kamera eintragen und auf cm oder mm achten!!!

💡 TIPP: Wie groß ist die *ausgelesene* Sensorgröße / Filmback? Sensorgröße nicht gleich Sensorgröße!! Bei Arri kann man sich das auf der Website berechnen lassen, bei anderen Herstellern müsst ihr eventuell recherchieren, wie viel im von euch genutzten Aufnahmemodus vom Sensor ausgelesen wird.

Lens Distortion: Radial Standard (hier könnte man auf anamorph umstellen)

💡 TIPP: Anamorphes Footage ist der Tod für den Matchmove Artist. Auch für’s Comp.

1.2.2 Set Geo importieren (Lidar, Photoscan oder 3D Modell)

Object Browser → Point Groups ausklappen → 3D Models → Rechtsklick → Add new → import .obj file

💡 TIPP: Das Mesh sollte die Balance zwischen genug Auflösung, um akkurat zu sein, und zu viel Auflösung, um 3DE nicht in die Knie zu zwingen, haben. Am besten retopologisiert man den Lidar Scan und macht sich für markante Stellen einen Surveypunkt als Geo. z.B. Kegel

💡 TIPP: Muss nicht unbedingt ein Lidar sein, könnte auch ein Photoscan oder ein sehr genaues Model sein.

💡 TIPP: Die Scales aller Models vor dem Import in z.B. Maya checken.

F5 um in den LineUp Controls Viewport für das Alignment der Geo zu wechseln. Falls nichts zu sehen ist, oder das Model viel zu klein oder viel zu groß ist, hilft links unten “Center Models”.

💡 TIPP: Wenn das Model viel zu klein ist und man auch nicht ranzoomen kann, ist wahrscheinlich das Filmback falsch eingestellt.

3D Modelle im Viewport aktivieren (??? WO)

1.2.3 Set Geo ausrichten - Lineup

Im Object Browser unter 3D Models das Modell auswählen, es öffnet sich rechts der 3D Model Tab.

Im 3D Model Tab oben die Checkbox “is Reference only” aktivieren (Hierdurch bewegt sich die Kamera im Bezug zum Lidar und nicht umgekehrt).

Optional: Rendering → UV Map → Texture auswählen Optional: Rendering → Show Lines deaktivieren → Show Polygons aktivieren

3D Models Button rechts unten im Viewport nutzen, um Geo mit Aufnahme zu vergleichen (schnell wechseln) - Das selbe wie F2 und F5 (geht auch)

Viewport Navigation: Shift + Leftclick - Rotate Shift (oder scroll) + Rightclick - Zoom Shift + Middlemouse - Pan

→ Mit diesen Controls das Modell in der Szene ausrichten (erstmal grob, das ist nicht genau genug)

→ Einen Frame für Lineup aussuchen. Am besten der, der am Meisten vom Set drin hat.

→ View (oben) → Show FOV → ausschalten

Danach: Genaues Lineup, in dem man Vertices der Geometrie nimmt und an die identische Stelle im Footage zieht (z.B. Ecke Fenster im Modell auf Ecke Fenster im Footage ziehen). Dazu auf “Extract Vertex” (unten links) dann auf einen Vertex an der Geo klicken und richtig hin ziehen. Wenn er richtig sitzt Alt + Linksklick, um den LineUp Punkt abzuwählen und den nächsten Vertex zu extracten zu können. So oft wiederholen, bis das LineUp der Geo mit dem Footage passt.

→ Am besten prägnante Stellen auswählen (Ecken, kleine Textur Features, …)

WICHTIG: Für den “Extract Vertex” Workflow muss die Set Geo an dieser Stelle eine detailgetreue Geometrie beitzen. Sonst müssen die Wände eines Lidar Scans z.B. nochmal neu gemodelt werden.

Wichtig am Anfang: Zuerst 3 Vertecies extracten, ohne diese zu verschieben. Erst ab 3 Punkten im Raum ist die Position der Geo nichtmehr so mehrdeutig, dass eine Triangulation richtig funktioniert.

Zwischendurch Store Pose, damit wird die Position des LineUps gespeichert. → Roter Strich erscheint in der Timeline

Checken ob alles passt mit F6

💡 TIPP: Das wichtigste an einem guten Track ist exzellentes Lineup. Wenn das Lineup gut ist, wird der Solve auch gut.

1.2.4 Calc

Wenn jetzt im weiteren Verlauf Parameter angepasst werden, neue Tracking Punkte hinzukommen etc. ist es wichtig zwischendurch immer wieder den jetzt aktuellen korrekten Matchmove berechnen also calculaten zu lassen.

Nur dann wird auch der gesamte Matchmove (oder Object Track) tatsächlich “aktualisiert”!

Hierzu “alt + C” (äquivalent zu “Clac All From Scratch”) → im aufgehenden Fenster dann “Use Result” (gelbe Punkte sind Features)

1.3 Lens Grids / Distortion

💡 TIPP: Lens Grids am besten ein durchgängiges Grid mit großen Kästchen (kein Grid im Grid)

💡 TIPP: Auf ein sehr sauberes Grid bei der Aufnahme achten (gerade, Ränder parallel und nicht gebogen)

Im Object Browser auf Cameras → Rechtsklick → Add new → Reference camera

Auf diese Kamera im Browser doppelklicken → Browse → Lensgrid suchen

F3 um in den Distortion Grid Modus zu kommen

Entweder Punkte von Hand verschieben oder bei gutem Lens Grid den Button “Snap” (unten mitte) drücken.

“strg. + Pfeiltasten” - setzt die Reihen und Spalten in die jeweilige Richtung fort → Lens Grid erweitern. → Wenn Punkte nicht korrekt liegen, weil sie nicht mehr im Bild sind oder einfach nicht richtig snappen wollen: Auswählen und unten links “Disable Points” drücken

Dann oben: Calc → Calculate Distortion and Camera Geometry

Im aufgehenden Fenster → Calc Lens Parameters → Set Parameters and close

Dann muss mit der Reference Camera ausgewählt im Attribute Editor unter “Camera” → “Lens” die Optik ausgewählt werden, für die das Distortion Grid aufgenommen wurde.

2. Tracking

Beim Tracking werden Features im Bild gesucht, die markante Stellen oder Muster mit hohem Kontrast im Bild abbilden und für eine längere Zeit in der Kamera sichtbar sind. Diese “Pattern” werden als Feature mit einem rechteckigen Bereich markiert und können anschließend mit einem Track verfolgt werden.

Dafür sucht der Computer im nächsten Frame innerhalb der Bounding Box (Search Area) des Tracks nach diesem Pattern und bewegt den Tracking Marker anschließend an diese Stelle. Dann geht das Spiel von vorne los. Das passiert, bis auf die Platzierung des Tracking Markers, automatisiert - Tracking in a Nutshell.

2.1 2D-Tracking

Ganz allgemein gibt es keine genaue und perfekte Lösung, um Trackingpoints zu wählen. Dafür kriegt man irgendwann ein Gefühl. Der Trackingprozess ist ganz viel “try and error”. D.h. manchmal funktioniert ein Track auf anhieb, manchmal muss man die Search Area ändern, manchmal muss man mit den Image Controls rumspielen (s.u.), manchmal muss man die Tracker keyen (s.u.). Und manchmal muss man die Werte auch nach paar Frames wieder anpassen, weil sich z.B. Lichtverhältnisse ändern. Dafür kriegt man mit der Zeit ein Gefühl, was wahrscheinlich funktioniert und was nicht.

F2 (Manual Tracking Mode)

Tracking Point platzieren mit strg. + click

- Einstellungen für Point

  
  Unter dem Menü bei Point.
  
  Pattern funktioniert meistens sehr gut.
  
  Marker bei wirklich geklebten Markern und nicht nur random Oberflächen.
  
  Forward and Backwards theoretisch der sauberste Modus. Aber forward only reicht meistens.
  
  Compensate Luminance immer an lassen (z.B. wenn es blitzt arbeitet das Programm entgegen) - default an.
  
  Rotate Reference Pattern kann interessant sein (z.B. super runder Marker, aber Objekt rotiert sich) → Dann dreht sich der Marker mit
  
  Scale Reference Pattern, wenn der Marker aus irgendeinem Grund immer größer wird.
  
  Spline Tracking Box ist cool
  

💡 TIPP: Kein Mensch nutzt Auto Tracks (entspricht Auto Detect Features) - höchstens zur Point Cloud Generation.

Kriterium für Platzierung eines Tracks: Ein Muster, das der Algorithmus über längere Zeit gut erkennen kann.

Bounding Box / Search Area kann man auch je nach Intensität im Video anpassen (Shaky Teil und ruhiger Teil) → Größere Bounding Box = rechenintensiver und gefahr, dass der Track zu ähnlichem Feature in der Nähe springt. ABER: Wenn zu klein und das Footage ist shaky = Gefahr dass das Feature außerhalb der Bounding Box liegt. Muss drin liegen um gefunden zu werden.

Gauge Marker (unten links), Center 2D (rechts), Track (T - Play, Pause Track)

💡 TIPP: Center 2D rechts im Viewport lockt den Punkt im Viewport. → Damit bleibt er immer zentriert und lässt sich leichter verfolgen.

2.1.1 Tracking Controls

End Keyframe: E (lieber das für Pattern), E auf Endkeyframe “öffnet” Track wieder

Bild up and down: zwischen Keyframes springen.

, und . : Einzelne Frames tracken (, zurück, . vor)

2.1.2 Forward Backward Tracking

T tracken, E ende, T zurück.

T ist Pause,Play aber beides Forward. E sagt Ende, Richtungswechsel.

Keyframes setzen: X (Achtung, bei Pattern springt der Point oft)

X: Sucht anhand vom letzten Keyframe ein Muster in der Search Area / Bounding Box, dass dazu passt. → Meistens ein bisschen genauer als von Hand.

Oder die Bounding Box ganz leicht verändern. Setzt auch einen Keyframe.

Rest Track nach aktuellem Frame Löschen → Komplettes Ende vom Track: strg. + E → Aber so lange tracken, wie er gut aussieht

Track vor aktuelle Frame löschen: strg. + B

Wenn ein Punkt für kurze Zeit überdeckt ist: Mit dem Move Symbol links unten von der Pattern Area. → Tracken bis der Punkt überdeckt wird und es nicht mehr geht, dann den Track verschieben. Mit Offset weitertracken, bis er wieder sichtbar wird. Dann zurück verschieben. Alternativ kann man aber auch den Track pausieren, in der Zeit, wo der Punkt nicht sichtbar ist.

Wenn ein Marker kurz das Bild verlässt (mit E oder automatisch): An die Stelle springen wo er wieder rein kommt. Der Punkt ist links im Viewer noch ausgewählt. Dann einfach Linksklick in den Viewport und er ist wieder da.

2.1.3 Einstellungen im Attribute Editor:

Infinetily Distant Checkbox (keine oder sehr wenig Parallaxe - z.B. Sonne)

Void: Always (zählt, auch wenn der Punkt das Bild verlässt)

Point Weighting (wie wichtig ist der Punkt?) - static lassen (Zahl ist ein Multiplikator) → Wenn der Punkt schlecht getrackt ist, weniger Gewicht vergeben.

Timeline Weight Blending (nach wie viel Frames haben die Punkte ihr volles Gewicht? Wenn Track am Anfang z.B. schlecht ist.)

2.1.4 End

Punkt abwählen mit alt + click

Mit dem nächsten Punkt weiter machen, am besten im ganzen Bild verteilt Punkt tracken

💡 TIPP: Punkt shifted… → Forward track. Keyframe von nehmen und manuell korrigieren. Weiter tracken. End. Backward Track. → Equalizer mixt Daten.

2.1.5 Image Controls

Blurring!! Macht die Artefakte besser (5×5 Pixel Standard, wenn das Bild noisy ist, gerne auch mehr) → Man verliert keine Details aber macht das Bild einfacher verständlich (für den PC)

Saturation bringt selten was. Rot, Grün und Blau bringt eher ne neue Art von Rauschen rein.

Gamma, Brightness und Contrast handy. → Nach Gefühl

Image Controls on / off: I

→ Für jeden Track einzeln anpassen!! Unterschied zu lokal für alle

Mit dem Chroma Key kann man Tracking Marker keyen. Dann sieht der auch für den Computer schwarz weiß aus. Erhöhter Kontrast → der verfolgt dann nur noch einen weißen Fleck. Sehr nützlich.

💡 TIPP: Bei Sprüngen in einzelnen Frames oder wegen zu starkem Motionblur: Manuell fixen. Nudge Tool (Mit den Numpad Pfeiltasten, wie mit einem Gamepad, den Marker in Pixelschritten korrigieren)

2.2 Punkte auf Set Geo projezieren

F5, in Timeline zum roten Keyframe wechseln (LineUp Keyframe) Alle Survey Points im Point browser auswählen. → Edit (oben) → Project points on 3D Models (es werden nicht immer alle Punkte direkt projeziert, manchmal muss man an die noch nicht projezierten Punkte dann ranzoomen)

Im Point Browser sollte hinter den Points jetzt statt “free” “survey” stehen

Alt C: solve camera

💡 TIPP: Aus der Bewegung der Features und dem parenting an das Lidar, kann den Trackern plötzlich Tiefeninformation zugeordnet werden. Man treibt nicht den Lidar sondern die Kamera. Durch den Lidar bekommen die Features plötzlich räumliche Information.

💡 TIPP: Bei einem Stativshot hast du z.B. gar keine Translation. Ohne die Features als Driver für die Lidar Transformation, könntest du nicht solven. Weil du gar keine Translationsinfos hast. Die werden erst aus dem Lidar berechnet.

2.3. Fehler beheben

- Definition Fehler / Deviation

  
  Abweichung in Pixeln vom eigentlich korrekten Kamerapfad.
  → Meistens ist eine niedrige Abweichung gut aber eine hohe macht den Track eventuell auch nicht schlecht.
  

Deviation Browser → Show Point deviation curves → Active points only

Fehlerkurven (deviation curves) der einzelnen Tracking Points anschauen. Mit alt+Linksklick können einzelne Curves ausgewählt werden, um sie besser zu betrachten. Points mit hohem Error machen den Track ungenau.

Mögliche Gründe für ein schlechtes Feature:

- 2D: Der Track wackelt oder driftet weg → nochmal neu Tracken, mit Image Controls usw. probieren, einen saubereren Track zu machen - 3D: Bei der Projektion auf das 3D-Modell kann es auch Fehler geben: eine Flache Geo bzw. Plane, wo sonst Unebenheiten im Modell wären - 3D: das Alignment, der Lidar oder die Distortions sind falsch

💡 TIPP: Wenn die Linie einigermaßen gleichmäßig gerade bleibt aber hoch ist, ist es besser, als ein ständiges Auf- und Ab.

Falls der 2D Track stimmt oder einfach nicht besser wird und ein kleines bisschen ungenau ist, muss einer der 3D-Fehler die Fehlerquelle sein:

Dann gibt es zwei Fixes:

Man sagt dem Programm, dass dieser Punkt nicht perfekt sitzt und deswegen wird er weniger stark in die Berechnung einbezogen. Das kann dann den allgemeinen Fehler verringern:

Rechtsklick auf Point in Browser → Modify → Survey → Approximately Surveyed

Attribute Editor → 3D Calculation → Approximate Survey Radius: abschätzen, wie groß ist der Unterschied zwischen echter Geo und set Geo ist

Alt C solve.

Falls das nicht hilft, den Punkt aus der Berechnung rausschmeißen:

Rechtsklick auf Point in Browser → Modify → Survey → Survey Free

Alt C solve.

Nach jedem Calc sollte geschaut werden, ob der Track besser geworden ist. Nicht nur von den Deviation Curves, sondern bei angeschaltetem Model

2.4 Parameter Adjustment: Brennweite anpassen

Um den Fehler weiter zu verringern können fast alle Parameter, die Im Attribute Editor aufgelistet sind, nochmal neu berechnet werden. Die wichtigsten Prameter, die immer angepasst werden sind Brennweite und Distortion.

Aber Achtung, immer vorher abspeichern! Parameter Adjustment kann in manchen Fällen den Fehler geringer machen aber trotzdem falsch sein (Wenn die Brennweite zB. stark abweicht oder die Distortion sehr groß wird)!

Die Brennweitenangaben eines Objektivs sind nie ganz exact und können um wenige Prozent abweichen. Daher berechnen wir die Brennweite nach dem das LineUp und Tracking schon recht gut passt nochmal in 3DE. Hierdurch kann aus einer 35,000mm Optik zB. eine 35,187mm Optik werden.

“Lens” Tab im Attribute Editor → Focal length → Von “Fixed” auf “Adjust” schalten

Windows (links unten) → Parameter Adjustment Window

→ Change Brute Force to adaptive

Dann unten “Adjust” klicken und warten bis der Paramter mit der geringsten Deviation berechnet wurde. Dann “Transfer Parameter” klicken, um den errechneten Wert zu übernehmen. Den Parameter dann am besten mit dem “Remove” Button wieder aus dem Adjustment rausnehmen (man stellt den Parameter damit automatisch wieder auf “Fixed”), bevor man die nächsten Parameter berechenet.

Auch hier wieder: nach dem Parameter angepasst sind “Alt + C” - neu calcen → use Result

2.5. Parameter Adjustment: Distortion anpassen

💡 TIPP: Man berechnet die Distortion am Ende basierend auf dem bisherigen Fehler im Track und den anderen Parametern nochmal “genauer”, egal wie gut das Grid war. Ein gutes Grid ist aber ein guter Start. Man hat also pro getracktem Shot auch eine leicht unterschiedliche Lens Distortions. Darauf muss auch geachtet werden beim Comp.

Hier wieder der gleiche Workflow wie beim anpassen der Brennweite. Die Parameter, die man anpassen sollte sind: Im ersten Durchlauf “Distortion - Degree 2” und “Quadratic Distortion - Degree 4” berrechnen, dann und “U - Degree 2” und “V - Degree 2” (alle 4 Parameter gleichzeitig zu berechnen dauert exponentiell länger als jeweils nur zwei auf einmal).

Adjusten der Parameter selbst wieder wie bei der Brennweite über:

Windows → Parameter Adjustment window

Von Brute Force auf Adaptive wechseln

Adjust → Transfer Parameters

3. Ergänzung: Object Track

💡 TIPP: Modell / Object darf unter 3D Model im Attributes Editor keine survey data haben.

Neue Point Group → hier kommen alle Tracking Punkte für den Object Track rein.

Rechtsklick auf Point Groups → Add new → Point Group Doppelklick → Open 3D Models → import .obj file of object scan

Danach genauso vorgehen, wie bei Camera Matchmove

Erneutes Lineup des Modells (mit Extract Vertex)

Tracking wie für einen Kamera Matchmove.

Projezieren und und Fehlerbehebung wie bei Camera Matchmove

4. Export

Durch den Export der Tracking Daten, werden nur die getrackten Bewegungen des Objects exportiert. Das 3D Modell mit korrektem Lineup muss manuell exportiert und gespeichtert werden, damit die Startposition des 3D Objekts in der Software der Wahl mit dem manuell erstellten Lineup aus 3D-Equalizer übereinstimmt.

Wichtig zu verstehen ist, dass getrackte Features nur die Bewegung festhalten, nicht jedoch das Objekt selbst. Sie werden nur anschließend auf das Objekt gemappt. Deshalb ist der Export der Pose wichtig.

Deshalb: 3D Modelle mit exportieren, dafür alle 3D Objekte die exportiert werden sollen anwählen und dann im Export Pop-Up Export selected 3D Models wählen

3DE4 → Export Project → Maya (oder jede andere Software) Start Frame same as image sequence Export File → imagesequencename_Cam_V001

3DE4 → File → Export → Export Nuke LD_3DE4 Lens Distortion Node → imagesequencename_NukeLDNode_V001

3DE4 → Run Warp4 Check “save Footage”, browse, new folder → imagesequencename_UDP (für undistorted Plate) → imagesequencename_UDP.####.exr Scale 50%, Render

5. Import (in Maya)

File → Import → Browse to .mel script Rename scene to MM (for Match Move) Delete Lens Camera, you only need the sequence Camera

Panels (oben) → Perspective → MM camera

In der Camera die Image Plane (die von 3D-E rausgegeben wird) austauschen mit der undistorted Plane:

Camera anwählen → Attributes Editor → ImagePlaneShape Node → Image Name → UDP auswählen → check “use image sequence” →Alpha Gain auf ca. 0.7 setzen Placement → Depth auf 1

File → Import → SetGeo.obj

(Für den Object Track)

3D Model aus 3DE in entsprechende Object Point Group fügen (middle mouse button drag) → Wird dann animiert.

postpro/vfx/howtos/matchmoving_mit_3d_equalizer.txt · Zuletzt geändert: 2022/10/05 11:04 von ruhrmann