环境配置:
首先根据自己的显卡安装适合的cuda版本,我的服务器是3090Ti,根据一篇教程安装了cuda10.1版本,报错,原因是30系显卡只支持cuda11.x,因此安装cuda11.3版本,cuda安装教程可以参考(31条消息) 非root用户安装cuda10.1,以及CUDA不同版本间切换_非root安装cuda_言默x的博客-CSDN博客这篇博客
准备Alphapose环境:
创建虚拟环境conda create -n alphapose python=3.7
激活虚拟环境conda activate AlphaPose
安装pytorch:
这一步一定要注意pytorch版本,因为版本不同可能会报错,这里我下载的是pyorch1.11
conda install pytorch==1.11.0 torchvision==0.12.0 torchaudio==0.11.0 cudatoolkit=11.3 -c pytorch
之前也下载过pytorch1.10版本,但头文件报错,原因可以参考这篇博客(31条消息) 项目环境由pytorch1.10升级1.11中间要改的东西_thcceildiv_小随风_hi的博客-CSDN博客我下载的代码中是需要pytorch1.11的,使用pytorch1.10当然就报错了,readme里面也有pytorch<1.11,我没看懂。
下载代码:
进入文件夹中cd AlphaPose
安装:
添加路径:
export PATH=/usr/local/cuda/bin/:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64/:$LD_LIBRARY_PATH
/usr/local/cuda:改为你的cuda位置
下载cpython库:python -m pip install cython
安装和更新:sudo apt-get install libyaml-dev
用pip install 库命令下载对应的库(easydict、halpecocotools、opencv-python、pyyaml、scipy、tensorboardx、terminaltables、tqdm、visdom)
特别注意,其中scipy需要指定1.1.0版本pip install scipy==1.1.0
以上完成后运行:python setup.py build develop
报错:出现gcc版本过高的问题,我的gcc开始是11.x版本,后来降低gcc(g++)版本到10.4就可以了。降低gcc(g++)版本参考Ubuntu20.04降低gcc/g++到5.4版本 - 知乎 (zhihu.com)
出现以上就编译成功了
测试demo
下载用于目标检测的模型:yolov3-spp.weights,把yolov3-spp.weights放到detector/yolo/data.
下载合适的模型,参考(31条消息) 【AlphaPose】AlphaPose运行环境搭建与测试_alphapose测试_whale998的博客-CSDN博客
对examples/demo目录下的几张图片上测试:
python scripts/demo_inference.py --cfg configs/coco/resnet/256x192_re s50_lr1e-3_1x.yaml --checkpoint pretrained_models/fast_res50_256x192.pth --indir examples/demo/ --vis --showbox --save_img
结果保存在examples/res/与examples/res/vis/目录下。
对视频进行测试
python scripts/demo_inference.py --cfg configs/coco/resnet/256x192_re s50_lr1e-3_1x.yaml --checkpoint pretrained_models/fast_res50_256x192.pth --video test.mp4 --outdir output --save_video
环境总结:
Python3.7
Cuda11.3
Pytorch1.11
Gcc/g++10.4
结语:复现AlphaPose步骤看上去挺简单的,但其中去解决一个个报错也很花费时间,本来是按照教程一步步走的,但还是因为不同配置什么的总有报错,一遍遍尝试,终于运行成功。十分感谢上述提供了帮助的blog,也希望这篇能帮助到大家。