¡Mida su porcentaje de grasa corporal con una sola imagen!
Mi presentación para el Global PyTorch Summer Hackathon 2019. Entre el 5% (de 1466 participantes) los proyectos se presentarán en la galería del hackathon.
Este código ha sido probado en Ubuntu, PyTorch 1.2, Python 3.6 y Nvidia GTX 940MX. Se recomienda configurar un entorno virtual Python e instalar los siguientes paquetes.
Clonar el repositorio
Instale lo siguiente:
apt-get install tk-dev python-tk
Active el virutal. Instale los paquetes de Python necesarios en un entorno 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
Construya la extensión NMS
cd lib/ python3 setup3.py build_ext --inplace
python3 measure_body.py
Esto toma una imagen de muestra de data/inputs
y predice el porcentaje de grasa corporal.
Instrucciones para tomar fotografías.
El modelo estimará la circunferencia de su cuello y cintura para predecir su porcentaje de grasa corporal. Por lo tanto, la zona del cuello y la cintura debe ser claramente visible en la imagen. Además, el modelo funciona mejor cuando estás al menos a 1 m de distancia de la cámara. Algunos ejemplos:
Buen ejemplo
Pega tu imagen en data/inputs/
Ejecute python3 measure_body.py --image_name <name_of_your_image>.jpg
Sus resultados se muestran en la pantalla.
Utiliza una red de estimación de profundidad monocular para producir un mapa de profundidad a nivel de píxeles. Esto se basó en el artículo de CVPR de 2019 'Aprender las profundidades de las personas en movimiento observando personas congeladas'. Al mismo tiempo, el modelo de detección de objetos de RetinaNet se ajustó para estimar la ubicación de las partes de su cuerpo. Se utilizó PyTorch para ambas redes. Esta información se combina para calcular las medidas de su cuerpo y el porcentaje de grasa corporal. Algunos elementos intrínsecos de la cámara de los datos exif también se utilizan para la estimación. Utiliza la fórmula de grasa corporal de la Marina para el cálculo.
El código de estimación de profundidad se tomó prestado y se modificó de este repositorio (implementación de este increíble documento de inteligencia artificial de Google).
El código Retinanet ha sido tomado prestado y modificado de esta implementación de PyTorch.
Código NMS desde aquí.