BodyScan
1.0.0
只需一张图片即可测量您的体脂百分比!
我向 2019 年全球 PyTorch 夏季黑客松提交的作品。其中 5%(共 1466 名参与者)项目将在黑客松画廊中展出。
此代码已在 Ubuntu、PyTorch 1.2、Python 3.6 和 Nvidia GTX 940MX 上进行了测试。建议设置一个python虚拟环境并安装以下软件包。
克隆存储库
安装以下内容:
apt-get install tk-dev python-tk
激活virutal 在虚拟环境中安装所需的python包
(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
构建 NMS 扩展
cd lib/ python3 setup3.py build_ext --inplace
python3 measure_body.py
这从data/inputs
中获取样本图片并预测身体脂肪百分比。
拍照须知
该模型将估计您的颈围和腰围,以预测您的身体脂肪百分比。所以你的脖子和腰部区域需要在照片中清晰可见。此外,当您站在距离相机至少 1 m 的地方时,该模型效果最佳。一些例子:
好例子
将您的图片粘贴到data/inputs/
中
运行python3 measure_body.py --image_name <name_of_your_image>.jpg
您的结果显示在屏幕上。
它使用单目深度估计网络来生成像素级深度图。这是基于 CVPR 2019 论文“通过观察冻结的人来了解感动人的深度”。同时,RetinaNet 对象检测模型经过微调,可以估计您身体部位的位置。这两个网络均使用 PyTorch。这些信息结合起来可以计算您的身体测量值和体脂百分比。 exif 数据中的一些相机内在函数也用于估计。它使用海军体脂公式进行计算。
深度估计代码是从这个仓库借用和修改的(这篇很棒的谷歌人工智能论文的实现)。
Retinanet 代码是从这个 PyTorch 实现中借用和修改的。
NMS 代码来自这里。