【CV】caffe-ssd三字码识别

check List

1.检查 CUDA nvcc -V环境是否安装正常 如果不正常则去安装 NVIDIA 、CUDA 、CUDNN (版本搭配)

nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2019 NVIDIA Corporation
Built on Sun_Jul_28_19:07:16_PDT_2019
Cuda compilation tools, release 10.1, V10.1.243

2.由于Python2 即将落幕 所以我们这次在Ubuntu18.04 自带的 python3.6上进行
3.sudo ldconfig 检查是否有软连接没有生效

正式安装

依赖解决:

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

从源代码编译Opencv
进入官网 : http://opencv.org/releases.html , 下载 3.x系列 解压到你要安装的位置,命令行进入已解压的文件夹

mkdir build # 创建编译的文件目录
 
cd build
 
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
 
make -j8  #编译  注意自己的核数

在执行 make -j8 命令编译到 92% 时可能会出现以下错误,是由于opecv3.1与cuda8.0不兼容导致的。解决办法:修改 /opencv-3.1.0/modules/cudalegacy/src/graphcuts.cpp 文件内容,如图:
在这里插入图片描述
编译成功后安装:
sudo make install
安装完成后通过查看 opencv 版本验证是否安装成功:
pkg-config --modversion opencv

1.安装caffe-SSD

git clone https://github.com/weiliu89/caffe.git
cd caffe
git checkout ssd

2.再次检查依赖

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 python-dev
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev

3.修改Makefile.config文件,复制一份的原因是编译 caffe 时需要的是 Makefile.config 文件,而Makefile.config.example 只是caffe 给出的配置文件例子,不能用来编译 caffe。

cp Makefile.config.example Makefile.config
sudo vim Makefile.config

应用 cudnn

将第5行的 # 取消
#USE_CUDNN := 1
修改成: 
USE_CUDNN := 1

应用 opencv 版本

将第21行的 # 取消
#OPENCV_VERSION := 3 
修改为: 
OPENCV_VERSION := 3

使用 python 接口

将第89行的 # 取消
#WITH_PYTHON_LAYER := 1 
修改为 
WITH_PYTHON_LAYER := 1

修改 python 路径

92/93行的 代码修改如下  
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 /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/hdf5/serial       

注释Python2 切换python3
代码修改如下 否则会编译Python.h and numpy/arrayobject.h. 出错

67/68行的   实际行数稍微有些出路可能 
 PYTHON_INCLUDE := /usr/include/python2.7 \
                  /usr/lib/python2.7/dist-packages/numpy/core/include
修改为: 
 # PYTHON_INCLUDE := /usr/include/python2.7 \
 #                 /usr/lib/python2.7/dist-packages/numpy/core/include 77/78 行的 注释解除  并更新  为Python3.6  实际行数稍微有些出路可能 
  # PYTHON_LIBRARIES := boost_python3 python3.5m
 # PYTHON_INCLUDE := /usr/include/python3.5m \
 #                 /usr/lib/python3.5/dist-packages/numpy/core/include
  PYTHON_LIBRARIES := boost_python3 python3.6m
  PYTHON_INCLUDE := /usr/include/python3.6m \
                   /usr/lib/python3.6/dist-packages/numpy/core/include

如果最后提示不支持compute_20,就把这句删掉,最后效果是
nvcc fatal : Unsupported gpu architecture ‘compute_20’
Makefile:588: recipe for target ‘.build_release/cuda/src/caffe/solvers/sgd_solver.o’ failed
make: *** [.build_release/cuda/src/caffe/solvers/sgd_solver.o] Error 1
make: *** Waiting for unfinished jobs…

建议显卡直接改成如下:
CUDA_ARCH := -gencode arch=compute_30,code=sm_30
-gencode arch=compute_35,code=sm_35
-gencode arch=compute_50,code=sm_50
-gencode arch=compute_52,code=sm_52
-gencode arch=compute_60,code=sm_60
-gencode arch=compute_61,code=sm_61
-gencode arch=compute_61,code=compute_61

然后修改caffe 目录下的 Makefile 文件: 注意不是Makefile.config文件

sudo vim Makefile
将第409行 替换为如下  
NVCCFLAGS +=-ccbin=$(CXX) -Xcompiler-fPIC $(COMMON_FLAGS)
替换为:
NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)
将:181行替换为如下
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

将:265行 替换如下(我的环境太新除了这个问题【可选项】当你出现了
.build_release/lib/libcaffe.so: undefined reference to `boost::re_detail_106501::put_mem_block(void*)')

LIBRARIES += boost_thread stdc++
改为:
LIBRARIES += boost_thread stdc++ boost_regex

4.下载python 环境依赖包 :
去到caffe根目录中的python目录中运行 …/caffe/python
5.设置系统python环境 在末尾添加环境变量

vim ~/.bashrc
export PYTHONPATH="/opt/build/caffe/python"   # 此处为caffe 的rootdir 目录
source ~/.bashrc

6.编译caffe保存 开始编译,在 caffe 目录下执行 如果出错 建议修改完毕使用 make clean 继续Try

make all -j32  代表几核并行编译 请与自己电脑量力而行 后续将不再重复声明哇 
make test -j32
make pycaffe
make runtest -j32

“/ usr / bin / ld:在Caffe编译中找不到-lopenblas”错误
即使在克隆OpenBlas之后包括基本包,并且将在14.04和16中链接相应的库。
apt install liblapack-dev liblapack3 libopenblas-base libopenblas-dev
apt install liblapack-dev liblapack3 libopenblas-base libopenblas-dev
到此 安装caffe 结束
7.更改caffe 源码: https://blog.csdn.net/sinat_14916279/article/details/56489601
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
安装参考资料:https://blog.csdn.net/lukaslong/article/details/81390276
https://note.youdao.com/ynoteshare1/index.html?id=2abcf621d178f131e7491099112cee30&type=note

发布了89 篇原创文章 · 获赞 108 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/weixin_43435675/article/details/102138261