ps:仅记录个人学习经验,无意侵权。
参考来源:
【OpenPose-Windows】中断问题及图像不同分辨率对帧率的影响
Github 项目 - OpenPose 相关问题FAQ
刚出现这个错误不知道什么原因,网上找到的资料零零碎碎,发现很多同学也弄不清这个问题是怎么引起的,原本以为是安装的cuda版本的问题,各种安装卸载cuda+cudnn我安装了不下十来遍,各种版本都尝试了,有时候卸载后结果发现还有之前的版本没卸载完全导致后面各种问题,心力交瘁.jpg
今天再次搜索这个问题发现了新答案,out of memory错误简单来说应该就是gpu太菜,内存太小导致运行失败了,虽然我也没搞懂为什么会失败,因为我查看得知我的gpu一个4G,一个8G,按照网上的说法"默认 Caffe 模型消耗 GPU 显存大于(>) 12GB,cuDNN 能够减少 BODY_25 模型 GPU 显存占用到约 2 GB,COCO 模型 GPU 显存占用减少到约 1.5 G",我猜测可能是多个模型累加超过了我的GPU能够承受的范围吧。另外还有一个较奇怪的点就是命令行输出的信息Auto-detecting all available GPUs... Detected 1 GPU(s), using 1 of them starting at GPU 0.
表示只检测到我有一个GPU,但是我是有两个GPU的,不知道是咋回事…
在命令行运行OpenPoseDemo.exe文件时,加上–net_resolution 320x176即可。比如:
OpenPoseDemo.exe --video video.avi --net_resolution 320x176
运行01_body_from_image.py文件也是类似的:
python 01_body_from_image.py --net_resolution 320x176
这个net_resolution具体参数值可以根据自己的需要修改,分辨率越小,画面每秒传输帧数(fps)越大。不过必须是16的倍数。不然会出现这个报错信息:
Error:
Net input resolution must be multiples of 16.
这个方案是比较简单的解决方案,一般来说能够解决问题。
更多解决方案可参考这个博文:https://blog.csdn.net/qq_36834256/article/details/101114493