Google lance BodyPix 2.0, un outil de segmentation de l'image corporelle qui fonctionne bien sur iPhone

Xiaocha depuis le temple d'Aofei Rapport Qubit | Numéro public QbitAI

Aujourd'hui, Google a officiellement lancé un outil de segmentation de l'image humaine à l'aide de TensorFlow.js BodyPix 2.0 , Une mise à niveau majeure de l'outil, un support multi-personnes et une précision améliorée.

BodyPix peut diviser l'image en pixels qui appartiennent à des personnes et ceux qui n'en ont pas. La partie qui appartient à des personnes peut être classée en une des vingt-quatre parties du corps.

BodyPix peut être exécuté directement dans le navigateur, les développeurs n'ont qu'à ajouter quelques lignes de code, peuvent être utilisés avec l'ordinateur ou la caméra du téléphone portable.

Avec les paramètres par défaut, BodyPix peut être utilisé sur un MacBook Pro 15 pouces 25 fps Estimer la vitesse et rendre la segmentation des parties humaines et corporelles. Sur l'iPhone X, BodyPix peut 21 fps La vitesse est estimée.

BodyPix a été lancé en février de cette année. Les principales mises à jour de cette version 2.0 sont: la prise en charge d'images multi-personnes, l'ajout de modèles basés sur ResNet-50, de nouvelles API, la pondération et la prise en charge d'images de différentes tailles.

Démo

Sur la page d'accueil GitHub du projet, TensorFlow donne quelques démonstrations d'utilisation de base du logiciel BodyPix 2.0, ainsi qu'une version Web de la démo pour l'expérience utilisateur.

Segmentation portrait

Pour une image donnée avec une ou plusieurs personnes, la segmentation portrait peut prédire la segmentation de toutes les personnes. segmentPerson Renvoie PersonSegmentation, qui correspond à l'objet de la segmentation de personne dans l'image.

Par défaut, segmentPerson ne fait pas de ambiguïté entre les différents individus. Donc, si vous devez faire la distinction entre différentes personnes, veuillez utiliser segmentMultiPerson, mais l'introduction de cette méthode entraînera une vitesse de fonctionnement plus lente.

Le résultat ci-dessus renvoie un ensemble de tableaux 0 et 1, utilisé pour indiquer si le pixel appartient à une personne.

Panne des parties du corps

BodyPix segmentPersonParts La méthode peut prédire la segmentation de 24 parties du corps pour tout le monde.

PartSegmentation fusionnera toutes les personnes, et la valeur de retour est l'encodage de chaque pixel correspondant à la partie du corps. De même, si vous devez faire la distinction entre plusieurs personnes, utilisez segmentMultiPersonParts.

Les codes correspondants pour différentes parties du corps sont indiqués dans le tableau ci-dessous:

Sortie du résultat sur l'image

BodyPix contient également d'autres fonctions utilitaires qui peuvent synthétiser les résultats de sortie avec l'image d'origine pour obtenir l'image rendue dont vous avez besoin.

bodyPix.toMask Vous pouvez ajouter un calque de masque aux personnes et à l'arrière-plan, spécifier la couleur et l'opacité des pixels rendus.

bodyPix.toColoredPartMask Vous pouvez ajouter un tableau de couleurs 24 couleurs aux parties du corps et chaque partie du corps correspond à une couleur du tableau.

Ce qui précède est l'utilisation des fonctions de base de BodyPix.

Étant donné que BodyPix peut distinguer le corps humain et l'arrière-plan, nous pouvons l'utiliser pour obtenir un flou d'arrière-plan en temps réel, la méthode API appelée est bodyPix.drawBokehEffect .

Utilisez BodyPix pour reconnaître les fonctions des différentes parties du corps, vous pouvez appeler bodyPix.blurBodyPart Mosaïque le visage.

En outre, il existe d'autres API de dessin d'images, qui ne sont pas répertoriées ici.

méthode d'installation

BodyPix est très facile à utiliser, les utilisateurs peuvent l'intégrer avec des balises de script en HTML:

