Faster R-CNN的安装及测试(Python版本和Matlab版本)

rbg的Python版本


一、拉取源码

git clone --recursive https://github.com/rbgirshick/py-faster-rcnn.git

拉取完成后,在/home/cmwang/目录下增加了py-faster-rcnn文件夹【cmwang是我的ubuntu用户名】


二、安装依赖

sudo apt-get install python-opencvsudo pip install cython easydict

三、修改Makefile文件

终端输入

cd /home/cmwang/py-faster-rcnn/caffe-fast-rcnn/ 
cp Makefile.config.example Makefile.config #备份Makefile 
gedit Makefile.config

使用python层
将# WITH_PYTHON_LAYER := 1修改为 WITH_PYTHON_LAYER := 1

调用matlab
将#MATLAB_DIR := / usr/local/MATLAB/R2015b 中的#去掉。

使用cudnn加速
将# USE_CUDNN := 1修改为USE_CUDNN := 1

保留# CPU_ONLY := 1不变,使用GPU运行faster r-cnn


四、编译Cython模块

终端输入

cd ~/py-faster-rcnn/lib/make

五、编译caffe和pycaffe & matcaffe

终端输入

cd ~/py-faster-rcnn/caffe-fast-rcnn/ 
make -j8 && make pycaffe && make matcaffe

六、下载模型

终端输入

cd ~/py-faster-rcnn/./data/scripts/fetch_faster_rcnn_models.sh 

七、faster r-cnn测试

cd ~/py-faster-rcnn/ 
./tools/demo.py 

Shaoqing Ren的MATLAB版本



一、拉取源码

下载 faster_rcnn-master.zip

拉取完成后,在/home/cmwang/目录下增加了faster_rcnn_master文件夹【cmwang是我的ubuntu用户名】


二、下载补充文件夹

解压faster_rcnn-master.zip后,发现faster_rcnn-master/external/caffe 是空文件。
下载 caffe-062f2431162165c658a42d717baf8b74918aa18e.zip

unzip caffe-062f2431162165c658a42d717baf8b74918aa18e.zip
cp ./caffe-062f2431162165c658a42d717baf8b74918aa18e/ ./faster_rcnn-master/external/caffe/

三、修改Makefile文件

终端输入

cd /home/cmwang/faster_rcnn-master/external/caffe 
cp Makefile.config.example Makefile.config #备份Makefile 
gedit Makefile.config

使用python层
将# WITH_PYTHON_LAYER := 1修改为 WITH_PYTHON_LAYER := 1

调用matlab
将#MATLAB_DIR := / usr/local/MATLAB/R2015b 中的#去掉。

使用cudnn加速
将# USE_CUDNN := 1修改为USE_CUDNN := 1

保留# CPU_ONLY := 1不变,使用GPU运行faster r-cnn


四、编译caffe和pycaffe & matcaffe

终端输入

cd ~faster_rcnn-master/external/caffe
make all -j8 && make test -j8 && make runtest -j8 && make pycaffe && make matcaffe

五、下载模型

终端输入

cd ~/faster_rcnn-master/run fetch_data/fetch_model_VGG16.m

六、运行

cd ~/faster_rcnn-master/ 
run faster_rcnn_build.m
run startup.m

七、faster r-cnn测试

cd ~/faster_rcnn-master/ 
run ./experiments/script_faster_rcnn_demo.m

备注: Matlab里面有内置的

Object Detection Using Faster R-CNN Deep Learning


常出现的问题1

这里写图片描述


这是由于当前版本的caffe中cudnn实现与系统所安装的cudnn的版本不一致引起,rbgirshick的py-faster-rcnn其cudnn实现为旧版本的实现,所有出现了以上问题。

cudnn-7.0-linux-x64-v4.0-prod.tgz不会出现此问题
cudnn-7.5-linux-x64-v5.1.tgz会出现同样问题
cudnn-8.0-linux-x64-v5.1.tgz会出现同样问题

解决办法

①将/home/cmwang/py-faster-rcnn/caffe-fast-rcnn/include/caffe/util/cudnn.hpp 换成最新版caffe里的相应目录下的cudnn.hpp;②将/home/cmwang/py-faster-rcnn/caffe-fast-rcnn/include/caffe/layers/下所有cudnn开头的文件都替换为最新版caffe里相应目录下的同名文件;③将/home/cmwang/py-faster-rcnn/caffe-fast-rcnn/src/caffe/layer下所有cudnn开头的文件都替换为最新版caffe里相应目录下的同名文件

