r-cnn+caffe-0.999 编译过程中部分问题解决

来源:互联网 发布:steam汽车模拟软件 编辑:程序博客网 时间:2024/06/06 19:59

转载自sinat_29089097的博文:

r-cnn+caffe-0.999+GTX1080


R-CNN在GTX1080上运行

按照作者rbgirshick的 github上安装顺序进行安装。

PS:这里只能安装caffe-0.999,下载地址上面也有。

1、caffe-0.999的安装

安装的依赖库之类的在以前的版本中安装过了,直接修改Makefile.config文件即可。

参照以前安装版本的caffe的Makefile.config文件修改即可。

make all -j16 
出现错误

undefined reference tocv::imencode(cv::String const&, cv::_InputArray const&, std::vector >&, std::vector > const&)'.build_release/lib/libcaffe-nv.so: undefined reference to `cv::imdecode(cv::_InputArray const&, int)'collect2: error: ld returned 1 exit statusmake: *** [.build_release/tools/upgrade_net_proto_text.bin] Error 1

解决方法

change Makefile:LIBRARIES += glog gflags protobuf leveldb snappy \lmdb boost_system hdf5_hl hdf5 m \opencv_core opencv_highgui opencv_imgprocadd :opencv_imgcodecs solve my problem

make runtest -j16

出现错误

[ FAILED ] 7 tests, listed below: [ FAILED ] MathFunctionsTest/0.TestSgnbitCPU, where TypeParam = float[ FAILED ] PowerLayerTest/0.TestPowerGradientShiftZero, where TypeParam = caffe::FloatCPU  [ FAILED ] PowerLayerTest/1.TestPowerGradientShiftZero, where TypeParam = caffe::DoubleCPU  [ FAILED ] PowerLayerTest/1.TestPowerGradient, where TypeParam = caffe::DoubleCPU  [ FAILED ] PowerLayerTest/2.TestPowerGradientShiftZero, where TypeParam = caffe::FloatGPU  [ FAILED ] PowerLayerTest/3.TestPowerGradientShiftZero, where TypeParam = caffe::DoubleGPU  [ FAILED ] PowerLayerTest/3.TestPowerGradient, where TypeParam = caffe::DoubleGPU 

MathFunctionsTest解决方法:https://github.com/BVLC/caffe/pull/1264

在修改https://github.com/BVLC/caffe/pull/1264/files 中,共需要修改三个文件,我对比caffe-0.999版本之后,发现只需要修改其中的两个,也就是:

include/caffe/util/math_functions.hppsrc/caffe/util/math_functions.cpp

按照上面显示的修改即可。

PowerLayerTest解决方法:https://github.com/BVLC/caffe/pull/1840 

make matcaffe -j16

出现错误

/usr/local/MATLAB/R2014a/bin/mex matlab/caffe/matcaffe.cpp build/lib/libcaffe.a \CXXFLAGS="\$CXXFLAGS -pthread -fPIC -DNDEBUG -O2 -I/usr/local/include/python2.7 -I/usr/local/lib/python2.7/dist-packages/numpy/core/include -I/usr/local/include -Ibuild/src -I./src -I./include -I/usr/local/cuda/include -Wall" \CXXLIBS="\$CXXLIBS -L/usr/local/lib -L/usr/local/lib -L/usr/lib -L/usr/local/cuda/lib64 -L/usr/local/cuda/lib -lcudart -lcublas -lcurand -lpthread -lglog -lprotobuf -lleveldb -lsnappy -lboost_system -lhdf5_hl -lhdf5 -lopencv_core -lopencv_highgui -lopencv_imgproc -lcblas -latlas" -o matlab/caffe/caffe.mexa64Unknown MEX argument '-o'.make: *** [matlab/caffe/caffe.mexa64] Error 255

解决方法

参考https://github.com/BVLC/caffe/pull/696

make pycaffe -j16

出现错误

