这个小项目本身是在研一的时候调的,记录一下过程,以后在别的电脑上配置就容易点。
我是在windows系统下配置的,gpu贼拉跨,报错很多,欢迎借鉴,总有一款错误适合你!
然后友情提示,跑项目就是会遇到各种各样的错误,请需要的小伙伴耐心看,遇到问题评论区交流讨论即可!
好不容易写完了,必须回来说一下,写得肝疼,为了防止出错,相当于一边写一边又重新实验了一遍,很不容易啊!!!点赞关注一下吧!!!
一、配置PIFU-HD
要用自己的数据实现三维人体重建,肯定先把别人给的测试代码跑通。
1.首先在git-hub上下载源代码:
facebookresearch/pifuhd: High-Resolution 3D Human Digitization from A Single Image. (github.com)
解压后得到文件夹:
2.为此项目新建一个python环境,打开cmd输入如下指令:
conda create -n pifuhd python=3.7
3.进入该环境,安装此项目需要的库(都在requirements.txt里面):
activate pifuhd #进入创建的pifuhd环境
cd D:\xiangmu\pifuhd\pifuhd-main\pifuhd-main #cd 后面是你项目的路径
pip install -r requirements.txt #安装requirements.txt里面的依赖库
安装完之后,检查一下torch版本,不出意外的话意外就来了,直接用指令安装会默认安装成cpu版本,输入如下指令检验:
python
import torch
print(torch.__version__)#查看torch版本
print(torch.cuda.is_available())#查看cuda能用吗
如果你输出的是gpu版本和true,那你没有这个问题,直接跳过,否则需要卸载该torch版本,然后离线安装。先输入如下指令卸载并查看你能安装的版本:
pip uninstall torch #卸载之前安装的torch
pip uninstall torchvision #torchvisoion一起卸载了
python -m pip debug --verbose #查看自己能安装的wheel版本
然后下载对应的torch-gpu版本:https://download.pytorch.org/whl/torch_stable.html
torch和torchvision一起下载。下载完我是直接放在项目所在文件下,不然的话你要先cd到下载的位置,再使用如下指令离线安装:
pip install torch-1.7.1+cu110-cp37-cp37m-win_amd64.whl
pip install torchvision-0.8.2+cu110-cp37-cp37m-win_amd64.whl
安装完以后再输入一下上面的检验指令,应该就是 这样了:
4.安装完以后发现还有两个库缺失,分别是OpenGL和freeglut
OpenGL也用离线安装的方式就好,先去官网下载:Archived: Python Extension Packages for Windows - Christoph Gohlke (uci.edu)
我同样放在项目下,使用pip安装:
pip install PyOpenGL-3.1.6-cp37-cp37m-win_amd64.whl
另一个库稍微麻烦一点,我是用cmake编译的,因为这玩意儿好像只在linux下可以直接安装,git-hub上是这么写的:
如果你是linux系统应该可以直接用这行命令。我这里写一下用cmake是怎么做的,先下载freeglut的源代码:freeglut download | SourceForge.net
下载后放到项目下解压,然后创建一个build文件夹:
打开cmake(没有下载的童鞋自行百度下载),先配置1,2(1是freeglut的路径,2是刚创建的build路径),配置好后点击左下角configure弹出窗口配置3,4(3是你VS的版本,没安装vs的也自行百度安装,4选这个64位就好):
点击finish后,下一步点击generate就好,成功应该是这样:
5.现在环境基本配置好了,接下来下载别人的与训练权重
这里我是windows系统,代码中使用的是linux下的指令,所以需要Gitbash来使用下面的命令(没安装Gitbash的童鞋也请自行下载安装)
Gitbash使用如下两行命令进入pifuhd环境和目录:
source activate pifuhd
cd D:\\xiangmu\\pifuhd\\pifuhd-main\\pifuhd-main
然后使用如下命令下载:
sh ./scripts/download_trained_model.sh
下完后就多了checkpoints文件
6.接下来就可以测试了
在Gitbash下接输入
sh ./scripts/demo.sh
然后不出意外的话意外就来了,如果你的gpu够强大(内存>8G),那应该可以直接成功,如果报错如下:
把./app/recon.py中的一行代码改了,意思就是gpu太捞了就用cpu,也就慢了亿点而已,谁叫咱没有条件呢
然后再运行demo应该就没问题了
7.运行只要不报错就等着,一会儿就有效果了
二、配置Openpose
我这里使用自己的图片需要借助openpose,但在作者的github中提到 colab demo 上有不需要openpose的方式,有兴趣的童鞋自行尝试。
这里说一下用openpose怎么做,用cmake编译很复杂而且容易报错(做好心理准备),网上也有很多教程(你看别人的配置成功了也行)
1.首先下载openpose源代码解压,我下载的是1.7.0版本
Releases · CMU-Perceptual-Computing-Lab/openpose (github.com)
在编译安装之前先把一些依赖的东西下载,在models文件下有一些东西需要下载,如果你点getModels能快速下载最好
不行的话提供几个链接下载:
下完之后放到对应的文件夹下(放两个示意一下):
然后3rdparty\windows文件夹下还有一些东西要先下载:
这五个文件能运行直接下载最好,不能或者太慢可以用如下这种方式:
使用Notepad++(没下载的童鞋自行下载)打开这五个文件,以打开getCaff实例
1+2的网址就是这里需要下载的东西,自己去网上下载,不管你用什么方式,下载下来解压跟我上面一样就好了。
2.准备好了以后就可以开始编译了
首先这里同样需要在openpose文件夹下新建一个build文件夹
然后打开cmake配置一下(跟上面一样,先配置上面两个,点击Generate弹出窗口配置下面两个)
点击finish弹出窗口后改变如下勾选(请逐一对照)
然后点击Generate,等待结束
接着点击Open Project会打开你的VS,将这里配置成release
然后点击生成,生成解决方案,等待结束
虽然有一个错误和很多警告,但不影响 ,接着弄就好。
3.接下来将你openpose下的models文件夹和build/bin文件下所有文件复制(注意一个复制文件夹,一个复制文件夹下所有文件)粘贴到build\x64\Release下
4.然后基本上配置好了,接着测试一下
测试图可以就用openpose自带的,留两张测试就行了
OpenPoseDemo.exe --image_dir D:\xiangmu\pifuhd\pifuhd-main1\pifuhd-main\openpose-master\openpose\examples\media --face --hand --write_json D:\xiangmu\pifuhd\pifuhd-main1\pifuhd-main\openpose-master\openpose\examples\media
--img_dir就是图片的位置,--write_json 是你json文件保存的位置,我放到一块儿了。
三、现在终于可以用自己的图片测试结果了
1.首先拍一张照片,用抠图软件(在线抠图软件_图片去除背景 | remove.bg – remove.bg)把人抠出来
然后把图片放到sample_imgaes文件夹下
2.接着利用刚编译好的openpose生成json文件,跟上面测试的方法一样,只不过文件路径改了
打开cmd,cd 到刚刚那个Release文件夹下运行
OpenPoseDemo.exe --image_dir D:\xiangmu\pifuhd\pifuhd-main1\pifuhd-main\sample_images --face --hand --write_json D:\xiangmu\pifuhd\pifuhd-main1\pifuhd-main\sample_images
这里跟上面测试唯一的不同就是把图片路径改了。
3.接着使用Gitbash切换到pifuhd环境,在pifuhd文件下,运行最后一步
source activate pifuhd
cd D:\\xiangmu\\pifuhd\\pifuhd-main1\\pifuhd-main
python -m apps.simple_test
cpu很慢,多等一会儿就可以看到效果了。
4.在results中就可以看到结果啦,还是很不错的