常出现的问题2

这里写图片描述

出现找不到hdf5.h错误;

解决办法:终端输入

cd /home/cmwang/py-faster-rcnn/caffe-fast-rcnn/ 
gedit Makefile.config 
在INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include 后面打上一个空格,然后添加/usr/include/hdf5/serial

如果没有这一句可能会报一个找不到hdf5.h的错误。


常出现的问题3

CXX .build_release/src/caffe/proto/caffe.pb.cc
CXX src/caffe/common.cpp
CXX src/caffe/net.cpp
CXX src/caffe/internal_thread.cpp
CXX src/caffe/layers/cudnn_softmax_layer.cpp
CXX src/caffe/layers/hinge_loss_layer.cpp
CXX src/caffe/layers/relu_layer.cpp
CXX src/caffe/layers/contrastive_loss_layer.cpp
CXX src/caffe/layers/elu_layer.cpp
CXX src/caffe/layers/hdf5_output_layer.cpp
CXX src/caffe/layers/cudnn_pooling_layer.cpp
CXX src/caffe/layers/deconv_layer.cpp
CXX src/caffe/layers/memory_data_layer.cpp
CXX src/caffe/layers/eltwise_layer.cpp
CXX src/caffe/layers/softmax_loss_layer.cpp
CXX src/caffe/layers/silence_layer.cpp
CXX src/caffe/layers/power_layer.cpp
CXX src/caffe/layers/exp_layer.cpp
CXX src/caffe/layers/threshold_layer.cpp
CXX src/caffe/layers/tanh_layer.cpp
CXX src/caffe/layers/cudnn_lrn_layer.cpp
CXX src/caffe/layers/data_layer.cpp
CXX src/caffe/layers/base_conv_layer.cpp
CXX src/caffe/layers/lstm_unit_layer.cpp
CXX src/caffe/layers/accuracy_layer.cpp
CXX src/caffe/layers/softmax_layer.cpp
CXX src/caffe/layers/im2col_layer.cpp
CXX src/caffe/layers/lstm_layer.cpp
CXX src/caffe/layers/sigmoid_cross_entropy_loss_layer.cpp
CXX src/caffe/layers/cudnn_relu_layer.cpp
CXX src/caffe/layers/image_data_layer.cpp
CXX src/caffe/layers/reshape_layer.cpp
CXX src/caffe/layers/window_data_layer.cpp
CXX src/caffe/layers/split_layer.cpp
CXX src/caffe/layers/hdf5_data_layer.cpp
CXX src/caffe/layers/flatten_layer.cpp
CXX src/caffe/layers/cudnn_lcn_layer.cpp
CXX src/caffe/layers/input_layer.cpp
CXX src/caffe/layers/rnn_layer.cpp
CXX src/caffe/layers/recurrent_layer.cpp
CXX src/caffe/layers/inner_product_layer.cpp
CXX src/caffe/layers/reduction_layer.cpp
CXX src/caffe/layers/multinomial_logistic_loss_layer.cpp
CXX src/caffe/layers/infogain_loss_layer.cpp
CXX src/caffe/layers/bias_layer.cpp
CXX src/caffe/layers/filter_layer.cpp
CXX src/caffe/layers/batch_reindex_layer.cpp
CXX src/caffe/layers/slice_layer.cpp
CXX src/caffe/layers/argmax_layer.cpp
CXX src/caffe/layers/prelu_layer.cpp
CXX src/caffe/layers/dropout_layer.cpp
CXX src/caffe/layers/absval_layer.cpp
CXX src/caffe/layers/bnll_layer.cpp
CXX src/caffe/layers/sigmoid_layer.cpp
CXX src/caffe/layers/concat_layer.cpp
CXX src/caffe/layers/dummy_data_layer.cpp
CXX src/caffe/layers/base_data_layer.cpp
CXX src/caffe/layers/log_layer.cpp
CXX src/caffe/layers/crop_layer.cpp
CXX src/caffe/layers/cudnn_tanh_layer.cpp
CXX src/caffe/layers/pooling_layer.cpp
CXX src/caffe/layers/parameter_layer.cpp
CXX src/caffe/layers/euclidean_loss_layer.cpp
CXX src/caffe/layers/mvn_layer.cpp
CXX src/caffe/layers/lrn_layer.cpp
CXX src/caffe/layers/loss_layer.cpp
CXX src/caffe/layers/conv_layer.cpp
CXX src/caffe/layers/cudnn_sigmoid_layer.cpp
CXX src/caffe/layers/scale_layer.cpp
CXX src/caffe/layers/tile_layer.cpp
CXX src/caffe/layers/embed_layer.cpp
CXX src/caffe/layers/neuron_layer.cpp
CXX src/caffe/layers/cudnn_conv_layer.cpp
CXX src/caffe/layers/batch_norm_layer.cpp
CXX src/caffe/layers/spp_layer.cpp
CXX src/caffe/layer_factory.cpp
CXX src/caffe/blob.cpp
CXX src/caffe/layer.cpp
CXX src/caffe/data_transformer.cpp
CXX src/caffe/syncedmem.cpp
CXX src/caffe/util/blocking_queue.cpp
CXX src/caffe/util/db_lmdb.cpp
CXX src/caffe/util/benchmark.cpp
CXX src/caffe/util/io.cpp
CXX src/caffe/util/insert_splits.cpp
CXX src/caffe/util/hdf5.cpp
CXX src/caffe/util/cudnn.cpp
CXX src/caffe/util/signal_handler.cpp
CXX src/caffe/util/db.cpp
CXX src/caffe/util/math_functions.cpp
CXX src/caffe/util/upgrade_proto.cpp
CXX src/caffe/util/im2col.cpp
CXX src/caffe/util/db_leveldb.cpp
CXX src/caffe/solvers/adam_solver.cpp
CXX src/caffe/solvers/adadelta_solver.cpp
CXX src/caffe/solvers/adagrad_solver.cpp
CXX src/caffe/solvers/sgd_solver.cpp
CXX src/caffe/solvers/rmsprop_solver.cpp
CXX src/caffe/solvers/nesterov_solver.cpp
CXX src/caffe/data_reader.cpp
CXX src/caffe/parallel.cpp
CXX src/caffe/solver.cpp
AR -o .build_release/lib/libcaffe.a
LD -o .build_release/lib/libcaffe.so.1.0.0-rc3
/usr/bin/ld: cannot find -lhdf5_hl
/usr/bin/ld: cannot find -lhdf5
collect2: error: ld returned 1 exit status
Makefile:566: recipe for target '.build_release/lib/libcaffe.so.1.0.0-rc3' failed
make: *** [.build_release/lib/libcaffe.so.1.0.0-rc3] Error 1

