วัดเปอร์เซ็นต์ไขมันในร่างกายของคุณด้วยภาพเดียว!
การส่งผลงานของฉันสำหรับ Global PyTorch Summer Hackathon 2019 ในบรรดา 5% (จากผู้เข้าร่วม 1,466 คน) โปรเจ็กต์ที่จะนำเสนอในแกลเลอรี Hackathon
รหัสนี้ได้รับการทดสอบบน Ubuntu, PyTorch 1.2, Python 3.6 และ Nvidia GTX 940MX ขอแนะนำให้ตั้งค่าสภาพแวดล้อมเสมือนของ Python และติดตั้งแพ็คเกจต่อไปนี้
โคลน repo
ติดตั้งด้านล่าง:
apt-get install tk-dev python-tk
เปิดใช้งานไวรัส ติดตั้งแพ็คเกจหลามที่จำเป็นในสภาพแวดล้อมเสมือน
(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 เมตร ตัวอย่างบางส่วน:
ตัวอย่างที่ดี
วางรูปภาพของคุณใน data/inputs/
เรียกใช้ python3 measure_body.py --image_name <name_of_your_image>.jpg
ผลลัพธ์ของคุณจะแสดงบนหน้าจอ
ใช้เครือข่ายการประมาณความลึกตาข้างเดียวเพื่อสร้างแผนที่ความลึกระดับพิกเซล ข้อมูลนี้อิงจากรายงาน CVPR 2019 เรื่อง "การเรียนรู้เชิงลึกของการเคลื่อนย้ายผู้คนด้วยการดูผู้คนที่ถูกแช่แข็ง" ในเวลาเดียวกัน โมเดลการตรวจจับวัตถุ RetinaNet ได้รับการปรับแต่งอย่างละเอียดเพื่อประมาณตำแหน่งของส่วนต่างๆ ของร่างกาย PyTorch ใช้สำหรับทั้งสองเครือข่าย ข้อมูลนี้จะถูกรวมเข้าด้วยกันเพื่อคำนวณการวัดขนาดร่างกายและเปอร์เซ็นต์ไขมันในร่างกายของคุณ ข้อมูลที่แท้จริงของกล้องบางตัวจากข้อมูล exif ยังใช้ในการประมาณค่าด้วย ใช้สูตรไขมันของกองทัพเรือในการคำนวณ
รหัสการประมาณความลึกถูกยืมและแก้ไขจาก repo นี้ (การใช้งานเอกสาร Google AI ที่ยอดเยี่ยมนี้)
รหัส Retinanet ได้รับการยืมและแก้ไขจากการใช้งาน PyTorch นี้
รหัส NMS จากที่นี่