Google Colab中OpenPose加载libopenpose.so.1.7.0共享库失败求助
解决Colab重启后OpenPose共享库找不到的问题
问题根源
Colab的临时会话(/content目录)在关闭重启后会完全重置,哪怕你把OpenPose的build目录备份到了Drive,系统默认的共享库搜索路径也不会自动包含Drive里的OpenPose库目录。另外如果之前是在GPU环境下编译的OpenPose库,切换到CPU运行时后会出现环境不兼容的情况,也会触发这个报错。
修复方案
方案1:重新配置共享库搜索路径
先进入你存在Drive里的OpenPose主目录,把库目录添加到系统环境变量中:
# 替换成你Drive中OpenPose的实际路径 cd /content/drive/MyDrive/openpose/ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/content/drive/MyDrive/openpose/build/lib/
配置完成后再执行你的姿态估计命令即可。
方案2:针对CPU运行时重新编译(方案1无效时用)
如果之前是在GPU环境编译的OpenPose,切换到CPU运行时后库会存在兼容性问题,需要重新编译:
- 进入OpenPose目录并清理旧编译文件:
cd /content/drive/MyDrive/openpose/ rm -rf build/ mkdir build && cd build/
- 启用CPU模式编译:
cmake -DENABLE_CUDA=OFF -DENABLE_CUDNN=OFF .. make -j$(nproc)
编译完成后再执行你的姿态估计命令。
方案3:自动配置路径(简化每次会话操作)
把配置环境变量的代码放到脚本开头,避免每次手动执行:
import os # 替换成你Drive中OpenPose库目录的实际路径 os.environ['LD_LIBRARY_PATH'] += ':/content/drive/MyDrive/openpose/build/lib/' video_path = "/content/drive/MyDrive/datasetRaw/prova1.mp4" video_height = 480 output_path = "/content/drive/MyDrive/datasetRaw/json_frames/" video_output_path = "/content/drive/MyDrive/datasetRaw/json_keys/prova1-sk.mp4" !./build/examples/openpose/openpose.bin \ --model_pose BODY_25B \ --video {video_path} \ --write_json {output_path} --display 0 \ --number_people_max 1 \ --write_video {video_output_path}
额外提示
- Colab的
/content临时存储每次重启都会清空,不要依赖这里的编译文件,务必把编译好的OpenPose存到Drive。 - 如果需要频繁切换GPU/CPU运行时,建议分别编译两个版本的OpenPose,存到Drive不同目录,根据当前运行时选择对应版本执行。
内容的提问来源于stack exchange,提问作者antof27
相关产品推荐
相关产品推荐

