Macos部署openpose(M1系列-intel通用)

OpenPose人体姿态识别项目是美国卡耐基梅隆大学(CMU)基于卷积神经网络和监督学习并以caffe为框架开发的开源库。可以实现人体动作、面部表情、手指运动等姿态估计。适用于单人和多人,具有极好的鲁棒性。是世界上首个基于深度学习的实时多人二维姿态估计应用,基于它的实例如雨后春笋般涌现。人体姿态估计技术在体育健身、动作采集、3D试衣、舆情监测等领域具有广阔的应用前景,人们更加熟悉的应用就是抖音尬舞机。

在这里插入图片描述

1.首先下载openpose开源软件包

git clone https://github.com/CMU-Perceptual-Computing-Lab/openpose

请添加图片描述

2.进入openpose目录,并执行sh文件进行安装

cd openpose
bash scripts/osx/install_brew.sh

请添加图片描述

3.配置Cmake GUI

brew install --cask cmake

请添加图片描述
我这里已经安装好了,所以出现了一个error。

4.部署Caffe,OpenCV等组件

brew install --cask cmake

请添加图片描述

5.下载Cmake,并安装,并在openpose文件夹下新建build目录。

请添加图片描述
请添加图片描述
请添加图片描述

Cmake的使用如下图所示:
请添加图片描述

6.替换caffe文件夹

git clone https://github.com/CMU-Perceptual-Computing-Lab/caffe

请添加图片描述

替换目录:

/openpose/3rdparty

7.下载对应的模型,放在/models文件夹中。

cd models
bash getModels.sh

8.进入build目录,执行命令

make -j`sysctl -n hw.logicalcpu`

但是很可惜,会报错。因此,我们需要解决报错的问题。
请添加图片描述

报错信息1:

CMake Error at /Applications/CMake.app/Contents/share/cmake-3.23/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
Could NOT find vecLib (missing: vecLib_INCLUDE_DIR)
Call Stack (most recent call first):
/Applications/CMake.app/Contents/share/cmake-3.23/Modules/FindPackageHandleStandardArgs.cmake:594 (_FPHSA_FAILURE_MESSAGE)
cmake/Modules/FindvecLib.cmake:24 (find_package_handle_standard_args)
cmake/Dependencies.cmake:135 (find_package)
CMakeLists.txt:49 (include)

解决方案:
1.查找vecLib.h

请添加图片描述
命令:

find / -name vecLib.h |grep Accelerate.framework

我这里使用的文件是:

/Library/Developer/CommandLineTools/SDKs/MacOSX12.3.sdk/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/Headers/vecLib.h

解决方法:
打开build/caffe/src/openpose_lib-build/CMakeCache.txt文件,找到vecLib_INCLUDE_DIR:PATH=vecLib_INCLUDE_DIR-NOTFOUND一行,从本机搜索找到vecLib.h文件后将其路径覆盖掉vecLib_INCLUDE_DIR-NOTFOUND。
请添加图片描述

报错信息2:

请添加图片描述

too many arguments to function call, expected single argument ‘total_bytes_limit’, have 2 arguments
coded_input->SetTotalBytesLimit(kProtoReadBytesLimit, 536870912);
/opt/homebrew/include/google/protobuf/io/coded_stream.h:384:8: note: ‘SetTotalBytesLimit’ declared here
void SetTotalBytesLimit(int total_bytes_limit);

很明显,参数多了,函数void SetTotalBytesLimit(int total_bytes_limit);多了一个参数,需要把第二个参数注释掉,进入出错代码:

vim /openpose/3rdparty/caffe/src/caffe/util/io.cpp

找到对应的行,改掉函数

请添加图片描述

报错信息3:

请添加图片描述

#include <cblas.h>
^~~~~~~~~
In file included from /Users/wanghaitao/Desktop/content/openpose/src/openpose/net/netCaffe.cpp:6:
In file included from /Users/wanghaitao/Desktop/content/openpose/build/caffe/include/caffe/net.hpp:12:
In file included from /Users/wanghaitao/Desktop/content/openpose/build/caffe/include/caffe/layer.hpp:12:
In file included from /Users/wanghaitao/Desktop/content/openpose/build/caffe/include/caffe/util/math_functions.hpp:11:
/Users/wanghaitao/Desktop/content/openpose/build/caffe/include/caffe/util/mkl_alternate.hpp:14:10: fatal error: ‘cblas.h’ file not found
#include <cblas.h>

找不到cblas.h的文件
操作方法也是和vecLib.h的一样,通过find / -name cblas.h来寻找我们的目标文件,
请添加图片描述

cp -p /Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/Headers/cblas.h ./openpose/build/caffe/include/caffe/util/

我这里将我查找到的cblas.h的文件复制到了调用该文件的cpp目录下。
请添加图片描述

同时将报错文件中的cblas.h的中括号改为双引号。

修改后重新运行

make -j`sysctl -n hw.logicalcpu`

请添加图片描述
成功编译openpose。

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序小黑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值