$$\rightleftharpoonup{xx}$$
$$\longleftharp{xx}$$,
$$\longrightharp{xx}$$,
Il primo requisito per il metodo proposto è un sistema per tracciare con precisione la posizione di oggetti e mani 3D. La configurazione specifica è mostrata nella Figura 1A e utilizza hardware e software prodotti dalla società di motion capture Qualisys. Posizioniamo un banco di lavoro all'interno di un volume di tracciamento (100 cm x 100 cm x 100 cm), che viene ripreso da più angolazioni da otto telecamere di tracciamento e sei videocamere disposte su una cornice cubica che circonda lo spazio di lavoro. Le telecamere di tracciamento tracciano la posizione 3D dei marcatori riflettenti all'interno del volume di tracciamento a 180 fotogrammi/s e con risoluzione spaziale 3D sub-millimetrica. Utilizziamo marcatori riflettenti da 4 mm, che vengono attaccati agli oggetti e alle mani utilizzando nastro biadesivo delicato sulla pelle. Le posizioni dei marcatori 3D vengono elaborate dal software di motion capture. La sezione di discussione esamina anche i sistemi di motion capture alternativi che potrebbero essere impiegati con il metodo proposto.
Per ottenere accurate ricostruzioni 3D di oggetti reali afferrati e manipolati, proponiamo due opzioni. Il primo, che è quello adottato qui, è quello di partire da un modello di oggetti 3D virtuale sotto forma di una mesh poligonale. Tali modelli 3D possono essere costruiti utilizzando software appropriati (ad esempio, Blender 3D44) e quindi stampati in 3D (Figura 1B). La seconda opzione consiste nel prendere un oggetto 3D reale esistente e utilizzare la tecnologia di scansione 3D per costruire una replica del modello mesh dell'oggetto. Qualunque sia la strategia, l'obiettivo finale è quello di ottenere sia un oggetto 3D reale che il corrispondente modello di mesh di oggetti 3D virtuali. Da notare che l'approccio qui descritto funziona solo con oggetti rigidi (cioè indeformabili).
Una volta che la superficie 3D di un oggetto è disponibile come modello di mesh, la sua posizione deve essere tracciata e co-registrata (Figura 1C). Per fare ciò, quattro indicatori riflettenti non planari sono attaccati alla superficie dell'oggetto reale e l'oggetto viene posizionato all'interno del volume di tracciamento. Le posizioni 3D dei marcatori oggetto vengono quindi brevemente acquisite. Questa acquisizione viene utilizzata per stabilire la corrispondenza tra i quattro marcatori e i quattro vertici del modello di mesh di oggetti. Questo viene fatto utilizzando un semplice percorso software ad hoc scritto nell'API Python di Blender. All'interno del Viewport di Blender, il programma presenta l'oggetto virtuale insieme alle posizioni dei marcatori che sono rappresentati come un singolo oggetto mesh composto da una sfera per ciascun marcatore. L'utente può quindi ruotare e traslare l'oggetto e/o i marcatori per allinearli in modo tale che co-allineino con i marcatori reali posizionati sull'oggetto reale. Il programma registrerà le rotazioni e la traslazione applicate per calcolare una singola roto-traslazione che viene infine applicata alla mesh di oggetti originale, fornendo una mesh di oggetti che viene co-registrata con la definizione di corpo rigido in QTM.
Avendo stabilito la corrispondenza, ogni volta che l'oggetto reale viene spostato all'interno del volume di tracciamento, l'oggetto virtuale può essere posizionato nella nuova posizione calcolando la roto-traslazione tra i marcatori tracciati e i quattro vertici di mesh corrispondenti. Per registrare la dinamica della presa, invece, un totale di 24 marcatori riflettenti sferici sono attaccati su diversi punti di riferimento della mano utilizzando nastro biadesivo (Figura 1D e Figura 2).
All'inizio di una prova (Figura 1E), un partecipante appoggia la mano sul banco di lavoro con il palmo rivolto verso il basso e chiude gli occhi. Lo sperimentatore posiziona un oggetto target sul banco di lavoro di fronte al partecipante. Successivamente, un segnale uditivo segnala al partecipante di aprire gli occhi ed eseguire la presa. Nelle nostre dimostrazioni, il compito è quello di raggiungere e afferrare l'oggetto bersaglio, sollevarlo verticalmente di circa 10 cm, abbassarlo e riportare la mano nella sua posizione di partenza. Uno script scritto in Python 3.7 controlla l'esperimento. In ogni prova, lo script seleziona e comunica le impostazioni delle condizioni correnti allo sperimentatore (ad esempio, l'identità e il posizionamento dell'oggetto). Lo script controlla anche i tempi di prova, compresi i segnali uditivi e l'inizio e l'arresto delle registrazioni di motion capture.
Gli arti non sono caratterizzati solo dalla loro posizione nello spazio 3D, ma anche dalla loro posa. Pertanto, per ottenere una ricostruzione 3D completa di una mano umana che esegue una presa reale, abbiamo bisogno non solo delle posizioni di ciascuna articolazione nello spazio 3D, ma anche della posa relativa (traslazione e rotazione) di ciascuna articolazione rispetto alla sua articolazione madre (Figura 1F). Le posizioni e gli orientamenti delle articolazioni scheletriche possono essere dedotti dalle posizioni dei marcatori utilizzando la cinematica inversa. Per fare ciò, qui utilizziamo il risolutore scheletro fornito dal software QTM. Affinché il solutore funzioni, dobbiamo prima fornire una definizione di scheletro che colleghi la posizione e l'orientamento di ciascun giunto a più posizioni del marcatore. Una definizione di scheletro è, quindi, costruita, e lo skeleton rig è collegato ai dati del marker usando il plugin QTM Connect per Maya. Creiamo definizioni di ossatura personalizzate per ogni partecipante per massimizzare la precisione dello scheletro che si adatta ai dati del marcatore. Per ogni partecipante, inseriamo manualmente uno scheletro della mano su un singolo fotogramma di dati di motion capture. Dopo aver ottenuto una definizione di scheletro specifica per il partecipante, eseguiamo quindi il solutore dello scheletro per stimare le pose articolari scheletriche per ogni fotogramma di ogni prova nell'esperimento.
Per ogni fotogramma di ogni prova in un esperimento, generiamo una mesh a mano che ricostruisce la posa della mano corrente utilizzando lo strumento di generazione di mesh manuali open source e preaddestrato, DeepHandMesh28 (Figura 1G). DeepHandMesh è una rete di codificatori-decodificatori profondi che genera mesh manuali personalizzate dalle immagini. In primo luogo, l'encoder stima la posa di una mano all'interno di un'immagine (cioè gli angoli di Eulero congiunti). Quindi, la posa della mano stimata e un vettore ID personalizzato vengono inseriti nel decodificatore, che stima una serie di tre correttivi additivi a una mesh di modelli truccati. Infine, la mesh del modello viene deformata in base alla posa della mano stimata e ai correttivi utilizzando la scrosciatura lineare della miscela. Il primo correttivo è uno scheletro correttivo ID-dipendente attraverso il quale il rig scheletrico viene regolato per incorporare le posizioni articolari specifiche della persona. Gli altri due correttivi sono correttivi di mesh attraverso i quali i vertici della mesh vengono regolati per rappresentare meglio la superficie della mano del partecipante. Uno dei correttivi mesh è un correttivo mesh dipendente dall'ID che tiene conto della struttura superficiale della mano di un singolo partecipante. Il correttivo finale della mesh è invece un correttivo di vertice dipendente dalla posa che tiene conto delle deformazioni della superficie della mano dovute alla posa della mano corrente.
DeepHandMesh viene addestrato utilizzando una supervisione debole con punti chiave di giunzione 2D e mappe di profondità della scena. Qui, utilizziamo solo il decodificatore DeepHandMesh pre-addestrato per generare ricostruzioni di mesh manuali, modificate nei seguenti modi (Figura 3). In primo luogo, poiché la rete non è addestrata su partecipanti specifici, viene utilizzato il correttivo generico della mesh dipendente dall'ID fornito con il modello preaddestrato (Figura 3A). Inoltre, il correttivo dello scheletro dipendente dall'ID viene derivato utilizzando il solutore dello scheletro QTM come descritto sopra (Figura 3B). Si assume una scala proporzionale della mano con la lunghezza dello scheletro e lo spessore della maglia è uniformemente scalato da un fattore derivato dalla scala relativa dello scheletro in modo tale che la maglia si avvicini meglio alla dimensione della mano del partecipante (Figura 3C). Questa mesh modificata viene immessa al decodificatore, insieme alla posa della mano corrente (derivata dai dati del marcatore) e alla posizione e all'orientamento 3D del polso. Il decodificatore, quindi, calcola il correttivo dipendente dalla posa corrente, applica tutti i correttivi e le roto-traslazioni e restituisce una ricostruzione 3D della mesh della mano corrente nella stessa cornice di coordinate della mesh di oggetti tracciati 3D (Figura 3D).

