Meça o percentual de gordura corporal com apenas uma imagem!
Minha inscrição para o Global PyTorch Summer Hackathon 2019. Entre 5% (de 1.466 participantes) de projetos a serem apresentados na galeria do hackathon.
Este código foi testado no Ubuntu, PyTorch 1.2, Python 3.6 e Nvidia GTX 940MX. Recomenda-se configurar um ambiente virtual python e instalar os seguintes pacotes.
Clonar o repositório
Instale o abaixo:
apt-get install tk-dev python-tk
Ative o virtual Instale os pacotes python necessários em um ambiente virtual
(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
Construa a extensão NMS
cd lib/ python3 setup3.py build_ext --inplace
python3 measure_body.py
Isso tira uma imagem de amostra de data/inputs
e prevê o percentual de gordura corporal.
Instruções para tirar fotos
O modelo estimará a circunferência do pescoço e da cintura para prever o percentual de gordura corporal. Portanto, a área do pescoço e da cintura precisa estar claramente visível na foto. Além disso, o modelo funciona melhor quando você está a pelo menos 1 m de distância da câmera. Alguns exemplos:
Bom exemplo
Cole sua foto em data/inputs/
Execute python3 measure_body.py --image_name <name_of_your_image>.jpg
Seus resultados são mostrados na tela.
Ele usa uma rede monocular de estimativa de profundidade para produzir um mapa de profundidade em nível de pixel. Isto foi baseado no artigo do CVPR 2019 'Aprendendo a profundidade do movimento de pessoas observando pessoas congeladas'. Ao mesmo tempo, o modelo de detecção de objetos RetinaNet foi ajustado para estimar a localização de partes do seu corpo. PyTorch foi usado para ambas as redes. Essas informações são combinadas para calcular suas medidas corporais e percentual de gordura corporal. Alguns dados intrínsecos da câmera dos dados exif também são usados para estimativa. Ele usa a fórmula de gordura corporal da Marinha para cálculo.
O código de estimativa de profundidade foi emprestado e modificado deste repositório (implementação deste incrível artigo de IA do Google).
O código Retinanet foi emprestado e modificado desta implementação PyTorch.
Código NMS daqui.