faster-rcnn作者的开源代码中有安装教程(指路:faster-rcnn官方库),按其指示进行安装的过程中,出了以下问题:
1.Message type "caffe.LayerParameter" has no field named "roi_pooling_param".
出现错误的原因是我是直接在faster-rcnn官方库下载的zip文件,解压后得到py-faster-rcnn文件夹,这个文件夹中的caffe-faster-rcnn文件夹为空。所以我又去caffe-faster-rcnn官方库下载文件,解压后直接放在py-faster-rcnn文件夹下。但是github页面上下载默认下载的是master分支,这个分支是不含roi_pooling_layer相关文件的,也就是说这个分支与faster-rcnn这个项目是不匹配的。
解决:下载caffe-faster-rcnn官方库的faster-rcnn分支。
2.error: argument of type "cudnnActivationMode_t" is incompatible with paramet
出现错误的原因是faster-rcnn官方库用的cudnn应该是比较老的版本,与我电脑上的cuda10.0不兼容。
解决:
(1) 将./include/caffe/util/cudnn.hpp 换成最新版的caffe里的cudnn的实现,即相应的cudnn.hpp.
(2) 将./include/caffe/layers里的,所有以cudnn开头的文件,例如cudnn_conv_layer.hpp,都替换成最新版的caffe里的相应的同名文件。注意是layers文件中有的文件才替换,faster-rcnn里面只有8个cudnn开头的文件,你放进去9个就错了。
(3) 将./src/caffe/layer里的,所有以cudnn开头的文件,例如cudnn_lrn_layer.cu,都替换成最新版的caffe里的相应的同名文件。注意是layers文件中有的文件才替换,faster-rcnn里面只有16个cudnn开头的文件,你放进去18个就错了。
3.编译完跑demo.py的时候报错:Error in `python': corrupted size vs. prev_size
faster-rcnn官方库的安装教程是有坑的,在执行下面这条语句时,下载的caffe-faster-rcnn分支中net.cpp文件是有误的。
git clone --recursive https://github.com/rbgirshick/py-faster-rcnn.git
解决:同问题1的解决方法,下载caffe-faster-rcnn官方库的faster-rcnn分支。