Transpose est un modèle d'estimation de la pose humaine basé sur un extracteur de caractéristiques CNN, un codeur de transformateur et une tête de prédiction. Compte tenu d'une image, les couches d'attention intégrées dans le transformateur peuvent capturer efficacement les relations spatiales à longue portée entre les points clés et expliquer quelles dépendances les emplacements des points clés prédits s'appliquent fortement.
[Arxiv 2012.14214] [Paper] [Demo-notebook]
Transpose: Localisation des points clés via Transformer, Sen Yang, Zhibin Quan, Mu Nie, Wankou Yang, ICCV 2021
Nous choisissons deux types de CNN comme candidats d'épine dorsale: Resnet et HRNET. Les blocs convolutionnels dérivés sont la SURS-Small, HRNET-Small-W32 et Hrnet-Small-W48.
Modèle | Colonne vertébrale | Couches d'attention | d | H | #Heads | #Params | AP (CoCo Val GT Bbox) | Télécharger |
---|---|---|---|---|---|---|---|---|
Transpose-R-A3 | Resnet-s | 3 | 256 | 1024 | 8 | 5,2 Mo | 73.8 | modèle |
Transpose-R-A4 | Resnet-s | 4 | 256 | 1024 | 8 | 6,0 Mo | 75.1 | modèle |
Transposition | Hrnet-s-w32 | 4 | 64 | 128 | 1 | 8,0 Mo | 76.1 | modèle |
Transpose-H-A4 | HRNET-S-W48 | 4 | 96 | 192 | 1 | 17,3 Mo | 77.5 | modèle |
Transpose-H-A6 | HRNET-S-W48 | 6 | 96 | 192 | 1 | 17,5 Mo | 78.1 | modèle |
Essayez la démo Web:
Vous pouvez charger directement les modèles Transpose-R-A4 ou Transpose-H-A4 avec des poids pré-entraînés sur l'ensemble de données Coco Train2017 de Torch Hub, simplement par:
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 )
Modèle | Taille d'entrée | FPS * | Gflops | AP | Ap .5 | AP .75 | Ap (m) | Ap (l) | Ardente | Ar .5 | Ar .75 | BRAS) | 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 |
Transposition | 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 |
Note:
Modèle | Taille d'entrée | #Params | Gflops | AP | Ap .5 | AP .75 | Ap (m) | Ap (l) | Ardente | Ar .5 | Ar .75 | BRAS) | Ar (l) |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Transposition | 256x192 | 8,0 m | 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,5 m | 21.8 | 0,750 | 0,922 | 0,823 | 0,713 | 0,811 | 0,801 | 0,954 | 0,867 | 0,759 | 0,859 |
Démo de cahier Jupyter
Compte tenu d'une image d'entrée, d'un modèle de transposition pré-étendue et des emplacements prévus, nous pouvons visualiser les dépendances spatiales des emplacements prévus avec un seuil pour les scores d'attention.
TransPose-R-A4
avec threshold=0.00
TransPose-R-A4
avec threshold=0.01
TransPose-H-A4
avec threshold=0.00
TransPose-H-A4
avec threshold=0.00075
Cloner ce référentiel, et nous appellerons le répertoire que vous avez cloné comme $ {pose_root}
git clone https://github.com/yangsenius/TransPose.git
Installez Pytorch> = 1,6 et TorchVision> = 0,7 sur le site officiel de Pytorch
Installez les dépendances du package. Assurez-vous que l'environnement Python> = 3,7
pip install -r requirements.txt
Faire des répertoires de sortie (modèles de formation et de fichiers) et de journal (journal de tensorboard) sous $ {pose_root} et faire des libs
mkdir output log
cd ${POSE_ROOT} /lib
make
Téléchargez les modèles pré-entraînés à partir des versions de ce référentiel vers le répertoire spécifié
$ {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
Nous suivons les étapes de HRNET pour préparer l'ensemble de données Coco Train / Val / Test et les annotations. Les résultats de la personne détectée sont téléchargés à partir de OneDrive ou Googledrive. Veuillez les télécharger ou les lier à $ {pose_root} / data / coco / et les faire ressembler à ceci:
$ {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
Super merci pour ces papiers et leurs codes open-source: hrnet, detr, sombre
Ce référentiel est publié sous la licence MIT.
Si vous trouvez ce référentiel utile, veuillez lui donner une étoile? Ou pensez à citer notre travail:
@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}
}