$$\rightleftharpoonup{xx}$$
$$\longleftharp{xx}$$,
$$\longrightharp{xx}$$,
Die erste Voraussetzung für die vorgeschlagene Methode ist ein System, mit dem die Position von 3D-Objekten und Händen genau verfolgt werden kann. Der spezifische Aufbau ist in Abbildung 1A dargestellt und verwendet Hardware und Software, die von der Motion-Capture-Firma Qualisys hergestellt werden. Wir positionieren eine Werkbank innerhalb eines Tracking-Volumens (100 cm x 100 cm x 100 cm), das von acht Tracking-Kameras und sechs Videokameras, die auf einem kubischen Rahmen um den Arbeitsbereich angeordnet sind, aus mehreren Blickwinkeln abgebildet wird. Die Tracking-Kameras verfolgen die 3D-Position der reflektierenden Marker innerhalb des Tracking-Volumens mit 180 Bildern/s und mit einer räumlichen Auflösung von Submillimetern in 3D. Wir verwenden 4 mm reflektierende Marker, die mit hautfreundlichem doppelseitigem Klebeband an den Gegenständen und Händen befestigt werden. Die 3D-Markerpositionen werden von der Motion-Capture-Software verarbeitet. Der Diskussionsabschnitt befasst sich auch mit alternativen Motion-Capture-Systemen, die mit der vorgeschlagenen Methode eingesetzt werden könnten.
Um genaue 3D-Rekonstruktionen von realen Objekten zu erhalten, die erfasst und manipuliert werden, schlagen wir zwei Optionen vor. Die erste, die hier angenommen wird, besteht darin, von einem virtuellen 3D-Objektmodell in Form eines Polygonnetzes auszugehen. Solche 3D-Modelle können mit entsprechender Software (z. B. Blender 3D44) konstruiert und anschließend 3D-gedruckt werden (Abbildung 1B). Die zweite Möglichkeit besteht darin, ein vorhandenes, reales 3D-Objekt zu nehmen und die 3D-Scantechnologie zu verwenden, um eine Netzmodellreplik des Objekts zu erstellen. Unabhängig von der Strategie besteht das Endziel darin, sowohl ein reales 3D-Objekt als auch das entsprechende virtuelle 3D-Objektnetzmodell zu erhalten. Bemerkenswert ist, dass der hier beschriebene Ansatz nur mit starren (d. h. nicht verformbaren) Objekten funktioniert.
Sobald die 3D-Oberfläche eines Objekts als Netzmodell verfügbar ist, muss seine Position verfolgt und mitregistriert werden (Abbildung 1C). Dazu werden vier nicht-planare Reflexionsmarker auf der Oberfläche des realen Objekts angebracht und das Objekt innerhalb des Tracking-Volumens platziert. Anschließend werden die 3D-Positionen der Objektmarker kurz erfasst. Diese Erfassung wird verwendet, um die Entsprechung zwischen den vier Markern und vier Scheitelpunkten des Objektnetzmodells herzustellen. Dies geschieht mithilfe einer einfachen Ad-hoc-Softwareroute, die in der Python-API von Blender geschrieben ist. Im Viewport von Blender präsentiert das Programm das virtuelle Objekt zusammen mit den Markerpositionen, die als ein einzelnes Mesh-Objekt dargestellt werden, das aus einer Kugel für jeden Marker besteht. Der Benutzer kann dann das Objekt und/oder die Marker drehen und verschieben, um sie so auszurichten, dass sie mit den echten Markern übereinstimmen, die auf dem realen Objekt platziert sind. Das Programm registriert die Drehungen und Translationen, die angewendet werden, um eine einzelne Roto-Translation zu berechnen, die schließlich auf das ursprüngliche Objektnetz angewendet wird, wodurch ein Objektnetz bereitgestellt wird, das gemeinsam mit der Starrkörperdefinition in QTM registriert wird.
Wenn die Übereinstimmung hergestellt wurde, kann das virtuelle Objekt jedes Mal, wenn das reale Objekt innerhalb des Tracking-Volumens bewegt wird, an der neuen Position platziert werden, indem die Rotationsverschiebung zwischen den verfolgten Markern und den vier entsprechenden Netzknoten berechnet wird. Um stattdessen die Dynamik des Griffs zu erfassen, werden insgesamt 24 sphärische Reflexmarker mit doppelseitigem Klebeband an verschiedenen Orientierungspunkten der Hand angebracht (Abbildung 1D und Abbildung 2).
Zu Beginn eines Versuchs (Abbildung 1E) legt ein Teilnehmer seine Hand flach mit der Handfläche nach unten auf die Werkbank und schließt die Augen. Der Experimentator legt ein Zielobjekt vor dem Teilnehmer auf die Werkbank. Als nächstes signalisiert ein akustischer Hinweis dem Teilnehmer, die Augen zu öffnen und den Griff auszuführen. In unseren Demonstrationen geht es darum, das Zielobjekt zu erreichen und zu greifen, es senkrecht um ca. 10 cm anzuheben, abzusetzen und die Hand wieder in die Ausgangsposition zu bringen. Ein in Python 3.7 geschriebenes Skript steuert das Experiment. Bei jedem Versuch wählt das Skript die aktuellen Zustandseinstellungen aus und teilt sie dem Experimentator mit (z. B. Objektidentität und Positionierung). Das Skript steuert auch das Timing des Versuchs, einschließlich akustischer Hinweise und des Starts und Stopps der Motion-Capture-Aufnahmen.
Gliedmaßen werden nicht nur durch ihre Position im 3D-Raum charakterisiert, sondern auch durch ihre Pose. Um also eine vollständige 3D-Rekonstruktion einer menschlichen Hand zu erhalten, die einen echten Griff ausführt, benötigen wir nicht nur die Positionen jedes Gelenks im 3D-Raum, sondern auch die relative Pose (Translation und Rotation) jedes Gelenks in Bezug auf sein Muttergelenk (Abbildung 1F). Skelettgelenkpositionen und -orientierungen können mit Hilfe der inversen Kinematik aus den Markerpositionen abgeleitet werden. Dazu verwenden wir hier den von der QTM-Software bereitgestellten Skeleton-Solver. Damit der Solver funktioniert, müssen wir zunächst eine Skelettdefinition bereitstellen, die die Position und Ausrichtung jedes Gelenks mit mehreren Markerpositionen verknüpft. Auf diese Weise wird eine Skelettdefinition konstruiert und das Skelett-Rig mit den Markerdaten über das QTM Connect-Plugin für Maya verknüpft. Wir erstellen personalisierte Skelettdefinitionen für jeden Teilnehmer, um die Genauigkeit der Skelettanpassungen an die Markerdaten zu maximieren. Für jeden Teilnehmer passen wir manuell ein Handskelett an ein einzelnes Bild von Motion-Capture-Daten an. Nachdem wir eine teilnehmerspezifische Skelettdefinition erhalten haben, führen wir den Skelett-Solver aus, um die Skelettgelenkposen für jeden Frame jedes Versuchs im Experiment zu schätzen.
Für jeden Frame jedes Versuchs in einem Experiment generieren wir ein Handnetz, das die aktuelle Handhaltung mit dem Open-Source- und vortrainierten Handnetzgenerierungswerkzeug DeepHandMesh28 rekonstruiert (Abbildung 1G). DeepHandMesh ist ein tiefes Encoder-Decoder-Netzwerk, das personalisierte Handnetze aus Bildern generiert. Zunächst schätzt der Encoder die Pose einer Hand innerhalb eines Bildes (d. h. die Euler-Winkel des Gelenks). Anschließend werden die geschätzte Handpose und ein personalisierter ID-Vektor in den Decoder eingegeben, der einen Satz von drei additiven Korrekturen für ein geriggtes Vorlagengitter schätzt. Schließlich wird das Schablonennetz entsprechend der geschätzten Handpose und Korrekturen mithilfe von linearem Blend-Skinning verformt. Das erste Korrektiv ist ein ID-abhängiges Skelett-Korrektiv, bei dem das Skelett-Rig an die personenbezogenen Gelenkpositionen angepasst wird. Bei den anderen beiden Korrekturen handelt es sich um Netzkorrekturen, bei denen die Netzscheitelpunkte angepasst werden, um die Handoberfläche des Teilnehmers besser darzustellen. Eines der Netzkorrekturmittel ist ein ID-abhängiges Netzkorrekturmittel, das die Oberflächenstruktur der Hand eines einzelnen Teilnehmers berücksichtigt. Das letzte Netzkorrekturmittel ist stattdessen ein posenabhängiges Scheitelpunktkorrekturmittel, das die Verformungen der Handoberfläche aufgrund der aktuellen Handhaltung berücksichtigt.
DeepHandMesh wird mit schwacher Überwachung mit 2D-Gelenkschlüsselpunkten und Szenentiefenkarten trainiert. Hier verwenden wir nur den vortrainierten DeepHandMesh-Decoder, um Handnetzrekonstruktionen zu erzeugen, die auf folgende Weise modifiziert werden (Abbildung 3). Da das Netzwerk nicht auf bestimmte Teilnehmer trainiert wird, wird zunächst das generische ID-abhängige Netzkorrekturmittel verwendet, das mit dem vortrainierten Modell bereitgestellt wird (Abbildung 3A). Des Weiteren wird das ID-abhängige Skelettkorrektiv mit Hilfe des QTM-Skelettlösers abgeleitet, wie oben beschrieben (Abbildung 3B). Es wird eine proportionale Skalierung der Hand mit der Skelettlänge angenommen, und die Maschendicke wird gleichmäßig um einen Faktor skaliert, der sich aus der relativen Skalierung des Skeletts ergibt, so dass sich das Netz der Handgröße des Probanden besser annähert (Abbildung 3C). Dieses modifizierte Netz wird zusammen mit der aktuellen Handpose (abgeleitet aus den Markerdaten) und der 3D-Position und -Ausrichtung des Handgelenks in den Decoder eingegeben. Der Decoder berechnet also das aktuelle posenabhängige Korrektiv, wendet alle Korrekturen und Rotationsverschiebungen an und gibt eine 3D-Handnetzrekonstruktion der aktuellen Handhaltung im selben Koordinatensystem wie das 3D-Track-Objektnetz aus (Abbildung 3D).

