Transpose เป็นแบบจำลองการประมาณท่าของมนุษย์โดยใช้ตัวแยกฟีเจอร์ CNN ตัวเข้ารหัสหม้อแปลงและหัวการทำนาย เมื่อพิจารณาถึงภาพเลเยอร์ความสนใจที่สร้างขึ้นในหม้อแปลงสามารถจับความสัมพันธ์เชิงพื้นที่ระยะยาวได้อย่างมีประสิทธิภาพระหว่างจุดน็อตและอธิบายสิ่งที่พึ่งพาตำแหน่งของจุดคีย์ที่คาดการณ์ไว้พึ่งพาอย่างมาก
[Arxiv 2012.14214] [กระดาษ] [Demo-Notebook]
Transpose: Keypoint Localization ผ่าน Transformer, Sen Yang, Zhibin Quan, Mu Nie, Wankou Yang, ICCV 2021
เราเลือก CNN สองประเภทเป็นผู้สมัครกระดูกสันหลัง: Resnet และ HRNET บล็อก convolutional ที่ได้รับคือ resnet-small, hrnet-small-w32 และ hrnet-small-W48
แบบอย่าง | กระดูกสันหลัง | #Attention Layers | d | ชม. | #หัว | #params | AP (Coco Val GT BBOX) | การดาวน์โหลด |
---|---|---|---|---|---|---|---|---|
Transpose-R-A3 | resnet-s | 3 | 256 | 1024 | 8 | 5.2MB | 73.8 | แบบอย่าง |
Transpose-R-A4 | resnet-s | 4 | 256 | 1024 | 8 | 6.0MB | 75.1 | แบบอย่าง |
transpose-hs | HRNET-S-W32 | 4 | 64 | 128 | 1 | 8.0MB | 76.1 | แบบอย่าง |
Transpose-H-A4 | HRNET-S-W48 | 4 | 96 | 192 | 1 | 17.3MB | 77.5 | แบบอย่าง |
transpose-h-a6 | HRNET-S-W48 | 6 | 96 | 192 | 1 | 17.5MB | 78.1 | แบบอย่าง |
ลองใช้การสาธิตเว็บ:
คุณสามารถโหลดรุ่น transpose-R-A4 หรือ transpose-H-A4 ได้โดยตรงพร้อมน้ำหนักที่ได้รับการฝึกฝนบนชุดข้อมูล Coco Train2017 จาก Torch Hub เพียง: โดย:
import torch
tpr = torch . hub . load ( 'yangsenius/TransPose:main' , 'tpr_a4_256x192' , pretrained = True )
tph = torch . hub . load ( 'yangsenius/TransPose:main' , 'tph_a4_256x192' , pretrained = True )
แบบอย่าง | ขนาดอินพุต | FPS* | gflops | ap | ap .5 | ap .75 | AP (M) | ap (l) | อาร์ | ar. 5 | ar .75 | แขน) | ar (l) |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Transpose-R-A3 | 256x192 | 141 | 8.0 | 0.717 | 0.889 | 0.788 | 0.680 | 0.786 | 0.771 | 0.930 | 0.836 | 0.727 | 0.835 |
Transpose-R-A4 | 256x192 | 138 | 8.9 | 0.726 | 0.891 | 0.799 | 0.688 | 0.798 | 0.780 | 0.931 | 0.845 | 0.735 | 0.844 |
transpose-hs | 256x192 | 45 | 10.2 | 0.742 | 0.896 | 0.808 | 0.706 | 0.810 | 0.795 | 0.935 | 0.855 | 0.752 | 0.856 |
Transpose-H-A4 | 256x192 | 41 | 17.5 | 0.753 | 0.900 | 0.818 | 0.717 | 0.821 | 0.803 | 0.939 | 0.861 | 0.761 | 0.865 |
transpose-h-a6 | 256x192 | 38 | 21.8 | 0.758 | 0.901 | 0.821 | 0.719 | 0.828 | 0.808 | 0.939 | 0.864 | 0.764 | 0.872 |
บันทึก:
แบบอย่าง | ขนาดอินพุต | #params | gflops | ap | ap .5 | ap .75 | AP (M) | ap (l) | อาร์ | ar. 5 | ar .75 | แขน) | ar (l) |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
transpose-hs | 256x192 | 8.0m | 10.2 | 0.734 | 0.916 | 0.811 | 0.701 | 0.793 | 0.786 | 0.950 | 0.856 | 0.745 | 0.843 |
Transpose-H-A4 | 256x192 | 17.3m | 17.5 | 0.747 | 0.919 | 0.822 | 0.714 | 0.807 | 0.799 | 0.953 | 0.866 | 0.758 | 0.854 |
transpose-h-a6 | 256x192 | 17.5m | 21.8 | 0.750 | 0.922 | 0.823 | 0.713 | 0.811 | 0.801 | 0.954 | 0.867 | 0.759 | 0.859 |
การสาธิตสมุดบันทึก JUPYTER
ด้วยภาพอินพุตโมเดล transpose pretrained และตำแหน่งที่คาดการณ์ไว้เราสามารถเห็นภาพการพึ่งพาเชิงพื้นที่ของตำแหน่งที่คาดการณ์ไว้ด้วยเกณฑ์สำหรับคะแนนความสนใจ
TransPose-R-A4
ด้วย threshold=0.00
TransPose-R-A4
ด้วย threshold=0.01
TransPose-H-A4
ด้วย threshold=0.00
TransPose-H-A4
ด้วย threshold=0.00075
โคลนที่เก็บนี้และเราจะเรียกไดเรกทอรีที่คุณโคลนเป็น $ {pose_root}
git clone https://github.com/yangsenius/TransPose.git
ติดตั้ง pytorch> = 1.6 และ torchvision> = 0.7 จากเว็บไซต์อย่างเป็นทางการของ Pytorch
ติดตั้งการพึ่งพาแพ็คเกจ ตรวจสอบให้แน่ใจว่าสภาพแวดล้อม Python> = 3.7
pip install -r requirements.txt
ทำผลลัพธ์ (โมเดลการฝึกอบรมและไฟล์) และบันทึก (tensorboard log) ภายใต้ $ {pose_root} และสร้าง libs
mkdir output log
cd ${POSE_ROOT} /lib
make
ดาวน์โหลดโมเดลที่ผ่านการฝึกอบรมจากรุ่น repo นี้ไปยังไดเรกทอรีที่ระบุ
$ {POSE_ROOT}
`-- models
`-- pytorch
|-- imagenet
| |-- hrnet_w32-36af842e.pth
| |-- hrnet_w48-8ef0771d.pth
| |-- resnet50-19c8e357.pth
|-- transpose_coco
| |-- tp_r_256x192_enc3_d256_h1024_mh8.pth
| |-- tp_r_256x192_enc4_d256_h1024_mh8.pth
| |-- tp_h_32_256x192_enc4_d64_h128_mh1.pth
| |-- tp_h_48_256x192_enc4_d96_h192_mh1.pth
| |-- tp_h_48_256x192_enc6_d96_h192_mh1.pth
เราทำตามขั้นตอนของ HRNET เพื่อเตรียมชุดข้อมูล Coco Train/Val/Test และคำอธิบายประกอบ ผลลัพธ์ของบุคคลที่ตรวจพบจะถูกดาวน์โหลดจาก OneDrive หรือ GoogleDrive โปรดดาวน์โหลดหรือเชื่อมโยงไปยัง $ {pose_root}/data/coco/และทำให้พวกเขาเป็นแบบนี้:
$ {POSE_ROOT}/data/coco/
| -- annotations
| |-- person_keypoints_train2017.json
| `-- person_keypoints_val2017.json
| -- person_detection_results
| |-- COCO_val2017_detections_AP_H_56_person.json
| `-- COCO_test-dev2017_detections_AP_H_609_person.json
`-- images
|-- train2017
| |-- 000000000009.jpg
| |-- ...
`-- val2017
|-- 000000000139.jpg
|-- ...
python tools/test.py --cfg experiments/coco/transpose_r/TP_R_256x192_d256_h1024_enc4_mh8.yaml TEST.USE_GT_BBOX True
python tools/train.py --cfg experiments/coco/transpose_r/TP_R_256x192_d256_h1024_enc4_mh8.yaml
ขอบคุณมากสำหรับเอกสารเหล่านี้และรหัสโอเพนซอร์ซ: HRNET, DETR, Darkpose
ที่เก็บนี้จะถูกปล่อยภายใต้ใบอนุญาต MIT
หากคุณพบว่าที่เก็บนี้มีประโยชน์โปรดให้ดาว? หรือพิจารณาอ้างว่างานของเรา:
@inproceedings{yang2021transpose,
title={TransPose: Keypoint Localization via Transformer},
author={Yang, Sen and Quan, Zhibin and Nie, Mu and Yang, Wankou},
booktitle={IEEE/CVF International Conference on Computer Vision (ICCV)},
year={2021}
}