< html > < corps > < ! -Charger TensorFlow.js- > < script src = "https://cdn.jsdelivr.net/npm/@tensorflow/tfjs@0.13.3" > < / script > < ! -Charger BodyPix- > < script src = "https://cdn.jsdelivr.net/npm/@tensorflow-models/body-pix" > < / script > bodypix.load (). then (function (net) { // Modèle BodyPix chargé }); < / script > < / corps > < / html >

Ou installez via npm:

npm install @ tensorflow-models / body-pix

Utilisez ensuite le module es6 pour importer:

importer * en tant que bodyPix à partir de '@ tensorflow-models / body-pix'; fonction asynchrone loadAndUseBodyPix () { const net = attendre bodyPix.load (); // Modèle BodyPix chargé }

Comment accélérer BodyPix

BodyPix est livré avec des modèles de différentes tailles et a des performances différentes. En définissant la taille du modèle et la taille du pas de sortie, un compromis peut être fait entre la vitesse de course et la précision.

Par défaut, BodyPix se charge 0,75 fois MobileNetV1 L'architecture convient aux ordinateurs GPU bas de gamme et le modèle importé 0,50 fois peut être utilisé pour les appareils mobiles.

const net = attendre bodyPix.load ({ architecture: «MobileNetV1», outputStride: 16, multiplicateur: 0,75, quantBytes: 2 });

Plus la valeur du grossissement est élevée, plus la taille de la couche intermédiaire du réseau neuronal est grande, plus la précision est élevée et plus la vitesse de raisonnement est lente. La comparaison des performances des différents modèles de grossissement est la suivante:

Pour les ordinateurs avec des GPU plus puissants, la recommandation officielle est d'utiliser ResNet Architecture, Cette partie est également une nouvelle fonctionnalité ajoutée dans la version 2.0 .

const net = attendre bodyPix.load ({ architecture: «ResNet50», outputStride: 32, quantBytes: 2 });

Introduction au principe

Le cur de BodyPix est un algorithme qui effectue la segmentation du corps et effectue une décision binaire sur chaque pixel de l'image d'entrée pour estimer si le pixel appartient à une personne.

L'image est transmise via le réseau MobileNet et la fonction d'activation de type S est utilisée pour convertir la sortie en une valeur comprise entre 0 et 1.

Pour estimer la segmentation des parties du corps, BodyPix utilise la même représentation MobileNet, mais cette fois répète le processus ci-dessus en prédisant 24 canaux supplémentaires du tenseur de sortie P, où vingt-quatre est le nombre de parties du corps. Chaque canal code la probabilité de l'existence d'une partie du corps.

Il y a 24 canaux dans le tenseur de sortie P, nous devons donc trouver la meilleure partie parmi les 24 canaux. Au cours de l'inférence, pour chaque position de pixel (u, v) du tenseur de partie de corps de sortie P, body_part_id utilise la formule suivante pour sélectionner le pixel ayant la plus forte probabilité d'appartenir à la i-ème partie:

Cela produira une image en deux dimensions, chaque pixel contient un entier, l'entier indique à quelle partie du corps appartient le pixel. En définissant la valeur sur -1, vous pouvez exclure les parties qui n'appartiennent pas au corps humain.

Portail

Essayez la démo: https://storage.googleapis.com/tfjs-models/demos/body-pix/index.html

Blog officiel: https://blog.tensorflow.org/2019/11/updated-bodypix-2.html

Adresse GitHub: https://github.com/tensorflow/tfjs-models/tree/master/body-pix

- terminer  -

Qubit QbitAI · Signature du titre

Suivez-nous et obtenez les dernières mises à jour technologiques

La vitesse du bord de mer combat la vitesse du groupe de discussion de Fuzhou dans la troisième étape de Fuzhou 2019
Précédent
Pourquoi Chongqing plus facile que Pékin a perdu? Les scientifiques ont mis en lumière sur le système GPS du cerveau
Prochain
Ho Kai Ming comme le dernier papier: victoires surveillées sans supervision, la tâche de segmentation de détection de rafraîchissement de sept
Académicien Wu Wenjun Intelligence artificielle Zhang Bo a remporté le prix plus élevé qui, soixante ans a enseigné à l'Université Tsinghua
Dongguan à Maoming aussi longtemps que trois heures? gare profonde mao il est grand changement
Ne riez pas! Dans ce « goût » du jour, nous allons vous parler pour une grave ......
réévaluation Lenovo, est le temps
La semaine dernière, au nord de la ville, il y a de nouveaux produits sur le marché, poussant les différents produits Yulin marché immobilier occupé
Maintenance du libre-échange --100 photo a répondu, pourquoi nous sommes ouverts à la Chine « quatre. »
Anthony peut marquer avant de se retirer dans l'histoire do top 10? Les résultats disent que vous ne croyez pas
James a pris sa retraite, qui, quand la première personne? Adu petites cartes perdent seulement trois personnes sont attendues
Obtenir mieux! Anthony vaut 25 + 8 témoin a vu les Lakers le regretter?
Prix total de 744 millions, Shushan réseau routier Canal Park a commencé les enchères
Opéra dans les casernes, les soldats et les civils, un poisson pro-eau