ubuntu16.04、opencv4.2、cuda-10.0、cudnn 7.6.4 编译caffe及问题整理

环境:

ubuntu16.04

opencv4.2

cuda-10.0

cudnn 7.6.4

 

一、安装依赖项

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 libatlas-base-dev

sudo apt-get install -y python-numpy python-scipy python-matplotlib python-sklearn python-skimage python-h5py python-protobuf python-leveldb python-networkx python-nose python-pandas python-gflags cython ipython

sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev

sudo apt-get install git

 

二、caffe安装

在主文件下终端输入(即/home/***(您的服务器名字)这个目录):

git clonehttps://github.com/weiliu89/caffe.git

cd caffe

git checkout ssd(出现“分支”则说明copy-check成功)

 

进入caffe,将Makefile.config.example 文件复制一份并更名为Makefile.config

sudo cp Makefile.config.example Makefile.config

修改该配置文件:

#USE_CUDNN := 1

修改成:

USE_CUDNN := 1

#OPENCV_VERSION := 3

修改为:

OPENCV_VERSION := 3

#WITH_PYTHON_LAYER:= 1

修改为

WITH_PYTHON_LAYER :=1

 

INCLUDE_DIRS :=$(PYTHON_INCLUDE) /usr/local/include

LIBRARY_DIRS :=$(PYTHON_LIB) /usr/local/lib /usr/lib

修改为:

INCLUDE_DIRS :=$(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial

LIBRARY_DIRS :=$(PYTHON_LIB) /usr/local/lib/usr/lib/x86_64-linux-gnu/hdf5/serial

 

 

修改 caffe 目录下的Makefile 文件:

NVCCFLAGS+=-ccbin=$(CXX) -Xcompiler-fPIC $(COMMON_FLAGS)

替换为:

NVCCFLAGS +=-D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)

 

将:

LIBRARIES += gloggflags protobuf boost_system boost_filesystem m hdf5_hl hdf5

改为:

LIBRARIES += gloggflags protobuf boost_system boost_filesystem m hdf5_serial_hl hdf5_serial

 

cd */caffe(进入caffe目录)

mkdir build

cd build

cmake  ..

make -j8

make install

make pycaffe(编译pycaffe)

 

三、anaconda报错

错误1:

runtime library [libgstvideo-1.0.so.0] in /usr/lib/x86_64-linux-gnu may be hidden by files in: /home/mzgong/anaconda3/lib

解决:

输入命令:

echo $PATH        //(查看环境变量)
/home/mzgong/anaconda3/bin:/home/mzgong/anaconda3/condabin:/opt/hisi-linux/x86-arm/arm-hisiv300-linux/target/bin:/opt/hisi-linux/x86-arm/arm-himix200-linux/bin:/opt/hisi-linux/x86-arm/arm-hisiv400-linux/target/bin:/opt/hisi-linux/x86-arm/gcc-arm-none-eabi-4_9-2015q3/bin:/opt/hisi-linux/x86-arm/aarch64-himix100-linux/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

 //去除带anaconda的环境变量,重设剩余环境变量
export PATH=/opt/hisi-linux/x86-arm/arm-hisiv300-linux/target/bin:/opt/hisi-linux/x86-arm/arm-himix200-linux/bin:/opt/hisi-linux/x86-arm/arm-hisiv400-linux/target/bin:/opt/hisi-linux/x86-arm/gcc-arm-none-eabi-4_9-2015q3/bin:/opt/hisi-linux/x86-arm/aarch64-himix100-linux/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

 

三、opencv4

错误1:

error "OpenCV 4.x+ requires enabled C++11 support"

解决:

报错的本质是需要c++11的支持。在CMakeLists.txt中加上这一句命令即可:

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -fPIC -O3 -std=c++11 -fopenmp")
 

错误2:

/home/mzgong/caffe/src/caffe/layers/video_data_layer.cpp:55:30: error: ‘CV_CAP_PROP_FRAME_COUNT’ was not declared in this scope
     total_frames_ = cap_.get(CV_CAP_PROP_FRAME_COUNT);

解决:
/home/mzgong/caffe/src/caffe/layers/video_data_layer.cpp

//加上一个头文件
#include <opencv2/videoio.hpp>
//加上cv命名空间
using namespace cv;
// 加上宏定义
#define CV_CAP_PROP_FRAME_COUNT CAP_PROP_FRAME_COUNT
#define CV_CAP_PROP_POS_FRAMES   CAP_PROP_POS_FRAMES

错误3:

/home/mzgong/caffe/src/caffe/layers/window_data_layer.cpp:293:42: error: ‘CV_LOAD_IMAGE_COLOR’ was not declared in this scope
         cv_img = cv::imread(image.first, CV_LOAD_IMAGE_COLOR);

解决:
opencv4里的 CV_LOAD_IMAGE_COLOR 应该使用 cv::IMREAD_COLOR 来代替。

// 加上宏定义
#define CV_LOAD_IMAGE_COLOR cv::IMREAD_COLOR

错误4:

/home/mzgong/caffe/src/caffe/util/bbox_util.cpp:2186:42: error: ‘CV_FILLED’ was not declared in this scope
                   CV_RGB(255, 255, 255), CV_FILLED);

解决:
/home/mzgong/caffe/src/caffe/util/bbox_util.cpp

//修改CV_RGB为cv::Scalar
//修改CV_FILLED为cv::FILLED

错误5:

/home/mzgong/caffe/src/caffe/util/bbox_util.cpp:2221:48: error: there are no arguments to ‘CV_FOURCC’ that depend on a template parameter, so a declaration of ‘CV_FOURCC’ must be available [-fpermissive]
         cv::VideoWriter outputVideo(save_file, CV_FOURCC('D', 'I', 'V', 'X'),

解决:

cv::VideoWriter writer;
// 修改CV_FOURCC为writer.fourcc

错误6:

/home/mzgong/caffe/src/caffe/util/im_transforms.cpp:246:39: error: ‘CV_BGR2GRAY’ was not declared in this scope
     cv::cvtColor(in_img, in_img_gray, CV_BGR2GRAY);

解决:

注释掉代码对opencv版本的if判断,并加上
#define CV_BGR2HSV cv::COLOR_BGR2HSV
#define CV_HSV2BGR cv::COLOR_HSV2BGR
#define CV_BGR2Lab cv::COLOR_BGR2Lab

错误7:

/home/mzgong/caffe/src/caffe/util/io.cpp:86:34: error: ‘CV_LOAD_IMAGE_COLOR’ was not declared in this scope
   int cv_read_flag = (is_color ? CV_LOAD_IMAGE_COLOR :
 
  /home/mzgong/caffe/src/caffe/util/io.cpp:87:5: error: ‘CV_LOAD_IMAGE_GRAYSCALE’ was not declared in this scope
     CV_LOAD_IMAGE_GRAYSCALE);

解决:
/home/mzgong/caffe/src/caffe/util/io.cpp

加上
#define CV_LOAD_IMAGE_COLOR cv::IMREAD_COLOR
#define CV_LOAD_IMAGE_GRAYSCALE cv::IMREAD_GRAYSCALE

错误7:

/home/mzgong/caffe/src/caffe/util/bbox_util.cpp:2212:20: error: ‘CV_FILLED’ was not declared in this scope
             color, CV_FILLED);

解决:

/home/mzgong/caffe/src/caffe/util/bbox_util.cpp

//修改CV_RGB为cv::Scalar
//修改CV_FILLED为cv::FILLED

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值