OpenPose人体姿态识别项目是美国卡耐基梅隆大学(CMU)基于卷积神经网络(CNN)和监督学习(Supervised Learning)并以caffe为框架开发的开源库。可以实现人体动作、面部表情、手指运动等姿态估计。适用于单人和多人,具有极好的鲁棒性。项目地址:
CMU-Perceptual-Computing-Lab/openpose: OpenPose: Real-time multi-person keypoint detection library for body, face, hands, and foot estimation (github.com)github.com/CMU-Perceptual-Computing-Lab/openpose
由于笔者电脑为核显CPU,本文介绍OpenPose的CPU版本编译与使用。
OpenPose需进行64位编译。尝试使用mingw进行编译,却发现cmake无法创建64位MinGW工程文件,看来win下必须使用使用vs。
二 相关软件安装1.Visual Studio 2017
vs2015以上版本都可以,用于编译整个项目,可以在 官网 免费下载安装社区版。本文中使用的为vs2017版本。
2.Cmake 可以在 这里 下载旧版本的Cmake,推荐下载cmake12或13的版本,较新的版本win64选项与旧版本不同,可能会导致最后生成的工程文件编译出错。
3.python
推荐使用3.6版本的python,其他版本可能会出现兼容性上的问题。
三 下载OpenPose源码和模型 1 下载源码进入OpenPose项目中,下载源码压缩包,也可使用git命令将会整个项目拉到本地。
CMU-Perceptual-Computing-Lab/openpose: OpenPose: Real-time multi-person keypoint detection library for body, face, hands, and foot estimation (github.com)github.com/CMU-Perceptual-Computing-Lab/openpose
整个压缩包有90M左右,下载很慢的话可以通过gitee克隆整个项目再下载。
下载完成后解压。
2.下载依赖进入OpenPose的github项目中,点击3rdparty。
点击pybind11,进入该项目并将该项目下载下来。pybind11用于OpenPose编译后可以通过python调用。
将pybind11压缩包解压,将其中的内容复制到之前解压好的OpenPose目录中的3rdparty/pybind11中。
进入3rdparty/windows目录中,双击执行其中的几个以bat为后缀名的批处理文件。它们会下载OpenPose项目所需要的caffe,opencv等框架。
若是觉得下载速度太慢,也可以打开bat文件,自行构造下载链接并通过其他下载工具下载。
这一步也可以略过,之后使用Cmake进行配置的过程中会自动下载这些模型。
这一步用于下载已经训练好的模型。进入models目录,运行getModels.bat文件,下载整个项目需要的模型。由于整个模型很大,下载会花费很长时间,也可以安装上述方法自行构造下载链接下载。
打开Cmake-gui,第一行选中OpenPose的目录,第二行指定生成项目的路径,可以自行设置。
点击configure,由于我们需要编译64位的,这里选择win64。vs版本要与已安装的一致。点击finish就会自动进行配置,若前面没有下载模型和依赖,这一步会自动下载,需要耐心等待。
待cmake配置完成(出现CUDA错误不用管)后,找到BUILD_PYTHON,并打上勾,这样编译后才会生成可供python调用的包。
找到GPU_MODE,改成CPU_ONLY,表明我们指定用CPU运行。
将USE_CUDNN取消选中。
再次点击configure,cmake会自动下载cpu版本的caffe。注意下载完成的压缩包应该是32M左右,若只有21M则说明没有下载全,需删除caffe_cpu文件夹后再次进行configure。
上面的操作执行完成后,点击generate进行生成。出现Generating Done后,点击Open Project便可自动打开vs2017.
未能从cmake打开vs时,也可通过OpenPose.sln工程文件手动打开vs。
进入VS后,先将Debug模式改成Release,平台为x64(会生成64位可执行文件)。若平台是x86,则说明cmake第一步错了(cmake默认32位),需要换个目录重新运行一遍cmake。
找到OpenPoseDemo,右键-设为启动项目。
找到OpenPoseDemo,右键-生成,即可编译OpenPose源代码,生成可执行文件。右侧还有数十个Demo可以编译。也可以通过上方的生成-生成解决方案进行整个项目的编译。
编译生成的可执行文件会放在x64/Release文件夹下。
将x64/Release目录和OpenPose主文件夹内model目录中全部内容复制到bin文件夹下。
点击右键+shift,打开powershell。
输入./OpenPoseDemo命令, 若能打开摄像头并识别图像则说明编译大功告成啦。