- install
cuda-9.0
(https://developer.nvidia.com/cuda-toolkit-archive) - install
cudnn-7
(https://developer.nvidia.com/cudnn) - install dependencies for caffe
- see the caffe installation guide [1] and wiki page [2]
- install
boost-1.65
or higher (http://www.boost.org/users/history/version_1_65_1.html) [3] - update
caffe-fast-rcnn
- Easiest way is to use a rebased branch on
BVLC/master
. See the notes below if you would rather merge the changes yourself.
$ cd $FRCN_ROOT/caffe-fast-rcnn $ git remote add acmiyaguchi https://github.com/acmiyaguchi/caffe-fast-rcnn.git $ git checkout acmiyaguchi/faster-rcnn-rebased
- optional: rebase against upstream master
$ git remote add caffe https://github.com/BVLC/caffe.git $ git rebase caffe/master
- Easiest way is to use a rebased branch on
- set variables in
Makefile.config
USE_CUDNN := 1
WITH_PYTHON_LAYER := 1
OPENCV_VERSION := 3
CUSTOM_CXX := g++-6
- I symlink
gcc-6
andg++-6
togcc
andg++
in/usr/local/cuda-9-0/bin/
instead of this setting, but either should work
- I symlink
- remove
compute_20
fromCUDA_ARCH
since it's been depreciated incuda-9-0
- add
hdf5
for linking since it's been renamed in 17.10INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/include/hdf5/serial/
LIBRARY_DIRS := $(PYTHON_LIB) /usr/lib/x86_64-linux-gnu/hdf5/serial/
- build caffe
make -j${N_THREADS} all && make pycaffe
- change
self.param_str_
toself.param_str
in$FRCN_ROOT/lib/rpn/proposal_layer.py
.- see
rebased-caffe.patch
below for the full diff
- see
- validate that
./tools/demo.py
works
BVLC/caffe
and rbgirshick/caffe
have diverged since this workaround [4] in March 2017. I've rebased the faster-rcnn
patchset against the master caffe branch for convenience. [5]
This branch should merge cleanly into BVLC/caffe
with the exception of the license.
If you rather merge the upstream changes yourself, the patch in [6] should outline the changes you need afterwards. -X theirs
may not be the best merge policy. In particular, changes to the src/caffe/caffe.proto
schema will overwrite the ROIPoolingParameter
.
diff --git a/lib/rpn/proposal_layer.py b/lib/rpn/proposal_layer.py
index b157160..e6d28cc 100644
--- a/lib/rpn/proposal_layer.py
+++ b/lib/rpn/proposal_layer.py
@@ -23,7 +23,7 @@ class ProposalLayer(caffe.Layer):
def setup(self, bottom, top):
# parse the layer parameter string, which must be valid YAML
- layer_params = yaml.load(self.param_str_)
+ layer_params = yaml.load(self.param_str)
self._feat_stride = layer_params['feat_stride']
anchor_scales = layer_params.get('scales', (8, 16, 32))
- [1] http://caffe.berkeleyvision.org/installation.html
- [2] https://github.com/BVLC/caffe/wiki/Ubuntu-16.04-or-15.10-Installation-Guide
- [3] ubuntu 17.10 currently ships with boost 1.62. This uses the macro
__CUDACC_VER__
that was depreciated incuda-9.0
. The current distribution on the boost site fixes this. See the bug tracker for more details. https://svn.boost.org/trac10/ticket/13152 - [4] this currently requires quite a bit of manual conflict resolution https://github.com/rbgirshick/py-faster-rcnn/issues/509?_pjax=%23js-repo-pjax-container#issuecomment-284133868]
- [5] https://github.com/acmiyaguchi/caffe-fast-rcnn/commits/faster-rcnn-rebased
- [6] https://github.com/acmiyaguchi/caffe-fast-rcnn/commit/d58e95906f1f1ba3557e3f46c57fa6a4a1361be2
@acmiyaguchi Thank you very much. This report helps me to solve my problems.