Ubuntu14.04配置openpose见解

Ubuntu14.04配置openpose见解

系统:Ubuntu14.04

显卡:NVIDIA950M

cuda:8.0

cudnn:5.1

opencv:3.4

配置openpose的过程相对于之前手动安装NVIDIA375.26以至于重装无数次系统的经历来说,相对而言要简单一些.

一般配置过程,在你的cuda,NVIDIA和opencv配置好的前提下,先进入models文件夹下getModels,再进入我们的/3rdparty/caffe将符合你系统配置的(例)“Makefile.config.Ubuntu14_cuda8.example”重命名为“Makefile.config”,然后双击进入gedit修改参数,前面我们已经配置好opencv,所以只需要将“#OPENCV_VERSION := 3”前面的“#”号去掉然后保存(如果需要其他接口可根据需要修改),之后在我们的caffe文件夹下执行“make all -j8 && make distribute -j8”,在“j”后面的数字是由你CPU的核心数来决定的,如果是4核的话则都修改为“-j4”,执行,就进行openpose自带caffe的编译环节,会等待一段时间。

编译过程中提示:

nvcc warning : The 'compute_20', 'sm_20', and 'sm_21' architectures are deprecated, and may be removed in a future release (Use -Wno-deprecated-gpu-targets to suppress warning)

只是warning不是error,可以不用管它,不碍事。

编译过程提示:

/usr/bin/ld: warning: libopencv_core.so.3.4, needed by //usr/local/lib/x86_64-linux-gnu/libopencv_imgcodecs.so, may conflict with libopencv_core.so.2.4
/usr/bin/ld: .build_release/examples/cpp_classification/classification.o: undefined reference to symbol '_ZN2cv6String10deallocateEv'
//usr/local/lib/x86_64-linux-gnu/libopencv_core.so.3.4: error adding symbols: DSO missing from command line

刚开始以为是我opencv版本太高,以为需要降级,于是又卸载掉opencv3.4,折腾了好久,配置3.0或3.2的过程又出现许许多多的bug,后来还是只得装回opencv3.4,再研究研究这个问题了。结果是opencv多版本共存导致的问题,所以执行下列语句即可解决问题,重新对caffe执行make clean然后重新编译即可。

sudo apt-get autoremove libopencv-dev

最后自带的caffe编译好之后,回到我们的openpose-master文件夹下面,先从ubuntu里面复制出符合你系统配置的“Makefile.config.Ubuntu14_cuda8.example”更名为“Makefile.config”放到openpose-master文件夹下面,和之前编译caffe前做的操作一样,进入gedit编辑参数,和之前一样去掉“#OPENCV_VERSION := 3”前面的“#”号就行了,然后执行“make all -j8”,等待编译完成。

编译完成之后运行我们的样例:

./build/examples/openpose/openpose.bin --video examples/media/video.avi

结果提示:

./build/examples/openpose/openpose.bin: error while loading shared libraries: libopencv_core.so.3.4: cannot open shared object file: No such file or directory

是共享链接库出现了问题,所以就搜索libopencv_core.so.3.4,我最后是在/usr/local/lib/x86_64-linux-gnu下面找到的,所以要把这个路径添加到系统进去。可以根据你这个库的名字新建一个。

sudo gedit /etc/ld.so.conf.d/libopencv_core.conf  

我这里是libopencv_core.conf,你可以改为对应你的xxx.conf。然后把我们找到的libopencv_core.so.3.4的路径以及它的上一个路径添加进去,我是这样子添加的:

/usr/local/lib/
/usr/local/lib/x86_64-linux-gnu/

然后执行 sudo ldconfig -v 有输出东西就行了,接下来再回到我们的openpose的样例,发现可以了,没有刚才那问题。

但遇到提示:“已放弃 (核心已转储)”,赋予运行的root权限即可。

如果有显存不足的情况,会提示:

Check failed: error == cudaSuccess (2 vs. 0)  out of memory

使用:

./build/examples/openpose/openpose.bin --help

可以得到openpose的接口调用,可以直接使用。

例如:执行:

sudo ./build/examples/openpose/openpose.bin --image_dir demo/  --write_images result

是调用openpose.bin将在openpose-master下面,demo里面的图片提取骨架信息,并保存到openpose-master下面的result文件夹中。

猜你喜欢

转载自blog.csdn.net/wuzebiao2016/article/details/79047805
今日推荐