Figura 3: Modifiche al decodificatore DeepHandMesh pre-addestrato . (A) Correttivo mesh generico e generico dipendente dall'ID. (B) Correttivo dello scheletro ID-dipendente derivato attraverso la cinematica inversa nella fase 10. (C) La dimensione della maglia della mano è scalata dello stesso fattore delle articolazioni scheletriche. (D) Ricostruzione finale della maglia della mano 3D della posa della mano corrente. Fare clic qui per visualizzare una versione ingrandita di questa figura.
Dopo aver ricostruito i modelli di mesh 3D sia per la mano di un partecipante che per un oggetto afferrato, le regioni di contatto mano-oggetto possono essere stimate calcolando l'intersezione tra le maglie della mano e dell'oggetto (Figura 1H). L'ipotesi alla base di questo è che la mano reale è deformata dal contatto con la superficie, il che significa che lo scheletro può avvicinarsi alla superficie di quanto sarebbe possibile se la mano fosse rigida, il che consente a porzioni della rete della mano di passare attraverso la rete dell'oggetto. Di conseguenza, le aree di contatto possono essere approssimate come le regioni di sovrapposizione tra le due maglie.
In particolare, per calcolare queste regioni di sovrapposizione, definiamo i vertici della mesh oggetto contenuti all'interno del volume 3D della mesh della mano come a contatto con la mano. Questi vertici sono identificati utilizzando un approccio standard di raytracing45. Per ogni vertice della mesh oggetto, viene proiettato un raggio da quel vertice a un punto 3D arbitrario al di fuori della mesh manuale. Valutiamo quindi il numero di intersezioni che si verificano tra il raggio fuso e i triangoli che compongono la superficie della mano. Se il numero di intersezioni è dispari, il vertice dell'oggetto è contenuto all'interno della mesh manuale. Se il numero di intersezioni è pari, il vertice dell'oggetto si trova all'esterno della mesh manuale. Le regioni di contatto sulla superficie dell'oggetto possono, quindi, essere approssimate come l'insieme delle facce triangolari i cui vertici sono tutti contenuti all'interno della maglia della mano. Possiamo applicare lo stesso razionale ai vertici della mesh manuale contenuti nel volume 3D della mesh dell'oggetto per stimare le regioni di contatto sulla superficie della mano. In particolare, potrebbero essere utilizzati anche approcci più avanzati alle operazioni di mesh booleane31.
Il video 1 mostra un video di una mano, punti tracciati e mesh co-registrate che si muovono fianco a fianco durante una singola presa su una figurina di gatto stampata in 3D. La Figura 4A mostra invece un singolo fotogramma al momento del contatto mano-oggetto da una presa a un croissant stampato in 3D, insieme alle ricostruzioni della maglia mano-oggetto (Figura 4B) e alle regioni di contatto stimate sulla superficie del croissant (Figura 4C).

Figura 4: Regioni di contatto mano-oggetto stimate. (A) Mano e oggetto tracciati visti da una delle telecamere di tracciamento durante una presa. (B) Mesh manuale ricostruita e mesh di oggetti tracciati renderizzati dallo stesso punto di vista della telecamera di tracciamento. (C) Regioni di contatto sulla superficie dell'oggetto viste da più punti di vista. Fare clic qui per visualizzare una versione ingrandita di questa figura.
Video 1: Ricostruzioni in rete della mano e dell'oggetto. Animazione Gif della mano, marcatori tracciati e ricostruzioni della maglia di mani e oggetti durante una singola presa vista dallo stesso punto di vista della telecamera. Clicca qui per scaricare questo video.