DSP

基于Jetson TX1的faster-rcnn的算法搭建

2019-07-13 18:14发布

Data: 2016.12.19 Author: cjh Theme: Set up the faster-rcnnenvironment   由于R-FCN运行内存较大,TX1貌似性能不够,又在开发板上尝试faster-rcnn,这个遇到的问题相对比较多,废话不多说,直接上过程     步骤1:下载源码 git clone --recursive https://github.com/rbgirshick/py-faster-rcnn.git   由于原版py-faster-rcnn依赖的caffe比较老,不支持cudnnv5,那就更新下对应的源码,笔者在网上找到了两种解决方法   cd py-faster-rcnn 方法1: cd caffe-fast-rcnn  git remote add caffehttps://github.com/BVLC/caffe.git  git fetch caffe  git merge caffe/master   网上很多人都是用这种方法,但是笔者使用该方法失败了,在merge的过程中出现了, * Pleasetell me who you are. Run git config --global user.email"you@example.com"
git config --global user.name "Your Name" to set your account's default identity.Omit --global to set the identity only in this repository. fatal: empty ident not allowed   出现上述问题按照提示输入自己的邮箱和用户名就可以了   配置完成后我继续执行git merge caffe/master 又出现LICENSE conflict的问题 此过程我找不到解决的办法,直接对其进行编译,最终也报错了 python/caffe/_caffe.cpp:error: expectedprimary-expression before…后面还一堆具体记不住了,还有什么master,还有一个函数叫void caffe::…,到时候出现同样问题可截图我看看 最终我实在解决不了,就用了网上第二种方法。   方法2: 用最新caffe源码的以下文件替换掉faster rcnn 的对应文件 用最新caffe源码的以下文件替换掉faster rcnn 的对应文件 include/caffe/layers/cudnn_relu_layer.hpp,src/caffe/layers/cudnn_relu_layer.cpp, src/caffe/layers/cudnn_relu_layer.cu   include/caffe/layers/cudnn_sigmoid_layer.hpp,src/caffe/layers/cudnn_sigmoid_layer.cpp,src/caffe/layers/cudnn_sigmoid_layer.cu   include/caffe/layers/cudnn_tanh_layer.hpp,src/caffe/layers/cudnn_tanh_layer.cpp, src/caffe/layers/cudnn_tanh_layer.cu   用caffe源码中的这个文件替换掉faster rcnn 对应文件 include/caffe/util/cudnn.hpp   将 faster rcnn 中的 src/caffe/layers/cudnn_conv_layer.cu 文件中的所有 cudnnConvolutionBackwardData_v3 函数名替换为 cudnnConvolutionBackwardData cudnnConvolutionBackwardFilter_v3函数名替换为 cudnnConvolutionBackwardFilter 该方法很完美   步骤3:编译 cp Makefile.config.example Makefile.config vim Makefile.config  #修改配置文件 USE_CUDNN := 1 CUDA_DIR := /usr/local/cuda-8.0 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/aarch64-linux-gnu/hdf5/serial 退出并保存   cd py-faster-rcnn/lib make   cd py-faster-rcnn/lib /caffe-fast-rcnn make -j8 && make pycaffe   步骤4:测试 下载预训练模型 cd py-faster-rcnn ./data/scripts/fetch_faster_rcnn_models.sh 由于开发板上下载这个太慢了,笔者也是在windows上下载的   http://www.cs.berkeley.edu/~rbg/faster-rcnn-data/faster_rcnn_models.tgz   最后把预训练模型解压到 py-faster-rcnndatafaster_rcnn_models 目录   cd py-faster-rcnn/tools ./demo.py   测试结果图片我也不放了,值得一说的是,最终测试好的图片也会自己跳出来打开的,若没有打开说明你的opencv是有问题的吧   最后欢迎大家一起交流