390 likes | 584 Views
TU Chemnitz Seminar Computergraphik 2010 Maurice Gall. Footskate Cleanup for Motion Capture Editing. Gliederung. Problematik Ausgangslage Algorithmus Resultate Quellen. 1. Problematik Entstehung.
E N D
TU Chemnitz Seminar Computergraphik 2010 Maurice Gall Footskate Cleanup for Motion Capture Editing
Gliederung • Problematik • Ausgangslage • Algorithmus • Resultate • Quellen
1. Problematik Entstehung • Wenn Bewegungsdaten in Animationen verarbeitet werden, können Artefakte auftreten z.B. durch: • Mangelhafte Rohdaten durch falsch kalibrierte Sensoren • Beim Abbilden der Bewegungsdaten auf das Animationsskelett • Ein unschönes Artefakt ist, wenn der Fuß des Charakters sich bewegt, obwohl er auf dem Boden fixiert sein müsste. Dieses Artefakt ist bekannt als Footskate.
1. Problematik Definition • Das Footskate Cleanup Problem: • Gegeben ist eine Zusammenstellung von Skelettbewegungsdaten mit Footplants • Gesucht wird eine artefaktfreie Bewegung, so nah wie möglich an der Originalen
2. AusgangslageWas sind Footplants? • Eine echte menschliche Bewegung enthält Footplants. • Das sind Zeitpunkte an denen ein Fuß oder ein Teil des Fußes fest an einer Position auf dem Boden verbleibt. • Für den hier beschriebenen Algorithmus, wird vorrausgesetzt, dass die Footplants vor dem eigentlichen Algorithmus erkannt wurden und den Bewegungsdaten hinzugefügt wurden. aufrechter menschlicher Gang
2. AusgangslageWas sind Footplant Zwangsbedingungen? • Zwangsbedingungen sagen aus, ob und wenn welcher Teil des Fußes fest am Boden verbleiben soll. • Sie helfen dem Algorithmus feste Positionen für die Füße zu finden. Das Bild zeigt ein Bein des Animationsskelettes und die möglichen Footplant Zwangsbedingungen
2. Ausgangslage Was sind Footplant Zwangsbedingungen? • Jeder Frame kann Footplant Zwangsbedingungen haben für • linke Ferse und/oder linker Ballen • rechte Ferse und/oder rechter Ballen Keine Zwangsbedingungen Nur für die Ferse Für Ferse und Ballen Nur für den Ballen
2. Ausgangslage Das Animationsskelett • Im Bild zu sehen ist der untere Teil des Skelettes, da nur dieser für den Algorithmus relevant ist. • Benannt sind alle Gelenke des Skelettes die bearbeitet werden
2. AusgangslageWas sind Skelettbewegungsdaten? • Skelettbewegungsdaten werden gegeben durch eine zeitabhängige Funktion • Sie gibt an, wie zu einen Zeitpunkt t die Gelenke des Skeletts zueinander stehen. • M(t) = (pR(t),q0(t),…, qk(t), o0(t),…, ok(t)) • pR… Vektor 3d – Position der Wurzel • qi… Quaternion – Orientierung des i´ten Gelenks im Vaterkoordinatensystem • oi… Vektor 3d – Verschiebung des i´ten Gelenks im Vaterkoordinatensystem
2. AusgangslageVorgehen Der Algorithmus arbeitet sequenziell die Bewegungsdaten ab: F(i) = M(i)
3. AlgorithmusÜbersicht • Phase 1 • Berechnen der Position von Ballen und Ferse • Phase 2 • Berechnen der Position und Orientierung der Fußknöchel • Phase 3 • Ermitteln der Position der Wurzel • Phase 4 • Einstellen der Beinparameter • Phase 5 • Glätten der Bewegung
3. Algorithmus – Phase 1Allgemein • Es findet nur eine Berechnung statt, wenn der aktuelle Frame Fi eine Footplant Zwangsbedingung hat • Dabei werden 2 Fälle unterschieden: • Hat auch der Frame Fi-1 eine Footplant Zwangsbedingung oder hat er keine
3. Algorithmus – 1. PhaseBerechnen der Position von Ballen und Ferse Gelenk J im Frame Fi-1 • Fall 1: hat keine Zwangsbedingung Fall 2: hat Zwangsbedingung • die Position von J wird über die Position von J ist dieselbe wie in Fi-1 • die nächsten Frames gemittelt
3. Algorithmus - 1. PhaseAbschließend • Das Ergebnis der Berechnung aus den beiden Fällen wird auf den Boden projiziert in den Punkt cJ um sicher zu stellen, dass der Fuß Bodenkontakt hat • Es muss jetzt noch kontrolliert werden, ob das zweites Gelenk J´ des Fußes korrekten Abstand hat, da man sonst die Form des Fußes verändern würde Als Ergebnis der 1.Phase erhält man die kalkulierten Punkte cJ und cJ´
3. Algorithmus - 2. PhaseAllgemein • Berechnung der globalen Position und Orientierung der Fußknöchel, für jeden Frame mit Zwangsbedingungen, die in Phase 1 gefunden wurden • 3 Fälle werden unterschieden
3. Algorithmus - 2. PhaseAllgemein • Knöchel A heißt: • doppelt eingeschränkt, wenn die Ferse und der Ballen des zugehörigen Fußes Zwangsbedingungen haben • einfach eingeschränkt, wenn nur ein Kindgelenk (Ferse/Ballen) Zwangsbedingungen hat • ansonsten uneingeschränkt. Bild 1: A ist doppelt eingeschränkt Bild 2: A ist einfach eingeschränkt
3. Algorithmus - 2. PhaseBerechnen der Position und Orientierung der Fußknöchel– Fall1 • Fall 1: Knöchel A = doppelt eingeschränkt • gegeben: • Ferse in Punkt cH, Ballen in Punkt cB aus Phase 1 • Knöchel A besitzt nur einen Freiheitsgrad - die Rotationen um den Vektor cB – cH, bezeichnet als Footroll Bild: seitliche Sicht auf einen Fuß
3. Algorithmus - 2. Phase Berechnen der Position und Orientierung der Fußknöchel – Fall1 • Die Rotation kann explizit gesetzt werden z.b. für unebenes Terrain • Alternativ kann sie auch berechnet werden, um so genau wie möglich an der Originalen Position und Orientierung zu liegen: • Definiere Rot (a,b) als die kleinstmögliche Rotation, die a und b zusammenschließt • Sei pB – pH die originale globale Position von Ballen und Ferse und QA die originale globale Orientierung, dann sei QA´ = Rot (pB – pH , cB – cB) * QA die globale Zielorientierung von Knöchel A Bild Footroll: Sicht von vorn auf den Fuß
3. Algorithmus - 2. Phase Berechnen der Position und Orientierung der Fußknöchel – Fall 2 • Fall 2: Knöchel A = einfach eingeschränkt • gegeben: • Gelenk J mit Zwangsbedingung • Sei pJ die originale globale Position von Gelenk J • Und cJ die bedingte Position aus Phase 1 Bild: seitliche Sicht auf einen Fuß
3. Algorithmus - 2. Phase Berechnen der Position und Orientierung der Fußknöchel – Fall 2 • A wird verschoben, sodass J an Zielposition • Orientierung von A wird behalten und um Vektor cJ – pJ verschoben
3. Algorithmus - 2. Phase Berechnen der Position und Orientierung der Fußknöchel – Fall 3 • Fall 3: • Knöchel A = hat keine Zwangsbedingung • In dem Fall wird nichts getan. • Daher können Unstetigkeiten zwischen benachbarten Frames entstehen auf Grund der Verschiebung von A in den beiden anderen Fällen • Bsp.: Frame i mit Bedingung - A wird verschoben, Frame i+1 A hat keine Bedingung daher wird nichts getan Frame Fi Frame Fi+1 • In Phase 5 werden diese Unstetigkeiten geglättet
3. Algorithmus - 3. PhaseAllgemein • Ermitteln der Position der Wurzel, damit die berechnete Position des Knöchels aus Phase 2 erreicht werden kann • Es werden zwei Fälle betrachtet: • Einer der beiden Fußknöchel hat eine Zwangsbedingung • Beide Fußknöchel haben eine Zwangsbedingung
3. Algorithmus - 3. PhaseErmitteln der Position der Wurzel – Fall 1 • Fall 1: ein Knöchel mit Zwangsbedingung • Die maximale Beinlänge lmax wird berechet. Das Bein ist dann komplett gestreckt. • ltargetund lmax werden miteinander verglichen Wenn ltarget > lmax ist es nötig die Wurzel zu verschieben, da ein voll ausgestrecktes Bein diese nicht erreichen könnte. Die Wurzel wird auf den Umfang des Kreises von lmax projiziert.
3. Algorithmus - 3. Phase Ermitteln der Position der Wurzel – Fall 2 • Fall 2: zwei Knöchel mit Zwangsbedingungen • Zuerst wird für jeden Knöchel die originale globale Position der Wurzel auf den Umfang der jeweiligen Sphere projiziert
3. Algorithmus - 3. Phase Ermitteln der Position der Wurzel – Fall 2 • Dabei werden 3 mögliche Ergebnisse unterschieden: A) eine der Projektionen liegt im 3D Schnitt der Spheren, dann ist dies die Zielprojektion der Wurzel • B) beide Projektionen liegen im 3D Schnitt , dann ist die gesuchte Projektion, die welche der Originalen am nächsten ist
3. Algorithmus - 3. Phase Ermitteln der Position der Wurzel – Fall 2 • C) Wenn keine Projektion im 3D Schnitt liegt, dann wird die Wurzel auf den 3D Schnitt der Spheren projiziert
3. Algorithmus - 3. Phase Beseitigen von Unstetigkeiten • Unstetigkeiten können auftreten, zwischen Frames, wenn Zwangsbedingungen hinzukommen oder wegfallen. Das kommt daher, dass die Projektion der Wurzel sehr unterschiedliche Positionen annehmen kann. • Diese Unstetigkeit wird als Rootpopping bezeichnet. • Um Rootpopping zu beseitigen, werden erst die Positionen in einer kleinen Nachbarschaft ermittelt und dann der Durchschnitt berechnet Bild: Projektion der Wurzel (P) um Bedingungen zu erfüllen für: (L) linken Knöchel (R) rechten Knöchel (B) beide Knöchel Popping zwischen den Punkten
3. Algorithmus - 3. Phase Beseitigen von Unstetigkeiten • Rootpopping Bild: Projektion der Wurzel (P) um Bedingungen zu erfüllen für: (L) linken Knöchel (R) rechten Knöchel (B) beide Knöchel Popping zwischen den Punkten
3. Algorithmus - 4. PhaseAllgemein • die Kniee und die Hüfte werden justiert, damit Zielposition und Orientierung des Knöchels erreicht wird
3. Algorithmus - 4. PhaseEinstellen der Beinparameter • Zuerst wird das Knie gebeugt/gestreckt sodass die Distanz von der Hüfte zum Knöchel die gleiche ist wie die Distanz von der Hüfte zur Zielposition des Knöchels. Dabei darf das Knie nicht überstreckt werden. • Danach rotiert man den Winkel der Hüfte, damit das Bein Richtung Zielposition des Knöchels Ziegt
3. Algorithmus - 4. Phase Einstellen der Beinparameter • Im nächsten Schritt wird eine Rotation ausgeführt, die dem Knöchel seine globale Zielorientierung verleiht • Um Kniepoping zu verhindern, was bei einem fast voll ausgestrecktem Knie auftreten kann, wird in diesem Fall erlaubt das Bein zuverlängern um die Zielpositionen, die berechnet worden sind zu erreichen.
3. Algorithmus - 5. PhaseGlätten der Bewegung • Unstetigkeiten können immer noch vorhanden sein, wenn Bedingungen aktiv oder inaktiv werden. Um dies zu beheben werden die Korrekturen, die vorgenommen wurden um Zwangsbedingungen zu erfüllen miteinander verschmolzen. • Ein Fuß ohne Zwangsbedingung könnte immer noch in den Boden ragen. Wenn dann wird der Knöchel des Fußes so verschoben, das der Ballen und die Ferse über dem Boden sind und der Algorithmus aus Phase 4 wird angewendet um den Rest des Beinen einzustellen. • Der Letzte Schritt ist, sicherzustellen, dass die Zehen nicht in den Boden ragen. Dazu wird eine positive Rotation definiert, die die Zehen nach oben beugt.
4. ResultateAllgemein Der Algorithmus konnte in beschätigten Bewegungsdaten Footskating beheben und erzeugte keine neuen Bildfehler Durch kleine Retargeting Operationen entstandenes Footskating konnte vom Algorithmus behoben werden. Das Bild zeigt links, übereinander gelegte Bewegungsdaten ohne den Algorithmus und rechts, nachdem der Algorithmus die Daten bearbeitet hat.
5. Quellen • KOVAR, L., SCHREINER, J., AND GLEICHER, M. 2002. Footskate cleanup for motion capture editing. In Proceedings of the 2002 ACM Symposium on Computer Animation. • http://www.cs.wisc.edu/graphics/Gallery/kovar.vol/Cleanup/