因为某种原因,重装了ubuntu16.04系统,趁此机会安装Openpose并记录步骤
新系统的优点就是没有混乱的依赖,特别是没有conda带来的protobuf版本的干扰
1.安装cuda 10.1
显卡版本: 430.64
直接官方地址:CUDA Toolkit Archive
nstallation Instructions:
Run `sudo sh cuda_10.1.105_418.39_linux.run`
Follow the command-line prompts
Please make sure that
- PATH includes /usr/local/cuda-10.1/bin
- LD_LIBRARY_PATH includes /usr/local/cuda-10.1/lib64, or, add /usr/local/cuda-10.1/lib64 to /etc/ld.so.conf and run ldconfig as root
To uninstall the CUDA Toolkit, run cuda-uninstaller in /usr/local/cuda-10.1/bin
Please see CUDA_Installation_Guide_Linux.pdf in /usr/local/cuda-10.1/doc/pdf for detailed information on setting up CUDA.
bashrc脚本设置cuda路径
sudo subl /etc/profile
2.安装cudnn
Cudnn的官方下载地址,需要使用社交账号登录
cuDNN Archive
我们选择cudnn 7.5.0 for cuda 10.1
复制文件
sudo cp ~/cuda/include/cudnn.h /usr/local/cuda/include
sudo cp ~/cuda/lib64/lib* /usr/local/cuda/lib64
创建链接
cd /usr/local/cuda/lib64
sudo ln -sf libcudnn.so.7.5.0 libcudnn.so.7
sudo ln -sf libcudnn.so.7 libcudnn.so
sudo ldconfig -v
3.安装caffe依赖包
Ubuntu 16.04下Caffe的配置过程
sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler
sudo apt-get install --no-install-recommends libboost-all-dev
sudo apt-get install libopenblas-dev liblapack-dev libatlas-base-dev
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
sudo apt-get install git cmake build-essential
检查protobuf版本:
protoc --version
此时应显示:libprotoc 2.6.1
4.安装Opencv 3
安装依赖,下载源码
sudo apt-get install build-essential
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
新建build并编译
cmake ..
make -j8
make install -j8
查看是否安装成功:
pkg-config --modversion opencv
5.开始编译
这里我们使用Openpose自带的caffe,并没有先编译好caffe再链接进来
caffe部分编译通过,openpose部分OpenCV报错
../../src/openpose/libopenpose.so.1.5.1: undefined reference to `cv::write(cv::FileStorage&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator
<char> > const&, cv::Mat const&)'
../../src/openpose/libopenpose.so.1.5.1: undefined reference to `cv::imshow(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&,
cv::_InputArray const&)'
用cmake-gui手动改了一下Opencv_dir的路径,重新编译
编译成功!