从前的从前,就是两年之前,opencv和caffe是一座小小的山,第一天在里头,第二天也在里头,第三天,第四天也是哦
今天用一上午就完成好配置了,牛牛牛,嘻嘻嘻。
在转caffe之前你需要装一些他的依赖库,opencv也是,不能直接装opencv-python这个库哦,我们要用去opencv的官网去下载源码进行安装。
# 打开你的终端
cd opencv-3.4.6
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D CUDA_GENERATION=Kepler ..
sudo make -j8
sudo make install
# 配置.bashrc
echo '/usr/local/lib' | sudo tee -a /etc/ld.so.conf.d/opencv.conf
sudo ldconfig
printf '# OpenCV\nPKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig\nexport PKG_CONFIG_PATH\n' >> ~/.bashrc
source ~/.bashrc
#test
sudo python3
import cv2
# 或者这样test
pkg-config opencv --modversion
#出现你下载的opencv版本号就行
注意:一般不会这么顺利的,很容易有一些opencv的依赖库没有装而报错,在你make的时候发生错误,你修改完之后,需要在build这个文件夹下面输入sudo make clean
去清除你刚刚编译失败产生的文件,之后再进行sudo make -j8
。同样的问题在caffe进行编译的时候也是一样的,这样就不需要把build文件删除再新建了。若是不清除的话,就会出现make: Nothing to be done for all'
的报错!!!
opencv不同版本的切换:
$vim ~./bashrc
#在文件末尾加入一下内容(根据自己的安装路径进行配置)
export PKG_CONFIG_PATH=~/opencv-3.4.1/build/installed/lib/pkgconfig
export LD_LIBRARY_PATH=~/opencv-3.4.1/build/installed/lib
#更新~./bashrc
$source ~./bashrc
#查询OpenCV的版本
$pkg-config --modversion opencv
安装相关依赖
sudoapt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-devlibhdf5-serial-dev protobuf-compiler
sudoapt-get install --no-install-recommends libboost-all-dev
sudoapt-get install libopenblas-dev liblapack-dev libatlas-base-dev
sudoapt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
安装好之后在你心意的位置使用sudo git https://github.com/BVLC/caffe
下载caffe,按照教程安装HDF5这个库
HDF5安装及问题解决安装完成之后进行链接建立
hdf5,hdf5_hl问题,也可以直接看下面的操作
/usr/lib/x86_64-linux-gnu #这个具体要看你装的版本号数字
libhdf5_serial.so.100 #有些可能是libhdf5_serial.so.7 或者10,这个具体看你的文件是什么
libhdf5_serial_hl.so.100
# 建立软连接
sudo ln -s libhdf5_serial.so.100 libhdf5.so #libhdf5_serial.so.100是我的文件名,后名是需要间的连接文件名,后面这个名字一定要是这个,下同
sudo ln -s libhdf5_serial_hl.so.100 libhdf5_hl.so
然后如下操作:
cd caffe
sudo cp Makefile.config.example Makefile.config #备份一下我们的配置文件
sudo gedit Makefile.config #打开它进行修改
#取消注释就是表示我要用这个这个东西
USE_CUDNN := 1 #使用gpu版本
OPENCV_VERSION := 3 #使用opencv3以上
WITH_PYTHON_LAYER := 1#使用python接口
在INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include只有加上
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial
保存,之后打开同目录下的Makefile
将:LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_hl hdf5
改为:LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_serial_hl hdf5_serial
sudo make all -j8
sudo make runtest #最后进行检测
runtest没问题之后如下
再来一个python的api安装
#cd 到caffe的安装目录里面
make pycaffe
把caffe加入Python环境
vim ~/.bashrc
source ~/.bashrc
sudo ldconfig #以防万一
export PYTHONPATH=~/caffe/python:$PYTHONPATH
#'~'表示linux的用户目录,比如/home/usr,所以这里的安装就路径取决于你的caffe文件的位置
import sys
caffe_root = '/home/yourusrname/caffe/' #这里是根据你caffe解压后那个位置来写的哦
sys.path.insert(0, caffe_root + 'python')
import caffe
print(caffe.__version__)
祝你也可以
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D CUDA_GENERATION=Kepler ..
,就可以解决了,Kepler是GPU的一个框架加上之后应该时候指定你现在用的CUDA路径(我现在的是10.0)OPENCV_VERSION := 3
,取消掉注释再做make就好了sudo make runtest
出现的问题,我们将cuda的lib中的链接库复制到path目录下即可:sudo cp /usr/local/cuda-10.0/lib64/libcudart.so.10.0 /usr/local/lib/libcudart.so.10.0 && sudo ldconfig
sudo cp /usr/local/cuda-10.0/lib64/libcublas.so.10.0 /usr/local/lib/libcublas.so.10.0 && sudo ldconfig
sudo cp /usr/local/cuda-10.0/lib64/libcurand.so.10.0 /usr/local/lib/libcurand.so.10.0 && sudo ldconfig
sudo pip3 install numpy==1.14.5