OpenPose笔记——windows 10下,自编译openpose代码(vs下能跑了,pythonAPI也能使了)
原文出处:https://blog.csdn.net/xuelanlingying/article/details/102793110
再次感谢原文博主!!
1、但是还有一个不足点,就是在最后执行python代码时,一定要在安装了opencv库的python环境下运行,因为源代码导入了opencv库。
2、安装的Cuda版本最好是cuda10,我用cuda8没有成功。步骤基本差不多。有几点说明,如果没有pyhind不能生成python api。但是C++的可用,如若不需要python接口,忽略即可。在VS中编译时,选择Release模式,而不是Debug。
3、再附上安装的视频教程:一、https://www.bilibili.com/video/BV1Ma4y14734?from=search&seid=12437501417723638799
二、https://www.bilibili.com/video/BV1BT4y13773?from=search&seid=12437501417723638799
简直太可怕了,遇到N多的问题,我觉有必要写下来记录一下
我自己编译了四五天
编译了10几次
夭寿哦!
缺好多好多东西!
给大家讲一下具体步骤
一 .准备工作
准备工作当然是各种环境:
- 至少VS2015 以上的版本
- CMake Gui,注意,千万不要下载3.16版的!3.16版本没有win64的选项,编译出来是win32版本的。。。然后x64和x86冲突简直哭死个人。。。。我个人用cmake 3.13.2版本莫问题
- OpenPose 源码 下载好后解压好待用。本人是2019年10月23日下载的源码
- 安装 CUDA 官网下载,按提示来就行,注意添加环境变量:添加 [yourPath]\cuda 和[yourPath]\cuda\bin 到环境变量
- 安装 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
二. 各种依赖安装 - 运行…/openpose-master/models/中的getModels.bat 下载所需的模型
- 运行…/openpose-master/3rdparty/windows中的getCaffe.bat,getCaffe3rdparty.bat和getOpenCV.bat 下载各种依赖
- 下载pyhind11,放在openpose-master\3rdparty文件夹下覆盖即可。 pyhind11百度云,提取码e0gv
三、编译源代码
最重要的来了!
- 打开CMake GUI,第一个红框是openpose源码的文件夹,第二个红框里填的是生成路径,自己创建的
- 点击【Configure】按钮,在弹出的对话框根据自己的版本选择合适的vs版本,一定要选择带win64的!对于同一个源码文件夹,这个对话框只弹一次。。。。。
- 等出现 “Configuring done”后,差不多是这样的,再次点击【Configure】按钮直到红色全部消失。configure时如果出现错误,按照下面的错误提示自行解决。(我遇到的就是缺少pyhind11)
- 勾选复选框
- 点击【Generate】按钮,出现“Generating done”就好了
- 然后下载 Caffe.rar, 解压后放在 openposeC-master\3rdparty\caffe\bin。因为之前通过 getcaffe.bat下载的caffe少boost_thread-vc140-mt-1_61.dll等dll文件,会导致无法运行,这几个dll根本下不到啊啊啊,所以我就把我自己弄好的dll打包好分享出来。 caffe百度云,提取码:0n32
- 打开vs2015,打开项目,sln文件在刚刚的build文件夹里,选择Examples下的OpenPoseDeme,右键“设置为启动项目”,然后build整个解决方案
- 、
不知道别人怎么样,反正我跳过了一个。。。。
四、 跑起来啊嘿嘿嘿~ - 上面的步骤完了之后,C++的例子已经可以运行了,所有C++的例子都在这里,需要用哪个例子,就把它右键设置为启动项目,然后运行就可以了。(里面有几个例子是要用到摄像头的)
- 运行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文件里抠出来的,哪哪都下不到,真的是心力交瘁
已阵亡。。。。