zl程序教程

您现在的位置是:首页 >  系统

当前栏目

OpenPose笔记——windows 10下,自编译openpose代码(vs下能跑了,pythonAPI也能使了)

2023-09-27 14:27:27 时间

一 .准备工作
准备工作当然是各种环境:
1. 至少VS2015 以上的版本
2. CMake Gui,注意,千万不要下载3.16版的!3.16版本没有win64的选项,编译出来是win32版本的。。。然后x64和x86冲突简直哭死个人。。。。我个人用cmake 3.13.2版本莫问题
3. OpenPose 源码 下载好后解压好待用。本人是2019年10月23日下载的源码
4. 安装 CUDA 官网下载,按提示来就行,注意添加环境变量:添加 [yourPath]\cuda 和[yourPath]\cuda\bin 到环境变量
5. 安装 CuDNN ,解压后拷贝:
[yourPath]\cuda\bin\cudnn64_5.dll —> (拷贝至)
[yourPath]\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\bin
[yourPath]\cuda\include\cudnn.h —> (拷贝至)
[yourPath]\NVIDIA GPU Computing Toolkit\CUDA\v8.0\include
[yourPath]\cuda\lib\x64\cudnn.lib —>(拷贝至)
[yourPath]\NVIDIA GPU Computing Toolkit\CUDA\v8.0\lib\x64
二. 各种依赖安装
1. 运行…/openpose-master/models/中的getModels.bat 下载所需的模型
2. 运行…/openpose-master/3rdparty/windows中的getCaffe.bat,getCaffe3rdparty.bat和getOpenCV.bat 下载各种依赖
3. 下载pyhind11,放在openpose-master\3rdparty文件夹下覆盖即可。 pyhind11百度云,提取码hgnd

三、编译源代码
最重要的来了!
1. 打开CMake GUI,第一个红框是openpose源码的文件夹,第二个红框里填的是生成路径,自己创建的

2. 点击【Configure】按钮,在弹出的对话框根据自己的版本选择合适的vs版本,一定要选择带win64的!对于同一个源码文件夹,这个对话框只弹一次。。。。。

3. 等出现 “Configuring done”后,差不多是这样的,再次点击【Configure】按钮直到红色全部消失。configure时如果出现错误,按照下面的错误提示自行解决。(我遇到的就是缺少pyhind11)

4. 勾选复选框


5. 点击【Generate】按钮,出现“Generating done”就好了
6. 然后下载 Caffe.rar, 解压后放在 openposeC-master\3rdparty\caffe\bin。因为之前通过 getcaffe.bat下载的caffe少boost_thread-vc140-mt-1_61.dll等dll文件,会导致无法运行,这几个dll根本下不到啊啊啊,所以我就把我自己弄好的dll打包好分享出来。 caffe百度云,提取码2403

7. 打开vs2015,打开项目,sln文件在刚刚的build文件夹里,选择Examples下的OpenPoseDeme,右键“设置为启动项目”,然后build整个解决方案
8. 、

不知道别人怎么样,反正我跳过了一个。。。。

四、 跑起来啊嘿嘿嘿~
1. 上面的步骤完了之后,C++的例子已经可以运行了,所有C++的例子都在这里,需要用哪个例子,就把它右键设置为启动项目,然后运行就可以了。(里面有几个例子是要用到摄像头的)


2. 运行python
正常步骤下来,这个时候在openpose-master\build\python\openpose\Release文件夹下会出现pyopenpose.cp37-win_amd64.pyd 这个库文件

这证明我们已经安装了python API
然后通过cmd,cd到 openpose-masterV2\build\examples\tutorial_api_python文件夹下,执行 python 01_body_from_image.py,就可以得到结果

PS:如果出现了 找不到 DLL 文件的错误,会提示“BUILD_PYTHON”的错误,这个错误是python文件里写的。。。可以不用管,主要原因还是之前依赖没安好,在确定所有的依赖都放到了对应的文件夹的情况下,可以再次执行 点击【configure】按钮,点击【generate】按钮,vs内 【重新生成解决方案】,这样重新编译一遍就好了。
真的太难了。。。我弄了整整5天。。。。各种缺库。。。我还试过自己编译boost_1_61,只能编译出来静态链接库lib,编译不出来动态链接库dll。。。最核心的caffe包(包含各种boost vc140 dll)还是我从一位大哥那要了一个已经编译好的openpose文件里抠出来的,哪哪都下不到,真的是心力交瘁

已阵亡。。。。


————————————————
版权声明:本文为CSDN博主「雪兰灵莹」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/xuelanlingying/article/details/102793110