/usr/bin/g++ -shared -o python/caffe/_caffe.so python/caffe/_caffe.cpp \    build/lib/libcaffe.a -pthread -fPIC -DNDEBUG -O2 -I/usr/local/include/python2.7 -          I/usr/local/lib/python2.7/dist-  packages/numpy/core/include -I/usr/local/include -Ibuild/src -I./src -I./include -I/usr/local/cuda/include -L/usr/local/lib -L/usr/local/lib -L/usr/lib -L/usr/local/cuda/lib64 - L/usr/local/cuda/lib -lcudart -lcublas -lcurand -lpthread -lglog -lprotobuf -lleveldb -lsnappy -lboost_system -lhdf5_hl -lhdf5 -lopencv_core -lopencv_highgui -lopencv_imgproc -lcblas -latlas -  lboost_python -lpython2.7 In file included from /usr/include/boost/python/detail/prefix.hpp:13:0,              from /usr/include/boost/python/args.hpp:8,             from /usr/include/boost/python.hpp:11,             from python/caffe/_caffe.cpp:8:      /usr/include/boost/python/detail/wrap_python.hpp:50:23: fatal error: pyconfig.h: No such file or         directory   compilation terminated.   make: *** [python/caffe/_caffe.so] Error 1

解决方法

make cleanexport CPLUS_INCLUDE_PATH=/usr/include/python2.7 make all -j16make test -j16make runtest -j16make matcaffe -j16make pycaffe -j16

最终还是会出现

YOU HAVE 2 DISABLED TESTS

可以忽略:https://github.com/BVLC/caffe/issues/982

最终查看python接口是否编译成功:

进入python环境,进行import操作

# python>>> import caffe

如果没有提示错误,则编译成功。

2、R-CNN的安装

按照作者github上指示正常安装,但是在创建链接时,出现错误,我的链接总是显示已损坏。

解决方法

参考:https://ubuntuforums.org/showthread.php?t=1062535

cd rcnn_seriesln -sf "$PWD"/caffe "$PWD"/rcnn/external/caffe

链接创建成功。

运行

 key = caffe('get_init_key')

出现错误

Invalid MEX-file ‘**/caffe.mexa64’ /usr/local/MATLAB/R2014a/bin/glnxa64/../../sys/os/glnxa64/libstdc++.so.6: version GLIBCXX_3.4.21 not found (required by **/caffe.mexa64) 

解决方法

参考:Invalid MEX-file: caffe.mexa64 的解决方案

# ln -sf /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /usr/local/MATLAB/R2014a/bin/glnxa64/libstdc++.so.6 

运行后出现有一个错误 ==。

Invalid MEX-file'/home/zhou/rcnn_series/rcnn/external/caffe/matlab/caffe/caffe_.mexa64':/home/zhou/rcnn_series/rcnn/external/caffe/matlab/caffe/caffe_.mexa64: undefined symbol:_ZNK6google8protobuf7MessageGETxxxxxx(后面的信息不记得了)

查看matlab的依赖库和caffe的不同之处,参考

MATLAB2013a update and mexopencv failing #62

MATLAB compatibility #9:

在终端输入:

ldd /home/zhou/rcnn_series/rcnn/external/caffe/matlab/caffe/caffe_.mexa64

在matlab窗口输入:

!ldd /home/zhou/rcnn_series/rcnn/external/caffe/matlab/caffe/caffe_.mexa64

经过google之后发现是libprotobuf.so.8存在问题。

解决方法

关闭matlab,在终端输入:

sudo rm -f /usr/local/MATLAB/R2014a/bin/glnxa64/libprotobuf.so.8sudo ln -sf /usr/local/lib/libprotobuf.so.8 /usr/local/MATLAB/R2014a/bin/glnxa64/libprotobuf.so.8

重新在rcnn目录下打开matlab,发现运行成功(key(‘get_init_key’)=-2)!!!

下载实验所需要数据:r-cnn-release1-data.tgz 和 r-cnn-release1-selective-search.tgz

然后直接在matlab中输入rcnn_demo,即可实现目标检测啦!

由于目前所做研究跟rcnn有关,所以需要实现一下,在此记录。



0 0
原创粉丝点击