Mesurez votre pourcentage de graisse corporelle avec une seule photo !
Ma soumission pour le Global PyTorch Summer Hackathon 2019. Parmi 5 % (sur 1466 participants) de projets qui seront présentés dans la galerie du hackathon.
Ce code a été testé sur Ubuntu, PyTorch 1.2, Python 3.6 et Nvidia GTX 940MX. Il est recommandé de configurer un environnement virtuel Python et d'installer les packages suivants.
Cloner le dépôt
Installez ce qui suit :
apt-get install tk-dev python-tk
Activer le virtuel Installer les packages python requis dans un environnement virtuel
(pytorch)$ pip3 install torch torchvision (pytorch)$ pip3 install scikit-image opencv-python pandas h5py (pytorch)$ pip3 install cffi (pytorch)$ pip3 install cython (pytorch)$ pip3 install requests (pytorch)$ pip3 install future
Construire l'extension NMS
cd lib/ python3 setup3.py build_ext --inplace
python3 measure_body.py
Cela prend un exemple d’image à partir data/inputs
et prédit le pourcentage de graisse corporelle.
Instructions pour prendre des photos
Le modèle estimera votre tour de cou et votre tour de taille pour prédire votre pourcentage de graisse corporelle. Votre cou et votre taille doivent donc être clairement visibles sur la photo. De plus, le modèle fonctionne mieux lorsque vous vous tenez à au moins 1 m de la caméra. Quelques exemples :
Bon exemple
Collez votre image dans data/inputs/
Exécutez python3 measure_body.py --image_name <name_of_your_image>.jpg
Vos résultats sont affichés à l'écran.
Il utilise un réseau monoculaire d’estimation de profondeur pour produire une carte de profondeur au niveau des pixels. Ceci est basé sur l'article du CVPR 2019 « Apprendre les profondeurs du déplacement des personnes en regardant les personnes gelées ». Dans le même temps, le modèle de détection d'objets RetinaNet a été affiné pour estimer l'emplacement des parties de votre corps. PyTorch a été utilisé pour les deux réseaux. Ces informations sont combinées pour calculer vos mensurations et votre pourcentage de graisse corporelle. Certains éléments intrinsèques de la caméra issus des données exif sont également utilisés pour l'estimation. Il utilise la formule de graisse corporelle de la Marine pour le calcul.
Le code d'estimation de la profondeur a été emprunté et modifié à partir de ce référentiel (implémentation de ce superbe article Google AI).
Le code Retinanet a été emprunté et modifié à partir de cette implémentation de PyTorch.
Code NMS à partir d'ici.