OpenPose环境搭建的经历
由于毕设要用到OpenPose做人脸识别的项目,自己没有用过,也只能硬着头皮从零开始上了
1.window 10 或者 Linux 系统都可以
2.GPU 必须是英伟达的显卡,CUDA技术对显卡的是比较挑的,显卡的CUDA核心越多工作效率越高,核心频率、显存频率越高越好,显存容量不要低于2GB,然而经历过21年的矿潮后,还有什么显卡是值得你拥有的。 GTX960???对不起我不想做接盘侠,然而我还有的选吗?毕竟太穷了。
集显???哎~~~所以我笔记本用不了只能台式机死马当活马医了,毕竟疫情封校快递都停了,么的选择。
用的VS2017
CUDA10.0
文件的下载和安装都挺全的,在运行bat下载models的过程中是真的慢几百兆的文件要下好几个小时,问题出现在了CMake 的配置问题集中在Visual Studio 上 链接: link.
自然还存在其他问题,只能根据CMake的报错查解决方案了。
已经试过的解决方案:
1.安装windows 8.1 SDK
2.path中添加MSBuild的路径,在cmd中调用MSBuild.exe能够显示出对应的版本号。
3.去掉openpose的文件名中的(.)
4.重装不同版本的CMake的。
至于其他的解决方案在内网外网查了好久也没有找到对症的解决方案,无用功做的太多了,自己就麻木了,最后去了CMake的官方论坛发表了自己的问题,死马当活马医吧。
CMake的帖子link.
最后终于瞎猫碰上死耗子,解决了这个问题,奉上图片为证
查到了CMU的Openpose的实验实官方的安装思路,和规避错误的步骤,软件安装步骤上链接link.
1.主要讲了软件的安装步骤,首先 安装CMake-gui 版本要对应Windows win64-x64格式的,我试过好多版本,最终装的是3.18版的。CMake历史版本链接link.
2.重点注意的是先安装完成Visual Studio 2015/2017/2019版本中的一个,配置完环境变量
以防万一MSBuild的地址添加了两处
后再安装CUDA和cuDNN,其中CUDA会VS的版本进行不同的配置(之前重装过几遍VS),所以VS变了就要重装CUDA,cuDNN下载解压完成后要合并到CUDA的安装目录中,剩下的就是一些操作步骤中可能出现的问题解决方案了。
还有一个官方的硬件方面的指导链接link.
3.将openpose转移到了C盘根目录下了。
不过奇怪的是我已经通过openpose中的.bat文件下载过需要的文件,CMake 点了Configuration之后还在重新下,这玩意等他下载完不知道猴年马月的,
靠CMake下载完这些models基本没戏,还是自己去找官网地址下载吧
还有第三方库的其他组件,才几百兆的文件,.bat下载速度才几KB/s 太慢,复制网址下载完后再拷贝到对应目录中
巧合下我换了openpose1.5,试了一下,小一些的图片还是能够运行识别的,文件太大的话还是会出现out of memery,官方说在windows中使用粗DNN加持后只识别人体关节点至少需要2.2G to Body_25 1.5G to COCO,如果再加上面部或手部的话4G都不够。真的明白了为什么一些专业显卡动不动就需要24G的显存。
Body_25是GPU版本下最快、最准确,当然前提是你的显存足够大,COCO适用于CPU版本说是会被移除。
之后便是一顿测试识别图片没问题
切换模型和加速说是要在OpenPoseDemo中main函数指定位置里添加
FLAGS_model_pose = "COCO";
FLAGS_net_resolution = "320x176";
识别视频并转换输出需要找一下教程我用的是显卡识别的,搜索的时候油管的几个视频使用的设CPU版本的用不到VS直接使用bin\OpenPoseDemo.exe在DOS里命令行处理,我也试了一下官方说需要把DLL文件拷贝到指定位置才能像CPU版本的一样使用命令行操作。[OpenposeDemo.exe].结果指定位置的链接炸了OpenPoseDemo.exe --video examples\media\video.avi --write_json output_json_folder --face --write_video examples\media\video.avi
看官方的说法,如果你在windows上使用的VS,基本上是用来修改编译源代码或者链接第三方库什么的,反正意思就是想要用的顺就得磕源码,如果说你用的是portable便携版的,只需要DOS中输命令使用OpenPoseDemo.exe就行,相关的命令官方文档里有讲比较简单,可是怎么通过VS操作Openpose,官方文档里很少讲而且仅有的几条说明链接还炸了。心累.jpg。。。
关于如何使用Python使用Openpose这个问题,https://www.youtube.com/watch?v=l4wYt0Ghos0,这个视频里有详细的方法,其实使用Openpose是C++源码编译的,Python语言的使用本质上是调用项目的API接口。
先用虚拟机试一下吧,等快递解封了再买块固态装一下试试。
Ubuntu20.4LTS
CUDA11.1
主要参考的是CSDN上的schoolblack的两篇文章操作,安装CUDA和cuDNN[link1].
openpose的配置[link2]
还有一个全教程[link全教程].三个参考教程参考着弄,肯定还会出错(心累)
对了还有一个逼乎的链接最终效果要跟他的一样[link逼乎].
嗯。。。出错了下载完CUDA解压时tmp临时存储空间不够清空了一下回收站,然后再试gcc 版本不对,看逼乎上说的估计时Ubuntu的一些组件需要更新一遍,做好准备工作才行,可是下载速度真的好慢呀。
参考视频B站linkB站.
安装组件的时候要关闭代理软件,否则会下载链接失败,Pip的安装地址替换成国内的镜像网站下载能够快很多,常见的镜像网站就这几个:
清华大学 https://pypi.tuna.tsinghua.edu.cn/simple
中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple
豆瓣(douban) https://pypi.douban.com/simple
阿里云 https://mirrors.aliyun.com/pypi/simple
第一次运行时出现了一个错误:ImportError: cannot import name ‘PILLOW_VERSION’ from ‘PIL’
打开cmd,
卸载当前的版本,安装7.0以前的版本pillow
pip uninstall pillow
Yes
pip install Pillow==6.2.2 --user
卸载重装pillow [link].
之后修改最后一行的报错.py文件中的PILLOW_VERSION为__version__
再次运行一下可以识别测试视频了
嗯,这个方法出的幺蛾子最少,而且十分的简单吗,对小白很友好,可是我做的项目这个简易版本功能太少了,处理速度也不行,只能说寄了,白费功夫,还是转到windows 和Ubuntu上试试吧。