mmskeleton安装

最近开始尝试ST-GCN,主要安装步骤参考作者在github上提供的指南:https://github.com/open-mmlab/mmskeleton/blob/master/doc/GETTING_STARTED.md
本文记录一下安装过程

安装

安装Anaconda3

安装cuda、cudnn、nccl

版本:

cuda-10.1
cudnn-7.6(应该是当时对应cuda10.1的最新版cudnn)
nccl-2.6(也是对应cuda10.1的最新版nccl)

新建conda环境并激活

新建一个名为open-mmlab,python版本为3.7的conda虚拟环境(也可以不需要新建)。

conda create -n open-mmlab python=3.7 
conda activate open-mmlab

安装与cuda版本对应的pytorch

这部分参考pytorch官网的指南。

记得添加国内镜像地址到安装源,否则非常慢。

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
conda install pytorch torchvision cudatoolkit=10.1 -c pytorch

将mmskeleton从github下载到本地

git clone https://github.com/open-mmlab/mmskeleton.git
cd mmskeleton

安装mmskeleton

python setup.py develop

注意,这里遇到错误了:error: unknown file type ‘.pyx’ (from ‘mmskeleton/ops/nms/gpu_nms.pyx’)

首先想到去安装一下pyrex,emmm看起来有点麻烦,暂时搁置了。

————

在重新运行python setup.py develop之前,我事先安装了一些库(嗯因为我家网速很迷,关联下载总是不太顺利):

conda install cython
conda install matplotlib

另外,Pillow-6.2.2-cp37和opencv_python-4.2.0.34-cp37,我是先从网站上下载了.whl文件。然后安装的。所对应的版本号是从setup的下载过程中“偷看”来的,完全匹配我的环境。(在百度搜索Pillow/opencv_python就可以,点进PyPI的官网,找到对应的版本下载)

# 首先通过一系列cd指令跳转到.whl文件所在路径
pip install Pillow-6.2.2-cp37-cp37m-manylinux1_x86_64.whl
pip install opencv_python-4.2.0.34-cp37-cp37m-manylinux1_x86_64.whl

!!!其实手动安装上面四个库是完全可以省略的,setup过程中应该能自动关联下载的。因为我的网速实在是太慢,直接setup会报各种网络错误,所以才一个个单独安装的……

————

接下来回到这个错误:error: unknown file type ‘.pyx’ (from ‘mmskeleton/ops/nms/gpu_nms.pyx’)

setup.py中有这样一段代码:

ext_modules=[
            make_cython_ext(name='cpu_nms',
                            module='mmskeleton.ops.nms',
                            sources=['cpu_nms.pyx']),
            make_cuda_ext(name='gpu_nms',
                          module='mmskeleton.ops.nms',
                          sources=['nms_kernel.cu', 'gpu_nms.cpp'],
                          include_dirs=[np.get_include()]),
        ],

在/mmskeleton/mmskeleton/ops/nms下有两个.pyx文件,正确执行之后,在该目录中会生成两个.cpp文件和两个.so文件,分别对应cpu和gpu。

仔细观察发现cpu对应的两个文件正确生成了,但gpu对应的没有。于是我想到一个损招,用cython gpu_nms.pyx生成.c文件,再把后缀改成.cpp。

重新尝试安装:

python setup.py develop

成功了!

后来问了一下我白师姐,直接在/mmskeleton/mmskeleton/ops/nms下重新build一下,就可以啦,即在该目录下运行以下命令:

python setup_linux.py build_ext --inplace

我试过了,这样也是可以成功了,而且个人认为这样更优雅。

安装mmdetection

mmskeleton的GETTING_STARTED.md里写了:In the event of a failure installation, please install mmdetection manually.

于是我转而点进了这个链接:https://github.com/open-mmlab/mmdetection/blob/master/docs/INSTALL.md,进行手动安装。

(其实是因为最开始安装mmskeleton受挫,所以我转而先安装了mmdetection,只能手动安装……按照官方指南的逻辑,还是把顺序写在了mmskeleton的后面。)

git clone https://github.com/open-mmlab/mmdetection.git #建议退到mmskeleton的上一级文件夹后运行
cd mmdetection

pip install -r requirements/build.txt
pip install "git+https://github.com/cocodataset/cocoapi.git#subdirectory=PythonAPI"
pip install -v -e .

这个过程需要cython,matplotlib,Pillow,opencv_python,安装方式在安装mmskeleton时提过了,已经安装过,所以这里会很顺利。

验证是否成功安装

python mmskl.py pose_demo

这一步我运行了好几次,用时大概在四五百秒。(因为我运行时一度怀疑速度过慢,所以发在这里给大家参考。)

原文档提供的命令是这样的:

python mmskl.py pose_demo [--gpus $GPUS]

直接运行是会报错的。

这里的参数GPUS,我理解的是gpu的数量,我的笔记本运行python mmskl.py pose_demo --gpus 1可以,效果和python mmskl.py pose_demo一样,而运行python mmskl.py pose_demo --gpus 2会报错。

评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值