从0开始安装caffe并进行faster-rcnn demo测试

因为需要安装图形库,为方便使用安装desktop版本。我这里把caffe以及其他组件都安装在/home/anan目录下
申明:本文未特别说明使用root用户均为在普通用户下操作,特殊权限用sudo 临时使用root用户,否则安装可能出现权限问题。

软件包:

vmware workstation12
xshell(远程连接工具)
pycharm python编辑器
diskkgenius 磁盘分区和数据恢复
目标:实现caffe的cpu版本安装并进行demo测试。

一:安装ubuntu16.04

1.1.分配磁盘空间。这部可以省略。本人习惯所有资源按照需求管理故单独分区。
这里为了访问快速,我们单独分一个盘用来存放我们的ubuuntu虚拟机和文件。
我的电脑–>管理(右键)—>磁盘管理–>选择一个有空余的逻辑卷,压缩逻辑卷并重新分配逻辑卷:我这里新建了一个F盘并分配40G
(这里我用的是20个G的固态用来安装存放ubuntu的系统和安装文件) 然后添加多块硬盘使用LVM模式进行分区扩展,同时单独挂载一块磁盘,挂载在/data目录下用来存放下载的数据以及大型文件存放。
这里写图片描述

1.2.按照vmware workstarion 12:win软件安装 略。
这里写图片描述

1.3.新建ubuntu16.04 desktop版本
新建虚拟机–>自定义安装–>vm12版本–>稍后安装操作系统–>选择linux(L) ubuntu 64位–>虚拟机名(ubuntu16.04_desktop_caffe_deno_test) 位置:F:\ubuntu16.04 注意:根据自己习惯命名和放在相应的位置中,分配处理器和核心数量以及虚拟机内存分配根据个人电脑选择。网络使用nat模式然后编辑虚拟机设置,将CD指向你的ubuntu-16.04-desktop-amd64.iso位置。
这里写图片描述

1.4.开机启动选择语言:English/中文简体–>install ubuntu–>之定义分区(Installation type)
我这里分配如下:/boot分区 500MB swap 8096MB /剩余空间 格式化磁盘并继续–>选择时区(shanghai)–>键盘布局–>设置用户名和密码并继续(这里如果现实不全的话可以按住alt键鼠标拖动界面)并重启。ubunut16.04_desktop版本安装完成。
注:如果磁盘分配不足或者磁盘分配有问题可以使用GParted进行磁盘的重新分配。
VM虚拟机下给Ubuntu 目录分区增加容量的方法

1.5.进入ubuntu16.04安装必要组件:部分软件系统已经自带。

安装rz #上传文件工具
sudo apt install lrzsz
ifconfig 查看系统ip
sudo apt install net-tools
ping 查看网络连接
sudo apt install iputils-ping
aria2 下载加速器或者直接使用wget #使用方法 aria2c 下载地址
sudo add-apt-repository ppa:t-tujikawa/ppa
sudo apt-get update
sudo apt-get install aria2

安装wget #下载工具
sudo apt install wget
安装火狐浏览器
sudo apt install firefox
安装openssh-server #开启远程端口 #启动 sudo service ssh start
sudo apt install openssh-server
安装git
sudo apt install git

1.6.下载组件:

1.7.更新软件列表和并更新软件:
sudo apt update #更新软件列表
sudo apt upgrade #更新软件

1.8.查看系统信息:$
cat /etc/issue #
Ubuntu 16.04 LTS \n \l
uname -a
Linux anan 4.4.0-21-generic #37-Ubuntu SMP Mon Apr 18 18:33:37 UTC 2016 x86_64 x86_64 x86_64
python -V
Python 2.7.12

二:安装caffe依赖并配置python 配置caffe

2.1.安装caffe必要的安装包:

sudo apt install build-essential -y
sudo apt install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler  -y
sudo apt install --no-install-recommends libboost-all-dev  -y
sudo apt install libatlas-base-dev  -y
sudo apt install libhdf5-serial-dev -y

2.2.配置python


sudo apt install python-dev -y
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev -y
sudo apt install python-pip -y
pip:pip install -U pip #更新pip版本

2.3.下载caffe #

$git clone https://github.com/BVLC/caffe.git

进入~/caffe下的python文件夹 输入
$for req in $(cat requirements.txt); do pip install $req; done #pip安装python的基本库

2.4修改Makefile.config配置
进入caffe文件夹

cp Makefile.config.example Makefile.config  
vi Makefile.config #修改下列三部分:
CPU_ONLY := 1前面的#要去掉. #因为我们使用的是cpu模式
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/hdf5/serial

我的Makefile.Config

2.5进入caffe文件夹编译 #如果失败使用make clean 再重新编译

$make pycaffe  
$make all  
$make test  
$make runtest

make runtest 成功效果图
这里写图片描述

2.6测试 进入caffe/python目录下 输入python import caffe 不报错则证明安装caffe成功。如图:

这里写图片描述

2.7 使用mnist数据进行测试

2.7.1下载数据如图:

