Spaces:
Running
Running
A newer version of the Gradio SDK is available:
5.18.0
This folder includes PyTorch code for training the Single Person Pose Estimation network in AlphaPose.
Installation
- Install PyTorch >= 0.4.0 following official instruction.
- Install other dependencies.
cd ${TRAIN_ROOT}
pip install -r requirements.txt
3.Disable cudnn for batch_norm: (See: @Microsoft / human-pose-estimation.pytorch#installation)
# PYTORCH=/path/to/pytorch
# for pytorch v0.4.0
sed -i "1194s/torch\.backends\.cudnn\.enabled/False/g" ${PYTORCH}/torch/nn/functional.py
# for pytorch v0.4.1
sed -i "1254s/torch\.backends\.cudnn\.enabled/False/g" ${PYTORCH}/torch/nn/functional.py
# Note that instructions like # PYTORCH=/path/to/pytorch indicate that you should pick
# a path where you'd like to have pytorch installed and then set an environment
# variable (PYTORCH in this case) accordingly.
Data preparation
COCO Data
Please download annot_coco.h5 and person_keypoints_val2014.json
from cocodataset
(http://cocodataset.org/#download).
${TRAIN_ROOT}
|-- src
|-- exp
|-- data
`-- |-- coco
`-- |-- annot_coco.h5
|-- person_keypoints_val2014.json
`-- images
|-- trainval2017
| |-- 000000000001.jpg
| |-- 000000000002.jpg
| |-- 000000000003.jpg
| |-- ...
Train on COCO
cd src
# Train without DPG first
python train.py --dataset coco --expID exp1 --nClasses 17 --LR 1e-4
# Then, train with DPG
python train.py --dataset coco --expID exp1 --nClasses 17 --LR 1e-4 --addDPG
# Or, train with pretrian model
python train.py --dataset coco --expID exp1 --nClasses 17 --LR 1e-5 --addDPG --loadModel #{MODEL_DIR}
Train on new dataset
Please create the h5
file from your own datset. Here is the python demo to read the h5
file.
>>> import h5py
>>> annot = h5py.File('annot_coco.h5')
>>> for k in annot.keys():
... print(k)
bndbox
imgname
part
>>> bndboxes = annot['bndbox'][:]
>>> bndbox.shape
(144213, 1, 4)
>>> imgnames = annot['imgname'][:]
>>> imgname.shape
(144213, 16)
>>> parts = annot['part'][:]
>>> part.shape
(144213, 17, 2)
bndbox: [1 x 4] (upleft_x, upleft_y, bottomright_x, bottomright_y)
imgname: [16] #ascii number of imagename
part: [17 x 2] (kp1_x, kp1_y, kp2_x, kp2_y, ..., kp17_x, kp17_y)
Please refer to this python demo to create your own h5
files. How to save data in h5
files, please refer to h5py quick start.