Ubuntu 20.04下OpenPose 1.7运行示例报CUDA显存不足核心转储问题
OpenPose 1.7 Ubuntu 20.04运行核心转储问题解决
从你提供的运行日志可以直接定位问题根源:日志中明确输出out of memory错误,属于显存不足导致的程序崩溃,和你当前使用的CUDA 11.3、465版本驱动、RTX3070显卡的兼容性无关,是OpenPose默认运行参数对显存要求过高导致的。
你可以按以下优先级尝试解决方案:
- 降低模型输入分辨率:OpenPose默认输入分辨率超过了RTX3070 8G显存的承载上限,运行时添加
--net_resolution参数调整即可,参数值必须为32的倍数,推荐先尝试设置为320x176,修改后的运行命令如下:
./build/examples/openpose/openpose.bin --video examples/media/video.avi --net_resolution 320x176
你可以根据实际检测效果逐步调高分辨率,找到不触发显存溢出的最大值即可,分辨率越低运行速度越快,仅会小幅降低检测精度,可以自行平衡性能和效果。
- 关闭非必要检测模块:默认配置会同时加载人体、面部、手部三类检测模型,如果你不需要识别面部和手部关键点,运行时添加
--face false --hand false参数,可减少约40%的显存占用。 - 更换轻量检测模型:默认使用的BODY_25模型精度最高但显存占用最大,你可以切换为更轻量的COCO模型,运行时添加
--model_pose COCO参数,显存占用比BODY_25低20%左右。 - 限制显存占用比例:运行时添加
--gpu_memory_fraction 0.8参数,强制OpenPose最多调用80%的显存,避免和系统其他占用显存的进程冲突导致溢出。
如果以上方法都尝试后仍然报错,可以运行nvidia-smi命令查看当前显存占用情况,关闭后台其他占用显存的无关进程释放空间即可。
内容的提问来源于stack exchange,提问作者De Yuan Sun
相关产品推荐
相关产品推荐