cd ~/caffe/
./data/mnist/get_mnist.sh
./examples_mnist/create_mnist.sh

这里写图片描述

2.7.2 修改配置:

cd ~/caffe/
sudo vi ./examples/mnist/lenet_solver.prototxt  
#solver_mode: GPU --->solver_mode: CPU

cpu_or_gpu

2.7.3:训练模型:

cd ~/caffe/
./examples/mnist/train_lenet.sh

如图:
这里写图片描述

三:安装opencv

安装opencv
3.1安装opencv需要的安装包
opencv.sh

3.2下载opencv3.1和opencv cont

$git clone https://github.com/Itseez/opencv.git
$git clone https://github.com/Itseez/opencv_contrib.git

3.3编译

$cd opencv-3.1.0
$mkdir release
$cd release
$cmake-gui ..
$make &&sudo make install 

效果图如下:

这里写图片描述

这里写图片描述

3.4进行数据测试:用Python脚本识别图片的红色游戏卡:
find_red.py

#!/usr/bin/python
# -*- coding:utf-8 -*-
# 导入使用的包
import numpy as np
import cv2

# 加载图片
image = cv2.imread("gamecards.jpg")

# 在图片中找到红色的游戏卡
upper = np.array([65, 65, 255])
lower = np.array([0, 0, 200])
mask = cv2.inRange(image, lower, upper)

# 找到轮廓并保留最大的
(_, cnts, _) = cv2.findContours(mask.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
c = max(cnts, key = cv2.contourArea)

# 轮廓近似
peri = cv2.arcLength(c, True)
approx = cv2.approxPolyDP(c, 0.05*peri, True)

# 把红色卡用绿框框住
cv2.drawContours(image, [approx], -1, (0, 255, 0), 4)
cv2.imshow("Image", image)
cv2.waitKey(0)

3.5 执行效果图:
这里写图片描述

四:进行faster-rcnn demo测试** //失败

4.1:克隆安装包
$git clone --recursive https://github.com/rbgirshick/fast-rcnn.git
4.2: 编译

4.3下载测试模型:

$cd py-fast-rcnn
$./data/scripts/fetch_fast_rcnn_models.sh
#注 这里下载数据可能会失败 我使用的是外部下载该数据并上传至./data目录下并解压

4.4python 运行demo

$cd fast-rcnn
$sudo ./tools/demo.py --net caffenet

问题记录和解决方案:

问题一:安装过程中pip问题

Traceback (most recent call last):
  File "/usr/bin/pip", line 9, in <module>
    from pip import main
ImportError: cannot import name main
问题产生原因:在升级过程中pip10.0.1可能默认的pip是python3的版本 
网上提供了三种解决方案:

方案一:修改 /usr/bin/pip 文件 经过测试失败

from pip import main
if __name__ == '__main__':
    sys.exit(main())
改为:
from pip import __main__
if __name__ == '__main__':
    sys.exit(__main__._main())

方案二:安装easy_install 安装pip 测试失败

方案三:解决方案:cd /usr/bin 将pip 修改为pip3 pip2改为pip 成功

问题二:编译 pycaffe出错

CXX src/caffe/syncedmem.cpp
In file included from src/caffe/syncedmem.cpp:1:0:
./include/caffe/common.hpp:4:32: fatal error: boost/shared_ptr.hpp: No such file or directory
compilation terminated.
Makefile:581: recipe for target '.build_release/src/caffe/syncedmem.o' failed
make: *** [.build_release/src/caffe/syncedmem.o] Error 1

问题原因:缺少包,重新刷一遍上面的caffe必要包和python配置包

问题三:法获得锁 /var/lib/apt/lists/lock - open (11 资源临时不可用)
解决方案:ps -df | grep apt
sudo kill -9 id

问题四:下载速度偏慢:
解决方案:更换下载源
system setting–>software and updates–>Download from 修改下载源为aliyun

问题五:本机安装ubuntu16.04时卡帧,核查原因为显卡驱动问题
暂未解决。

问题六:下载数据失败
下载数据失败
解决方案:本地下载该数据包并上传到相应的文件夹下。
数据包

问题七:“fatal error: hdf5.h: 没有那个文件或目录”解决方法
解决方案:修改Makefile.config

INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include修改为INCLUDE_DIRS:= $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial/
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

问题八:在build文件夹内编译失败:可以尝试新建release 并编译 :原理未知

问题九:将python库的包指定版本:
这里写图片描述
sudo pip install --upgrade bleach==1.5.0 #其他类似

博客推荐:

faster-rcnn在ubuntu16.04环境下的超级详细的配置

参考文献:
caffe+CPU︱虚拟机+Ubuntu16.04+CPU+caffe安装笔记
虚拟机下Ubuntu安装CPU版本的caffe
caffe利用anaconda配置python接口(cpu版可视化工具)
Faster R-CNN CPU环境搭建

猜你喜欢

转载自blog.csdn.net/sinat_34789167/article/details/80462499
今日推荐