运行py-RFCN的demo

代码下载链接:https://github.com/YuwenXiong/py-R-FCN

下载预训练模型:https://pan.baidu.com/s/1o77gFXo

环境安装,caffe,编译pycaffe接口,python2.7

将预训练模型放在dada文件夹下的rfcn_models文件夹,没有就新建:

然后开始运行tools文件夹下的demo_rfcn.py文件

下面是遇到的错误集合:

1、报cython_bbox错误

这个需要提前编译bbox.pyx,我一直编译不成功,所以直接将bbox.pyx改成了bbox.py,里面的内容按照python语法修改,删除掉定义变量之类的语句即可。

扫描二维码关注公众号,回复: 6788960 查看本文章

2、cpu_nms和gpu_nms的问题

同上面,只要改成cpu_nms.py文件,里面内容按照python语法修改即可:

gpu_nms报错,就直接不用他了,只用cpu_nms即可

3、 im_rois = im_rois.astype(np.float, copy=False)

AttributeError: 'NoneType' object has no attribute 'astype'

这个错误坑了好几天,看函数

_, _= im_detect(net, im)

进入到里面去:

blobs, im_scales = _get_blobs(im, boxes)

这个函数有个参数是boxes,是由im_detect函数传进来的,但是默认是None

进入到这个_get_blobs函数:

这里有个判断:cfg.TEST.HAS_RPN,这个参数是在config.py文件中定义的:

可见这里是False,所以上面的条件if not cfg.TEST.HAS_RPN就是真,就会进入到下面的语句:

而这个函数里的_project_im_rois函数就会报错了

因为这个im_rois是前面传进来的,是None,所以会报AttributeError: 'NoneType' object has no attribute 'astype'错误。

我们可以绕过他,让if not cfg.TEST.HAS_RPN条件为假,也就是cfg.TEST.HAS_RPN=True,但是我们看到在demo_rfcn.py中已经定义了这个值为True:

但是没起作用,具体原因没深究,config.py里面这个值为False,这里好像再赋值没用,所以为了让这个值起作用,直接在config中将其改为True.

重新运行demo就可以正常运行了:

  

猜你喜欢

转载自blog.csdn.net/sinat_33486980/article/details/95304779