[PYTHON] J'ai essayé d'expliquer le dernier modèle d'estimation de posture "Dark Pose" [CVPR2020]

introduction

Cette fois, nous présenterons l'article «** DARK **» sur le modèle d'estimation de posture 2D à partir des derniers articles adoptés en 2020.

Dans le modèle d'estimation de posture, la ** carte thermique ** est devenue la norme pour la représentation des coordonnées, mais elle n'a jamais été systématiquement étudiée.

Le papier présenté cette fois est un papier qui recherche systématiquement la carte thermique et propose ensuite une nouvelle représentation des coordonnées.

Exemple de carte thermique: à partir de réseaux de sabliers empilés pour l'optimisation de la pose humaine [^ 0] </ font>

Trois points principaux de cet article

: white_check_mark: * Atteint *** SOTA [^ 1](AP: 77.4) *** pour l'ensemble de données COCO! *

: white_check_mark: * Mise à jour de la carte thermique * ** méthode d'encodage ***! *

: white_check_mark: * Carte thermique mise à jour * ** méthode de décodage ***! *

Méthode proposée

Lors de la formation d'un classificateur, il est courant d'utiliser un vecteur One-hot, mais pour les modèles CNN tels que l'estimation de pose, il est courant d'utiliser une carte thermique.

Cependant, la méthode de représentation par carte thermique présente ** l'inconvénient ** que le coût de calcul augmente avec le carré de la résolution de l'image d'entrée **, il est donc nécessaire de compresser l'image avant de la faire passer à travers le modèle. Aussi, pour la même raison, l'image de sortie a une petite résolution, donc l'image de sortie doit être restaurée à la taille de l'image d'origine.

Cet article a examiné de plus près chacune de ces ** compression (encodage) ** et ** restauration (décodage) **.

① Encodage (compression)

Tout d'abord, parlons de la partie qui convertit les points de jonction en une carte thermique. Commençons par la méthode de création de carte thermique conventionnelle.

Méthode de création de carte thermique conventionnelle

Normalement, les coordonnées sous-échantillonnées ( blue dot </ font> → dans la figure ci-dessous) en utilisant la ** fonction floor ** (une fonction qui tronque après la virgule décimale) Une carte thermique est créée en arrondissant aux points violets </ font>) et en créant une distribution normale centrée sur ces coordonnées. Comme vous pouvez le voir, cette méthode ne produit pas de carte thermique précise.

image.png

Comment créer une nouvelle carte thermique

En revanche, la méthode proposée ** crée une distribution normale centrée sur les coordonnées d'origine **. Cela permet de créer des cartes thermiques plus élaborées.

image.png

La précision réelle est également nettement meilleure. (** Non biaisée ** est la méthode proposée) ↓

image.png

② Décoder (restaurer)

Ensuite, nous expliquerons le processus de recherche de la position du point de joint (dans l'image d'origine) à partir de la carte thermique de sortie. La partie encodage était relativement simple, mais la partie décodage est un peu compliquée.

Méthode de décodage traditionnelle

Tout d'abord, je vais expliquer la méthode de décodage conventionnelle. Actuellement, les méthodes de décodage grand public incluent celles qui n'utilisent que la valeur maximale de la carte thermique et celles qui ** prennent la moyenne pondérée globale **.

\bf p = \rm \frac{ \sum_{\it i \rm = 1}^{\it N} \it w_i \bf x_{\rm \it i}}{ \sum_{\it i \rm = 1}^{\it N} \it w_i}

$ \ Bf x $ est la position des pixels de la carte thermique et $ \ it w $ est la valeur de la carte thermique.

Nouvelle méthode de décodage

En revanche, dans cette méthode proposée, comme le montre la figure ci-dessous, des mesures d'amélioration sont proposées en trois étapes.

image.png

(A) Correction de la carte thermique

La carte de chaleur de sortie a souvent une forme dentelée proche de la valeur maximale, donc pour que le traitement post-étape fonctionne correctement, il doit être corrigé à l'avance à l'aide d'un ** filtre gaussien **.

\bf h' = \rm \it K \circledast \bf h

$ \ Circledast $ est une opération de convolution (filtre gaussien).

La figure ci-dessous montre la carte de chaleur avant (à gauche) et après (à droite) la correction. Vous pouvez voir que les irrégularités ont disparu.

(B) Recherche d'une solution consciente de la distribution

Ensuite, recherchez la position du point de jonction à partir de la carte thermique corrigée en (a).

Tout d'abord, comme prémisse majeure, nous faisons l'hypothèse que la carte thermique estimée est ** "une distribution normale bidimensionnelle", tout comme les données d'apprentissage.

\mathcal{G}(\bf x \rm; \bf \mu \rm , \Sigma) = \frac{1}{(2 \pi)|\Sigma|^{\frac{1}{2}}} \exp \left(-\frac{1}{2}(\bf x \rm - \bf \mu\rm)^{T} \Sigma^{-1}(\bf x \rm - \bf \mu \rm)\right)

$ \ Bf x $ est la position en pixels de la carte thermique, $ \ bf \ mu $ les coordonnées centrales de la distribution normale (** ← coordonnées souhaitées **), et $ \ rm \ Sigma $ est la matrice de covariance.

Sur la base de cette hypothèse, les coordonnées du point joint $ \ bf \ mu $ peuvent être dérivées en ajoutant la condition que "la pente est nulle lorsque la pente est prise à la valeur maximale de la distribution normale". (Pour plus de détails, résolvez en utilisant le développement de Taylor de l'approximation quadratique.)

\bf \mu = m - \left( \mathcal{D^{\prime \prime}\rm (\bf m \rm )} \rm \right) ^{-1} \mathcal{D^{\prime}\rm (\bf m \rm )}

$ \ Bf m $ est la position maximale du pixel.

(C) Restauration à la résolution d'image d'origine

Enfin, multipliez les coordonnées de joint estimées par une constante pour les ramener à la taille de l'image d'origine. (Cette partie est la même que la méthode conventionnelle.)

\hat{\bf p} = \rm{\lambda} \, \bf p

Grâce aux trois étapes ci-dessus, nous avons réussi à améliorer la précision. ↓

image.png

Résumé

Dans le dernier article de 2020, j'ai expliqué le modèle d'estimation de posture 2D ** "DARK" **.

DARK peut être incorporé dans divers modèles d'estimation de posture, donc je pense que c'est une bonne idée de l'incorporer dans le modèle que vous utilisez maintenant! Si vous êtes intéressé, assurez-vous de consulter Articles et GitHub.

en conclusion

** Ceux qui veulent numériser et analyser les personnes et les choses **. ** Je veux créer quelque chose d'intéressant en combinant la technologie 3D et l'apprentissage en profondeur! Ceux qui disent **.

Nous recherchons des amis avec qui travailler.

Si vous êtes intéressé, veuillez postuler à partir du lien ci-dessous! https://www.wantedly.com/companies/sapeet

Recommended Posts