项目介绍
TF-SimpleHumanPose项目是一项基于TensorFlow的实现,用于进行多人2D姿态估计和跟踪。这一项目的基础是微软研究院在2018年ECCV会议上提出的“简单基线”技术,能够从单张RGB图像中估计出多人的姿态。
项目提供内容
- TensorFlow实现: 提供简单基线的TensorFlow实现,具有灵活且简单的代码结构。
- 数据集兼容性: 兼容大多数公开的2D多人姿态估计数据集,如MPII、PoseTrack 2018和MS COCO 2017。
- 可视化功能: 提供姿态估计的可视化代码,基于Facebook开放的Detectron修改而成。
依赖条件
运行该项目需要安装以下软件:
- TensorFlow
- CUDA和cuDNN(用于GPU加速)
- Anaconda(用于Python环境管理)
- COCO API
目录结构
项目目录结构需要按照如下格式组织:
根目录
${POSE_ROOT}
|-- data
|-- lib
|-- main
|-- tool
`-- output
data
文件夹存储数据加载及图像、标注的软链接。lib
为姿态估计算法的核心代码。main
中包含训练和测试网络的高层代码。tool
提供数据集转换功能,支持MPII和PoseTrack格式到COCO格式的转换。output
包含训练日志、模型、可视化输出及测试结果。
运行指南
开始
首先,需要安装必要的模块和构建非极大值抑制(NMS)模块:
pip install -r requirement.txt
cd ${POSE_ROOT}/lib && make
然后,可以通过修改main/config.py
调整模型设置,如数据集、网络骨干以及输入尺寸等。
训练模型
要在GPU上进行训练,请在main
目录下运行以下命令:
python train.py --gpu 0-1
如果想要继续某个实验,使用:
python train.py --gpu 0-1 --continue
测试模型
在测试时需将训练的模型置于output/model_dump/$DATASET/
目录下,并准备好人体检测结果human_detection.json
文件放在data/$DATASET/dets/
。
运行以下命令进行测试:
python test.py --gpu 0-1 --test_epoch 140
结果展示
根据项目和原论文,在MS COCO和PoseTrack数据集上的实验结果显示,该方法在多人姿态估计中具备良好的表现。
问题排查
对于可能出现的内存增长问题,可以通过增加graph.finalize
方法解决。如果遇到测试阶段文件缺失的错误,需确保人体检测结果已正确准备。
致谢
这个项目在很大程度上吸取了来自TensorFlow CPN和PyTorch Simple项目的代码思路。
通过这些资源,TF-SimpleHumanPose项目为研究人员和开发者提供了一个有效的平台,可以在关注多人姿态估计的应用上进行进一步研究和开发。