我使用的是地平线的板子连接的摄像头,这段时间在使用python和c++来跑人体姿态检测的模型。
首先来说说python的跑的方法以及效果:
python来跑这个模型基本上没什么特别大的问题,导入好模型库然后按照要求来跑模型就好
要求
- Ubuntu 16.04
- python 3.6
- PyTorch 0.4.1(也应该适用于 1.0,但未经测试)
先决条件
- 下载 COCO 2017 数据集:COCO - Common Objects in Context(train、val、annotations)并将其解压缩到文件夹。
<COCO_HOME>
- 安装要求
pip install -r requirements.txt
训练
- 微调修剪后的模型。跑
CUDA_VISIBLE_DEVICES=<DEVICES_ID> python train_prune.py --train-images-folder ./coco/train2017/ --prepared-train-labels prepared_train_annotation.pkl --val-labels val_subset.json --val-images-folder ./coco/val2017/ --checkpoint-path ./pruned_models/<CHECKPOINT> --num-refinement-stages 3 --experiment-name <NAME> --weights-only
验证
- 用于训练时同步验证。跑
CUDA_VISIBLE_DEVICES=<DEVICES_ID> python val_per_epoch.py
- 特定检查点的验证。跑
python val_prune_oneepoch.py --labels <COCO_HOME>/annotations/person_keypoints_val2017.json --images-folder <COCO_HOME>/val2017 --checkpoint-path <CHECKPOINT>
演示
- 对于一个简单的演示。跑
python demo.py --checkpoint-path ./fine-tuned_models/<CHECKPOINT> --images <YOUR_IMAGE>
修剪的模型
我们提供两种不同压缩率的剪枝模型:./pruned_models/0.3.pth.tar(减少 15.92% 的 flops)和 ./pruned_models/0.8.tar.pth(减少 25.6% 的 flops)。
微调模型
从修剪后的模型微调的模型在 中可用。./pruned_models/0.3.pth.tar
./fine-tuned_models/
未修剪的预训练模型
该模型期望平面 BGR 格式的归一化图像(mean=[128, 128, 128], scale=[1/256, 1/256, 1/256])。 在 COCO 模型上进行预训练可在以下位置获得:./pre-trained_models/checkpoint_iter_370000.pth.tar,它在 COCO 验证集上有 40% 的 AP(val 子集上有 38.6% 的 AP)。