Avanzando nella stima della posa 3D da immagini singole
Questo studio presenta un nuovo metodo per stimare le pose corporee 3D a partire da immagini 2D.
― 6 leggere min
Questo lavoro si concentra su come capire le posizioni del corpo umano in 3D usando solo un'immagine. Presentiamo un nuovo modo di farlo combinando due metodi: Cinematica Avanzata (FK) e reti neurali. Questa combinazione ci permette di prevedere in modo rapido e preciso dove si trovano le parti del corpo di una persona in tre dimensioni.
Nel nostro metodo, il corpo umano è rappresentato come una rete di articolazioni, tipo un albero genealogico, dove ogni giunto ha dei limiti su come può muoversi. Quando troviamo i Punti Chiave del corpo da un'immagine 2D, usiamo reti neurali per sollevare queste informazioni in 3D, prevedendo come ruotano le articolazioni e quanto sono lunghi i segmenti ossei. Dopo, mescoliamo queste previsioni con un set di regole su come il corpo può muoversi. Il metodo che abbiamo sviluppato funziona bene e può stimare rapidamente le posizioni corporee in 3D.
Abbiamo testato il nostro metodo e abbiamo scoperto che è molto più preciso rispetto a un metodo chiamato MediaPipe. Abbiamo verificato le sue prestazioni guardando agli errori nelle posizioni delle articolazioni e come sembravano naturali le pose. Abbiamo anche dimostrato che il nostro metodo funziona bene con diversi set di dati e tipi di lingua dei segni. Il nostro modello funziona in 100-200 millisecondi per ogni immagine solo sulla CPU.
La stima delle pose 3D è un'area di ricerca importante. Recentemente, sono emersi molti nuovi metodi che utilizzano il deep learning per identificare i punti 2D dei corpi umani nelle immagini. Tuttavia, poiché le persone si muovono in molti modi diversi e possono apparire molto diverse, questo rende il lavoro abbastanza complicato. Passare da immagini 2D a pose 3D comporta delle incertezze che possono essere risolte solo notando piccoli dettagli visivi. Questo richiede spesso ragionamenti intelligenti o metodi statistici complicati.
Nel nostro lavoro, dimostriamo che allenando il nostro modello specificamente per la stima delle pose, possiamo ottenere risultati migliori rispetto ai metodi generali. Il nostro focus è sulla lingua dei segni, ma anche in casi più ampi, il nostro metodo semplice può superare tecniche più complesse.
Capire le pose umane è un passo chiave per riconoscere la lingua dei segni poiché usare uno scheletro ci fa preoccuparci di meno su chi sia la persona, quali vestiti indossi e come sia lo sfondo. Tuttavia, la lingua dei segni ha le sue sfide che possono ostacolare i metodi tipici di stima delle pose. Ad esempio, durante la firma, le mani si muovono molto velocemente, il che può creare sfocature e portare a errori nel rilevamento delle parti del corpo.
Inoltre, la lingua dei segni coinvolge molte interazioni tra le mani e il viso, il che può confondere i metodi di stima delle pose. Abbiamo esempi che mostrano come altri sistemi come OpenPose e Monocular Total Capture facciano fatica con queste interazioni, portando a pose poco chiare o sbagliate.
Abbiamo creato un sistema che utilizza un'immagine per creare una posa 3D. Il primo passo è rilevare i punti in 2D usando uno strumento come HRNet o MediaPipe. Poi, reti separate prevedono gli angoli e le lunghezze delle ossa sia per il corpo che per le mani. Infine, mettiamo insieme queste informazioni usando la FK per creare una posa 3D completa.
Ci sono due modi principali per affrontare il problema di stimare le pose 3D da un'immagine singola. Il primo modo indovina direttamente i punti 3D in base alle posizioni 2D o alle caratteristiche di un modello immagine. Il secondo metodo combina FK con le informazioni 2D sollevate.
Una scelta che dobbiamo fare è se prevedere l'orientamento delle articolazioni invece della loro posizione. Alcuni metodi hanno provato a usare rappresentazioni diverse per le rotazioni 3D. Ad esempio, usare quaternioni consente migliori prestazioni in alcuni settaggi.
Vari studi precedenti hanno dimostrato metodi che vanno dall'usare reti neurali per prevedere le pose a raffinarle usando tecniche che garantiscano che gli angoli e le lunghezze si adattino bene.
Abbiamo progettato il nostro sistema usando una CNN per trovare i punti chiave 2D, seguita da diversi strati che creano rotazioni delle articolazioni e lunghezze delle ossa. Infine, applichiamo FK per ottenere la posa 3D completa. La rete angolare ci aiuta specificamente a definire i movimenti delle articolazioni.
Usare angoli di Eulero per rappresentare le rotazioni ha dei vantaggi. Poiché il corpo umano ha molte articolazioni, alcune delle quali possono muoversi solo in uno o due modi, rappresentarle in modo semplice è cruciale. Inoltre, usare angoli di Eulero ci consente di aggiungere limiti a come le articolazioni possono muoversi, assicurando che le previsioni siano più realistiche.
La rete angolare utilizza diversi strati e processa i punti 2D per prevedere angoli validi. Gli angoli in uscita sono normalizzati per rientrare in limiti specifici. Questo previene rotazioni insolite e mantiene il realismo delle pose.
La rete per la lunghezza delle ossa è più semplice ma comunque necessaria per garantire precisione. Prevede le lunghezze delle ossa, mantenendole positive.
Combinando gli output della rete angolare e di quella per la lunghezza delle ossa, lo strato FK crea una posa 3D completa. La posizione e la rotazione di ogni articolazione vengono calcolate in base all'articolazione radice, che di solito si trova ai fianchi, controllando la posa complessiva.
Per allenare il modello, usiamo diversi obiettivi per l'MLP angolare. Questi includono la differenza assoluta dagli angoli reali, le distanze che confrontano la nostra posa 3D generata con quella reale e le proiezioni sul piano dell'immagine.
Ci sono vantaggi e svantaggi per ogni tipo di funzione di perdita. Un metodo aiuta ad accelerare l'allenamento ma non insegna molto al modello su dove dovrebbero essere i punti in 3D. Un altro metodo si concentra sulla precisione nello spazio 3D, ma questo richiede più tempo per l'allenamento perché deve imparare anche a proiettare sull'immagine.
Nei nostri esperimenti, abbiamo usato due modelli, uno per il corpo e uno per le mani. Questo aiuta a evitare problemi poiché gli errori sul corpo possono essere molto più grandi di quelli sulle mani. Allenarli separatamente consente una migliore prestazione.
Abbiamo addestrato i nostri modelli usando il dataset di lingua dei segni Smile, che è stato creato con cura per questo scopo. Eseguire il nostro sistema su questo dataset ci ha permesso di vedere quanto bene funziona rispetto a MediaPipe e ad altri sistemi su diverse lingue dei segni.
Quando abbiamo confrontato i nostri risultati contro MediaPipe su diversi dataset di immagini, abbiamo trovato che il nostro metodo produce pose più chiare e accurate. MediaPipe spesso ha avuto difficoltà, specialmente con le mani, portando a output più rumorosi.
In sintesi, la nostra ricerca mostra un metodo per trasformare punti 2D da un'immagine singola in una valida posa corporea 3D. La combinazione di reti per prevedere i movimenti delle articolazioni con un modello cinematico ci consente di ottenere risultati accurati. Concentrandoci sulla lingua dei segni, abbiamo dimostrato che il nostro metodo ha battuto modelli comunemente usati sia nelle valutazioni visive che in quelle di accuratezza, raggiungendo risultati all'avanguardia anche nella stima delle pose 3D in generale.
Titolo: Improving 3D Pose Estimation for Sign Language
Estratto: This work addresses 3D human pose reconstruction in single images. We present a method that combines Forward Kinematics (FK) with neural networks to ensure a fast and valid prediction of 3D pose. Pose is represented as a hierarchical tree/graph with nodes corresponding to human joints that model their physical limits. Given a 2D detection of keypoints in the image, we lift the skeleton to 3D using neural networks to predict both the joint rotations and bone lengths. These predictions are then combined with skeletal constraints using an FK layer implemented as a network layer in PyTorch. The result is a fast and accurate approach to the estimation of 3D skeletal pose. Through quantitative and qualitative evaluation, we demonstrate the method is significantly more accurate than MediaPipe in terms of both per joint positional error and visual appearance. Furthermore, we demonstrate generalization over different datasets. The implementation in PyTorch runs at between 100-200 milliseconds per image (including CNN detection) using CPU only.
Autori: Maksym Ivashechkin, Oscar Mendez, Richard Bowden
Ultimo aggiornamento: 2023-08-18 00:00:00
Lingua: English
URL di origine: https://arxiv.org/abs/2308.09525
Fonte PDF: https://arxiv.org/pdf/2308.09525
Licenza: https://creativecommons.org/licenses/by-nc-sa/4.0/
Modifiche: Questa sintesi è stata creata con l'assistenza di AI e potrebbe presentare delle imprecisioni. Per informazioni accurate, consultare i documenti originali collegati qui.
Si ringrazia arxiv per l'utilizzo della sua interoperabilità ad accesso aperto.