解决方法

修改Makefile 文件(注意不是)Makefile.config 
将里面的
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

常出现的问题4

CXX/LD -o .build_release/tools/convert_imageset.bin
.build_release/lib/libcaffe.so: undefined reference to cv::imread(cv::String const&, int)' .build_release/lib/libcaffe.so: undefined reference tocv::imencode(cv::String const&, cv::_InputArray const&, std::vector<unsigned char, std::allocator >&, std::vector<int, std::allocator > const&)'
.build_release/lib/libcaffe.so: undefined reference to `cv::imdecode(cv::_InputArray const&, int)'
collect2: error: ld returned 1 exit status
make: *** [.build_release/tools/convert_imageset.bin] Error 1CXX/LD -o .build_release/test/test_all.testbin src/caffe/test/test_caffe_main.cppLD .build_release/src/caffe/test/test_threshold_layer.o
.build_release/lib/libcaffe.so: undefined reference to cv::imread(cv::String const&, int)' .build_release/lib/libcaffe.so: undefined reference tocv::imencode(cv::String const&, cv::_InputArray const&, std::vector<unsigned char, std::allocator >&, std::vector<int, std::allocator > const&)'
.build_release/lib/libcaffe.so: undefined reference to `cv::imdecode(cv::_InputArray const&, int)'
collect2: error: ld returned 1 exit status
make: *** [.build_release/test/test_threshold_layer.testbin] Error 1

Maybe it is the related with OpenCv.

解决方法

add "opencv_imgcodecs" in Makefile.(LIBRARIES += glog gflags protobuf leveldb snappy 
lmdb boost_system hdf5_hl hdf5 m 
opencv_core opencv_highgui opencv_imgproc opencv_imgcodecs)

常出现的问题5


执行make runtest这一命令之后,遇到了奇葩的问题”Unknown V1LayerParameter Layer type: 40”。如下图:
这里写图片描述


解决方案

在这个文件上面(external/caffe/src/caffe/util/upgrade_proto.cpp)。我们需要补上Reshape,ROIPooling以及SmoothL1Loss这三个层,具体见下:


