一 写在前面
未经允许,不得转载,谢谢。
openpose是真的好用也是配置也真的麻烦,目前已经尝试:
- windows的portable版本
- pytorch-openpose实现版本
但是都会有不同的问题。
在linux服务器上openpose由于不能与anaconda兼容等问题,感觉实在是比较麻烦,疫情在家远程连实验室的windows又卡的不行,最后只能用自己的mac来配置环境跑程序了 ><
二 具体步骤
主要参考:官方repo-/doc/installation.md
2.1 clone openpose
- 选一下位置,然后执行:
git clone https://github.com/CMU-Perceptual-Computing-Lab/openpose
- 我的放在study/目录下:
- 获取models
- 因为下载模型会比较耗时,所以可以利用安装的一系列时间差提前进行;
brew install wget
bash getModels.sh
2.2 安装前置项目
具体参考:mac-os-prerequisites
- 看看是否已经安装
brew
, (终端输入命令可以check
- 没有的话
bash scripts/osx/install_brew.sh
命令安装;
-
安装CMake GUI:
brew cask install cmake
安装Caffe, OpenCV, and Caffe prerequisites:
bash scripts/osx/install_deps.sh
- 这里的scripts就是刚刚clone好的openpose中的内容,所以先进到路径再执行即可。
- 大概等了20分钟左右,最后出现没有pip
- 安装pip:
sudo easy_install pip
- 重新执行, 然后出现numpy版本不对的问题
- 问题解决:
pip install --ignore-installed --user numpy==1.16.6
- 再次重新执行:
- Eigen prerequisite(optional)
- 这个我没有装;
2.3 Openpose配置
- 打开CMake应用
-
直接搜索CMake就可以看到;
- 设置source code源码的位置以及build的位置;
- souce code的位置就选你自己的openpose放置的目录;
- build的话可以自己话创建一下,我把它设置在openpose/build/, 这样方便管理;
- 点击
Configure
按键, 然后确认一下Generator
是不是Unix Makefile
- 错误:
解决方案:
- 定位到最关键的报错信息:
Caffe will be built from source now.
CMake Error at /Applications/CMake.app/Contents/share/cmake-3.17/Modules/ExternalProject.cmake:2659 (message):
No download info given for 'openpose_lib' and its source directory:
/Users/lovelyqian/study/openpose/3rdparty/caffe
is not an existing non-empty directory. Please specify one of:
* SOURCE_DIR with an existing non-empty directory
* DOWNLOAD_COMMAND
* URL
* GIT_REPOSITORY
* SVN_REPOSITORY
* HG_REPOSITORY
* CVS_REPOSITORY and CVS_MODULE
Call Stack (most recent call first):
/Applications/CMake.app/Contents/share/cmake-3.17/Modules/ExternalProject.cmake:3267 (_ep_add_download_command)
CMakeLists.txt:796 (ExternalProject_Add)
大概意思是cmake GUI没有办法为我们下载Caffe的安装包。
进入到openpose/3rdparty中发现caffe目录是空的;
所以执行
git clone https://github.com/CMU-Perceptual-Computing-Lab/caffe
将openpose支持的caffe下载下来。
再次点击Configure and Generate:
成功之后就可以关闭Cmake,然后进入下一步了~
2.4 Openpose building
cd build/
make -j`sysctl -n hw.logicalcpu`
依然有错误:
详细信息:
CMake Error at /Applications/CMake.app/Contents/share/cmake-3.17/Modules/FindPackageHandleStandardArgs.cmake:164 (message):
Could NOT find vecLib (missing: vecLib_INCLUDE_DIR)
Call Stack (most recent call first):
/Applications/CMake.app/Contents/share/cmake-3.17/Modules/FindPackageHandleStandardArgs.cmake:445 (_FPHSA_FAILURE_MESSAGE)
cmake/Modules/FindvecLib.cmake:24 (find_package_handle_standard_args)
cmake/Dependencies.cmake:135 (find_package)
CMakeLists.txt:49 (include)
-- Configuring incomplete, errors occurred!
See also "/Users/lovelyqian/study/openpose/build/caffe/src/openpose_lib-build/CMakeFiles/CMakeOutput.log".
make[2]: *** [caffe/src/openpose_lib-stamp/openpose_lib-configure] Error 1
make[1]: *** [CMakeFiles/openpose_lib.dir/all] Error 2
make: *** [all] Error 2
参考:https://qiita.com/takahyon/items/197250194edf2d6ec041
为了调bug连日文blog都用上了==
解决方法:
在build/caffe/src/openpose_lib-build/CMakeCache.txt文件中找到
//vecLib include directory
vecLib_INCLUDE_DIR:PATH=vecLib_INCLUDE_DIR-NOTFOUND
所以定位问题为:vecLib_INCLUDE_DIR找不到,所以找不到VecLib。
通过文件检索,找到VecLib的位置:
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/Accelerate.framework/Versions/Current/Frameworks/vecLib.framework/Headers/
然后在对应的位置赋值:
vecLib_INCLUDE_DIR = /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/Accelerate.framework/Versions/Current/Frameworks/vecLib.framework/Headers/
太不容易了,一定要贴个图show一下。
三 试运行
- 测试video
-
./build/examples/openpose/openpose.bin --video examples/media/video.avi
在mac用cpu跑整体还是很慢的,主要是服务器端不能用anaconda会感觉配置起来很麻烦,但是用新买的mac跑程序真的好心痛啊 ヽ(。>д<)p
- 测试image
-
only body:
./build/examples/openpose/openpose.bin --image_dir examples/media/
-
body+hand:
./build/examples/openpose/openpose.bin --image_dir examples/media/ --hand
-
body + face +hand ./build/examples/openpose/openpose.bin --image_dir examples/media/ --face --hand`
- for update:
-
git pull origin master
获取最新版本的code; - 参考官方-repo-Reinstallation的指南