一、前言
前段时间我利用Hrnet与其改进版Simdr工程做了一个二维姿态估计的小demo,效果还可以,基本达到了自己想要的效果。为了去逼近更加真实的姿态,最近阅读了一些3D姿态估计领域的论文,觉得还是挺有意思,就想跑个demo,在此记录一下在win10系统的配置过程。本文主要根据Muhammed Kocabas大佬的公开代码实现。
论文: https://arxiv.org/abs/1912.05656
二、部署
接下来的部署工作,主要针对的是不能科学上网的童鞋,能科学上网的可以直接参考https://github.com/carlosedubarreto/vibe_win_install中的视频教程。
1、克隆工程
git clone https://github.com/mkocabas/VIBE.git
git clone https://github.com/carlosedubarreto/vibe_win_install.git
在vibe_win_install文件夹中,如图所示将选中的几个文件,添加到VIBE文件夹下。
2、配置环境
1)ffmpeg配置
点击链接https://www.gyan.dev/ffmpeg/builds/ffmpeg-release-essentials.zip下载,或者评论区网盘链接获取。
解压后,将ffmpeg文件夹中的bin文件夹路径加入系统变量path中。
2)创建环境
conda create -n venv_vibe python=3.7
conda activate venv_vibe
#这行有GPU的安装,只跑cpu就不要执行,我就没执行(。。。)
conda install cudatoolkit=10.1 cudnn=7.6.0
conda install -c anaconda git
3)安装环境
①对于科学上网的童鞋,“安装环境”这一步你直接在cmd窗口执行VIBE文件夹下install_conda.bat,就全部安装好了。直接跳到下一步“数据准备”。
install_conda.bat
②对于普通玩家,我们需要修改一下install_conda.bat文件内容与requirements_alter.txt文件内容。
复制以下内容覆盖install_conda.bat文件内容(bat文件可以用pycharm或者notepad++打开)。
pip install mkl intel-openmp
pip install torch==1.4.0 torchvision==0.5.0 -f https://download.pytorch.org/whl/torch_stable.html
pip install numpy==1.17.5
pip install git+https://github.91chi.fun/https://github.com/giacaglia/pytube.git --upgrade
pip install -r requirements_alter.txt
复制以下内容,覆盖requirements_alter.txt文件内容 。
tqdm==4.28.1
yacs==0.1.6
h5py==2.10.0
numpy==1.17.5
scipy==1.4.1
numba==0.47.0
smplx==0.1.26
gdown==3.6.4
PyYAML==5.3.1
joblib==0.14.1
pillow==7.1.0
trimesh==3.5.25
pyrender==0.1.36
progress==1.5
filterpy==1.4.5
matplotlib==3.1.3
tensorflow==1.15.4
torchvision==0.5.0
scikit-image==0.16.2
scikit-video==1.1.11
opencv-python==4.1.2.30
llvmlite==0.32.1
git+https://github.91chi.fun/https://github.com/mattloper/chumpy.git
git+https://github.91chi.fun/https://github.com/mkocabas/yolov3-pytorch.git
git+https://github.91chi.fun/https://github.com/mkocabas/multi-person-tracker.git
修改完后,执行
install_conda.bat
到这里就配置好了虚拟环境,安装结果大致如下图。
3、数据准备
1)科学上网的童鞋
prepare_data.bat
2)普通玩家
①在VIBE文件夹下创建data文件夹
②下载数据文件,数据文件名:vibe_data.zip,解压到data文件夹下
下载网址:https://drive.google.com/uc?id=1untXhYOLQtpNEy4GTY_0fL_H-k6cTf_r
网盘地址:见评论区
③复制VIBE\data\vibe_data\sample_video.mp4 到 VIBE\。
④目标检测配置文件
C:\Users\(用户名)\.torch\models, C:\Users\(用户名)\.torch\config
然后将VIBE\data\vibe_data\yolov3.weights文件复制到刚刚创建的models文件夹下,将VIBE\yolov3.cfg文件复制到刚刚创建的config文件夹下。
到此,所有准备环节结束。
三、测试
1、GPU选手
打开cmd命令行窗口,cd到VIBE路径下。参数含义自行查看demo_after.py。
conda activate vibe
python demo_alter.py --vid_file K01P03A01R02.mp4 --output_folder output/ --sideview
2、CPU选手
我尝试过在远程服务器上部署,但是会出现pyrender无法离屏渲染的问题。所以无奈用自己的CPU跑跑。
①VIBE/lib/models/vibe.py ,有三处需要改动(代码第130,148,155行),都是关于加载权重。改动如图。
②VIBE/demo_alter.py,有两处需要改动(代码第109,114行),改动如图
接下来就执行GPU选手的步骤即可。
四、结果展示
五、总结
VIBE算法整体部署较为容易,没有特别奇怪的坑,如果你有GPU以及能科学上网,安装跑通会很容易,内容可能有错误,欢迎指正。
非常感谢大佬们的工作,这篇论文是2020年发表在CVPR会议上,整体效果还行,但是对于手部或者腿部的关键点检测,还是有很多细节值得推敲。 Muhammed Kocabas大佬2021年在ICCV又发表了一篇文章,应该是VIBE的改进版,代码开源了,效果图主要就是在与VIBE进行比较,具体配置过程,下篇文章在记录,翻过一座山又是一座山,下座山峰见。
六、参考内容
文章出处登录后可见!