直接看这个更简单的方法:https://blog.csdn.net/weixin_45615730/article/details/137591825?spm=1001.2014.3001.5501
问题描述:
在跑pifuhd,需要两个输入,一个图片,一个关键点json文件。这是人家给的例子,我想跑一张自己的图。
看了看怎么生成json文件:cmd = “cd {0}; ./build/examples/openpose/openpose.bin --image_dir {1} --write_json {2} --render_pose 2 --face --face_render 2 --hand --hand_render 2”.format(op_dir, input_path, out_json_path)
这个./build/examples/openpose/openpose.bin我运行不了,一看就是linux里的,我是windows
所以开始查怎么在windows里搭建openpose环境,发现很多教程,都是在VS里跑的,我不需要那么多,我就想运行这行代码: ./build/examples/openpose/openpose.bin --image_dir {1} --write_json {2} --render_pose 2 --face --face_render 2 --hand --hand_render 2
而且我用的是vscode,不想再去费劲搞VS
问题解决:
前面先照着大佬们的教程做
大佬地址:windows编译openpose及在python中调用
我在这里摘抄了我做过的步骤:
基础环境安装
cuda和cudnn的部分,这个前面讲过了,不会的话,看这篇
windows 10安装CUDA和cuDNN
由于需要使用到cmake-gui,因此还需要去下载安装cmake,地址: https://cmake.org/download/,安装文件拉下来傻瓜式安装,将安装路径加入系统环境变量Path中
编译openpose
这里使用的源码是1.7.0版本,地址是:https://github.com/CMU-Perceptual-Computing-Lab/openpose/archive/refs/tags/v1.7.0.zip,下载后解压,在源码根目录新建个文件夹build,这个文件夹是用来存放编译生成的文件的。另外,openpose还依赖caffe和pybind11(这是为了能在python中去调用openpose的api)
caffe
pybind11
下载zip后解压,分别存放在3rdparty\caffe和3rdparty\pybind11
打开cmake-gui,填写源码位置和编译后产生的文件的位置,也就是上面刚创建的build目录
接下来点击下方的Configure
这个步骤,会去下载几个主要的依赖,包括opencv、caffe、caffe3rdparty,还有工程中需要用到的模型文件。
好,就到这一步就好了,后面让我点generate我就失败了,不过也没关系,不影响我后面的调用。如果这个configuring没能done,那就去看大佬后面写的,还有别的解决方法,我就不赘述了。反正必须搞定configuring这一步。
大佬地址:windows编译openpose及在python中调用
关键步骤:
我在上一步卡住了,停下来思考
在这个大佬的教程里:计算机视觉教程7-3:Openpose配置与实践我看到他写了windows和linux分别怎么调用。同样配置完之后:
在linux中:
# 视频
./build/examples/openpose/openpose.bin --video examples/media/video.avi --net_resolution '160x80'
# 图片
./build/examples/openpose/openpose.bin --image_dir examples/media/ --net_resolution '160x80'
而在windows中:他写了一整段python代码,我就不摘抄了。
这个bin文件在linux中明显和exe文件差不多,那windows下肯定也能直接用exe调用。毕竟我只是需要替换./build/examples/openpose/openpose.bin这一段,不需要更多功能了。
然后,我在这个地址https://github.com/jarrodanderson/openpose-demo发现了以下内容:
# Ubuntu
./build/examples/openpose/openpose.bin --video examples/media/video.avi
:: Windows - Portable Demo
bin\OpenPoseDemo.exe --video examples\media\video.avi
看来在bin目录下应该有一个和openpose.bin功能相同的OpenPoseDemo.exe,可以直接在windows里代替掉openpose.bin
回到下载openpose的地方:https://github.com/CMU-Perceptual-Computing-Lab/openpose/releases
上次根据教程,我下载了source code,里面没有exe,这次下载这个binaries,里面肯定有封装好的exe文件
果然有这个OpenPoseDemo.exe
但是注意,刚才我们在source code里configuring的时候把模型的下载好了,这里不用在下一次了
直接把source code和binaries里的models下的几个文件夹挨个打开看一遍,缺哪个粘哪个
source code:
binaries:
那俩bat不用管,留着就行。
然后cd到binaries的根目录(下面是我的目录):
cd E:\project_python\virtualhuman\related\openpose
然后直接用bin\OpenPoseDemo.exe替换掉原本的./build/examples/openpose/openpose.bin
原本的:
./build/examples/openpose/openpose.bin --image_dir E:\project_python\virtualhuman\related\pifuhd\sample_images --write_json E:\project_python\virtualhuman\related\pifuhd\sample_images --render_pose 2 --face --face_render 2 --hand --hand_render 2
现在的:
bin\OpenPoseDemo.exe --image_dir E:\project_python\virtualhuman\related\pifuhd\sample_images --write_json E:\project_python\virtualhuman\related\pifuhd\sample_images --render_pose 2 --face --face_render 2 --hand --hand_render 2
其它地方都不用动
运行成功
keypoints.json生成好了