caffe配置之opencv2.4.9和配置Makefile.config
2017-03-11 10:54
183 查看
7、安装opencv2.4.9
这个地方坑也不少,用Python写代码用于图像处理时,常常要和opencv结合起来,所以需要安装opencv,我这里用的版本是2.4.9,Python版本是2.7。
(1) 下载 opencv 源码。
(2) 解压到任意目录
unzip opencv-2.4.9.zip
(3) 进入源码目录,创建release目录(或者 build 目录都行)
cd opencv-2.4.9
mkdir release
(4) 可以看到在OpenCV目录下,有个CMakeLists.txt文件,这是用于编译opencv源码的,编译之前需要需要事先安装一些软件
sudo apt-get install build-essential cmake libgtk2.0-dev pkg-config python-dev python-numpy libavcodec-dev libavformat-dev libswscale-dev
(5) 进入release目录,安装OpenCV是所有的文件都会被放到这个release目录下
cd release
(6) 用cmake编译OpenCV源码,安装所有的lib文件都会被安装到/usr/local目录下
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..
make -j4 (-j4表示使用4个线程编译,可以大大加快编译速度)
sudo make install
这个地方,可能会遇到一些问题,如果啥事没发生,那真是太幸运了。
a、第一个错误:
CMake Error at cuda_compile_generated_matrix_operations.cu.o.cmake:206 (message):
Error generating
/home/yy/opencv-2.4.9/build/modules/core/CMakeFiles/cuda_compile.dir/__/dynamicuda/src/cuda/./cuda_compile_generated_matrix_operations.cu.o
make[2]: *** [modules/core/CMakeFiles/cuda_compile.dir/__/dynamicuda/src/cuda/./cuda_compile_generated_matrix_operations.cu.o] 错误 1
make[1]: *** [modules/core/CMakeFiles/opencv_core.dir/all] 错误 2
make: *** [all] 错误 2
解决办法:
输入:“cmake -D CMAKE_BUILD_TYPE=bulid -D CMAKE_INSTALL_PREFIX=/usr/local -D CUDA_GENERATION=Kepler ..”,即可解决!
b、第二个错误
因为我的电脑安装了GPU卡,因此OpenCV会自动编译CUDA相关的代码,可以直接关掉( 在cmake时加上-D WITH_CUDA=OFF ),
但我需要编译。因此默认是打开的,因此在make时遇到以下错误:a storage class is not allowed in an explicit specialization。
解决办法:
打开错误的文件:
vim /root/opencv-2.4.9/modules/gpu/src/nvidia/core/NCVPixelOperations.hpp,
将其中template声明中的所有static全部删除。可以使用vim的全局替换,或者其他编辑工具全局替换即可(template<> static inline 替换为template<> inline ):
在命令行下输入:%s/template<> static inline/template<> inline/g。
最后重新执行以上命令。
(7) 环境变量修改
在/etc/ld.so.conf 文件中添加 /usr/local/lib , 然后执行:
sudo ldconfig -v
为程序指定openvc的头文件位置, 使用pkg-config命令来完成。首先在 /etc/profile 中添加:
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
然后source生效:
source /etc/profile
再执行以下命令可以打印opencv的配置信息:
pkg-config --libs opencv
(8) 把Python与opencv建立连接
编译安装好后的cv2.so,也就是python调用openc所需要的库,放在/usr/local/lib/python2.7/site-packages
这个目录下,我们可以将这个目录添加到环境变量
export PYTHONPATH=$PYTHONPATH:/usr/local/lib/python2.7/site-packages
这样便可以在python中 import cv2。
(9) 测试
在解压的opencv目录下找到 samples/c/build_all.sh,运行该文件:
cd /root/opencv-2.4.8/samples/c/
chmod a+x build_all.sh
./build_all.sh
在这里又遇到一个问题:
/usr/bin/ld: cannot find -lcufft
/usr/bin/ld: cannot find -lnpps
/usr/bin/ld: cannot find -lnppi
/usr/bin/ld: cannot find -lnppc
/usr/bin/ld: cannot find
bf00
-lcudart
去网上找了许多解决/usr/bin/ld: cannot find -lxxx问题的资料,但是都没有解决。
不过看到一些材料中说libcufft,libnpps,libnppi,libnppc,libcudart是cuda的库(cuda和opencv是有仇吧...),搜索/usr/local/cuda-7.0/lib64,
果然发现了libcufft.so.7.0,libnpps.so.7.0,libnppi.so.7.0,libnppc.so.7.0,libcudarts.so.7.0,
既然报错说是/usr/bin/ld: cannot find -lcufft,那是不是因为/usr/local/lib下面没有libcufft.so.7.0,libnpps.so.7.0,libnppi.so.7.0,
libnppc.so.7.0,libcudarts.so.7.0的软连接?
于是分别对上面几个文件建立软连接 sudo ln -s /usr/local/cuda-7.0/lib64/libcufft.so.7.0 /usr/local/lib/libcufft.so
再次进入opencv目录/samples/c/ 运行./build_all.sh 问题解决,不会再报错,然后运行./find_obj 会出现无比nice的测试结果。
{
参考:
http://www.yanjiankang.cn/linux-install-opencv-on-ubuntu-or-redhat/
http://blog.csdn.net/gongxs7/article/details/49131201
http://blog.csdn.net/dyx810601/article/details/51579273
http://blog.csdn.net/llp1992/article/details/50066983
}
8、配置Makefile.config(参考:http://blog.csdn.net/autocyz/article/details/51783857)
折腾到这一步,离成功就不远了,接下来就是配置之前搁置的Makefile.config,进入caffe根目录,使用vim编辑器打开Makefile.config。
在打开的Makefile.config修改如下内容(我自己的配置):
USE_OPENCV := 1
USE_LEVELDB := 1
USE_LMDB := 1
CUSTOM_CXX := g++
CUDA_DIR := /usr/local/cuda-7.5
CUDA_ARCH := -gencode arch=compute_20,code=sm_20 \
-gencode arch=compute_20,code=sm_21 \
-gencode arch=compute_30,code=sm_30 \
-gencode arch=compute_35,code=sm_35 \
-gencode arch=compute_50,code=sm_50 \
-gencode arch=compute_50,code=compute_50
BLAS := atlas
MATLAB_DIR := /home/eric/MATLAB2014/R2014a
PYTHON_INCLUDE := /usr/include/python2.7 \
/usr/lib/python2.7/dist-packages/numpy/core/include
PYTHON_LIB := /usr/local/lib
WITH_PYTHON_LAYER := 1
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/hdf5/serial
BUILD_DIR := build
DISTRIBUTE_DIR := distribute
9、make所有文件
进入caffe根目录,输入如下命令:
sudo make clean
sudo make all -j4
sudo make test -j4
sudo make runtest -j4
sudo make pycaffe -j4
sudo make matcaffe -j4
在命令行下输入Python,会出现Python的一些信息,然后输入import caffe,没有报错说明配置成功。在命令行下输入matlab,会打开MATLAB软件。
如果前面所有的配置过程都没有问题的话,最后一步应该是不会出错的。至此,caffe所有的配置项都完成了,接下来就可以愉快地使用这个强大的深度学习框架了。
这个地方坑也不少,用Python写代码用于图像处理时,常常要和opencv结合起来,所以需要安装opencv,我这里用的版本是2.4.9,Python版本是2.7。
(1) 下载 opencv 源码。
(2) 解压到任意目录
unzip opencv-2.4.9.zip
(3) 进入源码目录,创建release目录(或者 build 目录都行)
cd opencv-2.4.9
mkdir release
(4) 可以看到在OpenCV目录下,有个CMakeLists.txt文件,这是用于编译opencv源码的,编译之前需要需要事先安装一些软件
sudo apt-get install build-essential cmake libgtk2.0-dev pkg-config python-dev python-numpy libavcodec-dev libavformat-dev libswscale-dev
(5) 进入release目录,安装OpenCV是所有的文件都会被放到这个release目录下
cd release
(6) 用cmake编译OpenCV源码,安装所有的lib文件都会被安装到/usr/local目录下
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..
make -j4 (-j4表示使用4个线程编译,可以大大加快编译速度)
sudo make install
这个地方,可能会遇到一些问题,如果啥事没发生,那真是太幸运了。
a、第一个错误:
CMake Error at cuda_compile_generated_matrix_operations.cu.o.cmake:206 (message):
Error generating
/home/yy/opencv-2.4.9/build/modules/core/CMakeFiles/cuda_compile.dir/__/dynamicuda/src/cuda/./cuda_compile_generated_matrix_operations.cu.o
make[2]: *** [modules/core/CMakeFiles/cuda_compile.dir/__/dynamicuda/src/cuda/./cuda_compile_generated_matrix_operations.cu.o] 错误 1
make[1]: *** [modules/core/CMakeFiles/opencv_core.dir/all] 错误 2
make: *** [all] 错误 2
解决办法:
输入:“cmake -D CMAKE_BUILD_TYPE=bulid -D CMAKE_INSTALL_PREFIX=/usr/local -D CUDA_GENERATION=Kepler ..”,即可解决!
b、第二个错误
因为我的电脑安装了GPU卡,因此OpenCV会自动编译CUDA相关的代码,可以直接关掉( 在cmake时加上-D WITH_CUDA=OFF ),
但我需要编译。因此默认是打开的,因此在make时遇到以下错误:a storage class is not allowed in an explicit specialization。
解决办法:
打开错误的文件:
vim /root/opencv-2.4.9/modules/gpu/src/nvidia/core/NCVPixelOperations.hpp,
将其中template声明中的所有static全部删除。可以使用vim的全局替换,或者其他编辑工具全局替换即可(template<> static inline 替换为template<> inline ):
在命令行下输入:%s/template<> static inline/template<> inline/g。
最后重新执行以上命令。
(7) 环境变量修改
在/etc/ld.so.conf 文件中添加 /usr/local/lib , 然后执行:
sudo ldconfig -v
为程序指定openvc的头文件位置, 使用pkg-config命令来完成。首先在 /etc/profile 中添加:
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
然后source生效:
source /etc/profile
再执行以下命令可以打印opencv的配置信息:
pkg-config --libs opencv
(8) 把Python与opencv建立连接
编译安装好后的cv2.so,也就是python调用openc所需要的库,放在/usr/local/lib/python2.7/site-packages
这个目录下,我们可以将这个目录添加到环境变量
export PYTHONPATH=$PYTHONPATH:/usr/local/lib/python2.7/site-packages
这样便可以在python中 import cv2。
(9) 测试
在解压的opencv目录下找到 samples/c/build_all.sh,运行该文件:
cd /root/opencv-2.4.8/samples/c/
chmod a+x build_all.sh
./build_all.sh
在这里又遇到一个问题:
/usr/bin/ld: cannot find -lcufft
/usr/bin/ld: cannot find -lnpps
/usr/bin/ld: cannot find -lnppi
/usr/bin/ld: cannot find -lnppc
/usr/bin/ld: cannot find
bf00
-lcudart
去网上找了许多解决/usr/bin/ld: cannot find -lxxx问题的资料,但是都没有解决。
不过看到一些材料中说libcufft,libnpps,libnppi,libnppc,libcudart是cuda的库(cuda和opencv是有仇吧...),搜索/usr/local/cuda-7.0/lib64,
果然发现了libcufft.so.7.0,libnpps.so.7.0,libnppi.so.7.0,libnppc.so.7.0,libcudarts.so.7.0,
既然报错说是/usr/bin/ld: cannot find -lcufft,那是不是因为/usr/local/lib下面没有libcufft.so.7.0,libnpps.so.7.0,libnppi.so.7.0,
libnppc.so.7.0,libcudarts.so.7.0的软连接?
于是分别对上面几个文件建立软连接 sudo ln -s /usr/local/cuda-7.0/lib64/libcufft.so.7.0 /usr/local/lib/libcufft.so
再次进入opencv目录/samples/c/ 运行./build_all.sh 问题解决,不会再报错,然后运行./find_obj 会出现无比nice的测试结果。
{
参考:
http://www.yanjiankang.cn/linux-install-opencv-on-ubuntu-or-redhat/
http://blog.csdn.net/gongxs7/article/details/49131201
http://blog.csdn.net/dyx810601/article/details/51579273
http://blog.csdn.net/llp1992/article/details/50066983
}
8、配置Makefile.config(参考:http://blog.csdn.net/autocyz/article/details/51783857)
折腾到这一步,离成功就不远了,接下来就是配置之前搁置的Makefile.config,进入caffe根目录,使用vim编辑器打开Makefile.config。
在打开的Makefile.config修改如下内容(我自己的配置):
USE_OPENCV := 1
USE_LEVELDB := 1
USE_LMDB := 1
CUSTOM_CXX := g++
CUDA_DIR := /usr/local/cuda-7.5
CUDA_ARCH := -gencode arch=compute_20,code=sm_20 \
-gencode arch=compute_20,code=sm_21 \
-gencode arch=compute_30,code=sm_30 \
-gencode arch=compute_35,code=sm_35 \
-gencode arch=compute_50,code=sm_50 \
-gencode arch=compute_50,code=compute_50
BLAS := atlas
MATLAB_DIR := /home/eric/MATLAB2014/R2014a
PYTHON_INCLUDE := /usr/include/python2.7 \
/usr/lib/python2.7/dist-packages/numpy/core/include
PYTHON_LIB := /usr/local/lib
WITH_PYTHON_LAYER := 1
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/hdf5/serial
BUILD_DIR := build
DISTRIBUTE_DIR := distribute
9、make所有文件
进入caffe根目录,输入如下命令:
sudo make clean
sudo make all -j4
sudo make test -j4
sudo make runtest -j4
sudo make pycaffe -j4
sudo make matcaffe -j4
在命令行下输入Python,会出现Python的一些信息,然后输入import caffe,没有报错说明配置成功。在命令行下输入matlab,会打开MATLAB软件。
如果前面所有的配置过程都没有问题的话,最后一步应该是不会出错的。至此,caffe所有的配置项都完成了,接下来就可以愉快地使用这个强大的深度学习框架了。
相关文章推荐
- ubuntu14.04下的caffe环境配置(ubuntu14.04+Opencv2.4.9+cuda7.0)
- caffe配置Makefile.config----ubuntu16.04--重点是matlab的编译
- ubuntu12.04下配置opencv2.4.9,nvida显卡驱动,matlab2015a,caffe
- VS2013+opencv2.4.9+cuda6.5+matlabr2014a+配置caffe
- [转][linux(ubuntu14.04)+GPU+cuda6.5+caffe+openCV2.4.9+matlab2013b+python2.7的新手配置转]
- Ubuntu14.04+cuda6.5+opencv2.4.9+caffe配置记录
- 深度学习环境配置Ubuntu16.04+CUDA8.0+CuDNN+Anaconda2+openCV2.4.9+caffe(全离线GPU版)
- linux(ubuntu14.04)+GPU+cuda6.5+caffe+openCV2.4.9+matlab2014a+python的新手配置(修改版)
- linux(ubuntu14.04)+cuda7.5+caffe+openCV2.4.9+matlab+cudnn新手配置
- linux(ubuntu14.04)+GPU+cuda6.5+caffe+openCV2.4.9+matlab2014a+python的新手配置
- linux驱动基础开发3——linux 内核配置机制(make menuconfig、Kconfig、makefile)讲解
- Linux 内核配置机制(make menuconfig、Kconfig、makefile)讲解
- Win7+OpenCV2.4.9+VS2010配置
- opencv学习之VS2010下配置opencv2.4.9
- Linux 内核配置机制(make menuconfig、Kconfig、makefile)讲解
- 64位系统下visual studio 2013配置opencv 2.4.9
- linux驱动基础开发3——linux 内核配置机制(make menuconfig、Kconfig、makefile)讲解
- linux驱动基础开发3——linux 内核配置机制(make menuconfig、Kconfig、makefile)讲解
- 安装OpenCV:OpenCV 2.4.8或2.4.9 +VS 开发环境配置
- linux驱动基础开发3——linux 内核配置机制(make menuconfig、Kconfig、makefile)讲解