case V1LayerParameter_LayerType_THRESHOLD:
return "Threshold";
case V1LayerParameter_LayerType_RESHAPE:
return "Reshape";
case V1LayerParameter_LayerType_ROIPOOLING:
return "ROIPooling";`
case V1LayerParameter_LayerType_SMOOTH_L1_LOSS:
return "SmoothL1Loss";


若还有其他的问题敬请查看

Faste R-CNN的安装及测试


参考文献:

安装Caffe.build_release/lib/libcaffe.so.1.0.0-rc3’ failed

Faster R-CNN的安装、测试经历

Error: ‘make all’ ‘make test’

Faster R-CNN教程

faster rcnn配置方法MATLAB 版本

Object Detection Using Faster R-CNN Deep Learning

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/246865.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Faste R-CNN的安装及测试

一、拉取源码 下载 fast-rcnn 因下载解压后 caffe-fast-rcnn是空文件夹&#xff0c;故需要单独下 caffe-fast-rcnn-bcd9b4eadc7d8fbc433aeefd564e82ec63aaf69c.zip unzip caffe-fast-rcnn-bcd9b4eadc7d8fbc433aeefd564e82ec63aaf69c.zip cp ./caffe-fast-rcnn-bcd9b4eadc7d8…

6 areas of artificial intelligence to watch closely 需要密切关注的六大人工智能/机器学习领域

近段时间&#xff0c;有许多关于人工智能公认定义的争论。有些人认为人工智能就是“认知计算”或是“机器智能”&#xff0c;而另一些人则把它与“机器学习”的概念混淆了。然而&#xff0c;人工智能并不是特指某种技术&#xff0c;它实际上是一个由多门学科组成的广阔领域&…

2016 亚洲共识指南:肺结节的评估

2016 年 2 月&#xff0c;亚洲肺部疾病和胸外科多学科专家小组在美国胸科医师学会&#xff08;ACCP&#xff09;制定的肺结节评估指南的基础上结合亚洲患者的自身特点制订了亚洲肺结节患者的评估指南。 亚洲肺结节的评估与 APCC 指南中所指出的重要注意事项大致相同。但该指南…

Ubuntu 15.04 安装TensorFlow(源码编译) 及测试梵高作画

介绍Google的TensorFlow机器学习开源库&#xff0c;在UbuntuKylin上的安装和和源码编译。 原始官方文档参见&#xff1a;http://www.tensorflow.org. 本电脑配置如下&#xff1a; 3.19.0-15-generic #15-Ubuntu x86_64 GNU/Linux NVIDIA Corporation GK110BGL [Tesla K40c] …

Ubuntu 15.04 安装 boost-python

1. 安装依赖库 sudo apt-get install python-dev sudo apt-get install mpi-default-dev #安装mpi库 sudo apt-get install libicu-dev #支持正则表达式的&#xff35;&#xff2e;&#xff29;&#xff23;&#xff2f;&#xff24;&#xff25;字符集 sudo apt-get install …

python 常见问题汇总(待续)

1. No module named skimage pip install scikit-image --upgrade 2. No module named dicom sudo pip install pydicom 3. python name ‘os’ is not defined import os This will import the python’s module os, which apparently is used later in the code of your m…

如何将 ipynb 发布到 blog 中(html, markdown格式)

相关文章链接 如何向IPython Notebook中导入.py文件 如何将 ipynb 发布到 blog 中(html, markdown格式) Introducing IPython Notebook Beginner’s IPython Notebook Tutorial Example notebook showing how to do statistics in IPython Notebook next generation slide…

HP Z840 工作站配sSAS Raid 安装 Ubuntu 16.04 系统

惠普Z840工作站配SAS RAID安装win7系统加载驱动 安装ubuntu的最低版本版本要求是01.25&#xff0c;请更新到官方最新的02.31测试 1. BIOS系统更新 1. 准备好一个空的U盘&#xff0c;格式化成FAT32&#xff0c;在U盘上建立\Hewlett-Packard\BIOS\New 2. 下载链接http://ftp.hp…

Ubuntu SSH Algorithm negotiation failed

问题 解决方法 chmod 777 /etc/ssh/sshd_configgedit /etc/ssh/sshd_config添加如下 Ciphers aes128-cbc,aes192-cbc,aes256-cbc,aes128-ctr,aes192-ctr,aes256-ctr,3des-cbc,arcfour128,arcfour256,arcfour,blowfish-cbc,cast128-cbcMACs hmac-md5,hmac-sha1,umac-64openssh.…

不同matlab版本所支持的gcc g+版本

问题 关于 GCC 和 G 版本问题 Matlab 2014a gcc/g 4.7.x, Matlab 2016a gcc/g 4.9.x Matlab 2017a gcc/g 4.9.x Ubuntu 15.04 gcc/g 4.9.x, Ubuntu 16.04 gcc/g 5.4.x 原则上Matlab需要和Ubuntu版本一致&#xff0c;由于CUDA 8只支持16.04,而且需要GCC 5.4.x 进行编译&#…

Linux系统中添加硬盘,并挂载到已有的目录,比如/home/user

备份用户下数据 cd home ls newuser tar cvf newuser.tar newuser  &#xff03;创建一个tar归档 rm -rf newuser mkdir newuser备注&#xff1a;newuser为home下的用户。 分区和挂载 #查看硬盘分区 fdisk -l#分区 fdisk /dev/sdbCommand (m for help):m#新建一个分区 Comman…

高性能Numpy/Scipy加速:使用Intel MKL和Intel Compilers或OpenBLAS(待续)

Numpy/Scipy加速:使用Intel MKL和Intel Compilers 1.获取Intel Parallel Studio XE Intel免费软件工具提供免费的软件包&#xff0c;其中包括完整的Intel编译器和计算库及其激活码&#xff0c;软件和激活码一一对应。注意需要使用教育邮箱注册&#xff0c;否则不予通过。 2.安装…

Linux 安装卸载软件及管理软件仓库

软件仓库 Linux的软件包都存放在一个地方&#xff0c;叫做软件仓库&#xff0c;repository。 因为Linux是在Windows之后诞生的&#xff08;1991年前后&#xff09;&#xff0c;所以为了避免Windows的这个“弊端”&#xff0c;Linux选择创建一个集中存放软件的地方。 当然了&a…

Linux 终端配置

一般Linux中的配置文件大多以点开头&#xff0c;而且多以rc结尾。比如vim的配置文件 .vimrc&#xff0c;bash shell的配置文件.bashrc&#xff0c;等等。 像这样的配置文件&#xff0c;如果用ls -l命令是列不出来的&#xff0c;需要用ls -a来列出。 “rc”&#xff0c;它是“…

Caffe2 Compilation Error gflags.cc' is being linked both statically and dynamically into this execut

问题描述 python -c from caffe2.python import core 2>/dev/null && echo "Success" || echo "Failure" 出现这个问题 ERROR: something wrong with flag flagfile in file /home/bids/softwares/gflags-2.2.0/src/gflags.cc. One possibil…

值得关注的医疗 AI 公司(待续)

医疗成像 Clearview Diagnostics 是一家开发辅助医生诊断疾病的工具的 AI 软件公司。该公司最初的重点是乳腺癌。 Butterfly Network 是一家医疗成像技术公司&#xff0c;该公司创建了一个集成了深度学习技术的便携式医疗成像设备&#xff0c;帮助缺乏医疗机构或医生不够专业的…

caffe2 介绍

Caffe2的特性 Caffe2框架可以通过一台机器上的多个GPU或具有一个及多个GPU的多台机器来进行分布式训练。 也可以在iOS系统、Android系统和树莓派&#xff08;Raspberry Pi&#xff09;上训练和部署模型。只需要运行几行代码即可调用Caffe2中预先训练好的Model Zoo模型。Caffe2…

如何向IPython Notebook中导入.py文件

相关文章链接 如何向IPython Notebook中导入.py文件 如何将 ipynb 发布到 blog 中(html, markdown格式) Introducing IPython Notebook Beginner’s IPython Notebook Tutorial Example notebook showing how to do statistics in IPython Notebook next generation sli…

Python 中的numpy 库

待总结 用scikit-learn和pandas学习线性回归 用scikit-learn和pandas学习Ridge回归 待整理的 Numpy & Pandas numpy——主要对其 N 维数组对象有用 http://www.numpy.org/ Pandas数据转为 numpy数据 df_numpyMatrix df.as_matrix() df_numpyMatrixdf.values a([3.23…

Python 中的Pandas库

待总结 用scikit-learn和pandas学习线性回归 用scikit-learn和pandas学习Ridge回归 基于python的数据分析库Pandas pandas——Python 数据分析库&#xff0c;包括数据框架&#xff08;dataframes&#xff09;等结构 http://pandas.pydata.org/ 10 Minutes to Pandas&#…