Abbildung 3: Modifikationen am vortrainierten DeepHandMesh-Decoder . (A) Korrigiertes, generisches ID-abhängiges Mesh-Korrekturiv. (B) ID-abhängiges Skelettkorrektiv, abgeleitet durch inverse Kinematik in Schritt 10. (C) Die Größe des Handnetzes wird um den gleichen Faktor wie die Skelettgelenke skaliert. (D) Abschließende 3D-Rekonstruktion des Handnetzes der aktuellen Handpose. Bitte klicken Sie hier, um eine größere Version dieser Abbildung zu sehen.
Nach der Rekonstruktion von 3D-Netzmodellen sowohl für die Hand eines Teilnehmers als auch für ein gegriffenes Objekt können die Hand-Objekt-Kontaktbereiche durch Berechnung des Schnittpunkts zwischen den Hand- und Objektnetzen geschätzt werden (Abbildung 1H). Dahinter steckt die Annahme, dass die reale Hand durch den Kontakt mit der Oberfläche verformt wird, was bedeutet, dass das Skelett näher an die Oberfläche kommen kann, als es möglich wäre, wenn die Hand starr wäre, wodurch Teile des Handnetzes durch das Objektnetz hindurchgehen können. Dadurch können die Kontaktflächen als Überlappungsbereiche zwischen den beiden Netzen angenähert werden.
Um diese Überlappungsbereiche zu berechnen, definieren wir Objektnetzscheitelpunkte, die im 3D-Volumen des Handnetzes enthalten sind, als in Kontakt mit der Hand. Diese Scheitelpunkte werden mit einem Standard-Raytracing-Ansatz45 identifiziert. Für jeden Scheitelpunkt des Objektnetzes wird ein Strahl von diesem Scheitelpunkt zu einem beliebigen 3D-Punkt außerhalb des Handnetzes geworfen. Wir beurteilen dann die Anzahl der Schnittpunkte, die zwischen dem gegossenen Strahl und den Dreiecken auftreten, aus denen die Oberfläche der Hand besteht. Wenn die Anzahl der Schnittpunkte ungerade ist, ist der Objektscheitelpunkt im Handnetz enthalten. Wenn die Anzahl der Schnittpunkte gerade ist, befindet sich der Objektscheitelpunkt außerhalb des Handnetzes. Die Kontaktbereiche auf der Oberfläche des Objekts können somit als die Menge der Dreiecksflächen angenähert werden, deren Scheitelpunkte alle innerhalb des Handnetzes enthalten sind. Wir können die gleiche Begründung auf die im 3D-Volumen des Objektnetzes enthaltenen Handnetzscheitelpunkte anwenden, um die Kontaktbereiche auf der Handoberfläche zu schätzen. Bemerkenswert ist, dass auch fortgeschrittenere Ansätze für boolesche Netzoperationen verwendet werden könnten31.
Video 1 zeigt ein Video einer Hand, verfolgter Punkte und eines gemeinsam registrierten Netzes, die sich alle während eines einzigen Griffs zu einer 3D-gedruckten Katzenfigur nebeneinander bewegen. Abbildung 4A zeigt stattdessen ein einzelnes Bild zum Zeitpunkt des Hand-Objekt-Kontakts von einem Griff zu einem 3D-gedruckten Croissant, zusammen mit den Hand-Objekt-Netzrekonstruktionen (Abbildung 4B) und den geschätzten Kontaktbereichen auf der Oberfläche des Croissants (Abbildung 4C).

Abbildung 4: Geschätzte Hand-Objekt-Kontaktregionen. (A) Verfolgte Hand und Objekt, die von einer der Tracking-Kameras während eines Griffs betrachtet werden. (B) Rekonstruiertes Handnetz und Gitter für verfolgte Objekte, die aus demselben Blickwinkel wie die Tracking-Kamera gerendert wurden. (C) Kontaktbereiche auf der Oberfläche des Objekts, die von mehreren Blickwinkeln aus gesehen werden. Bitte klicken Sie hier, um eine größere Version dieser Abbildung zu sehen.
Video 1: Netzrekonstruktionen von Hand und Objekt. GIF-Animation der Hand, verfolgte Markierungen und Rekonstruktionen des Hand- und Objektnetzes während eines einzigen Griffs, betrachtet aus demselben Kamerablickwinkel. Bitte klicken Sie hier, um dieses Video herunterzuladen.